diff options
Diffstat (limited to 'source3/printing/notify.c')
-rw-r--r-- | source3/printing/notify.c | 65 |
1 files changed, 41 insertions, 24 deletions
diff --git a/source3/printing/notify.c b/source3/printing/notify.c index 21e28d0ca7..925d49a21d 100644 --- a/source3/printing/notify.c +++ b/source3/printing/notify.c @@ -3,6 +3,7 @@ Version 2.2 printing backend routines Copyright (C) Tim Potter, 2002 + Copyright (C) Gerald Carter, 2002 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 @@ -65,18 +66,17 @@ again: /* Send message */ - tdb = tdb_open_log(lock_path("connections.tdb"), 0, TDB_DEFAULT, O_RDONLY, 0); + tdb = conn_tdb_ctx(); if (!tdb) { DEBUG(3, ("Failed to open connections database in send_spoolss_notify2_msg\n")); - return; + goto done; } + + message_send_all(tdb, MSG_PRINTER_NOTIFY2, buf, buflen, False, NULL); - message_send_all(tdb, MSG_PRINTER_NOTIFY2, buf, - buflen, False, NULL); - +done: SAFE_FREE(buf); - tdb_close(tdb); } static void send_notify_field_values(const char *printer_name, uint32 type, @@ -129,7 +129,7 @@ void notify_printer_status_byname(const char *printer_name, uint32 status) void notify_printer_status(int snum, uint32 status) { - const char *printer_name = PRINTERNAME(snum); + const char *printer_name = SERVICE(snum); if (printer_name) notify_printer_status_byname(printer_name, status); @@ -147,14 +147,14 @@ void notify_job_status_byname(const char *printer_name, uint32 jobid, uint32 sta void notify_job_status(int snum, uint32 jobid, uint32 status) { - const char *printer_name = PRINTERNAME(snum); + const char *printer_name = SERVICE(snum); notify_job_status_byname(printer_name, jobid, status, 0); } void notify_job_total_bytes(int snum, uint32 jobid, uint32 size) { - const char *printer_name = PRINTERNAME(snum); + const char *printer_name = SERVICE(snum); /* Job id stored in id field, status in value1 */ @@ -165,7 +165,7 @@ void notify_job_total_bytes(int snum, uint32 jobid, uint32 size) void notify_job_total_pages(int snum, uint32 jobid, uint32 pages) { - const char *printer_name = PRINTERNAME(snum); + const char *printer_name = SERVICE(snum); /* Job id stored in id field, status in value1 */ @@ -176,7 +176,7 @@ void notify_job_total_pages(int snum, uint32 jobid, uint32 pages) void notify_job_username(int snum, uint32 jobid, char *name) { - const char *printer_name = PRINTERNAME(snum); + const char *printer_name = SERVICE(snum); send_notify_field_buffer( printer_name, JOB_NOTIFY_TYPE, JOB_NOTIFY_USER_NAME, @@ -185,7 +185,7 @@ void notify_job_username(int snum, uint32 jobid, char *name) void notify_job_name(int snum, uint32 jobid, char *name) { - const char *printer_name = PRINTERNAME(snum); + const char *printer_name = SERVICE(snum); send_notify_field_buffer( printer_name, JOB_NOTIFY_TYPE, JOB_NOTIFY_DOCUMENT, @@ -194,37 +194,54 @@ void notify_job_name(int snum, uint32 jobid, char *name) void notify_job_submitted(int snum, uint32 jobid, time_t submitted) { - const char *printer_name = PRINTERNAME(snum); + const char *printer_name = SERVICE(snum); send_notify_field_buffer( printer_name, JOB_NOTIFY_TYPE, JOB_NOTIFY_SUBMITTED, jobid, sizeof(submitted), (char *)&submitted); } -void notify_printer_delete(char *printer_name) +void notify_printer_driver(int snum, char *driver_name) { -} + const char *printer_name = SERVICE(snum); -void notify_printer_add(char *printer_name) -{ + send_notify_field_buffer( + printer_name, PRINTER_NOTIFY_TYPE, PRINTER_NOTIFY_DRIVER_NAME, + snum, strlen(driver_name) + 1, driver_name); } -void notify_printer_driver(int num, char *driver_name) +void notify_printer_comment(int snum, char *comment) { -} + const char *printer_name = SERVICE(snum); -void notify_printer_comment(int num, char *comment) -{ + send_notify_field_buffer( + printer_name, PRINTER_NOTIFY_TYPE, PRINTER_NOTIFY_COMMENT, + snum, strlen(comment) + 1, comment); } -void notify_printer_sharename(int num, char *share_name) +void notify_printer_sharename(int snum, char *share_name) { + const char *printer_name = SERVICE(snum); + + send_notify_field_buffer( + printer_name, PRINTER_NOTIFY_TYPE, PRINTER_NOTIFY_SHARE_NAME, + snum, strlen(share_name) + 1, share_name); } -void notify_printer_port(int num, char *port_name) +void notify_printer_port(int snum, char *port_name) { + const char *printer_name = SERVICE(snum); + + send_notify_field_buffer( + printer_name, PRINTER_NOTIFY_TYPE, PRINTER_NOTIFY_PORT_NAME, + snum, strlen(port_name) + 1, port_name); } -void notify_printer_location(int num, char *location) +void notify_printer_location(int snum, char *location) { + const char *printer_name = SERVICE(snum); + + send_notify_field_buffer( + printer_name, PRINTER_NOTIFY_TYPE, PRINTER_NOTIFY_LOCATION, + snum, strlen(location) + 1, location); } |