diff options
-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) |