summaryrefslogtreecommitdiff
path: root/source4/scripting
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-12-21 03:08:14 +0100
committerJelmer Vernooij <jelmer@samba.org>2008-12-21 03:08:14 +0100
commit2e7a6cb6bf32a49682ccadc07244d3a6ae4058d3 (patch)
tree1025e2107efd63e6468b3c81c291aaf7d5c11251 /source4/scripting
parentbd41b4579c26f40f55811b332874ddeca3478e24 (diff)
downloadsamba-2e7a6cb6bf32a49682ccadc07244d3a6ae4058d3.tar.gz
py: Fix initialisation of subtypes, fix segfaults.
Diffstat (limited to 'source4/scripting')
-rw-r--r--source4/scripting/python/config.mk10
-rw-r--r--source4/scripting/python/pyglue.c (renamed from source4/scripting/python/pymisc.c)8
-rw-r--r--source4/scripting/python/samba/__init__.py16
-rw-r--r--source4/scripting/python/samba/idmap.py4
-rw-r--r--source4/scripting/python/samba/provision.py12
-rw-r--r--source4/scripting/python/samba/samdb.py14
6 files changed, 34 insertions, 30 deletions
diff --git a/source4/scripting/python/config.mk b/source4/scripting/python/config.mk
index 8eb0aab528e..1f57294c593 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 2ba682a6d22..381792b7351 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 e191227108a..e9fc26af20b 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 755ec52c7b4..f8eeb189256 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 568092926f0..0819a0c8bf1 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 4a64c2f76d3..92b0bd7b89f 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