diff options
author | Tim Potter <tpot@samba.org> | 2002-06-06 05:46:55 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2002-06-06 05:46:55 +0000 |
commit | 7db4c88dcdb5758beed31f788aeac593cf7db0fa (patch) | |
tree | 4f7c4de268ad3eaa2af6fe7e433cb20303672741 | |
parent | fb78dde09e514bbac028e62b34192983f7458d45 (diff) | |
download | wireshark-7db4c88dcdb5758beed31f788aeac593cf7db0fa.tar.gz wireshark-7db4c88dcdb5758beed31f788aeac593cf7db0fa.tar.bz2 wireshark-7db4c88dcdb5758beed31f788aeac593cf7db0fa.zip |
Dissect spoolss FCPN. Not sure what it stands for.
svn path=/trunk/; revision=5632
-rw-r--r-- | packet-dcerpc-spoolss.c | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/packet-dcerpc-spoolss.c b/packet-dcerpc-spoolss.c index b4591144d2..547dc19c13 100644 --- a/packet-dcerpc-spoolss.c +++ b/packet-dcerpc-spoolss.c @@ -2,7 +2,7 @@ * Routines for SMB \PIPE\spoolss packet disassembly * Copyright 2001-2002, Tim Potter <tpot@samba.org> * - * $Id: packet-dcerpc-spoolss.c,v 1.34 2002/06/06 03:18:14 tpot Exp $ + * $Id: packet-dcerpc-spoolss.c,v 1.35 2002/06/06 05:46:55 tpot Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -4802,6 +4802,51 @@ static int SpoolssReplyClosePrinter_r(tvbuff_t *tvb, int offset, return offset; } +/* + * FCPN + */ + +static int SpoolssFCPN_q(tvbuff_t *tvb, int offset, packet_info *pinfo, + proto_tree *tree, char *drep) +{ + dcerpc_info *di = (dcerpc_info *)pinfo->private_data; + dcerpc_call_value *dcv = (dcerpc_call_value *)di->call_data; + + if (dcv->rep_frame != 0) + proto_tree_add_text(tree, tvb, offset, 0, + "Reply in frame %u", dcv->rep_frame); + + /* Parse packet */ + + offset = dissect_nt_policy_hnd(tvb, offset, pinfo, tree, drep, + hf_spoolss_hnd, NULL, + FALSE, FALSE); + + dcerpc_smb_check_long_frame(tvb, offset, pinfo, tree); + + return offset; +} + +static int SpoolssFCPN_r(tvbuff_t *tvb, int offset, packet_info *pinfo, + proto_tree *tree, char *drep) +{ + dcerpc_info *di = (dcerpc_info *)pinfo->private_data; + dcerpc_call_value *dcv = (dcerpc_call_value *)di->call_data; + + if (dcv->req_frame != 0) + proto_tree_add_text(tree, tvb, offset, 0, + "Request in frame %u", dcv->req_frame); + + /* Parse packet */ + + offset = dissect_doserror(tvb, offset, pinfo, tree, drep, + hf_spoolss_rc, NULL); + + dcerpc_smb_check_long_frame(tvb, offset, pinfo, tree); + + return offset; +} + #if 0 /* Templates for new subdissectors */ @@ -4969,7 +5014,7 @@ static dcerpc_sub_dissector dcerpc_spoolss_dissectors[] = { "FindNextPrinterChangeNotification", NULL, SpoolssGeneric_r }, { SPOOLSS_FCPN, "FCPN", - NULL, SpoolssGeneric_r }, + SpoolssFCPN_q, SpoolssFCPN_r }, { SPOOLSS_ROUTERFINDFIRSTPRINTERNOTIFICATIONOLD, "RouterFindFirstPrinterNotificationOld", NULL, SpoolssGeneric_r }, |