mirror of
https://github.com/samba-team/samba.git
synced 2025-11-09 20:23:51 +03:00
r13985: 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 ?
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
d3a21b58d4
commit
af92996e30
@@ -7,6 +7,13 @@ REQUIRED_SUBSYSTEMS = LIBTDB
|
||||
# End LIBRARY swig_tdb
|
||||
#######################
|
||||
|
||||
#######################
|
||||
# Start LIBRARY swig_ldb
|
||||
[LIBRARY::swig_ldb]
|
||||
REQUIRED_SUBSYSTEMS = ldb
|
||||
# End LIBRARY swig_ldb
|
||||
#######################
|
||||
|
||||
#######################
|
||||
# Start LIBRARY swig_dcerpc
|
||||
[LIBRARY::swig_dcerpc]
|
||||
@@ -15,7 +22,7 @@ REQUIRED_SUBSYSTEMS = LIBCLI NDR_MISC LIBBASIC CONFIG RPC_NDR_SAMR RPC_NDR_LSA
|
||||
#######################
|
||||
|
||||
# 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 @@ scripting/swig/_tdb.so: scripting/swig/tdb_wrap.o $(LIBRARY_swig_tdb_DEPEND_LIST
|
||||
$(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)
|
||||
|
||||
@@ -69,8 +69,7 @@ void set_werror_exception(int status)
|
||||
|
||||
%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);
|
||||
|
||||
88
source/scripting/swig/ldb.i
Normal file
88
source/scripting/swig/ldb.i
Normal file
@@ -0,0 +1,88 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
|
||||
Swig interface to ldb.
|
||||
|
||||
Copyright (C) 2005 Tim Potter <tpot@samba.org>
|
||||
Copyright (C) 2006 Simo Sorce <idra@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);
|
||||
Reference in New Issue
Block a user