svn commit: samba r13985 - in branches/SAMBA_4_0/source/scripting: . swig

idra at samba.org idra at samba.org
Tue Mar 7 20:42:48 GMT 2006


Author: idra
Date: 2006-03-07 20:42:47 +0000 (Tue, 07 Mar 2006)
New Revision: 13985

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=13985

Log:

Slowly start swig_ldb

dcerpc still need fixing, the produced shared library misses some symbols.
Jelmer, can you look at it while you are playing with the build system ?



Added:
   branches/SAMBA_4_0/source/scripting/swig/ldb.i
Modified:
   branches/SAMBA_4_0/source/scripting/config.mk
   branches/SAMBA_4_0/source/scripting/swig/dcerpc.i


Changeset:
Modified: branches/SAMBA_4_0/source/scripting/config.mk
===================================================================
--- branches/SAMBA_4_0/source/scripting/config.mk	2006-03-07 20:32:08 UTC (rev 13984)
+++ branches/SAMBA_4_0/source/scripting/config.mk	2006-03-07 20:42:47 UTC (rev 13985)
@@ -8,6 +8,13 @@
 #######################
 
 #######################
+# Start LIBRARY swig_ldb
+[LIBRARY::swig_ldb]
+REQUIRED_SUBSYSTEMS = ldb
+# End LIBRARY swig_ldb
+#######################
+
+#######################
 # Start LIBRARY swig_dcerpc
 [LIBRARY::swig_dcerpc]
 REQUIRED_SUBSYSTEMS = LIBCLI NDR_MISC LIBBASIC CONFIG RPC_NDR_SAMR RPC_NDR_LSA
@@ -15,7 +22,7 @@
 #######################
 
 # Swig extensions
-swig: scripting/swig/_tdb.so scripting/swig/_dcerpc.so
+swig: scripting/swig/_tdb.so scripting/swig/_ldb.so scripting/swig/_dcerpc.so
 
 scripting/swig/tdb_wrap.c: scripting/swig/tdb.i
 	swig -python scripting/swig/tdb.i
@@ -24,6 +31,13 @@
 	$(SHLD) $(SHLD_FLAGS) -o scripting/swig/_tdb.so scripting/swig/tdb_wrap.o \
 		$(LIBRARY_swig_tdb_LINK_LIST) $(LIBRARY_swig_tdb_LINK_FLAGS)
 
+scripting/swig/ldb_wrap.c: scripting/swig/ldb.i
+	swig -python scripting/swig/ldb.i
+
+scripting/swig/_ldb.so: scripting/swig/ldb_wrap.o $(LIBRARY_swig_ldb_DEPEND_LIST)
+	$(SHLD) $(SHLD_FLAGS) -o scripting/swig/_ldb.so scripting/swig/ldb_wrap.o \
+		$(LIBRARY_swig_ldb_LINK_LIST) $(LIBRARY_swig_ldb_LINK_FLAGS)
+
 SWIG_INCLUDES = librpc/gen_ndr/samr.i librpc/gen_ndr/lsa.i librpc/gen_ndr/spoolss.i
 
 scripting/swig/dcerpc_wrap.c: scripting/swig/dcerpc.i scripting/swig/samba.i scripting/swig/status_codes.i $(SWIG_INCLUDES)

Modified: branches/SAMBA_4_0/source/scripting/swig/dcerpc.i
===================================================================
--- branches/SAMBA_4_0/source/scripting/swig/dcerpc.i	2006-03-07 20:32:08 UTC (rev 13984)
+++ branches/SAMBA_4_0/source/scripting/swig/dcerpc.i	2006-03-07 20:42:47 UTC (rev 13985)
@@ -69,8 +69,7 @@
 
 %init  %{
 	setup_logging("python", DEBUG_STDOUT);	
-	lp_load(dyn_CONFIGFILE, True, False, False);
-	load_interfaces();
+	lp_load();
 	ntstatus_exception = PyErr_NewException("_dcerpc.NTSTATUS", NULL, NULL);
 	werror_exception = PyErr_NewException("_dcerpc.WERROR", NULL, NULL);
 	PyDict_SetItemString(d, "NTSTATUS", ntstatus_exception);

Added: branches/SAMBA_4_0/source/scripting/swig/ldb.i
===================================================================
--- branches/SAMBA_4_0/source/scripting/swig/ldb.i	2006-03-07 20:32:08 UTC (rev 13984)
+++ branches/SAMBA_4_0/source/scripting/swig/ldb.i	2006-03-07 20:42:47 UTC (rev 13985)
@@ -0,0 +1,88 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   Swig interface to ldb.
+
+   Copyright (C) 2005 Tim Potter <tpot at samba.org>
+   Copyright (C) 2006 Simo Sorce <idra at samba.org>
+
+     ** NOTE! The following LGPL license applies to the ldb
+     ** library. This does NOT imply that all of Samba is released
+     ** under the LGPL
+   
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2 of the License, or (at your option) any later version.
+
+   This library 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+%module ldb
+
+%{
+
+/* This symbol is used in both includes.h and Python.h which causes an
+   annoying compiler warning. */
+
+#ifdef HAVE_FSTAT
+#undef HAVE_FSTAT
+#endif
+
+#if (__GNUC__ >= 3)
+/** Use gcc attribute to check printf fns.  a1 is the 1-based index of
+ * the parameter containing the format, and a2 the index of the first
+ * argument. Note that some gcc 2.x versions don't handle this
+ * properly **/
+#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (__printf__, a1, a2)))
+#else
+#define PRINTF_ATTRIBUTE(a1, a2)
+#endif
+
+/* Include ldb headers */
+
+/* Treat a uint8_t as an unsigned character */
+typedef unsigned char uint8_t;
+typedef unsigned long long uint64_t;
+typedef long long int64_t;
+
+#include "lib/ldb/include/ldb.h"
+
+%}
+
+/* The ldb functions will crash if a NULL tdb is passed */
+
+%include exception.i
+
+%typemap(check) struct ldb_context* {
+	if ($1 == NULL)
+		SWIG_exception(SWIG_ValueError, 
+			"ldb context must be non-NULL");
+}
+
+/* Throw an IOError exception if tdb_open() or tdb_open_ex() returns NULL */
+
+%exception {
+	$action
+	if (result == NULL) {
+		PyErr_SetFromErrno(PyExc_IOError);
+		SWIG_fail;
+	}
+}
+
+
+%rename ldb_init init;
+struct ldb_context *ldb_init(void *mem_ctx);
+
+%rename ldb_connect connect;
+int ldb_connect(struct ldb_context *ldb, const char *url, unsigned int flags, const char *options[]);
+
+%rename ldb_request request;
+int ldb_request(struct ldb_context *ldb, struct ldb_request *request);



More information about the samba-cvs mailing list