diff options
author | Michael Adam <obnox@samba.org> | 2008-03-17 17:29:44 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-03-17 18:03:02 +0100 |
commit | 670418c1165f0a149bfdd4bcdc5bde575df43ef2 (patch) | |
tree | f894c4a04e0a85c1fe046ab44c8d8308abcf4fb7 /source3 | |
parent | 8e308b64c015141dd4d557f287433e728974bbce (diff) | |
download | samba-670418c1165f0a149bfdd4bcdc5bde575df43ef2.tar.gz samba-670418c1165f0a149bfdd4bcdc5bde575df43ef2.tar.bz2 samba-670418c1165f0a149bfdd4bcdc5bde575df43ef2.zip |
Move libnet_conf to a library lib/smbconf/ of its own, fixing the api.
The libnet_conf code to access the registry based configuration has
become more of a library used in several places in samba (e.g. loadparm)
than an abstraction of "net conf". So I move it to a location lib/smbconf/.
In the same breath, the api is fixed (not generated by make proto anymore).
Michael
(This used to be commit 5315ef41f403b96715dd68b512e9e74662e2910a)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/Makefile.in | 9 | ||||
-rw-r--r-- | source3/include/includes.h | 2 | ||||
-rw-r--r-- | source3/lib/smbconf/smbconf.c (renamed from source3/libnet/libnet_conf.c) | 0 | ||||
-rw-r--r-- | source3/lib/smbconf/smbconf.h | 75 | ||||
-rw-r--r-- | source3/libnet/libnet.h | 1 | ||||
-rw-r--r-- | source3/libnet/libnet_conf.h | 27 |
6 files changed, 83 insertions, 31 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in index 4fa44aa4d4..5934db1cb1 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -364,7 +364,7 @@ READLINE_OBJ = lib/readline.o POPT_LIB_OBJ = lib/popt_common.o PARAM_WITHOUT_REG_OBJ = dynconfig.o param/loadparm.o param/params.o param/util.o lib/sharesec.o lib/ldap_debug_handler.o -PARAM_REG_ADD_OBJ = $(REG_SMBCONF_OBJ) $(LIBNET_CONF_OBJ) $(PRIVILEGES_BASIC_OBJ) +PARAM_REG_ADD_OBJ = $(REG_SMBCONF_OBJ) $(LIBSMBCONF_OBJ) $(PRIVILEGES_BASIC_OBJ) PARAM_OBJ = $(PARAM_WITHOUT_REG_OBJ) $(PARAM_REG_ADD_OBJ) KRBCLIENT_OBJ = libads/kerberos.o libads/ads_status.o @@ -670,6 +670,7 @@ SMBD_OBJ_BASE = $(PARAM_WITHOUT_REG_OBJ) $(SMBD_OBJ_SRV) $(LIBSMB_OBJ) \ $(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(LIBADS_SERVER_OBJ) \ $(REG_FULL_OBJ) $(POPT_LIB_OBJ) $(BUILDOPT_OBJ) \ $(SMBLDAP_OBJ) $(LDB_OBJ) $(LIBNET_OBJ) @LIBWBCLIENT_STATIC@ \ + $(LIBSMBCONF_OBJ) \ $(PRIVILEGES_BASIC_OBJ) PRINTING_OBJ = printing/pcap.o printing/print_svid.o printing/print_aix.o \ @@ -816,6 +817,7 @@ LIBNETAPI_OBJ1 = lib/netapi/netapi.o \ lib/netapi/getdc.o LIBNETAPI_OBJ = $(LIBNETAPI_OBJ1) $(LIBNET_OBJ) \ + $(LIBSMBCONF_OBJ) \ $(REG_SMBCONF_OBJ) \ $(PARAM_WITHOUT_REG_OBJ) $(LIB_NONSMBD_OBJ) \ $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \ @@ -823,9 +825,9 @@ LIBNETAPI_OBJ = $(LIBNETAPI_OBJ1) $(LIBNET_OBJ) \ $(SECRETS_OBJ) $(PASSDB_OBJ) @LIBWBCLIENT_STATIC@ $(SMBLDAP_OBJ) $(GROUPDB_OBJ) $(LDB_OBJ) \ $(DCUTIL_OBJ) $(LIBADS_OBJ) $(PRIVILEGES_BASIC_OBJ) -LIBNET_CONF_OBJ = libnet/libnet_conf.o +LIBSMBCONF_OBJ = lib/smbconf/smbconf.o -LIBNET_OBJ = $(LIBNET_CONF_OBJ) libnet/libnet_join.o \ +LIBNET_OBJ = libnet/libnet_join.o \ librpc/gen_ndr/ndr_libnet_join.o NET_OBJ1 = utils/net.o utils/net_ads.o utils/net_help.o \ @@ -848,6 +850,7 @@ NET_OBJ = $(NET_OBJ1) $(PARAM_WITHOUT_REG_OBJ) $(SECRETS_OBJ) $(LIBSMB_OBJ) \ $(AFS_OBJ) $(AFS_SETTOKEN_OBJ) $(READLINE_OBJ) \ $(LDB_OBJ) $(LIBGPO_OBJ) @BUILD_INIPARSER@ $(DISPLAY_SEC_OBJ) \ $(REG_SMBCONF_OBJ) @LIBNETAPI_STATIC@ $(LIBNET_OBJ) \ + $(LIBSMBCONF_OBJ) \ $(WBCOMMON_OBJ) @LIBWBCLIENT_STATIC@ \ $(PRIVILEGES_BASIC_OBJ) diff --git a/source3/include/includes.h b/source3/include/includes.h index 36c71d7533..c56c3cfd18 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -726,6 +726,8 @@ typedef char fstring[FSTRING_LEN]; #include "async_req.h" #include "async_smb.h" +#include "lib/smbconf/smbconf.h" + /* used in net.c */ struct functable { const char *funcname; diff --git a/source3/libnet/libnet_conf.c b/source3/lib/smbconf/smbconf.c index 688097bc5e..688097bc5e 100644 --- a/source3/libnet/libnet_conf.c +++ b/source3/lib/smbconf/smbconf.c diff --git a/source3/lib/smbconf/smbconf.h b/source3/lib/smbconf/smbconf.h new file mode 100644 index 0000000000..0b04bdd4ec --- /dev/null +++ b/source3/lib/smbconf/smbconf.h @@ -0,0 +1,75 @@ +/* + * Unix SMB/CIFS implementation. + * libsmbconf - Samba configuration library + * Copyright (C) Michael Adam 2008 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __LIBSMBCONF_H__ +#define __LIBSMBCONF_H__ + +struct libnet_conf_ctx { + NT_USER_TOKEN *token; +}; + +/* + * WARNING: + * Of this API, at least the open function is still subject to change. + * (Backends and possibly remote support being added ...) + */ + +WERROR libnet_conf_open(TALLOC_CTX *mem_ctx, struct libnet_conf_ctx **conf_ctx); +void libnet_conf_close(struct libnet_conf_ctx *ctx); +uint64_t libnet_conf_get_seqnum(struct libnet_conf_ctx *ctx, + const char *service, const char *param); +WERROR libnet_conf_drop(struct libnet_conf_ctx *ctx); +WERROR libnet_conf_get_config(TALLOC_CTX *mem_ctx, + struct libnet_conf_ctx *ctx, uint32_t *num_shares, + char ***share_names, uint32_t **num_params, + char ****param_names, char ****param_values); +WERROR libnet_conf_get_share_names(TALLOC_CTX *mem_ctx, + struct libnet_conf_ctx *ctx, + uint32_t *num_shares, + char ***share_names); +bool libnet_conf_share_exists(struct libnet_conf_ctx *ctx, + const char *servicename); +WERROR libnet_conf_create_share(struct libnet_conf_ctx *ctx, + const char *servicename); +WERROR libnet_conf_get_share(TALLOC_CTX *mem_ctx, struct libnet_conf_ctx *ctx, + const char *servicename, uint32_t *num_params, + char ***param_names, char ***param_values); +WERROR libnet_conf_delete_share(struct libnet_conf_ctx *ctx, + const char *servicename); +WERROR libnet_conf_set_parameter(struct libnet_conf_ctx *ctx, + const char *service, + const char *param, + const char *valstr); +WERROR libnet_conf_set_global_parameter(struct libnet_conf_ctx *ctx, + const char *param, const char *val); +WERROR libnet_conf_get_parameter(TALLOC_CTX *mem_ctx, + struct libnet_conf_ctx *ctx, + const char *service, + const char *param, + char **valstr); +WERROR libnet_conf_get_global_parameter(TALLOC_CTX *mem_ctx, + struct libnet_conf_ctx *ctx, + const char *param, + char **valstr); +WERROR libnet_conf_delete_parameter(struct libnet_conf_ctx *ctx, + const char *service, const char *param); +WERROR libnet_conf_delete_global_parameter(struct libnet_conf_ctx *ctx, + const char *param); + +#endif /* _LIBSMBCONF_H_ */ diff --git a/source3/libnet/libnet.h b/source3/libnet/libnet.h index 97e720f617..6768b948d6 100644 --- a/source3/libnet/libnet.h +++ b/source3/libnet/libnet.h @@ -21,7 +21,6 @@ #define __LIBNET_H__ #include "librpc/gen_ndr/libnet_join.h" -#include "libnet/libnet_conf.h" #include "libnet/libnet_proto.h" #endif diff --git a/source3/libnet/libnet_conf.h b/source3/libnet/libnet_conf.h deleted file mode 100644 index b518c0e3b0..0000000000 --- a/source3/libnet/libnet_conf.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Unix SMB/CIFS implementation. - * libnet smbconf registry support - * Copyright (C) Michael Adam 2008 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef __LIBNET_CONF_H__ -#define __LIBNET_CONF_H__ - -struct libnet_conf_ctx { - NT_USER_TOKEN *token; -}; - -#endif |