summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2010-04-04 01:51:04 +0200
committerJelmer Vernooij <jelmer@samba.org>2010-04-06 13:12:43 +0200
commitb72a5c033670a84423d1099aedbcfa5047ac47e6 (patch)
treee6f9d54e99996ad17cb37b058a137f02765e47d3
parent099fc00b601fe7775f5fdb18d8473031b8a7ce27 (diff)
downloadsamba-b72a5c033670a84423d1099aedbcfa5047ac47e6.tar.gz
samba-b72a5c033670a84423d1099aedbcfa5047ac47e6.tar.bz2
samba-b72a5c033670a84423d1099aedbcfa5047ac47e6.zip
Move glue.set_credentials hack to samba.Ldb.
-rw-r--r--source4/lib/ldb-samba/pyldb.c26
-rw-r--r--source4/scripting/python/pyglue.c24
-rw-r--r--source4/scripting/python/samba/__init__.py3
3 files changed, 26 insertions, 27 deletions
diff --git a/source4/lib/ldb-samba/pyldb.c b/source4/lib/ldb-samba/pyldb.c
index 662bfbaa76..8b58f3f3f5 100644
--- a/source4/lib/ldb-samba/pyldb.c
+++ b/source4/lib/ldb-samba/pyldb.c
@@ -24,6 +24,7 @@
#include <ldb.h>
#include "lib/ldb/pyldb.h"
#include "param/pyparam.h"
+#include "auth/credentials/pycredentials.h"
static PyObject *pyldb_module;
staticforward PyTypeObject PySambaLdb;
@@ -50,10 +51,35 @@ static PyObject *py_ldb_set_loadparm(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
+static PyObject *py_ldb_set_credentials(PyObject *self, PyObject *args)
+{
+ PyObject *py_creds;
+ struct cli_credentials *creds;
+ struct ldb_context *ldb;
+
+ if (!PyArg_ParseTuple(args, "O", &py_creds))
+ return NULL;
+
+ creds = cli_credentials_from_py_object(py_creds);
+ if (creds == NULL) {
+ PyErr_SetString(PyExc_TypeError, "Expected credentials object");
+ return NULL;
+ }
+
+ ldb = PyLdb_AsLdbContext(self);
+
+ ldb_set_opaque(ldb, "credentials", creds);
+
+ 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,
+ "ldb_set_credentials(ldb, credentials)\n"
+ "Set credentials to use when connecting." },
{ NULL },
};
diff --git a/source4/scripting/python/pyglue.c b/source4/scripting/python/pyglue.c
index e4a20f8d19..0aee9c3ea3 100644
--- a/source4/scripting/python/pyglue.c
+++ b/source4/scripting/python/pyglue.c
@@ -138,27 +138,6 @@ static PyObject *py_ldb_set_session_info(PyObject *self, PyObject *args)
Py_RETURN_NONE;
}
-static PyObject *py_ldb_set_credentials(PyObject *self, PyObject *args)
-{
- PyObject *py_creds, *py_ldb;
- struct cli_credentials *creds;
- struct ldb_context *ldb;
- if (!PyArg_ParseTuple(args, "OO", &py_ldb, &py_creds))
- return NULL;
-
- PyErr_LDB_OR_RAISE(py_ldb, ldb);
-
- creds = cli_credentials_from_py_object(py_creds);
- if (creds == NULL) {
- PyErr_SetString(PyExc_TypeError, "Expected credentials object");
- return NULL;
- }
-
- ldb_set_opaque(ldb, "credentials", creds);
-
- Py_RETURN_NONE;
-}
-
static PyObject *py_ldb_set_utf8_casefold(PyObject *self, PyObject *args)
{
PyObject *py_ldb;
@@ -518,9 +497,6 @@ static PyMethodDef py_misc_methods[] = {
{ "ldb_set_session_info", (PyCFunction)py_ldb_set_session_info, METH_VARARGS,
"ldb_set_session_info(ldb, session_info)\n"
"Set session info to use when connecting." },
- { "ldb_set_credentials", (PyCFunction)py_ldb_set_credentials, METH_VARARGS,
- "ldb_set_credentials(ldb, credentials)\n"
- "Set credentials to use when connecting." },
{ "samdb_set_domain_sid", (PyCFunction)py_samdb_set_domain_sid, METH_VARARGS,
"samdb_set_domain_sid(samdb, sid)\n"
"Set SID of domain to use." },
diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py
index 80c6df626a..64ad6470f2 100644
--- a/source4/scripting/python/samba/__init__.py
+++ b/source4/scripting/python/samba/__init__.py
@@ -113,9 +113,6 @@ class Ldb(Ldb):
def set_session_info(self, session_info):
glue.ldb_set_session_info(self, session_info)
- def set_credentials(self, credentials):
- glue.ldb_set_credentials(self, credentials)
-
def set_create_perms(self, perms=0600):
# we usually want Samba databases to be private. If we later find we
# need one public, we will have to change this here