summaryrefslogtreecommitdiffstats
path: root/source/printing/printing.c
diff options
context:
space:
mode:
authorDavid O'Neill <dmo@samba.org>2000-11-07 18:22:22 +0000
committerDavid O'Neill <dmo@samba.org>2000-11-07 18:22:22 +0000
commit429c2a7170e23b29f5d1ebfcfceeeaef9301b2a1 (patch)
tree325a5e4a41bab463c40a96d0bc74aa41e5f1b7a3 /source/printing/printing.c
parentb4781c0de0f877f9a360d3a31f1ed61c69c32824 (diff)
downloadsamba-429c2a7170e23b29f5d1ebfcfceeeaef9301b2a1.tar.gz
samba-429c2a7170e23b29f5d1ebfcfceeeaef9301b2a1.tar.xz
samba-429c2a7170e23b29f5d1ebfcfceeeaef9301b2a1.zip
Changes from APPLIANCE_HEAD:
- fixes for printing error codes for pausing and resuming printer queues. (source/printing/printing.c) - Merge of Tim's printer security descriptor, info level, and printerdata comparison changes. (source/rpc_server/srv_spoolss_nt.c source/printing/nt_printing.c source/rpc_parse/parse_sec.c, source/include/proto.h)
Diffstat (limited to 'source/printing/printing.c')
-rw-r--r--source/printing/printing.c38
1 files changed, 22 insertions, 16 deletions
diff --git a/source/printing/printing.c b/source/printing/printing.c
index 14f39b858cb..6a3d5b443b5 100644
--- a/source/printing/printing.c
+++ b/source/printing/printing.c
@@ -21,6 +21,7 @@
*/
#include "includes.h"
+
extern int DEBUGLEVEL;
/*
@@ -248,6 +249,7 @@ static int traverse_fn_delete(TDB_CONTEXT *t, TDB_DATA key, TDB_DATA data, void
if (!pjob.smbjob) {
/* remove a unix job if it isn't in the system queue
any more */
+
for (i=0;i<ts->qcount;i++) {
if (jobid == ts->queue[i].job + UNIX_JOB_START) break;
}
@@ -1032,6 +1034,7 @@ int print_queue_snum(char *qname)
****************************************************************************/
BOOL print_queue_pause(struct current_user *user, int snum, int *errcode)
{
+ char *printer_name;
int ret;
if (!print_access_check(user, snum, PRINTER_ACCESS_ADMINISTER)) {
@@ -1042,21 +1045,22 @@ BOOL print_queue_pause(struct current_user *user, int snum, int *errcode)
ret = print_run_command(snum, lp_queuepausecommand(snum), NULL,
NULL);
+ if (ret != 0) {
+ *errcode = ERROR_INVALID_PARAMETER;
+ return False;
+ }
+
/* force update the database */
print_cache_flush(snum);
/* Send a printer notify message */
- if (ret == 0) {
- char *printer_name;
-
- printer_name = PRINTERNAME(snum);
+ printer_name = PRINTERNAME(snum);
- message_send_all(MSG_PRINTER_NOTIFY, printer_name,
- strlen(printer_name) + 1);
- }
+ message_send_all(MSG_PRINTER_NOTIFY, printer_name,
+ strlen(printer_name) + 1);
- return ret == 0;
+ return True;
}
/****************************************************************************
@@ -1064,6 +1068,7 @@ BOOL print_queue_pause(struct current_user *user, int snum, int *errcode)
****************************************************************************/
BOOL print_queue_resume(struct current_user *user, int snum, int *errcode)
{
+ char *printer_name;
int ret;
if (!print_access_check(user, snum, PRINTER_ACCESS_ADMINISTER)) {
@@ -1074,21 +1079,22 @@ BOOL print_queue_resume(struct current_user *user, int snum, int *errcode)
ret = print_run_command(snum, lp_queueresumecommand(snum), NULL,
NULL);
+ if (ret != 0) {
+ *errcode = ERROR_INVALID_PARAMETER;
+ return False;
+ }
+
/* force update the database */
print_cache_flush(snum);
/* Send a printer notify message */
- if (ret == 0) {
- char *printer_name;
-
- printer_name = PRINTERNAME(snum);
+ printer_name = PRINTERNAME(snum);
- message_send_all(MSG_PRINTER_NOTIFY, printer_name,
- strlen(printer_name) + 1);
- }
+ message_send_all(MSG_PRINTER_NOTIFY, printer_name,
+ strlen(printer_name) + 1);
- return ret == 0;
+ return True;
}
/****************************************************************************