diff options
| author | Jelmer Vernooij <jelmer@samba.org> | 2008-12-21 03:08:14 +0100 | 
|---|---|---|
| committer | Jelmer Vernooij <jelmer@samba.org> | 2008-12-21 03:08:14 +0100 | 
| commit | 2e7a6cb6bf32a49682ccadc07244d3a6ae4058d3 (patch) | |
| tree | 1025e2107efd63e6468b3c81c291aaf7d5c11251 /source4/scripting/python | |
| parent | bd41b4579c26f40f55811b332874ddeca3478e24 (diff) | |
| download | samba-2e7a6cb6bf32a49682ccadc07244d3a6ae4058d3.tar.gz samba-2e7a6cb6bf32a49682ccadc07244d3a6ae4058d3.tar.bz2 samba-2e7a6cb6bf32a49682ccadc07244d3a6ae4058d3.zip | |
py: Fix initialisation of subtypes, fix segfaults.
Diffstat (limited to 'source4/scripting/python')
| -rw-r--r-- | source4/scripting/python/config.mk | 10 | ||||
| -rw-r--r-- | source4/scripting/python/pyglue.c (renamed from source4/scripting/python/pymisc.c) | 8 | ||||
| -rw-r--r-- | source4/scripting/python/samba/__init__.py | 16 | ||||
| -rw-r--r-- | source4/scripting/python/samba/idmap.py | 4 | ||||
| -rw-r--r-- | source4/scripting/python/samba/provision.py | 12 | ||||
| -rw-r--r-- | source4/scripting/python/samba/samdb.py | 14 | 
6 files changed, 34 insertions, 30 deletions
| diff --git a/source4/scripting/python/config.mk b/source4/scripting/python/config.mk index 8eb0aab528..1f57294c59 100644 --- a/source4/scripting/python/config.mk +++ b/source4/scripting/python/config.mk @@ -15,13 +15,13 @@ PRIVATE_DEPENDENCIES = LIBNDR  python_uuid_OBJ_FILES = $(pyscriptsrcdir)/uuidmodule.o -[PYTHON::python_misc] -LIBRARY_REALNAME = samba/misc.$(SHLIBEXT) -PRIVATE_DEPENDENCIES = LIBNDR LIBLDB SAMDB CREDENTIALS swig_ldb +[PYTHON::python_glue] +LIBRARY_REALNAME = samba/glue.$(SHLIBEXT) +PRIVATE_DEPENDENCIES = LIBNDR LIBLDB SAMDB CREDENTIALS swig_ldb python_dcerpc_misc python_dcerpc_security -python_misc_OBJ_FILES = $(pyscriptsrcdir)/pymisc.o +python_glue_OBJ_FILES = $(pyscriptsrcdir)/pyglue.o -$(python_misc_OBJ_FILES): CFLAGS+=$(CFLAG_NO_CAST_QUAL) -I$(ldbsrcdir) +$(python_glue_OBJ_FILES): CFLAGS+=$(CFLAG_NO_CAST_QUAL) -I$(ldbsrcdir)  _PY_FILES = $(shell find $(pyscriptsrcdir)/samba ../lib/subunit/python -name "*.py") diff --git a/source4/scripting/python/pymisc.c b/source4/scripting/python/pyglue.c index 2ba682a6d2..381792b735 100644 --- a/source4/scripting/python/pymisc.c +++ b/source4/scripting/python/pyglue.c @@ -37,8 +37,8 @@ extern struct cli_credentials *cli_credentials_from_py_object(PyObject *py_obj);  #define PyErr_LDB_OR_RAISE(py_ldb, ldb) \  	if (!PyLdb_Check(py_ldb)) { \ -		PyErr_SetString(PyExc_TypeError, "Ldb connection object required"); \ -		return NULL; \ +		/*PyErr_SetString(PyExc_TypeError, "Ldb connection object required"); \ +		return NULL; \ */ \  	} \  	ldb = PyLdb_AsLdbContext(py_ldb); @@ -259,11 +259,11 @@ static PyMethodDef py_misc_methods[] = {  	{ NULL }  }; -void initmisc(void) +void initglue(void)  {  	PyObject *m; -	m = Py_InitModule3("misc", py_misc_methods,  +	m = Py_InitModule3("glue", py_misc_methods,   			   "Python bindings for miscellaneous Samba functions.");  	if (m == NULL)  		return; diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py index e191227108..e9fc26af20 100644 --- a/source4/scripting/python/samba/__init__.py +++ b/source4/scripting/python/samba/__init__.py @@ -43,7 +43,7 @@ else:  import ldb  import credentials -import misc +import glue  class Ldb(ldb.Ldb):      """Simple Samba-specific LDB subclass that takes care  @@ -80,7 +80,7 @@ class Ldb(ldb.Ldb):          if session_info is not None:              self.set_session_info(session_info) -        assert misc.ldb_register_samba_handlers(self) == 0 +        glue.ldb_register_samba_handlers(self)          if lp is not None:              self.set_loadparm(lp) @@ -92,10 +92,14 @@ class Ldb(ldb.Ldb):          if url is not None:              self.connect(url) +    def set_credentials(self, credentials): +        glue.ldb_set_credentials(self, credentials) -    set_credentials = misc.ldb_set_credentials -    set_session_info = misc.ldb_set_session_info -    set_loadparm = misc.ldb_set_loadparm +    def set_session_info(self, session_info): +        glue.ldb_set_session_info(self, session_info) + +    def set_loadparm(self, lp_ctx): +        glue.ldb_set_loadparm(self, lp_ctx)      def searchone(self, attribute, basedn=None, expression=None,                     scope=ldb.SCOPE_BASE): @@ -235,4 +239,4 @@ def valid_netbios_name(name):          return False      return True -version = misc.version +version = glue.version diff --git a/source4/scripting/python/samba/idmap.py b/source4/scripting/python/samba/idmap.py index 755ec52c7b..f8eeb18925 100644 --- a/source4/scripting/python/samba/idmap.py +++ b/source4/scripting/python/samba/idmap.py @@ -23,7 +23,7 @@  __docformat__ = "restructuredText"  import samba -import misc +import glue  import ldb  class IDmapDB(samba.Ldb): @@ -50,7 +50,7 @@ class IDmapDB(samba.Ldb):              self.connect(lp.get("idmap database"))      def connect(self, url): -        super(IDmapDB, self).connect(misc.private_path(self.lp, url)) +        super(IDmapDB, self).connect(self.lp.private_path(url))      def setup_name_mapping(self, sid, type, unixid):          """Setup a mapping between a sam name and a unix name. diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py index 568092926f..0819a0c8bf 100644 --- a/source4/scripting/python/samba/provision.py +++ b/source4/scripting/python/samba/provision.py @@ -29,7 +29,7 @@ import os  import pwd  import grp  import time -import uuid, misc +import uuid, glue  import socket  import param  import registry @@ -926,13 +926,13 @@ def provision(setup_dir, message, session_info,      if policyguid is None:          policyguid = str(uuid.uuid4())      if adminpass is None: -        adminpass = misc.random_password(12) +        adminpass = glue.generate_random_str(12)      if krbtgtpass is None: -        krbtgtpass = misc.random_password(12) +        krbtgtpass = glue.generate_random_str(12)      if machinepass is None: -        machinepass  = misc.random_password(12) +        machinepass  = glue.generate_random_str(12)      if dnspass is None: -        dnspass = misc.random_password(12) +        dnspass = glue.generate_random_str(12)      root_uid = findnss_uid([root or "root"])      nobody_uid = findnss_uid([nobody or "nobody"])      users_gid = findnss_gid([users or "users"]) @@ -1172,7 +1172,7 @@ def provision_backend(setup_dir=None, message=None,          root = findnss(pwd.getpwnam, ["root"])[0]      if adminpass is None: -        adminpass = misc.random_password(12) +        adminpass = glue.generate_random_str(12)      if targetdir is not None:          if (not os.path.exists(os.path.join(targetdir, "etc"))): diff --git a/source4/scripting/python/samba/samdb.py b/source4/scripting/python/samba/samdb.py index 4a64c2f76d..92b0bd7b89 100644 --- a/source4/scripting/python/samba/samdb.py +++ b/source4/scripting/python/samba/samdb.py @@ -23,7 +23,7 @@  """Convenience functions for using the SAM."""  import samba -import misc +import glue  import ldb  from samba.idmap import IDmapDB  import pwd @@ -43,14 +43,14 @@ class SamDB(samba.Ldb):          self.lp = lp          super(SamDB, self).__init__(session_info=session_info, credentials=credentials,                                      modules_dir=modules_dir, lp=lp) -        assert misc.dsdb_set_global_schema(self) == 0 +        glue.dsdb_set_global_schema(self)          if url:              self.connect(url)          else:              self.connect(lp.get("sam database"))      def connect(self, url): -        super(SamDB, self).connect(misc.private_path(self.lp, url)) +        super(SamDB, self).connect(self.lp.private_path(url))      def add_foreign(self, domaindn, sid, desc):          """Add a foreign security principle.""" @@ -182,17 +182,17 @@ userPassword: %s          :param sid: The new domain sid to use.          """ -        misc.samdb_set_domain_sid(self, sid) +        glue.samdb_set_domain_sid(self, sid)      def attach_schema_from_ldif(self, pf, df): -        misc.dsdb_attach_schema_from_ldif_file(self, pf, df) +        glue.dsdb_attach_schema_from_ldif_file(self, pf, df)      def set_invocation_id(self, invocation_id):      	"""Set the invocation id for this SamDB handle.      	:param invocation_id: GUID of the invocation id.      	""" -    	misc.dsdb_set_ntds_invocation_id(self, invocation_id) +    	glue.dsdb_set_ntds_invocation_id(self, invocation_id)      def setexpiry(self, user, expiry_seconds, noexpiry):          """Set the password expiry for a user @@ -212,7 +212,7 @@ userPassword: %s              accountExpires = 0          else:              userAccountControl = userAccountControl & ~0x10000 -            accountExpires = misc.unix2nttime(expiry_seconds + int(time.time())) +            accountExpires = glue.unix2nttime(expiry_seconds + int(time.time()))          mod = """  dn: %s | 
