From e9c3f2ef13f62eb583bd7c5dfb6b94a0a8a0fc4f Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 4 Apr 2010 02:01:47 +0200 Subject: s4-python: Move ldb_set_utf8_casefold to pyldb-samba. --- source4/lib/ldb-samba/pyldb.c | 19 ++++++++++++++++++- source4/lib/ldb/tests/python/deletetest.py | 1 - source4/scripting/python/pyglue.c | 18 ------------------ source4/scripting/python/samba/__init__.py | 14 +++----------- 4 files changed, 21 insertions(+), 31 deletions(-) diff --git a/source4/lib/ldb-samba/pyldb.c b/source4/lib/ldb-samba/pyldb.c index 54907d9ff8..bb066ed711 100644 --- a/source4/lib/ldb-samba/pyldb.c +++ b/source4/lib/ldb-samba/pyldb.c @@ -25,6 +25,8 @@ #include "lib/ldb/pyldb.h" #include "param/pyparam.h" #include "auth/credentials/pycredentials.h" +#include "ldb_wrap.h" +#include "lib/ldb-samba/ldif_handlers.h" static PyObject *pyldb_module; staticforward PyTypeObject PySambaLdb; @@ -136,15 +138,30 @@ static PyObject *py_ldb_set_opaque_integer(PyObject *self, PyObject *args) Py_RETURN_NONE; } +static PyObject *py_ldb_set_utf8_casefold(PyObject *self, PyObject *args) +{ + struct ldb_context *ldb; + + ldb = PyLdb_AsLdbContext(self); + + ldb_set_utf8_fns(ldb, NULL, wrap_casefold); + + Py_RETURN_NONE; +} + static PyMethodDef py_samba_ldb_methods[] = { { "set_loadparm", (PyCFunction)py_ldb_set_loadparm, METH_VARARGS, "ldb_set_loadparm(ldb, session_info)\n" "Set loadparm context to use when connecting." }, - { "ldb_set_credentials", (PyCFunction)py_ldb_set_credentials, METH_VARARGS, + { "set_credentials", (PyCFunction)py_ldb_set_credentials, METH_VARARGS, "ldb_set_credentials(ldb, credentials)\n" "Set credentials to use when connecting." }, { "set_opaque_integer", (PyCFunction)py_ldb_set_opaque_integer, METH_VARARGS, NULL }, + { "set_utf8_casefold", (PyCFunction)py_ldb_set_utf8_casefold, + METH_NOARGS, + "ldb_set_utf8_casefold(ldb)\n" + "Set the right Samba casefolding function for UTF8 charset." }, { NULL }, }; diff --git a/source4/lib/ldb/tests/python/deletetest.py b/source4/lib/ldb/tests/python/deletetest.py index eff92c5f33..55f34fac14 100755 --- a/source4/lib/ldb/tests/python/deletetest.py +++ b/source4/lib/ldb/tests/python/deletetest.py @@ -1,7 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -import getopt import optparse import sys import os diff --git a/source4/scripting/python/pyglue.c b/source4/scripting/python/pyglue.c index 0aee9c3ea3..8a4d6d0723 100644 --- a/source4/scripting/python/pyglue.c +++ b/source4/scripting/python/pyglue.c @@ -138,21 +138,6 @@ static PyObject *py_ldb_set_session_info(PyObject *self, PyObject *args) Py_RETURN_NONE; } -static PyObject *py_ldb_set_utf8_casefold(PyObject *self, PyObject *args) -{ - PyObject *py_ldb; - struct ldb_context *ldb; - - if (!PyArg_ParseTuple(args, "O", &py_ldb)) - return NULL; - - PyErr_LDB_OR_RAISE(py_ldb, ldb); - - ldb_set_utf8_fns(ldb, NULL, wrap_casefold); - - Py_RETURN_NONE; -} - static PyObject *py_samdb_set_domain_sid(PyLdbObject *self, PyObject *args) { PyObject *py_ldb, *py_sid; @@ -506,9 +491,6 @@ static PyMethodDef py_misc_methods[] = { { "ldb_register_samba_handlers", (PyCFunction)py_ldb_register_samba_handlers, METH_VARARGS, "ldb_register_samba_handlers(ldb)\n" "Register Samba-specific LDB modules and schemas." }, - { "ldb_set_utf8_casefold", (PyCFunction)py_ldb_set_utf8_casefold, METH_VARARGS, - "ldb_set_utf8_casefold(ldb)\n" - "Set the right Samba casefolding function for UTF8 charset." }, { "dsdb_set_ntds_invocation_id", (PyCFunction)py_dsdb_set_ntds_invocation_id, METH_VARARGS, NULL }, { "dsdb_set_global_schema", (PyCFunction)py_dsdb_set_global_schema, METH_VARARGS, diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py index 64ad6470f2..796654bbb7 100644 --- a/source4/scripting/python/samba/__init__.py +++ b/source4/scripting/python/samba/__init__.py @@ -44,9 +44,9 @@ else: import ldb import dsdb import glue -from samba._ldb import Ldb +from samba._ldb import Ldb as _Ldb -class Ldb(Ldb): +class Ldb(_Ldb): """Simple Samba-specific LDB subclass that takes care of setting up the modules dir, credentials pointers, etc. @@ -97,7 +97,7 @@ class Ldb(Ldb): print text #self.set_debug(msg) - glue.ldb_set_utf8_casefold(self) + self.set_utf8_casefold() # Allow admins to force non-sync ldb for all databases if lp is not None: @@ -308,14 +308,6 @@ class Ldb(Ldb): "Get the server site name" return dsdb.samdb_server_site_name(self) - def set_opaque_integer(self, name, value): - """Set an integer as an opaque (a flag or other value) value on the database - - :param name: The name for the opaque value - :param value: The integer value - """ - dsdb.dsdb_set_opaque_integer(self, name, value) - def substitute_var(text, values): """substitute strings of the form ${NAME} in str, replacing -- cgit