CVS update: samba/source/rpc_parse
Tim Potter
tpot at samba.org
Thu Jun 27 11:46:36 EST 2002
Date: Wed Jun 26 18:46:36 2002
Author: tpot
Update of /data/cvs/samba/source/rpc_parse
In directory va:/tmp/cvs-serv12180/rpc_parse
Modified Files:
Tag: APPLIANCE_HEAD
parse_spoolss.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:
parse_spoolss.c 1.81.2.45 => 1.81.2.46
http://www.samba.org/cgi-bin/cvsweb/samba/source/rpc_parse/parse_spoolss.c?r1=1.81.2.45&r2=1.81.2.46
More information about the samba-cvs
mailing list