Build fixes for libnetapi.
authorGünther Deschner <gd@samba.org>
Wed, 12 Dec 2007 17:14:54 +0000 (18:14 +0100)
committerGünther Deschner <gd@samba.org>
Fri, 21 Dec 2007 14:29:10 +0000 (15:29 +0100)
Guenther
(This used to be commit 07d33557b95106ac57fdef8c767ab86192930a6d)

source3/Makefile.in
source3/exports/libnetapi.syms [new file with mode: 0644]
source3/lib/netapi/netapi.c [new file with mode: 0644]
source3/lib/netapi/netapi.h [new file with mode: 0644]

index 765c705d8616199639f7895f88cc9e1e7094c71d..9cd035ae7183e6b0bb4392bb540e1001dacccda4 100644 (file)
@@ -705,7 +705,14 @@ REG_API_OBJ = registry/reg_api.o \
              $(UTIL_REG_API_OBJ) \
              $(UTIL_REG_SMBCONF_OBJ)
 
              $(UTIL_REG_API_OBJ) \
              $(UTIL_REG_SMBCONF_OBJ)
 
-NETAPI_OBJ = lib/netapi/joindomain.o
+
+LIBNETAPI_OBJ1 = lib/netapi/netapi.o lib/netapi/joindomain.o
+LIBNETAPI_OBJ  = $(LIBNETAPI_OBJ1) $(LIBNET_OBJ) \
+                $(REG_API_OBJ) \
+                $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
+                $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
+                $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) $(RPC_PARSE_OBJ) \
+                $(SECRETS_OBJ) $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ) $(LDB_OBJ)
 
 LIBNET_OBJ = libnet/libnet_conf.o libnet/libnet_join.o
 
 
 LIBNET_OBJ = libnet/libnet_conf.o libnet/libnet_join.o
 
@@ -728,7 +735,7 @@ NET_OBJ = $(NET_OBJ1) $(PARAM_WITHOUT_REG_OBJ) $(SECRETS_OBJ) $(LIBSMB_OBJ) \
          $(SMBLDAP_OBJ) $(DCUTIL_OBJ) $(SERVER_MUTEX_OBJ) \
          $(AFS_OBJ) $(AFS_SETTOKEN_OBJ) $(REGFIO_OBJ) $(READLINE_OBJ) \
          $(LDB_OBJ) $(LIBGPO_OBJ) @BUILD_INIPARSER@ $(DISPLAY_SEC_OBJ) \
          $(SMBLDAP_OBJ) $(DCUTIL_OBJ) $(SERVER_MUTEX_OBJ) \
          $(AFS_OBJ) $(AFS_SETTOKEN_OBJ) $(REGFIO_OBJ) $(READLINE_OBJ) \
          $(LDB_OBJ) $(LIBGPO_OBJ) @BUILD_INIPARSER@ $(DISPLAY_SEC_OBJ) \
-         $(REG_API_OBJ) $(DISPLAY_DSDCINFO_OBJ) $(NETAPI_OBJ) $(LIBNET_OBJ)
+         $(REG_API_OBJ) $(DISPLAY_DSDCINFO_OBJ) $(LIBNETAPI_OBJ1) $(LIBNET_OBJ)
 
 CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
          $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ)
 
 CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
          $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ)
@@ -1355,15 +1362,15 @@ bin/libaddns.a: $(BINARY_PREREQS) $(LIBADDNS_OBJ)
        @echo Linking non-shared library $@
        @-$(AR) -rc $@ $(LIBADDNS_OBJ)
 
        @echo Linking non-shared library $@
        @-$(AR) -rc $@ $(LIBADDNS_OBJ)
 
-bin/netapi.@SHLIBEXT@: $(BINARY_PREREQS) $(NETAPI_OBJ)
+bin/libnetapi.@SHLIBEXT@: $(BINARY_PREREQS) $(LIBNETAPI_OBJ)
        @echo Linking shared library $@
        @echo Linking shared library $@
