summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-12-21 18:46:59 +0100
committerJelmer Vernooij <jelmer@samba.org>2008-12-21 18:46:59 +0100
commit38a4749d2cf9266164527e2b3c14bc7e47b72326 (patch)
tree292e84429e0513f739c2ee95b17d512d99ee3363
parentf2b4aa82e0febd6528eb8231ac14d845b8aa80d0 (diff)
downloadsamba-38a4749d2cf9266164527e2b3c14bc7e47b72326.tar.gz
samba-38a4749d2cf9266164527e2b3c14bc7e47b72326.tar.bz2
samba-38a4749d2cf9266164527e2b3c14bc7e47b72326.zip
Allow providing extra module-level Python functions.
-rw-r--r--pidl/lib/Parse/Pidl/Samba4/Python.pm6
-rw-r--r--source4/librpc/ndr/py_security.c7
2 files changed, 12 insertions, 1 deletions
diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm
index 120a35a1cf..69365416a5 100644
--- a/pidl/lib/Parse/Pidl/Samba4/Python.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm
@@ -1183,6 +1183,12 @@ sub Parse($$$$$)
my ($fn_name, $pyfn_name, $flags, $doc) = @$_;
$self->pidl("{ \"$fn_name\", (PyCFunction)$pyfn_name, $flags, $doc },");
}
+
+ $self->deindent;
+ $self->pidl("#ifdef ".uc("py_mod_$basename\_extra_methods"));
+ $self->pidl("\t" .uc("py_mod_$basename\_extra_methods"));
+ $self->pidl("#endif");
+ $self->indent;
$self->pidl("{ NULL, NULL, 0, NULL }");
$self->deindent;
diff --git a/source4/librpc/ndr/py_security.c b/source4/librpc/ndr/py_security.c
index a7cb0515cf..d79ad58f7d 100644
--- a/source4/librpc/ndr/py_security.c
+++ b/source4/librpc/ndr/py_security.c
@@ -301,7 +301,12 @@ static PyObject *py_random_sid(PyObject *self)
sid = dom_sid_parse_talloc(NULL, str);
talloc_free(str);
- ret = py_talloc_import(&PyDomSidType, sid);
+ ret = py_talloc_import(&dom_sid_Type, sid);
talloc_free(sid);
return ret;
}
+
+#define PY_MOD_SECURITY_EXTRA_METHODS \
+ { "random_sid", (PyCFunction)py_random_sid, METH_NOARGS, NULL }, \
+ { "privilege_id", (PyCFunction)py_privilege_id, METH_VARARGS, NULL }, \
+ { "privilege_name", (PyCFunction)py_privilege_name, METH_VARARGS, NULL },