1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-24 13:57:43 +03:00

deldriver fix

(This used to be commit 78ff2cc34aedaf82d965a71e0c9dfdeb86a90fdd)
This commit is contained in:
Gerald Carter 2002-11-09 14:49:26 +00:00
parent 2d08c914d7
commit cda79e5d36
3 changed files with 18 additions and 6 deletions

View File

@ -58,5 +58,6 @@ typedef uint32 WERROR;
#define NT_STATUS_IS_ERR(x) ((NT_STATUS_V(x) & 0xc0000000) == 0xc0000000)
#define NT_STATUS_EQUAL(x,y) (NT_STATUS_V(x) == NT_STATUS_V(y))
#define W_ERROR_IS_OK(x) (W_ERROR_V(x) == 0)
#define W_ERROR_EQUAL(x,y) (W_ERROR_V(x) == W_ERROR_V(y))
#endif

View File

@ -1908,6 +1908,12 @@ WERROR _spoolss_deleteprinterdriver(pipes_struct *p, SPOOL_Q_DELETEPRINTERDRIVER
goto done;
}
}
/* otherwise it was a failure */
else {
status = WERR_UNKNOWN_PRINTER_DRIVER;
goto done;
}
}
if (printer_driver_in_use(info.info_3)) {

View File

@ -1259,16 +1259,21 @@ static NTSTATUS cmd_spoolss_deletedriver(struct cli_state *cli,
result = cli_spoolss_deleteprinterdriver(
cli, mem_ctx, archi_table[i].long_archi, argv[1]);
if (!W_ERROR_IS_OK(result)) {
printf ("Failed to remove driver %s for arch [%s] - error 0x%x!\n",
argv[1], archi_table[i].long_archi,
W_ERROR_V(result));
} else
if ( !W_ERROR_IS_OK(result) ) {
if ( !W_ERROR_EQUAL(result, WERR_UNKNOWN_PRINTER_DRIVER) ) {
printf ("Failed to remove driver %s for arch [%s] - error 0x%x!\n",
argv[1], archi_table[i].long_archi,
W_ERROR_V(result));
}
}
else
{
printf ("Driver %s removed for arch [%s].\n", argv[1],
archi_table[i].long_archi);
}
}
return W_ERROR_IS_OK(result) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL;
return W_ERROR_IS_OK(result) || W_ERROR_EQUAL(result, WERR_UNKNOWN_PRINTER_DRIVER) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL;
}
static NTSTATUS cmd_spoolss_getprintprocdir(struct cli_state *cli,