s4-pyldb: fixed 64 bit issues
authorAndrew Tridgell <tridge@samba.org>
Mon, 19 Oct 2009 10:36:41 +0000 (21:36 +1100)
committerAndrew Tridgell <tridge@samba.org>
Mon, 19 Oct 2009 10:36:41 +0000 (21:36 +1100)
The python argument parse functions take standard C types, not enums
and time_t. This broken the python interface on PPC.

source4/lib/ldb/pyldb.c

index 1d47d6ff1f419a78a3ec75cdeb57939ff2726ff3..35508c828aa52a58ed075793b21302a67925d337 100644 (file)
@@ -1006,7 +1006,7 @@ static PyObject *py_ldb_schema_format_value(PyLdbObject *self, PyObject *args)
 static PyObject *py_ldb_search(PyLdbObject *self, PyObject *args, PyObject *kwargs)
 {
        PyObject *py_base = Py_None;
 static PyObject *py_ldb_search(PyLdbObject *self, PyObject *args, PyObject *kwargs)
 {
        PyObject *py_base = Py_None;
-       enum ldb_scope scope = LDB_SCOPE_DEFAULT;
+       int scope = LDB_SCOPE_DEFAULT;
        char *expr = NULL;
        PyObject *py_attrs = Py_None;
        PyObject *py_controls = Py_None;
        char *expr = NULL;
        PyObject *py_attrs = Py_None;
        PyObject *py_controls = Py_None;
@@ -2370,10 +2370,12 @@ static PyObject *py_register_module(PyObject *module, PyObject *args)
 static PyObject *py_timestring(PyObject *module, PyObject *args)
 {
        time_t t;
 static PyObject *py_timestring(PyObject *module, PyObject *args)
 {
        time_t t;
+       unsigned long val;
        char *tresult;
        PyObject *ret;
        char *tresult;
        PyObject *ret;
-       if (!PyArg_ParseTuple(args, "L", &t))
+       if (!PyArg_ParseTuple(args, "l", &val))
                return NULL;
                return NULL;
+       t = (time_t)val;
        tresult = ldb_timestring(NULL, t);
        ret = PyString_FromString(tresult);
        talloc_free(tresult);
        tresult = ldb_timestring(NULL, t);
        ret = PyString_FromString(tresult);
        talloc_free(tresult);