X-Git-Url: http://git.samba.org/samba.git/?p=nivanova%2Fsamba-autobuild%2F.git;a=blobdiff_plain;f=source3%2Fpython%2Fpy_spoolss_printers.c;h=6cdd0e47a687eccbd081afab353a5e203bda0098;hp=a96498dddc7127a184875c511a4867c596198440;hb=d824b98f80ba186030cbb70b3a1e5daf80469ecd;hpb=ea6d5bc48bd14f8eaca665576d7094cce53be81a diff --git a/source3/python/py_spoolss_printers.c b/source3/python/py_spoolss_printers.c index a96498dddc7..6cdd0e47a68 100644 --- a/source3/python/py_spoolss_printers.c +++ b/source3/python/py_spoolss_printers.c @@ -5,7 +5,7 @@ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -43,7 +43,7 @@ PyObject *spoolss_openprinter(PyObject *self, PyObject *args, PyObject *kw) return NULL; } - server = strdup(unc_name + 2); + server = SMB_STRDUP(unc_name + 2); if (strchr(server, '\\')) { char *c = strchr(server, '\\'); @@ -62,14 +62,14 @@ PyObject *spoolss_openprinter(PyObject *self, PyObject *args, PyObject *kw) goto done; } - if (!(mem_ctx = talloc_init())) { + if (!(mem_ctx = talloc_init("spoolss_openprinter"))) { PyErr_SetString(spoolss_error, "unable to init talloc context\n"); goto done; } - werror = cli_spoolss_open_printer_ex( - cli, mem_ctx, unc_name, "", desired_access, server, + werror = rpccli_spoolss_open_printer_ex( + cli->pipe_list, mem_ctx, unc_name, "", desired_access, server, "", &hnd); if (!W_ERROR_IS_OK(werror)) { @@ -110,7 +110,8 @@ PyObject *spoolss_closeprinter(PyObject *self, PyObject *args) /* Call rpc function */ - result = cli_spoolss_close_printer(hnd->cli, hnd->mem_ctx, &hnd->pol); + result = rpccli_spoolss_close_printer( + hnd->cli, hnd->mem_ctx, &hnd->pol); /* Return value */ @@ -127,7 +128,6 @@ PyObject *spoolss_hnd_getprinter(PyObject *self, PyObject *args, PyObject *kw) PyObject *result = NULL; PRINTER_INFO_CTR ctr; int level = 1; - uint32 needed; static char *kwlist[] = {"level", NULL}; /* Parse parameters */ @@ -139,13 +139,8 @@ PyObject *spoolss_hnd_getprinter(PyObject *self, PyObject *args, PyObject *kw) /* Call rpc function */ - werror = cli_spoolss_getprinter( - hnd->cli, hnd->mem_ctx, 0, &needed, &hnd->pol, level, &ctr); - - if (W_ERROR_V(werror) == ERRinsufficientbuffer) - werror = cli_spoolss_getprinter( - hnd->cli, hnd->mem_ctx, needed, NULL, &hnd->pol, - level, &ctr); + werror = rpccli_spoolss_getprinter( + hnd->cli, hnd->mem_ctx, &hnd->pol, level, &ctr); /* Return value */ @@ -255,8 +250,8 @@ PyObject *spoolss_hnd_setprinter(PyObject *self, PyObject *args, PyObject *kw) /* Call rpc function */ - werror = cli_spoolss_setprinter(hnd->cli, hnd->mem_ctx, &hnd->pol, - level, &ctr, 0); + werror = rpccli_spoolss_setprinter( + hnd->cli, hnd->mem_ctx, &hnd->pol, level, &ctr, 0); /* Return value */ @@ -277,7 +272,7 @@ PyObject *spoolss_enumprinters(PyObject *self, PyObject *args, PyObject *kw) PyObject *result = NULL, *creds = NULL; PRINTER_INFO_CTR ctr; int level = 1, flags = PRINTER_ENUM_LOCAL, i; - uint32 needed, num_printers; + uint32 num_printers; static char *kwlist[] = {"server", "name", "level", "flags", "creds", NULL}; TALLOC_CTX *mem_ctx = NULL; @@ -310,7 +305,7 @@ PyObject *spoolss_enumprinters(PyObject *self, PyObject *args, PyObject *kw) goto done; } - if (!(mem_ctx = talloc_init())) { + if (!(mem_ctx = talloc_init("spoolss_enumprinters"))) { PyErr_SetString( spoolss_error, "unable to init talloc context\n"); goto done; @@ -331,14 +326,8 @@ PyObject *spoolss_enumprinters(PyObject *self, PyObject *args, PyObject *kw) /* Call rpc function */ - werror = cli_spoolss_enum_printers( - cli, mem_ctx, 0, &needed, name, flags, level, - &num_printers, &ctr); - - if (W_ERROR_V(werror) == ERRinsufficientbuffer) - werror = cli_spoolss_enum_printers( - cli, mem_ctx, needed, NULL, name, flags, - level, &num_printers, &ctr); + werror = rpccli_spoolss_enum_printers( + cli->pipe_list, mem_ctx, name, flags, level, &num_printers, &ctr); if (!W_ERROR_IS_OK(werror)) { PyErr_SetObject(spoolss_werror, py_werror_tuple(werror)); @@ -353,9 +342,9 @@ PyObject *spoolss_enumprinters(PyObject *self, PyObject *args, PyObject *kw) for (i = 0; i < num_printers; i++) { PyObject *value; - fstring name; + fstring s; - rpcstr_pull(name, ctr.printers_0[i].printername.buffer, + rpcstr_pull(s, ctr.printers_0[i].printername.buffer, sizeof(fstring), -1, STR_TERMINATE); py_from_PRINTER_INFO_0(&value, &ctr.printers_0[i]); @@ -363,7 +352,7 @@ PyObject *spoolss_enumprinters(PyObject *self, PyObject *args, PyObject *kw) PyDict_SetItemString( value, "level", PyInt_FromLong(0)); - PyDict_SetItemString(result, name, value); + PyDict_SetItemString(result, s, value); } break; @@ -372,9 +361,9 @@ PyObject *spoolss_enumprinters(PyObject *self, PyObject *args, PyObject *kw) for(i = 0; i < num_printers; i++) { PyObject *value; - fstring name; + fstring s; - rpcstr_pull(name, ctr.printers_1[i].name.buffer, + rpcstr_pull(s, ctr.printers_1[i].name.buffer, sizeof(fstring), -1, STR_TERMINATE); py_from_PRINTER_INFO_1(&value, &ctr.printers_1[i]); @@ -382,7 +371,7 @@ PyObject *spoolss_enumprinters(PyObject *self, PyObject *args, PyObject *kw) PyDict_SetItemString( value, "level", PyInt_FromLong(1)); - PyDict_SetItemString(result, name, value); + PyDict_SetItemString(result, s, value); } break; @@ -391,9 +380,9 @@ PyObject *spoolss_enumprinters(PyObject *self, PyObject *args, PyObject *kw) for(i = 0; i < num_printers; i++) { PyObject *value; - fstring name; + fstring s; - rpcstr_pull(name, ctr.printers_2[i].printername.buffer, + rpcstr_pull(s, ctr.printers_2[i].printername.buffer, sizeof(fstring), -1, STR_TERMINATE); py_from_PRINTER_INFO_2(&value, &ctr.printers_2[i]); @@ -401,7 +390,7 @@ PyObject *spoolss_enumprinters(PyObject *self, PyObject *args, PyObject *kw) PyDict_SetItemString( value, "level", PyInt_FromLong(2)); - PyDict_SetItemString(result, name, value); + PyDict_SetItemString(result, s, value); } break; @@ -445,7 +434,7 @@ PyObject *spoolss_addprinterex(PyObject *self, PyObject *args, PyObject *kw) goto done; } - if (!(mem_ctx = talloc_init())) { + if (!(mem_ctx = talloc_init("spoolss_addprinterex"))) { PyErr_SetString( spoolss_error, "unable to init talloc context\n"); goto done; @@ -459,7 +448,7 @@ PyObject *spoolss_addprinterex(PyObject *self, PyObject *args, PyObject *kw) ctr.printers_2 = &info2; - werror = cli_spoolss_addprinterex(cli, mem_ctx, 2, &ctr); + werror = rpccli_spoolss_addprinterex(cli->pipe_list, mem_ctx, 2, &ctr); Py_INCREF(Py_None); result = Py_None;