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,
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "python/py_spoolss.h"
PyObject *spoolss_error, *spoolss_werror;
-/*
- * Routines to convert from python hashes to Samba structures
- */
-
-PyObject *new_spoolss_policy_hnd_object(struct cli_state *cli,
- TALLOC_CTX *mem_ctx, POLICY_HND *pol)
-{
- spoolss_policy_hnd_object *o;
-
- o = PyObject_New(spoolss_policy_hnd_object, &spoolss_policy_hnd_type);
-
- o->cli = cli;
- o->mem_ctx = mem_ctx;
- memcpy(&o->pol, pol, sizeof(POLICY_HND));
-
- return (PyObject*)o;
-}
-
/*
* Method dispatch table
*/
/* Open/close printer handles */
{ "openprinter", (PyCFunction)spoolss_openprinter, METH_VARARGS | METH_KEYWORDS,
- "openprinter(printername, [creds, access]) -> <spoolss hnd object>
-
-Open a printer given by printername in UNC format. Optionally a dictionary
-of (domain, username, password) may be given in which case they are used
-when opening the RPC pipe. An access mask may also be given which defaults
-to MAXIMUM_ALLOWED_ACCESS.
-
-Example:
-
->>> hnd = spoolss.openprinter(\"\\\\\\\\NPSD-PDC2\\\\meanie\")
-"},
+ "Open a printer by name in UNC format.\n"
+"\n"
+"Optionally a dictionary of (domain, username, password) may be given in\n"
+"which case they are used when opening the RPC pipe. An access mask may\n"
+"also be given which defaults to MAXIMUM_ALLOWED_ACCESS.\n"
+"\n"
+"Example:\n"
+"\n"
+">>> hnd = spoolss.openprinter(\"\\\\\\\\NPSD-PDC2\\\\meanie\")"},
{ "closeprinter", spoolss_closeprinter, METH_VARARGS,
- "closeprinter()
-
-Close a printer handle opened with openprinter or addprinter.
+ "Close a printer handle opened with openprinter or addprinter.\n"
+"\n"
+"Example:\n"
+"\n"
+">>> spoolss.closeprinter(hnd)"},
-Example:
-
->>> spoolss.closeprinter(hnd)
-"},
+ { "addprinterex", (PyCFunction)spoolss_addprinterex, METH_VARARGS,
+ "addprinterex()"},
/* Server enumeratation functions */
{ "enumprinters", (PyCFunction)spoolss_enumprinters,
METH_VARARGS | METH_KEYWORDS,
- "enumprinters(server, [creds, level, flags]) -> list
-
-Return a list of printers on a print server. The credentials, info level
-and flags may be specified as keyword arguments.
-
-Example:
-
->>> print spoolss.enumprinters(\"\\\\\\\\npsd-pdc2\")
-[{'comment': 'i am a comment', 'printer_name': 'meanie', 'flags': 8388608,
- 'description': 'meanie,Generic / Text Only,i am a location'},
- {'comment': '', 'printer_name': 'fileprint', 'flags': 8388608,
- 'description': 'fileprint,Generic / Text Only,'}]
-"},
+ "Enumerate printers on a print server.\n"
+"\n"
+"Return a list of printers on a print server. The credentials, info level\n"
+"and flags may be specified as keyword arguments.\n"
+"\n"
+"Example:\n"
+"\n"
+">>> print spoolss.enumprinters(\"\\\\\\\\npsd-pdc2\")\n"
+"[{'comment': 'i am a comment', 'printer_name': 'meanie', 'flags': 8388608, \n"
+" 'description': 'meanie,Generic / Text Only,i am a location'}, \n"
+" {'comment': '', 'printer_name': 'fileprint', 'flags': 8388608, \n"
+" 'description': 'fileprint,Generic / Text Only,'}]"},
{ "enumports", (PyCFunction)spoolss_enumports,
METH_VARARGS | METH_KEYWORDS,
- "enumports(server, [creds, level]) -> list
-
-Return a list of ports on a print server.
-
-Example:
-
->>> print spoolss.enumports(\"\\\\\\\\npsd-pdc2\")
-[{'name': 'LPT1:'}, {'name': 'LPT2:'}, {'name': 'COM1:'}, {'name': 'COM2:'},
- {'name': 'FILE:'}, {'name': '\\\\nautilus1\\zpekt3r'}]
-"},
+ "Enumerate ports on a print server.\n"
+"\n"
+"Return a list of ports on a print server.\n"
+"\n"
+"Example:\n"
+"\n"
+">>> print spoolss.enumports(\"\\\\\\\\npsd-pdc2\")\n"
+"[{'name': 'LPT1:'}, {'name': 'LPT2:'}, {'name': 'COM1:'}, \n"
+"{'name': 'COM2:'}, {'name': 'FILE:'}, {'name': '\\\\nautilus1\\zpekt3r'}]"},
{ "enumprinterdrivers", (PyCFunction)spoolss_enumprinterdrivers,
METH_VARARGS | METH_KEYWORDS,
- "enumprinterdrivers(server, [creds, level, arch]) -> list
+ "Enumerate printer drivers on a print server.\n"
+"\n"
+"Return a list of printer drivers."},
-Return a list of printer drivers.
-"},
/* Miscellaneous other commands */
- { "getprinterdriverdir", (PyCFunction)spoolss_getprinterdriverdir, METH_VARARGS |
- METH_KEYWORDS, "getprinterdriverdir(server, [creds]) -> string
-
-Return the printer driver directory for a given architecture. The
-architecture defaults to \"Windows NT x86\".
-"},
+ { "getprinterdriverdir", (PyCFunction)spoolss_getprinterdriverdir,
+ METH_VARARGS | METH_KEYWORDS,
+ "Return printer driver directory.\n"
+"\n"
+"Return the printer driver directory for a given architecture. The\n"
+"architecture defaults to \"Windows NT x86\"."},
/* Other stuff - this should really go into a samba config module
but for the moment let's leave it here. */
{ "setup_logging", (PyCFunction)py_setup_logging,
- METH_VARARGS | METH_KEYWORDS, "" },
+ METH_VARARGS | METH_KEYWORDS,
+ "Set up debug logging.\n"
+"\n"
+"Initialises Samba's debug logging system. One argument is expected which\n"
+"is a boolean specifying whether debugging is interactive and sent to stdout\n"
+"or logged to a file.\n"
+"\n"
+"Example:\n"
+"\n"
+">>> spoolss.setup_logging(interactive = 1)" },
+
+ { "get_debuglevel", (PyCFunction)get_debuglevel,
+ METH_VARARGS,
+ "Set the current debug level.\n"
+"\n"
+"Example:\n"
+"\n"
+">>> spoolss.get_debuglevel()\n"
+"0" },
+
+ { "set_debuglevel", (PyCFunction)set_debuglevel,
+ METH_VARARGS,
+ "Get the current debug level.\n"
+"\n"
+"Example:\n"
+"\n"
+">>> spoolss.set_debuglevel(10)" },
+
+ /* Printer driver routines */
+
+ { "addprinterdriver", (PyCFunction)spoolss_addprinterdriver,
+ METH_VARARGS | METH_KEYWORDS,
+ "Add a printer driver." },
+
+ { "addprinterdriverex", (PyCFunction)spoolss_addprinterdriverex,
+ METH_VARARGS | METH_KEYWORDS,
+ "Add a printer driver." },
- { "get_debuglevel", (PyCFunction)get_debuglevel, METH_VARARGS, "" },
- { "set_debuglevel", (PyCFunction)set_debuglevel, METH_VARARGS, "" },
+ { "deleteprinterdriver", (PyCFunction)spoolss_deleteprinterdriver,
+ METH_VARARGS | METH_KEYWORDS,
+ "Delete a printer driver." },
+
+ { "deleteprinterdriverex", (PyCFunction)spoolss_deleteprinterdriverex,
+ METH_VARARGS | METH_KEYWORDS,
+ "Delete a printer driver." },
{ NULL }
};
/* Printer info */
- { "getprinter", (PyCFunction)spoolss_getprinter,
+ { "getprinter", (PyCFunction)spoolss_hnd_getprinter,
METH_VARARGS | METH_KEYWORDS,
- "getprinter([level]) -> dict
-
-Return a dictionary of print information. The info level defaults to 1.
-
-Example:
-
->>> hnd.getprinter()
-{'comment': 'i am a comment', 'printer_name': '\\\\NPSD-PDC2\\meanie',
- 'description': '\\\\NPSD-PDC2\\meanie,Generic / Text Only,i am a location',
- 'flags': 8388608}
-"},
-
- { "setprinter", (PyCFunction)spoolss_setprinter,
+ "Get printer information.\n"
+"\n"
+"Return a dictionary of print information. The info level defaults to 1.\n"
+"\n"
+"Example:\n"
+"\n"
+">>> hnd.getprinter()\n"
+"{'comment': 'i am a comment', 'printer_name': '\\\\NPSD-PDC2\\meanie',\n"
+" 'description': '\\\\NPSD-PDC2\\meanie,Generic / Text Only,i am a location',\n"
+" 'flags': 8388608}"},
+
+ { "setprinter", (PyCFunction)spoolss_hnd_setprinter,
METH_VARARGS | METH_KEYWORDS,
- "setprinter(dict) -> None
-
-Set printer information.
-"},
+ "Set printer information."},
/* Printer drivers */
- { "getprinterdriver", (PyCFunction)spoolss_getprinterdriver,
+ { "getprinterdriver", (PyCFunction)spoolss_hnd_getprinterdriver,
METH_VARARGS | METH_KEYWORDS,
- "getprinterdriver([level = 1, arch = \"Windows NT x86\"] -> dict
-
-Return a dictionary of printer driver information.
-"},
+ "Return printer driver information.\n"
+"\n"
+"Return a dictionary of printer driver information for the printer driver\n"
+"bound to this printer."},
/* Forms */
- { "enumforms", (PyCFunction)spoolss_enumforms,
+ { "enumforms", (PyCFunction)spoolss_hnd_enumforms,
METH_VARARGS | METH_KEYWORDS,
- "enumforms([level = 1]) -> list
-
-Return a list of forms supported by a printer.
-"},
+ "Enumerate supported forms.\n"
+"\n"
+"Return a list of forms supported by this printer or print server."},
- { "setform", (PyCFunction)spoolss_setform,
+ { "setform", (PyCFunction)spoolss_hnd_setform,
METH_VARARGS | METH_KEYWORDS,
- "setform(dict) -> None
+ "Set form data.\n"
+"\n"
+"Set the form given by the dictionary argument."},
-Set the form given by the dictionary argument.
-"},
-
- { "addform", (PyCFunction)spoolss_addform,
+ { "addform", (PyCFunction)spoolss_hnd_addform,
METH_VARARGS | METH_KEYWORDS,
- "Insert a form" },
+ "Add a new form." },
- { "getform", (PyCFunction)spoolss_getform,
+ { "getform", (PyCFunction)spoolss_hnd_getform,
METH_VARARGS | METH_KEYWORDS,
- "Fetch form properties" },
+ "Get form properties." },
- { "deleteform", (PyCFunction)spoolss_deleteform,
+ { "deleteform", (PyCFunction)spoolss_hnd_deleteform,
METH_VARARGS | METH_KEYWORDS,
- "Delete a form" },
+ "Delete a form." },
/* Job related methods */
- { "enumjobs", (PyCFunction)spoolss_enumjobs,
+ { "enumjobs", (PyCFunction)spoolss_hnd_enumjobs,
METH_VARARGS | METH_KEYWORDS,
- "Enumerate jobs" },
+ "Enumerate jobs." },
- { "setjob", (PyCFunction)spoolss_setjob,
+ { "setjob", (PyCFunction)spoolss_hnd_setjob,
METH_VARARGS | METH_KEYWORDS,
- "Set job information" },
+ "Set job information." },
- { "getjob", (PyCFunction)spoolss_getjob,
+ { "getjob", (PyCFunction)spoolss_hnd_getjob,
METH_VARARGS | METH_KEYWORDS,
- "Get job information" },
+ "Get job information." },
- { "startpageprinter", (PyCFunction)spoolss_startpageprinter,
+ { "startpageprinter", (PyCFunction)spoolss_hnd_startpageprinter,
METH_VARARGS | METH_KEYWORDS,
"Notify spooler that a page is about to be printed." },
- { "endpageprinter", (PyCFunction)spoolss_endpageprinter,
+ { "endpageprinter", (PyCFunction)spoolss_hnd_endpageprinter,
METH_VARARGS | METH_KEYWORDS,
"Notify spooler that a page is about to be printed." },
- { "startdocprinter", (PyCFunction)spoolss_startdocprinter,
+ { "startdocprinter", (PyCFunction)spoolss_hnd_startdocprinter,
METH_VARARGS | METH_KEYWORDS,
"Notify spooler that a document is about to be printed." },
- { "enddocprinter", (PyCFunction)spoolss_enddocprinter,
+ { "enddocprinter", (PyCFunction)spoolss_hnd_enddocprinter,
METH_VARARGS | METH_KEYWORDS,
"Notify spooler that a document is about to be printed." },
- { "writeprinter", (PyCFunction)spoolss_writeprinter,
+ { "writeprinter", (PyCFunction)spoolss_hnd_writeprinter,
METH_VARARGS | METH_KEYWORDS,
"Write job data to a printer." },
+ { "addjob", (PyCFunction)spoolss_hnd_addjob,
+ METH_VARARGS | METH_KEYWORDS,
+ "Add a job to the list of print jobs." },
+
/* Printer data */
- { "getprinterdata", (PyCFunction)spoolss_getprinterdata,
+ { "getprinterdata", (PyCFunction)spoolss_hnd_getprinterdata,
+ METH_VARARGS | METH_KEYWORDS,
+ "Get printer data." },
+
+ { "setprinterdata", (PyCFunction)spoolss_hnd_setprinterdata,
+ METH_VARARGS | METH_KEYWORDS,
+ "Set printer data." },
+
+ { "enumprinterdata", (PyCFunction)spoolss_hnd_enumprinterdata,
+ METH_VARARGS | METH_KEYWORDS,
+ "Enumerate printer data." },
+
+ { "deleteprinterdata", (PyCFunction)spoolss_hnd_deleteprinterdata,
+ METH_VARARGS | METH_KEYWORDS,
+ "Delete printer data." },
+
+ { "getprinterdataex", (PyCFunction)spoolss_hnd_getprinterdataex,
METH_VARARGS | METH_KEYWORDS,
"Get printer data." },
- { "setprinterdata", (PyCFunction)spoolss_setprinterdata,
+ { "setprinterdataex", (PyCFunction)spoolss_hnd_setprinterdataex,
METH_VARARGS | METH_KEYWORDS,
"Set printer data." },
- { "enumprinterdata", (PyCFunction)spoolss_enumprinterdata,
+ { "enumprinterdataex", (PyCFunction)spoolss_hnd_enumprinterdataex,
METH_VARARGS | METH_KEYWORDS,
"Enumerate printer data." },
+ { "deleteprinterdataex", (PyCFunction)spoolss_hnd_deleteprinterdataex,
+ METH_VARARGS | METH_KEYWORDS,
+ "Delete printer data." },
+
+ { "enumprinterkey", (PyCFunction)spoolss_hnd_enumprinterkey,
+ METH_VARARGS | METH_KEYWORDS,
+ "Enumerate printer key." },
+
+#if 0
+ /* Not implemented */
+
+ { "deleteprinterkey", (PyCFunction)spoolss_hnd_deleteprinterkey,
+ METH_VARARGS | METH_KEYWORDS,
+ "Delete printer key." },
+#endif
+
{ NULL }
};