[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-1106-gbcd6e5e

Günther Deschner gd at samba.org
Tue Feb 24 00:11:55 GMT 2009


The branch, master has been updated
       via  bcd6e5ec3315b14cedf7437a70c34d233ded082e (commit)
      from  3e796103b28f1279bdaa481b7d5c4447d62683bb (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit bcd6e5ec3315b14cedf7437a70c34d233ded082e
Author: Günther Deschner <gd at samba.org>
Date:   Mon Feb 23 11:43:32 2009 +0100

    s3-spoolss: fix notify_printer_status_byname.
    
    This took me almost a week to find, so here a little longer explanation:
    
    When a windows client registers printer *status* change notifies using
    spoolss_RemoteFindFirstChangeNotify, it registers them to a print server handle,
    not a printer handle. We were then correctly monitoring the printer status
    changes but were sending out the spoolss_RouterReplyPrinterEx via the back-channel
    connection with job_id set to 0 (which we only may do for monitored printer
    change status notifies on printer handlers, not print server handles). Windows
    was then showing a new empty dummy printer icon in the explorer as it cannot
    route the notify event to the approriate local handle. It also discarded the
    content of the notify event message of course. With this, printer change notify for
    pausing, resuming and purging printers nicely works again here.
    
    Jerry, Tim and all other printing gurus, please check.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source3/printing/notify.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/printing/notify.c b/source3/printing/notify.c
index d478b86..e19212e 100644
--- a/source3/printing/notify.c
+++ b/source3/printing/notify.c
@@ -397,8 +397,10 @@ void notify_printer_status_byname(const char *sharename, uint32 status)
 {
 	/* Printer status stored in value1 */
 
+	int snum = print_queue_snum(sharename);
+
 	send_notify_field_values(sharename, PRINTER_NOTIFY_TYPE, 
-				 PRINTER_NOTIFY_STATUS, 0, 
+				 PRINTER_NOTIFY_STATUS, snum,
 				 status, 0, 0);
 }
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list