diff options
author | David Disseldorp <ddiss@samba.org> | 2012-01-11 12:29:58 +0100 |
---|---|---|
committer | David Disseldorp <ddiss@samba.org> | 2012-01-11 14:39:35 +0100 |
commit | 97818fd6e552f6ddc30f5b9728d6e82121150867 (patch) | |
tree | db7e7b354f8b97590ebe20853ee27c632ba2b456 | |
parent | 8dc9fbd3af0008aac70194ab69f50352a13b9230 (diff) | |
download | samba-97818fd6e552f6ddc30f5b9728d6e82121150867.tar.gz samba-97818fd6e552f6ddc30f5b9728d6e82121150867.tar.bz2 samba-97818fd6e552f6ddc30f5b9728d6e82121150867.zip |
s3-rpcclient: add deldriverex flags argument
The spoolss DeletePrinterDriverEx command offers three flags for
controlling how associated files and other versions of the driver are
effected: DPD_DELETE_UNUSED_FILES (1), DPD_DELETE_SPECIFIC_VERSION (2)
and DPD_DELETE_ALL_FILES (4).
This commit adds an optional numeric flags argument to the rpcclient
deldriverex command.
Signed-off-by: David Disseldorp <ddiss@samba.org>
Signed-off-by: Andreas Schneider <asn@samba.org>
Autobuild-User: David Disseldorp <ddiss@samba.org>
Autobuild-Date: Wed Jan 11 14:39:35 CET 2012 on sn-devel-104
-rw-r--r-- | docs-xml/manpages-3/rpcclient.1.xml | 11 | ||||
-rw-r--r-- | source3/rpcclient/cmd_spoolss.c | 14 |
2 files changed, 14 insertions, 11 deletions
diff --git a/docs-xml/manpages-3/rpcclient.1.xml b/docs-xml/manpages-3/rpcclient.1.xml index 40e4b9b6bc..46d56ee560 100644 --- a/docs-xml/manpages-3/rpcclient.1.xml +++ b/docs-xml/manpages-3/rpcclient.1.xml @@ -273,10 +273,13 @@ Comma Separated list of Files only the entry from the server's list of drivers. </para></listitem></varlistentry> - <varlistentry><term>deldriverex <driver> [architecture] [version] - </term><listitem><para>Delete the specified printer driver including driver files. - You can limit this action to a specific architecture and a specific version. - If no architecure is given, all driver files of that driver will be deleted. + <varlistentry><term>deldriverex <driver> [architecture] [version] [flags] + </term><listitem><para>Delete the specified printer driver and optionally files + associated with the driver. + You can limit this action to a specific architecture and a specific version. + If no architecure is given, all driver files of that driver will be deleted. + <parameter>flags</parameter> correspond to numeric DPD_* values, i.e. a value + of 3 requests (DPD_DELETE_UNUSED_FILES | DPD_DELETE_SPECIFIC_VERSION). </para></listitem></varlistentry> <varlistentry><term>enumdata</term><listitem><para>Enumerate all diff --git a/source3/rpcclient/cmd_spoolss.c b/source3/rpcclient/cmd_spoolss.c index 0e12201f92..21f70aeb41 100644 --- a/source3/rpcclient/cmd_spoolss.c +++ b/source3/rpcclient/cmd_spoolss.c @@ -1928,24 +1928,24 @@ static WERROR cmd_spoolss_deletedriverex(struct rpc_pipe_client *cli, uint32_t delete_flags = 0; /* parse the command arguments */ - if (argc < 2 || argc > 4) { - printf ("Usage: %s <driver> [arch] [version]\n", argv[0]); + if (argc < 2 || argc > 5) { + printf("Usage: %s <driver> [arch] [version] [flags]\n", argv[0]); return WERR_OK; } if (argc >= 3) arch = argv[2]; - if (argc == 4) - vers = atoi (argv[3]); - - if (vers >= 0) { + if (argc >= 4) { + vers = atoi(argv[3]); delete_flags |= DPD_DELETE_SPECIFIC_VERSION; } + if (argc == 5) + delete_flags = atoi(argv[4]); /* delete the driver for all architectures */ for (i=0; archi_table[i].long_archi; i++) { - if (arch && !strequal( archi_table[i].long_archi, arch)) + if (arch && !strequal(archi_table[i].long_archi, arch)) continue; if (vers >= 0 && archi_table[i].version != vers) |