python: Compile security module, handle uint.
authorJelmer Vernooij <jelmer@samba.org>
Mon, 14 Jan 2008 17:59:11 +0000 (18:59 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Mon, 14 Jan 2008 18:53:08 +0000 (19:53 +0100)
source/librpc/config.mk
source/pidl/lib/Parse/Pidl/Samba4/Python.pm
source/pidl/lib/Parse/Pidl/Typelist.pm
source/scripting/python/modules.c

index 31013289dd2aa31a4df2323bf49133700c821a59..cda57bedcf050ea577cf13711b45cc6941019adc 100644 (file)
@@ -628,3 +628,6 @@ PRIVATE_DEPENDENCIES = dcerpc_samr
 [PYTHON::python_lsa]
 OBJ_FILES = gen_ndr/py_lsa.o
 PRIVATE_DEPENDENCIES = RPC_NDR_LSA
+
+[PYTHON::python_security]
+OBJ_FILES = gen_ndr/py_security.o
index 8ff909a455570cda61769ab1e4acbcefa9bf6b06..31b06d16b899d6b50ac9a395f52bfe5ede26af9c 100644 (file)
@@ -612,7 +612,7 @@ sub ConvertObjectFromPythonData($$$$$$)
 
        if ($actual_ctype->{TYPE} eq "ENUM" or $actual_ctype->{TYPE} eq "BITMAP" or 
                $actual_ctype->{TYPE} eq "SCALAR" and (
-               expandAlias($actual_ctype->{NAME}) =~ /^(u?int[0-9]+|hyper|NTTIME|time_t|NTTIME_hyper|NTTIME_1sec|dlong|udlong|udlongr)$/)) {
+               expandAlias($actual_ctype->{NAME}) =~ /^(u?int[0-9]*|hyper|NTTIME|time_t|NTTIME_hyper|NTTIME_1sec|dlong|udlong|udlongr)$/)) {
                $self->pidl("PY_CHECK_TYPE(PyInt, $cvar, $fail);");
                $self->pidl("$target = PyInt_AsLong($cvar);");
                return;
@@ -748,7 +748,7 @@ sub ConvertScalarToPython($$$)
 
        $ctypename = expandAlias($ctypename);
 
-       if ($ctypename =~ /^(int|long|char|u?int[0-9]+|hyper|dlong|udlong|udlongr|time_t|NTTIME_hyper|NTTIME|NTTIME_1sec)$/) {
+       if ($ctypename =~ /^(char|u?int[0-9]*|hyper|dlong|udlong|udlongr|time_t|NTTIME_hyper|NTTIME|NTTIME_1sec)$/) {
                return "PyInt_FromLong($cvar)";
        }
 
@@ -938,7 +938,7 @@ sub Parse($$$$$)
                } elsif ($cvar =~ /^".*"$/) {
                        $py_obj = "PyString_FromString($cvar)";
                } else {
-                       $py_obj = $self->ConvertObjectToPythonData("NULL", $ctype, $cvar);
+                       $py_obj = $self->ConvertObjectToPythonData("NULL", expandAlias($ctype), $cvar);
                }
 
                $self->pidl("PyModule_AddObject(m, \"$name\", $py_obj);");
index 9e6c683f82638f507fe62b93769db6d30789bdb6..8ba1ae47afbb3ed6feddc0b7ba2c571bf266cf4e 100644 (file)
@@ -59,6 +59,7 @@ my %aliases = (
        "boolean8" => "uint8",
        "boolean32" => "uint32",
        "DWORD" => "uint32",
+       "uint" => "uint32",
        "int" => "int32",
        "WORD" => "uint16",
        "char" => "uint8",
index 8c5115efca052b2428959ac95922bda3acafac21..1728f166bdcbe69515b7c7084dd7584598e57de5 100644 (file)
@@ -42,6 +42,8 @@ static void initdcerpc_misc(void) {}
 extern void initmgmt(void);
 extern void initatsvc(void);
 extern void initsamr(void);
+extern void initsecurity(void);
+extern void initlsa(void);
 
 static struct _inittab py_modules[] = { STATIC_LIBPYTHON_MODULES };