From f47044aacc8eb6df856524744ab87bee997bae6d Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 3 Jan 2008 21:45:18 -0600 Subject: [PATCH] r26658: pidl: Register Python modules. --- source/librpc/config.mk | 4 ++++ source/pidl/lib/Parse/Pidl/Samba4/Python.pm | 12 +++++++++++- source/scripting/python/modules.c | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/source/librpc/config.mk b/source/librpc/config.mk index 2b2f39b650a..debfbb68692 100644 --- a/source/librpc/config.mk +++ b/source/librpc/config.mk @@ -594,3 +594,7 @@ PRIVATE_DEPENDENCIES = dcerpc NDR_IRPC EJSRPC [PYTHON::swig_dcerpc] SWIG_FILE = rpc/dcerpc.i PUBLIC_DEPENDENCIES = LIBCLI_SMB NDR_MISC LIBSAMBA-UTIL LIBSAMBA-CONFIG dcerpc_samr RPC_NDR_LSA DYNCONFIG + +[PYTHON::python_echo] +OBJ_FILES = gen_ndr/py_echo.o +PRIVATE_DEPENDENCIES = NDR_ECHO diff --git a/source/pidl/lib/Parse/Pidl/Samba4/Python.pm b/source/pidl/lib/Parse/Pidl/Samba4/Python.pm index 4110a94dfda..68e35a85324 100644 --- a/source/pidl/lib/Parse/Pidl/Samba4/Python.pm +++ b/source/pidl/lib/Parse/Pidl/Samba4/Python.pm @@ -54,7 +54,7 @@ sub Parse($$$$) my($self,$basename,$ndr,$hdr) = @_; my $py_hdr = $hdr; - $py_hdr =~ s/^/py_/g; + $py_hdr =~ s/ndr_([^\/]+)$/py_$1/g; $self->pidl_hdr("/* header auto-generated by pidl */\n\n"); @@ -66,10 +66,20 @@ sub Parse($$$$) #include \"$py_hdr\" "); + + $self->pidl("static PyMethodDef $basename\_methods[] = {"); + $self->indent; + $self->pidl("{ NULL, NULL, 0, NULL }"); + $self->deindent; + $self->pidl("};"); + + $self->pidl(""); $self->pidl("void init$basename(void)"); $self->pidl("{"); $self->indent; + $self->pidl("PyObject *m;"); + $self->pidl("m = Py_InitModule((char *)\"$basename\", $basename\_methods);"); # FIXME $self->deindent; $self->pidl("}"); diff --git a/source/scripting/python/modules.c b/source/scripting/python/modules.c index 6094cb49f42..55df51d881e 100644 --- a/source/scripting/python/modules.c +++ b/source/scripting/python/modules.c @@ -34,6 +34,7 @@ extern void init_dcerpc(void); extern void init_events(void); extern void inituuid(void); extern void init_net(void); +extern void initecho(void); static struct _inittab py_modules[] = { STATIC_LIBPYTHON_MODULES }; -- 2.34.1