diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2009-07-30 20:28:29 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2009-07-30 20:28:29 +0200 |
commit | 8eff9f9a3167eb0c2a4c00edf5a4cdbbc06c4dfd (patch) | |
tree | 9900fed04e613bad700608b9d12b681ad447545b | |
parent | 6768cfe624fffef13109989e9cc79ccb4df13d19 (diff) | |
download | samba-8eff9f9a3167eb0c2a4c00edf5a4cdbbc06c4dfd.tar.gz samba-8eff9f9a3167eb0c2a4c00edf5a4cdbbc06c4dfd.tar.bz2 samba-8eff9f9a3167eb0c2a4c00edf5a4cdbbc06c4dfd.zip |
python: Cope with the dom_sid2 alias in pidl's python generating code.
This fixes some problems in the samr Python bindings that pidl was
(correctly) warning about.
-rw-r--r-- | pidl/lib/Parse/Pidl/Samba4/Python.pm | 8 | ||||
-rwxr-xr-x | source4/scripting/python/examples/samr.py | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm index 462f8333e1..78a4ebdb5f 100644 --- a/pidl/lib/Parse/Pidl/Samba4/Python.pm +++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm @@ -766,6 +766,11 @@ sub register_module_import($$) sub use_type_variable($$) { my ($self, $orig_ctype) = @_; + # FIXME: Have a global lookup table for types that look different on the + # wire than they are named in C? + if ($orig_ctype->{NAME} eq "dom_sid2") { + $orig_ctype->{NAME} = "dom_sid"; + } my $ctype = resolveType($orig_ctype); unless (defined($ctype->{BASEFILE})) { return undef; @@ -840,8 +845,7 @@ sub ConvertObjectFromPythonData($$$$$$;$) my $ctype_name = $self->use_type_variable($ctype); unless (defined ($ctype_name)) { error($location, "Unable to determine origin of type `" . mapTypeName($ctype) . "'"); - $self->assign($target, "NULL"); - # FIXME: + $self->pidl("PyErr_SetString(PyExc_TypeError, \"Can not convert C Type " . mapType($ctype) . " to Python\");"); return; } $self->pidl("PY_CHECK_TYPE($ctype_name, $cvar, $fail);"); diff --git a/source4/scripting/python/examples/samr.py b/source4/scripting/python/examples/samr.py index 17ac354320..c0e3167a97 100755 --- a/source4/scripting/python/examples/samr.py +++ b/source4/scripting/python/examples/samr.py @@ -67,7 +67,7 @@ def test_EnumDomainUsers(samr, dom_handle): users = toArray(samr.EnumDomainUsers(dom_handle, 0, 0, -1)) print "Found %d users" % len(users) for idx, user in users: - print "\t%s\t(%d)" % (user, idx) + print "\t%s\t(%d)" % (user.string, idx) def test_EnumDomainGroups(samr, dom_handle): """test the samr_EnumDomainGroups interface""" @@ -75,7 +75,7 @@ def test_EnumDomainGroups(samr, dom_handle): groups = toArray(samr.EnumDomainGroups(dom_handle, 0, 0)) print "Found %d groups" % len(groups) for idx, group in groups: - print "\t%s\t(%d)" % (group, idx) + print "\t%s\t(%d)" % (group.string, idx) def test_domain_ops(samr, dom_handle): """test domain specific ops""" |