CVS update: samba/source/rpc_server
Tim Potter
tpot at samba.org
Thu Jun 27 11:46:37 EST 2002
Date: Wed Jun 26 18:46:37 2002
Author: tpot
Update of /data/cvs/samba/source/rpc_server
In directory va:/tmp/cvs-serv12180/rpc_server
Modified Files:
Tag: APPLIANCE_HEAD
srv_spoolss_nt.c
Log Message:
Changed the marshalling of printer notification to make things a bit
clearer and to fix some bugs.
Notification data used to be of two types - values or pointers. A
value (such as pages printed, or printer status) was stored in the
two notify_info_data fields. Pointers had a buffer length and a
pointer to a buffer which was stored in notify_info_data_strings.
Pointers that are strings contain an extra length field marshalled
within the buffer. Non-string pointers (such as security descriptors
or job submission time) do not contain the extra length field.
Some notify related functions in srv_spoolss_nt.c were cleaned up a
bit.
An interesting point to note is the usage of the FCPN packet by a
Windows client. If a Samba server sends some bad notification
information in a rfncpnex reply, the Windows client will send a FCPN,
Samba will close the notification back-channel with a
ReplyClosePrinter and the Windows client will reconnect with rffpcnex
but with an empty options field and non-zero flags. We don't handle
this type of printer notify so things get out of sync and notification
breaks. If we send well-formed rfnpcnex replies then we never see the
FCPN and everyone is happy. The data in question was a job submission
time notify with the word count set to 2 when win2k sends 4.
Revisions:
srv_spoolss_nt.c 1.95.2.158 => 1.95.2.159
http://www.samba.org/cgi-bin/cvsweb/samba/source/rpc_server/srv_spoolss_nt.c?r1=1.95.2.158&r2=1.95.2.159
More information about the samba-cvs
mailing list