Ethereal-dev: [Ethereal-dev] Update to NCP dissector
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "Greg Morris" <gmorris@xxxxxxxxxx>
Date: Fri, 11 Nov 2005 17:55:45 +0100
|
The following diff (based on current SVN) fixes the following...
1. Adds additional return value 0xa901
"Invalid Data Type Flag (outdated return value - replaced in NSS as 0x89aa error)"
for 87/xx NCP's.
2. Fixes decode for NCP 87/20 reply packets
3. Fixes decode for NCP 89/53 request packets
Please check-in,
Greg
|
Index: ncp2222.py
===================================================================
--- ncp2222.py (revision 16475)
+++ ncp2222.py (working copy)
@@ -2681,6 +2681,7 @@
MaxNumOfStacks = uint32("max_num_of_stacks", "Maximum Number Of Stacks")
MaxNumOfUsers = uint32("max_num_of_users", "Maximum Number Of Users")
MaxNumOfVol = uint32("max_num_of_vol", "Maximum Number of Volumes")
+MaxReadDataReplySize = uint16("max_read_data_reply_size", "Max Read Data Reply Size")
MaxSpace = uint32("maxspace", "Maximum Space")
MaxUsedDynamicSpace = uint32("max_used_dynamic_space", "Max Used Dynamic Space")
MediaList = uint32("media_list", "Media List")
@@ -11914,7 +11915,7 @@
pkt.ReqCondSizeVariable()
pkt.CompletionCodes([0x0000, 0x0102, 0x7f00, 0x8001, 0x8101, 0x8401, 0x8501,
0x8701, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9400, 0x9600,
- 0x9804, 0x9b03, 0x9c03, 0xa500, 0xa802, 0xbf00, 0xfd00, 0xff16])
+ 0x9804, 0x9b03, 0x9c03, 0xa500, 0xa802, 0xa901, 0xbf00, 0xfd00, 0xff16])
# 2222/5702, 87/02
pkt = NCP(0x5702, "Initialize Search", 'file', has_length=0)
pkt.Request( (18,272), [
@@ -11933,7 +11934,7 @@
])
pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
- 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
+ 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
# 2222/5703, 87/03
pkt = NCP(0x5703, "Search for File or Subdirectory", 'file', has_length=0)
pkt.Request((26, 280), [
@@ -11999,7 +12000,7 @@
pkt.ReqCondSizeVariable()
pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
- 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
+ 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
# 2222/5704, 87/04
pkt = NCP(0x5704, "Rename Or Move a File or Subdirectory", 'file', has_length=0)
pkt.Request((28, 536), [
@@ -12020,7 +12021,7 @@
pkt.Reply(8)
pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
0x8701, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9200, 0x9600,
- 0x9804, 0x9a00, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
+ 0x9804, 0x9a00, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
# 2222/5705, 87/05
pkt = NCP(0x5705, "Scan File or Subdirectory for Trustees", 'file', has_length=0)
pkt.Request((24, 278), [
@@ -12041,7 +12042,7 @@
])
pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
- 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
+ 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
# 2222/5706, 87/06
pkt = NCP(0x5706, "Obtain File or SubDirectory Information", 'file', has_length=0)
pkt.Request((24,278), [
@@ -12111,7 +12112,7 @@
pkt.ReqCondSizeVariable()
pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
0x8700, 0x8900, 0x8d00, 0x8f00, 0x9001, 0x9600,
- 0x9804, 0x9b03, 0x9c03, 0xa802, 0xbf00, 0xfd00, 0xff16])
+ 0x9802, 0x9b03, 0x9c03, 0xa802, 0xa901, 0xbf00, 0xfd00, 0xff16])
# 2222/5707, 87/07
pkt = NCP(0x5707, "Modify File or Subdirectory DOS Information", 'file', has_length=0)
pkt.Request((62,316), [
@@ -12145,7 +12146,7 @@
pkt.Reply(8)
pkt.CompletionCodes([0x0000, 0x0102, 0x8000, 0x8101, 0x8401, 0x8501,
0x8701, 0x8c01, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9600,
- 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
+ 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
# 2222/5708, 87/08
pkt = NCP(0x5708, "Delete a File or Subdirectory", 'file', has_length=0)
pkt.Request((20,274), [
@@ -12161,7 +12162,7 @@
pkt.Reply(8)
pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
0x8701, 0x8900, 0x8a00, 0x8d00, 0x8e00, 0x8f00, 0x9001, 0x9600,
- 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
+ 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
# 2222/5709, 87/09
pkt = NCP(0x5709, "Set Short Directory Handle", 'file', has_length=0)
pkt.Request((20,274), [
@@ -12178,7 +12179,7 @@
pkt.Reply(8)
pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
- 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
+ 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
# 2222/570A, 87/10
pkt = NCP(0x570A, "Add Trustee Set to File or Subdirectory", 'file', has_length=0)
pkt.Request((31,285), [
@@ -12197,7 +12198,7 @@
pkt.Reply(8)
pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
- 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfc01, 0xfd00, 0xff16])
+ 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfc01, 0xfd00, 0xff16])
# 2222/570B, 87/11
pkt = NCP(0x570B, "Delete Trustee Set from File or SubDirectory", 'file', has_length=0)
pkt.Request((27,281), [
@@ -12234,7 +12235,7 @@
])
pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
- 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
+ 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
# 2222/5710, 87/16
pkt = NCP(0x5710, "Scan Salvageable Files", 'file', has_length=0)
pkt.Request((26,280), [
@@ -12394,13 +12395,13 @@
srec( AttributesStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_attr == 1)" ),
srec( DataStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_size == 1)" ),
srec( TotalStreamSizeStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_tspace == 1)" ),
+ srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
+ srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
+ srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
srec( CreationInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_create == 1)" ),
- srec( ModifyInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_mod == 1)" ),
- srec( ArchiveInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_arch == 1)" ),
+ srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
+ srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
srec( RightsInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_rights == 1)" ),
- srec( DirEntryStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_dir == 1)" ),
- srec( EAInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_eattr == 1)" ),
- srec( NSInfoStruct, req_cond="(ncp.ext_info_newstyle == 1) && (ncp.ret_info_mask_ns == 1)" ),
srec( ReferenceIDStruct, req_cond="ncp.ret_info_mask_id == 1" ),
srec( NSAttributeStruct, req_cond="ncp.ret_info_mask_ns_attr == 1" ),
srec( DStreamActual, req_cond="ncp.ret_info_mask_actual == 1" ),
@@ -12420,7 +12421,7 @@
pkt.ReqCondSizeVariable()
pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501,
0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600,
- 0x9804, 0x9b03, 0x9c03, 0xbf00, 0xfd00, 0xff16])
+ 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16])
# 2222/5715, 87/21
pkt = NCP(0x5715, "Get Path String from Short Directory Handle", 'file', has_length=0)
pkt.Request(10, [
@@ -14395,14 +14396,15 @@
0xd203, 0xa901, 0xaa00, 0xd301, 0xd402])
# 2222/5935, 89/53
pkt = NCP(0x5935, "Enhanced Read Extended Attribute", 'file', has_length=0 )
- pkt.Request((29,539), [
+ pkt.Request((31,541), [
rec( 8, 2, EAFlags ),
rec( 10, 4, EAHandleOrNetWareHandleOrVolume ),
rec( 14, 4, ReservedOrDirectoryNumber ),
rec( 18, 4, FileOffset ),
rec( 22, 4, InspectSize ),
rec( 26, 1, DataTypeFlag ),
- rec( 27, (2,512), EAKey ),
+ rec( 27, 2, MaxReadDataReplySize ),
+ rec( 29, (2,512), EAKey ),
], info_str=(EAKey, "Enhanced Read Extended Attribute: %s", ", %s"))
pkt.Reply((26,536), [
rec( 8, 4, EAErrorCodes ),
- Follow-Ups:
- SV: [Ethereal-dev] Update to NCP dissector
- From: Anders Broman
- SV: [Ethereal-dev] Update to NCP dissector
- Prev by Date: [Ethereal-dev] using MATE to detect SCTP retransmissions
- Next by Date: Re: [Ethereal-dev] using MATE to detect SCTP retransmissions
- Previous by thread: Re: [Ethereal-dev] using MATE to detect SCTP retransmissions
- Next by thread: SV: [Ethereal-dev] Update to NCP dissector
- Index(es):