-       @$(SHLD_DSO) $(NETAPI_OBJ) $(LIBS) \
+       @$(SHLD_DSO) $(LIBNETAPI_OBJ) $(LIBS) \
                $(LDAP_LIBS) $(KRB5LIBS) $(NSCD_LIBS) \
                @SONAMEFLAG@`basename $@`.$(SONAME_VER)
 
                $(LDAP_LIBS) $(KRB5LIBS) $(NSCD_LIBS) \
                @SONAMEFLAG@`basename $@`.$(SONAME_VER)
 
-bin/netapi.a: $(BINARY_PREREQS) $(NETAPI_OBJ)
+bin/libnetapi.a: $(BINARY_PREREQS) $(LIBNETAPI_OBJ)
        @echo Linking non-shared library $@
        @echo Linking non-shared library $@
-       @-$(AR) -rc $@ $(NETAPI_OBJ)
+       @-$(AR) -rc $@ $(LIBNETAPI_OBJ)
 
 bin/libsmbclient.@SHLIBEXT@: $(BINARY_PREREQS) $(LIBSMBCLIENT_OBJ)
        @echo Linking shared library $@
 
 bin/libsmbclient.@SHLIBEXT@: $(BINARY_PREREQS) $(LIBSMBCLIENT_OBJ)
        @echo Linking shared library $@
diff --git a/source3/exports/libnetapi.syms b/source3/exports/libnetapi.syms
new file mode 100644 (file)
index 0000000..eb34bfc
--- /dev/null
@@ -0,0 +1,3 @@
+{
+       global: *;
+};
diff --git a/source3/lib/netapi/netapi.c b/source3/lib/netapi/netapi.c
new file mode 100644 (file)
index 0000000..3da492b
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ *  Unix SMB/CIFS implementation.
+ *  NetApi Support
+ *  Copyright (C) Guenther Deschner 2007
+ *
+ *  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/>.
+ */
+
+#include "includes.h"
+#include "lib/netapi/netapi.h"
+
+extern bool AllowDebugChange;
+
+static bool libnetapi_initialized = false;
+
+WERROR libnetapi_init(struct libnetapi_ctx **context)
+{
+       struct libnetapi_ctx *ctx = NULL;
+       TALLOC_CTX *frame = NULL;
+
+       if (libnetapi_initialized) {
+               return WERR_OK;
+       }
+
+       frame = talloc_stackframe();
+
+       ctx = talloc_zero(frame, struct libnetapi_ctx);
+       if (!ctx) {
+               TALLOC_FREE(frame);
+               return WERR_NOMEM;
+       }
+
+       DEBUGLEVEL = 0;
+       DEBUGLEVEL_CLASS[DBGC_ALL] = 0;
+       dbf = x_stderr;
+       x_setbuf(x_stderr, NULL);
+       AllowDebugChange = false;
+
+       load_case_tables();
+
+       setup_logging("libnetapi", true);
+
+       if (!lp_load(get_dyn_CONFIGFILE(), true, false, false, false)) {
+               TALLOC_FREE(frame);
+               return WERR_GENERAL_FAILURE;
+       }
+
+       init_names();
+       load_interfaces();
+       reopen_logs();
+
+       BlockSignals(True, SIGPIPE);
+
+       libnetapi_initialized = true;
+
+       *context = ctx;
+
+       return WERR_OK;
+}
+
+WERROR libnetapi_free(struct libnetapi_ctx *ctx)
+{
+       TALLOC_FREE(ctx);
+       return WERR_OK;
+}
diff --git a/source3/lib/netapi/netapi.h b/source3/lib/netapi/netapi.h
new file mode 100644 (file)
index 0000000..ad9fbe4
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ *  Unix SMB/CIFS implementation.
+ *  NetApi Support
+ *  Copyright (C) Guenther Deschner 2007
+ *
+ *  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/>.
+ */
+
+struct libnetapi_ctx {
+       int debuglevel;
+};
+
+WERROR libnetapi_init(struct libnetapi_ctx **ctx);
+
+#include "joindomain.h"