Ethereal-dev: [Ethereal-dev] packet-smb.c
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "Pia Sahlberg" <piabar@xxxxxxxxxxx>
Date: Fri, 10 Aug 2001 01:13:43 +0000
Hi list
Attached is a small patch for packet-smb.c.
best regards
ronnie sahlberg
Get your FREE download of MSN Explorer at http://explorer.msn.com
diff -u -r -x *.[^ch]|nmake|am ethereal-orig/packet-smb.c ethereal/packet-smb.c
--- ethereal-orig/packet-smb.c Tue Aug 7 08:45:14 2001 +++ ethereal/packet-smb.c Fri Aug 10 08:16:47 2001 @@ -53,7 +53,6 @@ #include "packet-smb-pipe.h" static int proto_smb = -1; - static int hf_smb_cmd = -1; static gint ett_smb = -1; @@ -73,7 +72,7 @@ static gint ett_smb_action = -1; static gint ett_smb_writemode = -1; static gint ett_smb_lock_type = -1; - +static gint ett_smb_header = -1; /* @@ -191,6 +190,10 @@static void (*dissect[256])(const u_char *, int, frame_data *, proto_tree *, proto_tree *, struct smb_info si, int, int, int);
++/* NOTEr: this value_string is accessed directly by index and not val_to_str().
+ * That means that ALL entries 0x00-0xFF MUST exists and be in order. + */ static const value_string smb_cmd_vals[] = { { 0x00, "SMBcreatedirectory" }, { 0x01, "SMBdeletedirectory" }, @@ -451,265 +454,6 @@ { 0x00, NULL }, }; -char *SMB_names[256] = { - "SMBcreatedirectory", - "SMBdeletedirectory", - "SMBopen", - "SMBcreate", - "SMBclose", - "SMBflush", - "SMBunlink", - "SMBmv", - "SMBgetatr", - "SMBsetatr", - "SMBread", - "SMBwrite", - "SMBlock", - "SMBunlock", - "SMBctemp", - "SMBmknew", - "SMBchkpth", - "SMBexit", - "SMBlseek", - "SMBlockread", - "SMBwriteunlock", - "unknown-0x15", - "unknown-0x16", - "unknown-0x17", - "unknown-0x18", - "unknown-0x19", - "SMBreadBraw", - "SMBreadBmpx", - "SMBreadBs", - "SMBwriteBraw", - "SMBwriteBmpx", - "SMBwriteBs", - "SMBwriteC", - "unknown-0x21", - "SMBsetattrE", - "SMBgetattrE", - "SMBlockingX", - "SMBtrans", - "SMBtranss", - "SMBioctl", - "SMBioctls", - "SMBcopy", - "SMBmove", - "SMBecho", - "SMBwriteclose", - "SMBopenX", - "SMBreadX", - "SMBwriteX", - "unknown-0x30", - "SMBcloseandtreedisc", - "SMBtrans2", - "SMBtrans2secondary", - "SMBfindclose2", - "SMBfindnotifyclose", - "unknown-0x36", - "unknown-0x37", - "unknown-0x38", - "unknown-0x39", - "unknown-0x3A", - "unknown-0x3B", - "unknown-0x3C", - "unknown-0x3D", - "unknown-0x3E", - "unknown-0x3F", - "unknown-0x40", - "unknown-0x41", - "unknown-0x42", - "unknown-0x43", - "unknown-0x44", - "unknown-0x45", - "unknown-0x46", - "unknown-0x47", - "unknown-0x48", - "unknown-0x49", - "unknown-0x4A", - "unknown-0x4B", - "unknown-0x4C", - "unknown-0x4D", - "unknown-0x4E", - "unknown-0x4F", - "unknown-0x50", - "unknown-0x51", - "unknown-0x52", - "unknown-0x53", - "unknown-0x54", - "unknown-0x55", - "unknown-0x56", - "unknown-0x57", - "unknown-0x58", - "unknown-0x59", - "unknown-0x5A", - "unknown-0x5B", - "unknown-0x5C", - "unknown-0x5D", - "unknown-0x5E", - "unknown-0x5F", - "unknown-0x60", - "unknown-0x61", - "unknown-0x62", - "unknown-0x63", - "unknown-0x64", - "unknown-0x65", - "unknown-0x66", - "unknown-0x67", - "unknown-0x68", - "unknown-0x69", - "unknown-0x6A", - "unknown-0x6B", - "unknown-0x6C", - "unknown-0x6D", - "unknown-0x6E", - "unknown-0x6F", - "SMBtcon", - "SMBtdis", - "SMBnegprot", - "SMBsesssetupX", - "SMBlogoffX", - "SMBtconX", - "unknown-0x76", - "unknown-0x77", - "unknown-0x78", - "unknown-0x79", - "unknown-0x7A", - "unknown-0x7B", - "unknown-0x7C", - "unknown-0x7D", - "unknown-0x7E", - "unknown-0x7F", - "SMBdskattr", - "SMBsearch", - "SMBffirst", - "SMBfunique", - "SMBfclose", - "unknown-0x85", - "unknown-0x86", - "unknown-0x87", - "unknown-0x88", - "unknown-0x89", - "unknown-0x8A", - "unknown-0x8B", - "unknown-0x8C", - "unknown-0x8D", - "unknown-0x8E", - "unknown-0x8F", - "unknown-0x90", - "unknown-0x91", - "unknown-0x92", - "unknown-0x93", - "unknown-0x94", - "unknown-0x95", - "unknown-0x96", - "unknown-0x97", - "unknown-0x98", - "unknown-0x99", - "unknown-0x9A", - "unknown-0x9B", - "unknown-0x9C", - "unknown-0x9D", - "unknown-0x9E", - "unknown-0x9F", - "SMBnttransact", - "SMBnttransactsecondary", - "SMBntcreateX", - "unknown-0xA3", - "SMBntcancel", - "unknown-0xA5", - "unknown-0xA6", - "unknown-0xA7", - "unknown-0xA8", - "unknown-0xA9", - "unknown-0xAA", - "unknown-0xAB", - "unknown-0xAC", - "unknown-0xAD", - "unknown-0xAE", - "unknown-0xAF", - "unknown-0xB0", - "unknown-0xB1", - "unknown-0xB2", - "unknown-0xB3", - "unknown-0xB4", - "unknown-0xB5", - "unknown-0xB6", - "unknown-0xB7", - "unknown-0xB8", - "unknown-0xB9", - "unknown-0xBA", - "unknown-0xBB", - "unknown-0xBC", - "unknown-0xBD", - "unknown-0xBE", - "unknown-0xBF", - "SMBsplopen", - "SMBsplwr", - "SMBsplclose", - "SMBsplretq", - "unknown-0xC4", - "unknown-0xC5", - "unknown-0xC6", - "unknown-0xC7", - "unknown-0xC8", - "unknown-0xC9", - "unknown-0xCA", - "unknown-0xCB", - "unknown-0xCC", - "unknown-0xCD", - "unknown-0xCE", - "unknown-0xCF", - "SMBsends", - "SMBsendb", - "SMBfwdname", - "SMBcancelf", - "SMBgetmac", - "SMBsendstrt", - "SMBsendend", - "SMBsendtxt", - "SMBreadbulk", - "SMBwritebulk", - "SMBwritebulkdata", - "unknown-0xDB", - "unknown-0xDC", - "unknown-0xDD", - "unknown-0xDE", - "unknown-0xDF", - "unknown-0xE0", - "unknown-0xE1", - "unknown-0xE2", - "unknown-0xE3", - "unknown-0xE4", - "unknown-0xE5", - "unknown-0xE6", - "unknown-0xE7", - "unknown-0xE8", - "unknown-0xE9", - "unknown-0xEA", - "unknown-0xEB", - "unknown-0xEC", - "unknown-0xED", - "unknown-0xEE", - "unknown-0xEF", - "unknown-0xF0", - "unknown-0xF1", - "unknown-0xF2", - "unknown-0xF3", - "unknown-0xF4", - "unknown-0xF5", - "unknown-0xF6", - "unknown-0xF7", - "unknown-0xF8", - "unknown-0xF9", - "unknown-0xFA", - "unknown-0xFB", - "unknown-0xFC", - "unknown-0xFD", - "SMBinvalid", - "unknown-0xFF" -}; - voiddissect_unknown_smb(const u_char *pd, int offset, frame_data *fd, proto_tree *parent, proto_tree *tree, struct smb_info si, int max_data, int SMB_offset, int errcode)
{ @@ -10704,7 +10448,7 @@ char *decode_smb_name(unsigned char cmd) { - return(SMB_names[cmd]); + return(smb_cmd_vals[cmd].strptr); } @@ -10891,7 +10635,7 @@ if (tree) { - proto_tree_add_uint(smb_tree, hf_smb_cmd, NullTVB, offset, 1, cmd);+ proto_tree_add_uint_format(smb_tree, hf_smb_cmd, NullTVB, offset, 1, cmd, "SMB Command: %s (0x%02x)", decode_smb_name(cmd), cmd);
} @@ -11163,8 +10907,8 @@ { static hf_register_info hf[] = { { &hf_smb_cmd, - { "SMB Command", "smb.cmd", - FT_UINT8, BASE_HEX, VALS(smb_cmd_vals), 0x0, "", HFILL }} + { "SMB Command", "smb.cmd", FT_UINT8, BASE_HEX, + NULL, 0x0, "SMB Command", HFILL }} }; static gint *ett[] = { &ett_smb,
- Follow-Ups:
- Re: [Ethereal-dev] packet-smb.c
- From: Guy Harris
- Re: [Ethereal-dev] packet-smb.c
- Prev by Date: [Ethereal-dev] nfs filename snooping
- Next by Date: Re: [Ethereal-dev] packet-smb.c
- Previous by thread: [Ethereal-dev] nfs filename snooping
- Next by thread: Re: [Ethereal-dev] packet-smb.c
- Index(es):