r15299: Fix import of Python modules. Fixes Bug #3567.
authorDeryck Hodge <deryck@samba.org>
Thu, 27 Apr 2006 20:52:04 +0000 (20:52 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:16:32 +0000 (11:16 -0500)
The REGVAL_CTR part is taken from Daniel Jarboe's
patch he filed with the bug report.

deryck
(This used to be commit 7ca24b996628707b7e8a05041d173f046f428413)

source3/python/py_common.c
source3/python/py_spoolss_printerdata.c

index 70d478b9797fae75fef9117d6424508c97a957e2..14c3b83e547bacc4170cad3c1887fa8b7e37339e 100644 (file)
@@ -45,6 +45,8 @@ void py_samba_init(void)
        if (initialised)
                return;
 
+       load_case_tables();
+
        /* Load configuration file */
 
        if (!lp_load(dyn_CONFIGFILE, True, False, False, True))
@@ -212,6 +214,7 @@ struct cli_state *open_pipe_creds(char *server, PyObject *creds,
 {
        char *username, *password, *domain;
        struct cli_state *cli;
+       struct rpc_pipe_client *pipe_hnd;
        NTSTATUS result;
        
        /* Extract credentials from the python dictionary */
@@ -230,7 +233,8 @@ struct cli_state *open_pipe_creds(char *server, PyObject *creds,
                return NULL;
        }
 
-       if (!cli_nt_session_open(cli, pipe_idx)) {
+       pipe_hnd = cli_rpc_pipe_open_noauth(cli, pipe_idx, &result);
+       if (!pipe_hnd) {
                cli_shutdown(cli);
                asprintf(errstr, "error opening pipe index %d", pipe_idx);
                return NULL;
index 195f01f62d8a755b689297cbb5a1c43a1f797afa..e89f985fefd4ebdf807f54ca85626b980037aeb2 100644 (file)
@@ -315,11 +315,16 @@ PyObject *spoolss_hnd_enumprinterdataex(PyObject *self, PyObject *args, PyObject
        char *key;
        WERROR werror;
        PyObject *result;
-       REGVAL_CTR ctr;
+       REGVAL_CTR *ctr;
 
        if (!PyArg_ParseTupleAndKeywords(args, kw, "s", kwlist, &key))
                return NULL;
 
+       if (!(ctr = TALLOC_ZERO_P(hnd->mem_ctx, REGVAL_CTR))) {
+               PyErr_SetObject(spoolss_werror, py_werror_tuple(werror));
+               return NULL;
+       }
+
        /* Get max buffer sizes for value and data */
 
        werror = rpccli_spoolss_enumprinterdataex(