Ethereal-dev: [Ethereal-dev] Updates to the 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, 16 Dec 2005 16:01:25 +0100
This patch updates the ncp dissector
1. Changes Dir Handle Type from Boolean to val string
2. Changes Search Mode from Boolean to val string
3. Adds a number of additional attribute definitions
4. Adds file migration state values
5. Adds missing return values
6. Adds NCP 90,150 "File Migration Request"
Please apply,
Greg
|
Index: ncp2222.py =================================================================== --- ncp2222.py (revision 16779) +++ ncp2222.py (working copy) @@ -1258,7 +1258,10 @@ AFPEntryID.Display("BASE_HEX") AllocAvailByte = uint32("alloc_avail_byte", "Bytes Available for Allocation") AllocateMode = bitfield16("alloc_mode", "Allocate Mode", [ - bf_boolean16(0x0001, "alloc_dir_hdl", "Temporary (True) or Permanent (False) Dir Handle"), + bf_val_str16(0x0001, "alloc_dir_hdl", "Dir Handle Type",[ + [0x00, "Permanent"], + [0x01, "Temporary"], + ]), bf_boolean16(0x0002, "alloc_spec_temp_dir_hdl","Special Temporary Directory Handle"), bf_boolean16(0x4000, "alloc_reply_lvl2","Reply Level 2"), bf_boolean16(0x8000, "alloc_dst_name_spc","Destination Name Space Input Parameter"), @@ -1307,15 +1310,36 @@ bf_boolean32(0x00000020, "att_def32_archive", "Archive"), bf_boolean32(0x00000040, "att_def32_execute_confirm", "Execute Confirm"), bf_boolean32(0x00000080, "att_def32_shareable", "Shareable"), + bf_val_str32(0x00000700, "att_def32_search", "Search Mode",[ + [0, "Search on all Read Only Opens"], + [1, "Search on Read Only Opens with no Path"], + [2, "Shell Default Search Mode"], + [3, "Search on all Opens with no Path"], + [4, "Do not Search"], + [5, "Reserved - Do not Use"], + [6, "Search on All Opens"], + [7, "Reserved - Do not Use"], + ]), + bf_boolean32(0x00000800, "att_def32_no_suballoc", "No Suballoc"), bf_boolean32(0x00001000, "att_def32_transaction", "Transactional"), bf_boolean32(0x00004000, "att_def32_read_audit", "Read Audit"), bf_boolean32(0x00008000, "att_def32_write_audit", "Write Audit"), - bf_boolean32(0x00010000, "att_def_purge", "Immediate Purge"), - bf_boolean32(0x00020000, "att_def_reninhibit", "Rename Inhibit"), - bf_boolean32(0x00040000, "att_def_delinhibit", "Delete Inhibit"), - bf_boolean32(0x00080000, "att_def_cpyinhibit", "Copy Inhibit"), - bf_boolean32(0x02000000, "att_def_im_comp", "Immediate Compress"), - bf_boolean32(0x04000000, "att_def_comp", "Compressed"), + bf_boolean32(0x00010000, "att_def32_purge", "Immediate Purge"), + bf_boolean32(0x00020000, "att_def32_reninhibit", "Rename Inhibit"), + bf_boolean32(0x00040000, "att_def32_delinhibit", "Delete Inhibit"), + bf_boolean32(0x00080000, "att_def32_cpyinhibit", "Copy Inhibit"), + bf_boolean32(0x00100000, "att_def32_file_audit", "File Audit"), + bf_boolean32(0x00200000, "att_def32_reserved", "Reserved"), + bf_boolean32(0x00400000, "att_def32_data_migrate", "Data Migrated"), + bf_boolean32(0x00800000, "att_def32_inhibit_dm", "Inhibit Data Migration"), + bf_boolean32(0x01000000, "att_def32_dm_save_key", "Data Migration Save Key"), + bf_boolean32(0x02000000, "att_def32_im_comp", "Immediate Compress"), + bf_boolean32(0x04000000, "att_def32_comp", "Compressed"), + bf_boolean32(0x08000000, "att_def32_comp_inhibit", "Inhibit Compression"), + bf_boolean32(0x10000000, "att_def32_reserved2", "Reserved"), + bf_boolean32(0x20000000, "att_def32_cant_compress", "Can't Compress"), + bf_boolean32(0x40000000, "att_def32_attr_archive", "Archive Attributes"), + bf_boolean32(0x80000000, "att_def32_reserved3", "Reserved"), ]) AttributeValidFlag = uint32("attribute_valid_flag", "Attribute Valid Flag") AuditFileVersionDate = uint16("audit_file_ver_date", "Audit File Version Date") @@ -2168,6 +2192,13 @@ [ 0xff, "Unknown" ], ]) FileLockCount = uint16("file_lock_count", "File Lock Count") +FileMigrationState = val_string8("file_mig_state", "File Migration State", [ + [ 0x00, "Mark file ineligible for file migration" ], + [ 0x01, "Mark file eligible for file migration" ], + [ 0x02, "Mark file as migrated and delete fat chains" ], + [ 0x03, "Reset file status back to normal" ], + [ 0x04, "Get file data back and reset file status back to normal" ], +]) FileMode = uint8("file_mode", "File Mode") FileName = nstring8("file_name", "Filename") FileName12 = fw_string("file_name_12", "Filename", 12) @@ -3178,7 +3209,7 @@ bf_boolean8(0x40, "open_rights_write_thru", "File Write Through"), ]) OptionNumber = uint8("option_number", "Option Number") -originalSize = uint32("original_size", "Original Size") +originalSize = uint32("original_size", "Original Size") OSLanguageID = uint8("os_language_id", "OS Language ID") OSMajorVersion = uint8("os_major_version", "OS Major Version") OSMinorVersion = uint8("os_minor_version", "OS Minor Version") @@ -3225,7 +3256,7 @@ PrimaryEntry = uint32("primary_entry", "Primary Entry") PrintFlags = bitfield8("print_flags", "Print Flags", [ bf_boolean8(0x08, "print_flags_ff", "Suppress Form Feeds"), - bf_boolean8(0x10, "print_flags_cr", "Create"), + bf_boolean8(0x10, "print_flags_cr", "Create"), bf_boolean8(0x20, "print_flags_del_spool", "Delete Spool File after Printing"), bf_boolean8(0x40, "print_flags_exp_tabs", "Expand Tabs in the File"), bf_boolean8(0x80, "print_flags_banner", "Print Banner Page"), @@ -3276,7 +3307,7 @@ PurgeFlags = val_string16("purge_flags", "Purge Flags", [ [ 0x0000, "Do not Purge All" ], [ 0x0001, "Purge All" ], - [ 0xffff, "Do not Purge All" ], + [ 0xffff, "Do not Purge All" ], ]) PurgeList = uint32("purge_list", "Purge List") PhysicalDiskChannel = uint8("physical_disk_channel", "Physical Disk Channel") @@ -3364,15 +3395,15 @@ [ 0x01, "Change Temporary Authenticated to Logged in" ], ]) RequestData = nstring8("request_data", "Request Data") -RequestsReprocessed = uint16("requests_reprocessed", "Requests Reprocessed") +RequestsReprocessed = uint16("requests_reprocessed", "Requests Reprocessed") Reserved = uint8( "reserved", "Reserved" ) Reserved2 = bytes("reserved2", "Reserved", 2) Reserved3 = bytes("reserved3", "Reserved", 3) Reserved4 = bytes("reserved4", "Reserved", 4) Reserved5 = bytes("reserved5", "Reserved", 5) -Reserved6 = bytes("reserved6", "Reserved", 6) +Reserved6 = bytes("reserved6", "Reserved", 6) Reserved8 = bytes("reserved8", "Reserved", 8) -Reserved10 = bytes("reserved10", "Reserved", 10) +Reserved10 = bytes("reserved10", "Reserved", 10) Reserved12 = bytes("reserved12", "Reserved", 12) Reserved16 = bytes("reserved16", "Reserved", 16) Reserved20 = bytes("reserved20", "Reserved", 20) @@ -3520,7 +3551,6 @@ SectorSize = uint32("sector_size", "Sector Size") SemaphoreHandle = uint32("semaphore_handle", "Semaphore Handle") SemaphoreName = nstring8("semaphore_name", "Semaphore Name") -SemaphoreNameLen = uint8("semaphore_name_len", "Semaphore Name Len") SemaphoreOpenCount = uint8("semaphore_open_count", "Semaphore Open Count") SemaphoreShareCount = uint8("semaphore_share_count", "Semaphore Share Count") SemaphoreTimeOut = uint16("semaphore_time_out", "Semaphore Time Out") @@ -3540,7 +3570,6 @@ SequenceNumber.Display("BASE_HEX") ServerAddress = bytes("server_address", "Server Address", 12) ServerAppNumber = uint16("server_app_num", "Server App Number") -#ServerIDList = uint32("server_id_list", "Server ID List") ServerID = uint32("server_id_number", "Server ID", BE ) ServerID.Display("BASE_HEX") ServerInfoFlags = val_string16("server_info_flags", "Server Information Flags", [ @@ -3733,7 +3762,7 @@ TimesyncStatus = bitfield32("timesync_status_flags", "Timesync Status", [ bf_boolean32(0x00000001, "timesync_status_sync", "Time is Synchronized"), bf_boolean32(0x00000002, "timesync_status_net_sync", "Time is Synchronized to the Network"), - bf_boolean32(0x00000004, "timesync_status_active", "Time Synchronization is Active"), + bf_boolean32(0x00000004, "timesync_status_active", "Time Synchronization is Active"), bf_boolean32(0x00000008, "timesync_status_external", "External Time Synchronization Active"), bf_val_str32(0x00000700, "timesync_status_server_type", "Time Server Type", [ [ 0x01, "Client Time Server" ], @@ -8511,7 +8540,7 @@ rec( 8, 1, DirHandle ), rec( 9, 1, AccessRightsMask ), ]) - pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9c03, 0x9d00, + pkt.CompletionCodes([0x0000, 0x9600, 0x9804, 0x9900, 0x9b00, 0x9c03, 0x9d00, 0xa100, 0xfd00, 0xff00]) # 2222/1617, 22/23 pkt = NCP(0x1617, "Extract a Base Handle", 'fileserver') @@ -8593,7 +8622,7 @@ rec( 120, 4, DeletedID, BE ), rec( 124, 16, Reserved16 ), ]) - pkt.CompletionCodes([0x0000, 0xfb01, 0xff1d]) + pkt.CompletionCodes([0x0000, 0xfb01, 0x9801, 0xff1d]) # 2222/161C, 22/28 pkt = NCP(0x161C, "Recover Salvageable File", 'fileserver') pkt.Request((17,525), [ @@ -9165,8 +9194,8 @@ rec( 73, 1, VirtualConsoleVersion ), rec( 74, 1, SecurityRestrictionVersion ), rec( 75, 1, InternetBridgeVersion ), - rec( 76, 1, MixedModePathFlag ), - rec( 77, 1, LocalLoginInfoCcode ), + rec( 76, 1, MixedModePathFlag ), + rec( 77, 1, LocalLoginInfoCcode ), rec( 78, 2, ProductMajorVersion, BE ), rec( 80, 2, ProductMinorVersion, BE ), rec( 82, 2, ProductRevisionVersion, BE ), @@ -9785,7 +9814,7 @@ rec( 16, 1, NewPosition ), ]) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x9600, 0xd000, 0xd100, 0xd500, + pkt.CompletionCodes([0x0000, 0x9600, 0xd000, 0xd100, 0xd300, 0xd500, 0xd601, 0xfe07, 0xff1f]) # 2222/176F, 23/111 pkt = NCP(0x176F, "Attach Queue Server To Queue", 'qms') @@ -9842,7 +9871,7 @@ pkt.Reply(8) pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200, 0xd300, 0xd400, 0xd500, 0xd601, 0xd703, - 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00]) + 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff00]) # 2222/1773, 23/115 pkt = NCP(0x1773, "Abort Servicing Queue Job", 'qms') pkt.Request(16, [ @@ -9852,7 +9881,7 @@ pkt.Reply(8) pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200, 0xd300, 0xd400, 0xd500, 0xd601, 0xd703, - 0xd800, 0xd902, 0xda01, 0xdb02, 0xff18]) + 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff18]) # 2222/1774, 23/116 pkt = NCP(0x1774, "Change To Client Rights", 'qms') pkt.Request(16, [ @@ -9906,7 +9935,7 @@ ]) pkt.CompletionCodes([0x0000, 0x9900, 0xd000, 0xd100, 0xd200, 0xd300, 0xd400, 0xd500, 0xd601, 0xd703, - 0xd800, 0xd902, 0xda01, 0xdb02, 0xff00]) + 0xd800, 0xd902, 0xda01, 0xdb02, 0xfc07, 0xff00]) # 2222/1779, 23/121 pkt = NCP(0x1779, "Create Queue Job And File", 'qms') pkt.Request(264, [ @@ -10881,10 +10910,10 @@ pkt.CompletionCodes([0x0000, 0x8800, 0x9600, 0xfd02, 0xfe04, 0xff03]) # 2222/2000, 32/00 pkt = NCP(0x2000, "Open Semaphore", 'file', has_length=0) - pkt.Request(10, [ + pkt.Request((10,264), [ rec( 8, 1, InitialSemaphoreValue ), - rec( 9, 1, SemaphoreNameLen ), - ]) + rec( 9, (1,255), SemaphoreName ), + ], info_str=(SemaphoreName, "Open Semaphore: %s", ", %s")) pkt.Reply(13, [ rec( 8, 4, SemaphoreHandle, BE ), rec( 12, 1, SemaphoreOpenCount ), @@ -11384,14 +11413,14 @@ rec( 14, 1, NCPextensionRevisionNumber ), rec( 15, (1, 255), NCPextensionName ), ]) - pkt.CompletionCodes([0x0000, 0xfe00]) + pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20]) # 2222/2401, 36/01 pkt = NCP(0x2401, "Get NCP Extension Maximum Data Size", 'fileserver') pkt.Request(10) pkt.Reply(10, [ rec( 8, 2, NCPdataSize ), ]) - pkt.CompletionCodes([0x0000, 0xfe00]) + pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20]) # 2222/2402, 36/02 pkt = NCP(0x2402, "Get NCP Extension Information by Name", 'fileserver') pkt.Request((11, 265), [ @@ -11404,14 +11433,14 @@ rec( 14, 1, NCPextensionRevisionNumber ), rec( 15, (1, 255), NCPextensionName ), ]) - pkt.CompletionCodes([0x0000, 0xfe00, 0xff20]) + pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20]) # 2222/2403, 36/03 pkt = NCP(0x2403, "Get Number of Registered NCP Extensions", 'fileserver') pkt.Request(10) pkt.Reply(12, [ rec( 8, 4, NumberOfNCPExtensions ), ]) - pkt.CompletionCodes([0x0000, 0xfe00]) + pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20]) # 2222/2404, 36/04 pkt = NCP(0x2404, "Get NCP Extension Registered Verbs List", 'fileserver') pkt.Request(14, [ @@ -11422,7 +11451,7 @@ rec( 12, 4, nextStartingNumber ), rec( 16, 4, NCPExtensionNumbers, repeat="x" ), ]) - pkt.CompletionCodes([0x0000, 0xfe00]) + pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20]) # 2222/2405, 36/05 pkt = NCP(0x2405, "Return NCP Extension Information", 'fileserver') pkt.Request(14, [ @@ -11435,14 +11464,14 @@ rec( 14, 1, NCPextensionRevisionNumber ), rec( 15, (1, 255), NCPextensionName ), ]) - pkt.CompletionCodes([0x0000, 0xfe00]) + pkt.CompletionCodes([0x0000, 0x7e01, 0xfe00, 0xff20]) # 2222/2406, 36/06 pkt = NCP(0x2406, "Return NCP Extension Maximum Data Size", 'fileserver') pkt.Request(10) pkt.Reply(12, [ rec( 8, 4, NCPdataSize ), ]) - pkt.CompletionCodes([0x0000, 0xfe00]) + pkt.CompletionCodes([0x0000, 0xfe00, 0xff20]) # 2222/25, 37 pkt = NCP(0x25, "Execute NCP Extension", 'fileserver') pkt.Request(11, [ @@ -11453,7 +11482,7 @@ pkt.Reply(8) # The following value is Unicode #[ 8, (1, 255), ReplyBuffer ], - pkt.CompletionCodes([0x0000, 0x9c00, 0xd504, 0xee00, 0xfe00]) + pkt.CompletionCodes([0x0000, 0x7e01, 0xf000, 0x9c00, 0xd504, 0xee00, 0xfe00, 0xff20]) # 2222/3B, 59 pkt = NCP(0x3B, "Commit File", 'file', has_length=0 ) pkt.Request(14, [ @@ -11774,7 +11803,7 @@ pkt = NCP(0x5602, "Write Extended Attribute", 'file', has_length=0 ) pkt.Request((35,97), [ rec( 8, 2, EAFlags ), - rec( 10, 4, EAHandleOrNetWareHandleOrVolume ), + rec( 10, 4, EAHandleOrNetWareHandleOrVolume, BE ), rec( 14, 4, ReservedOrDirectoryNumber ), rec( 18, 4, TtlWriteDataSize ), rec( 22, 4, FileOffset ), @@ -12228,14 +12257,14 @@ rec( 18, 1, PathCount, var="x" ), rec( 19, (1,255), Path, repeat="x" ), ], info_str=(Path, "Allocate Short Directory Handle to: %s", "/%s")) - pkt.Reply(14, [ - rec( 8, 1, DirHandle ), - rec( 9, 1, VolumeNumber ), - rec( 10, 4, Reserved4 ), + pkt.Reply(NO_LENGTH_CHECK, [ + srec( ReplyLevel2Struct, req_cond="ncp.alloc_reply_lvl2 == TRUE" ), + srec( ReplyLevel1Struct, req_cond="ncp.alloc_reply_lvl2 == FALSE" ), ]) + pkt.ReqCondSizeVariable() pkt.CompletionCodes([0x0000, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa901, 0xbf00, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0x9d00, 0xa901, 0xbf00, 0xfd00, 0xff16]) # 2222/5710, 87/16 pkt = NCP(0x5710, "Scan Salvageable Files", 'file', has_length=0) pkt.Request((26,280), [ @@ -13085,7 +13114,7 @@ rec( 8, 4, FileHandle, BE ), ]) pkt.Reply(16, [ - rec( 8, 8, FileSize64bit, BE ), + rec( 8, 8, FileSize64bit), ]) pkt.CompletionCodes([0x0000, 0x7f00, 0x8800, 0x9600, 0xfd02, 0xff01]) # 2222/5743, 87/67 @@ -13129,9 +13158,9 @@ pkt.Reply(40, [ rec(8, 32, NWAuditStatus ), ]) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5802, 8802 pkt = NCP(0x5802, "Add User Audit Property", "auditing", has_length=0) pkt.Request(25, [ @@ -13142,178 +13171,178 @@ rec(24, 1, AuditFlag ), ]) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5803, 8803 pkt = NCP(0x5803, "Add Auditor Access", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xde00, 0xfd00, 0xff16]) # 2222/5804, 8804 pkt = NCP(0x5804, "Change Auditor Volume Password", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5805, 8805 pkt = NCP(0x5805, "Check Auditor Access", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5806, 8806 pkt = NCP(0x5806, "Delete User Audit Property", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff21]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff21]) # 2222/5807, 8807 pkt = NCP(0x5807, "Disable Auditing On A Volume", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5808, 8808 pkt = NCP(0x5808, "Enable Auditing On A Volume", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xde00, 0xfd00, 0xff16]) # 2222/5809, 8809 pkt = NCP(0x5809, "Query User Being Audited", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/580A, 88,10 pkt = NCP(0x580A, "Read Audit Bit Map", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/580B, 88,11 pkt = NCP(0x580B, "Read Audit File Configuration Header", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/580D, 88,13 pkt = NCP(0x580D, "Remove Auditor Access", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/580E, 88,14 pkt = NCP(0x580E, "Reset Audit File", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/580F, 88,15 pkt = NCP(0x580F, "Auditing NCP", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfb00, 0xfd00, 0xff16]) # 2222/5810, 88,16 pkt = NCP(0x5810, "Write Audit Bit Map", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5811, 88,17 pkt = NCP(0x5811, "Write Audit File Configuration Header", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5812, 88,18 pkt = NCP(0x5812, "Change Auditor Volume Password2", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5813, 88,19 pkt = NCP(0x5813, "Return Audit Flags", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5814, 88,20 pkt = NCP(0x5814, "Close Old Audit File", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5816, 88,22 pkt = NCP(0x5816, "Check Level Two Access", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5817, 88,23 pkt = NCP(0x5817, "Return Old Audit File List", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5818, 88,24 pkt = NCP(0x5818, "Init Audit File Reads", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5819, 88,25 pkt = NCP(0x5819, "Read Auditing File", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/581A, 88,26 pkt = NCP(0x581A, "Delete Old Audit File", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/581E, 88,30 pkt = NCP(0x581E, "Restart Volume auditing", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/581F, 88,31 pkt = NCP(0x581F, "Set Volume Password", "auditing", has_length=0) pkt.Request(8) pkt.Reply(8) - pkt.CompletionCodes([0x0000, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, + pkt.CompletionCodes([0x0000, 0x0106, 0x7300, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa801, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa600, 0xa700, 0xa801, 0xbe00, 0xfd00, 0xff16]) # 2222/5901, 89,01 pkt = NCP(0x5901, "Enhanced Open/Create File or Subdirectory", "file", has_length=0) pkt.Request((37,290), [ @@ -13388,7 +13417,7 @@ pkt.ReqCondSizeVariable() pkt.CompletionCodes([0x0000, 0x0102, 0x7f00, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8d00, 0x8f00, 0x9001, 0x9600, - 0x9804, 0x9b03, 0x9c03, 0xa901, 0xaa00, 0xbf00, 0xfd00, 0xff16]) + 0x9804, 0x9b03, 0x9c03, 0xa901, 0xa500, 0xaa00, 0xbf00, 0xfd00, 0xff16]) # 2222/5902, 89/02 pkt = NCP(0x5902, "Enhanced Initialize Search", 'file', has_length=0) pkt.Request( (25,278), [ @@ -14639,6 +14668,17 @@ pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16]) + # 2222/5A96, 90/150 + pkt = NCP(0x5A96, "File Migration Request", 'file') + pkt.Request(22, [ + rec( 10, 4, VolumeNumberLong ), + rec( 14, 4, DirectoryBase ), + rec( 18, 4, FileMigrationState ), + ]) + pkt.Reply(8) + pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501, + 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, + 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfb00, 0xff16]) # 2222/5C, 91 pkt = NCP(0x5B, "NMAS Graded Authentication", 'nmas') #Need info on this packet structure @@ -14648,70 +14688,70 @@ 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b, 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16]) # SecretStore data is dissected by packet-ncp-sss.c - # 2222/5C00, 9201 + # 2222/5C01, 9201 pkt = NCP(0x5C01, "SecretStore Services (Ping Server)", 'sss', 0) pkt.Request(8) pkt.Reply(8) pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b, 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16]) - # 2222/5C01, 9202 + # 2222/5C02, 9202 pkt = NCP(0x5C02, "SecretStore Services (Fragment)", 'sss', 0) pkt.Request(8) pkt.Reply(8) pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b, 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16]) - # 2222/5C02, 9203 + # 2222/5C03, 9203 pkt = NCP(0x5C03, "SecretStore Services (Write App Secrets)", 'sss', 0) pkt.Request(8) pkt.Reply(8) pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b, 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16]) - # 2222/5C03, 9204 + # 2222/5C04, 9204 pkt = NCP(0x5C04, "SecretStore Services (Add Secret ID)", 'sss', 0) pkt.Request(8) pkt.Reply(8) pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b, 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16]) - # 2222/5C04, 9205 + # 2222/5C05, 9205 pkt = NCP(0x5C05, "SecretStore Services (Remove Secret ID)", 'sss', 0) pkt.Request(8) pkt.Reply(8) pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b, 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16]) - # 2222/5C05, 9206 + # 2222/5C06, 9206 pkt = NCP(0x5C06, "SecretStore Services (Remove SecretStore)", 'sss', 0) pkt.Request(8) pkt.Reply(8) pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b, 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16]) - # 2222/5C06, 9207 + # 2222/5C07, 9207 pkt = NCP(0x5C07, "SecretStore Services (Enumerate Secret IDs)", 'sss', 0) pkt.Request(8) pkt.Reply(8) pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b, 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16]) - # 2222/5C07, 9208 + # 2222/5C08, 9208 pkt = NCP(0x5C08, "SecretStore Services (Unlock Store)", 'sss', 0) pkt.Request(8) pkt.Reply(8) pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b, 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16]) - # 2222/5C08, 9209 + # 2222/5C09, 9209 pkt = NCP(0x5C09, "SecretStore Services (Set Master Password)", 'sss', 0) pkt.Request(8) pkt.Reply(8) pkt.CompletionCodes([0x0000, 0x7e01, 0x8000, 0x8101, 0x8401, 0x8501, 0x8701, 0x8800, 0x8d00, 0x8f00, 0x9001, 0x9600, 0xfb0b, 0x9804, 0x9b03, 0x9c03, 0xa800, 0xfd00, 0xff16]) - # 2222/5C09, 920a + # 2222/5C0a, 9210 pkt = NCP(0x5C0a, "SecretStore Services (Get Service Information)", 'sss', 0) pkt.Request(8) pkt.Reply(8) @@ -15460,8 +15500,8 @@ rec(8, 4, CurrentServerTime ), rec(12, 1, VConsoleVersion ), rec(13, 1, VConsoleRevision ), - rec(14, 2, Reserved2 ), - rec(16, 3, BoardNameStruct ), + rec(14, 2, Reserved2 ), + rec(16, 3, BoardNameStruct ), ]) pkt.CompletionCodes([0x0000, 0x7900, 0x7e01, 0xfb06, 0xff00]) # 2222/7B19, 123/25
- Follow-Ups:
- SV: [Ethereal-dev] Updates to the NCP dissector
- From: Anders Broman
- SV: [Ethereal-dev] Updates to the NCP dissector
- Prev by Date: [Ethereal-dev] Fix for bug 476 [PATCH]
- Next by Date: [Ethereal-dev] New Dissector Novell Cluster Services
- Previous by thread: [Ethereal-dev] Fix for bug 476 [PATCH]
- Next by thread: SV: [Ethereal-dev] Updates to the NCP dissector
- Index(es):