aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-3com-njack.c
diff options
context:
space:
mode:
authorwmeier <wmeier@f5534014-38df-0310-8fa8-9805f1628bb7>2012-08-10 03:19:13 +0000
committerwmeier <wmeier@f5534014-38df-0310-8fa8-9805f1628bb7>2012-08-10 03:19:13 +0000
commitc9c4c9d2a050fabcc2f67adbce1509049f2c5e11 (patch)
tree3116eb96d562803ae0ebcfeca06d2a5b59486193 /epan/dissectors/packet-3com-njack.c
parentdd089c7ade81343dc4fb249129db9acf61e104d5 (diff)
General cleanup:
- remove 'if (tree)' * col_...() shouldn't be called under 'if (tree)'; * new-style dissector should alwyas return same 'bytes dissected' (independent of 'if (tree)'); - create/use extended value string; - Use consistent indentation; git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@44414 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-3com-njack.c')
-rw-r--r--epan/dissectors/packet-3com-njack.c256
1 files changed, 128 insertions, 128 deletions
diff --git a/epan/dissectors/packet-3com-njack.c b/epan/dissectors/packet-3com-njack.c
index 7a83fb1a78..d2796ae2f1 100644
--- a/epan/dissectors/packet-3com-njack.c
+++ b/epan/dissectors/packet-3com-njack.c
@@ -56,6 +56,7 @@ Specs:
#endif
#include <glib.h>
+
#include <epan/packet.h>
#include <epan/emem.h>
@@ -206,6 +207,7 @@ static const value_string njack_cmd_vals[] = {
{ 0, NULL }
};
+static value_string_ext njack_cmd_vals_ext = VALUE_STRING_EXT_INIT(njack_cmd_vals);
typedef enum {
NJACK_SETRESULT_SUCCESS = 0x01,
@@ -381,8 +383,8 @@ dissect_portsettings(tvbuff_t *tvb, proto_tree *port_tree, guint32 offset)
static int
dissect_tlvs(tvbuff_t *tvb, proto_tree *njack_tree, guint32 offset)
{
- guint8 tlv_type;
- guint8 tlv_length;
+ guint8 tlv_type;
+ guint8 tlv_length;
proto_item *tlv_item;
proto_item *tlv_tree;
@@ -407,7 +409,7 @@ dissect_tlvs(tvbuff_t *tvb, proto_tree *njack_tree, guint32 offset)
"T %02x, L %02x: %s",
tlv_type,
tlv_length,
- val_to_str(tlv_type, njack_cmd_vals, "Unknown"));
+ val_to_str_ext_const(tlv_type, &njack_cmd_vals_ext, "Unknown"));
tlv_tree = proto_item_add_subtree(tlv_item,
ett_njack_tlv_header);
proto_tree_add_item(tlv_tree, hf_njack_tlv_type,
@@ -519,18 +521,18 @@ verify_password(tvbuff_t *tvb, const char *password)
{
/* 1. pad non-terminated password-string to a length of 32 bytes
* (padding: 0x01, 0x02, 0x03...)
- * 2. Calculate MD5 of padded password and write it to offset 12 of packet
- * 3. Calculate MD5 of resulting packet and write it to offset 12 of packet
+ * 2. Calculate MD5 of padded password and write it to offset 12 of packet
+ * 3. Calculate MD5 of resulting packet and write it to offset 12 of packet
*/
- gboolean is_valid = TRUE;
- const guint8 *packetdata;
- guint32 length;
- guint8 *workbuffer;
- guint i;
- guint8 byte;
- md5_state_t md_ctx;
- md5_byte_t *digest;
+ gboolean is_valid = TRUE;
+ const guint8 *packetdata;
+ guint32 length;
+ guint8 *workbuffer;
+ guint i;
+ guint8 byte;
+ md5_state_t md_ctx;
+ md5_byte_t *digest;
workbuffer=ep_alloc(32);
digest=ep_alloc(16);
@@ -569,75 +571,73 @@ static int
dissect_njack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
proto_item *ti;
- proto_tree *njack_tree = NULL;
- guint32 offset = 0;
- guint8 packet_type;
- guint8 setresult;
- gint remaining;
+ proto_tree *njack_tree;
+ guint32 offset = 0;
+ guint8 packet_type;
+ guint8 setresult;
+ gint remaining;
packet_type = tvb_get_guint8(tvb, 5);
col_set_str(pinfo->cinfo, COL_PROTOCOL, PROTO_SHORT_NAME);
- col_add_str(pinfo->cinfo, COL_INFO, val_to_str(packet_type, njack_type_vals, "Type 0x%02x"));
-
- if (tree) {
- ti = proto_tree_add_item(tree, proto_njack, tvb, offset, -1,
- ENC_NA);
- njack_tree = proto_item_add_subtree(ti, ett_njack);
-
- proto_tree_add_item(njack_tree, hf_njack_magic, tvb, offset, 5,
- ENC_ASCII|ENC_NA);
- offset += 5;
-
- proto_tree_add_item(njack_tree, hf_njack_type, tvb, offset, 1,
- ENC_BIG_ENDIAN);
+ col_add_str(pinfo->cinfo, COL_INFO, val_to_str(packet_type, njack_type_vals, "Type 0x%02x"));
+
+ ti = proto_tree_add_item(tree, proto_njack, tvb, offset, -1,
+ ENC_NA);
+ njack_tree = proto_item_add_subtree(ti, ett_njack);
+
+ proto_tree_add_item(njack_tree, hf_njack_magic, tvb, offset, 5,
+ ENC_ASCII|ENC_NA);
+ offset += 5;
+
+ proto_tree_add_item(njack_tree, hf_njack_type, tvb, offset, 1,
+ ENC_BIG_ENDIAN);
+ offset += 1;
+ switch (packet_type) {
+ case NJACK_TYPE_SET:
+ /* Type 0x07: S -> M, Magic, type, length (16 bit be) */
+ proto_tree_add_item(njack_tree, hf_njack_set_length, tvb, offset,
+ 2, ENC_BIG_ENDIAN);
+ offset += 2;
+ proto_tree_add_item(njack_tree, hf_njack_set_salt, tvb, offset,
+ 4, ENC_LITTLE_ENDIAN);
+ offset += 4;
+ proto_tree_add_item(njack_tree, hf_njack_set_authdata, tvb, offset,
+ 16, ENC_NA);
+ offset += 16;
+ offset = dissect_tlvs(tvb, njack_tree, offset);
+ break;
+ case NJACK_TYPE_SETRESULT:
+ /* Type 0x08: M -> S, Magic, type, setresult (8 bit) */
+ setresult = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(njack_tree, hf_njack_setresult, tvb, offset,
+ 1, ENC_BIG_ENDIAN);
offset += 1;
- switch (packet_type) {
- case NJACK_TYPE_SET:
- /* Type 0x07: S -> M, Magic, type, length (16 bit be) */
- proto_tree_add_item(njack_tree, hf_njack_set_length, tvb, offset,
- 2, ENC_BIG_ENDIAN);
- offset += 2;
- proto_tree_add_item(njack_tree, hf_njack_set_salt, tvb, offset,
- 4, ENC_LITTLE_ENDIAN);
- offset += 4;
- proto_tree_add_item(njack_tree, hf_njack_set_authdata, tvb, offset,
- 16, ENC_NA);
- offset += 16;
- offset = dissect_tlvs(tvb, njack_tree, offset);
- break;
- case NJACK_TYPE_SETRESULT:
- /* Type 0x08: M -> S, Magic, type, setresult (8 bit) */
- setresult = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(njack_tree, hf_njack_setresult, tvb, offset,
- 1, ENC_BIG_ENDIAN);
- offset += 1;
- col_append_fstr(pinfo->cinfo, COL_INFO, ": %s",
- val_to_str(setresult, njack_setresult_vals, "[0x%02x]"));
- break;
- case NJACK_TYPE_GET:
- /* Type 0x0b: S -> M, Magic, type, 00 00 63 ff */
- offset = dissect_tlvs(tvb, njack_tree, offset);
- break;
- case NJACK_TYPE_QUERYRESP:
- /* Type 0x02: M -> S, Magic, type, T(8 bit) L(8 bit) V(L bytes) */
- case NJACK_TYPE_GETRESP:
- /* Type 0x0c: M -> S, Magic, type, T(8 bit) L(8 bit) V(L bytes) */
- offset = dissect_tlvs(tvb, njack_tree, offset);
- proto_tree_add_item(njack_tree, hf_njack_getresp_unknown1, tvb, offset,
- 1, ENC_BIG_ENDIAN);
- offset += 1;
- break;
- case NJACK_TYPE_DHCPINFO: /* not completely understood */
- default:
- /* Unknown type */
- remaining = tvb_reported_length_remaining(tvb, offset);
- if (remaining > 0) {
- proto_tree_add_item(njack_tree, hf_njack_tlv_data,
- tvb, offset, remaining, ENC_NA);
- offset += remaining;
- }
- break;
+ col_append_fstr(pinfo->cinfo, COL_INFO, ": %s",
+ val_to_str(setresult, njack_setresult_vals, "[0x%02x]"));
+ break;
+ case NJACK_TYPE_GET:
+ /* Type 0x0b: S -> M, Magic, type, 00 00 63 ff */
+ offset = dissect_tlvs(tvb, njack_tree, offset);
+ break;
+ case NJACK_TYPE_QUERYRESP:
+ /* Type 0x02: M -> S, Magic, type, T(8 bit) L(8 bit) V(L bytes) */
+ case NJACK_TYPE_GETRESP:
+ /* Type 0x0c: M -> S, Magic, type, T(8 bit) L(8 bit) V(L bytes) */
+ offset = dissect_tlvs(tvb, njack_tree, offset);
+ proto_tree_add_item(njack_tree, hf_njack_getresp_unknown1, tvb, offset,
+ 1, ENC_BIG_ENDIAN);
+ offset += 1;
+ break;
+ case NJACK_TYPE_DHCPINFO: /* not completely understood */
+ default:
+ /* Unknown type */
+ remaining = tvb_reported_length_remaining(tvb, offset);
+ if (remaining > 0) {
+ proto_tree_add_item(njack_tree, hf_njack_tlv_data,
+ tvb, offset, remaining, ENC_NA);
+ offset += remaining;
}
+ break;
}
return offset;
}
@@ -688,66 +688,66 @@ proto_register_njack(void)
/* TLV fields */
{ &hf_njack_tlv_type,
- { "TlvType", "njack.tlv.type", FT_UINT8, BASE_HEX, VALS(njack_cmd_vals),
+ { "TlvType", "njack.tlv.type", FT_UINT8, BASE_HEX | BASE_EXT_STRING, &njack_cmd_vals_ext,
0x0, NULL, HFILL }},
{ &hf_njack_tlv_length,
{ "TlvLength", "njack.tlv.length", FT_UINT8, BASE_HEX, NULL,
0x0, NULL, HFILL }},
- { &hf_njack_tlv_data,
- { "TlvData", "njack.tlv.data", FT_BYTES, BASE_NONE, NULL,
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_data,
+ { "TlvData", "njack.tlv.data", FT_BYTES, BASE_NONE, NULL,
+ 0x0, NULL, HFILL }},
- { &hf_njack_tlv_version,
- { "TlvFwVersion", "njack.tlv.version", FT_IPv4, BASE_NONE, NULL,
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_version,
+ { "TlvFwVersion", "njack.tlv.version", FT_IPv4, BASE_NONE, NULL,
+ 0x0, NULL, HFILL }},
- { &hf_njack_tlv_snmpwrite,
- { "TlvTypeSnmpwrite", "njack.tlv.snmpwrite", FT_UINT8, BASE_DEC, VALS(njack_snmpwrite),
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_snmpwrite,
+ { "TlvTypeSnmpwrite", "njack.tlv.snmpwrite", FT_UINT8, BASE_DEC, VALS(njack_snmpwrite),
+ 0x0, NULL, HFILL }},
- { &hf_njack_tlv_dhcpcontrol,
- { "TlvTypeDhcpControl", "njack.tlv.dhcpcontrol", FT_UINT8, BASE_DEC, VALS(njack_dhcpcontrol),
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_dhcpcontrol,
+ { "TlvTypeDhcpControl", "njack.tlv.dhcpcontrol", FT_UINT8, BASE_DEC, VALS(njack_dhcpcontrol),
+ 0x0, NULL, HFILL }},
- { &hf_njack_tlv_devicemac,
- { "TlvTypeDeviceMAC", "njack.tlv.devicemac", FT_ETHER, BASE_NONE, NULL,
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_devicemac,
+ { "TlvTypeDeviceMAC", "njack.tlv.devicemac", FT_ETHER, BASE_NONE, NULL,
+ 0x0, NULL, HFILL }},
/* XXX dummy entries, to be replaced */
- { &hf_njack_tlv_typeip,
- { "TlvTypeIP", "njack.tlv.typeip", FT_IPv4, BASE_NONE, NULL,
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_typeip,
+ { "TlvTypeIP", "njack.tlv.typeip", FT_IPv4, BASE_NONE, NULL,
+ 0x0, NULL, HFILL }},
- { &hf_njack_tlv_typestring,
- { "TlvTypeString", "njack.tlv.typestring", FT_STRING, BASE_NONE, NULL,
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_typestring,
+ { "TlvTypeString", "njack.tlv.typestring", FT_STRING, BASE_NONE, NULL,
+ 0x0, NULL, HFILL }},
/* 1st tab */
- { &hf_njack_tlv_scheduling,
- { "TlvTypeScheduling", "njack.tlv.scheduling", FT_UINT8, BASE_DEC, VALS(njack_scheduling),
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_scheduling,
+ { "TlvTypeScheduling", "njack.tlv.scheduling", FT_UINT8, BASE_DEC, VALS(njack_scheduling),
+ 0x0, NULL, HFILL }},
- { &hf_njack_tlv_addtagscheme,
- { "TlvAddTagScheme", "njack.tlv.addtagscheme", FT_UINT8, BASE_DEC, VALS(njack_addtagscheme),
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_addtagscheme,
+ { "TlvAddTagScheme", "njack.tlv.addtagscheme", FT_UINT8, BASE_DEC, VALS(njack_addtagscheme),
+ 0x0, NULL, HFILL }},
- { &hf_njack_tlv_portingressmode,
- { "TlvTypePortingressmode", "njack.tlv.portingressmode", FT_UINT8, BASE_DEC, VALS(njack_portingressmode),
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_portingressmode,
+ { "TlvTypePortingressmode", "njack.tlv.portingressmode", FT_UINT8, BASE_DEC, VALS(njack_portingressmode),
+ 0x0, NULL, HFILL }},
- { &hf_njack_tlv_maxframesize,
- { "TlvTypeMaxframesize", "njack.tlv.maxframesize", FT_UINT8, BASE_DEC, VALS(njack_maxframesize),
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_maxframesize,
+ { "TlvTypeMaxframesize", "njack.tlv.maxframesize", FT_UINT8, BASE_DEC, VALS(njack_maxframesize),
+ 0x0, NULL, HFILL }},
- { &hf_njack_tlv_countermode,
- { "TlvTypeCountermode", "njack.tlv.countermode", FT_UINT8, BASE_DEC, VALS(njack_countermode),
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_countermode,
+ { "TlvTypeCountermode", "njack.tlv.countermode", FT_UINT8, BASE_DEC, VALS(njack_countermode),
+ 0x0, NULL, HFILL }},
- { &hf_njack_tlv_powerforwarding,
- { "TlvTypePowerforwarding", "njack.tlv.powerforwarding", FT_UINT8, BASE_DEC, VALS(njack_powerforwarding),
- 0x0, NULL, HFILL }},
+ { &hf_njack_tlv_powerforwarding,
+ { "TlvTypePowerforwarding", "njack.tlv.powerforwarding", FT_UINT8, BASE_DEC, VALS(njack_powerforwarding),
+ 0x0, NULL, HFILL }},
/* Type 0x07: set */
{ &hf_njack_set_length,
@@ -758,14 +758,14 @@ proto_register_njack(void)
{ "Salt", "njack.set.salt", FT_UINT32, BASE_HEX, NULL,
0x0, NULL, HFILL }},
- { &hf_njack_set_authdata,
- { "Authdata", "njack.tlv.authdata", FT_BYTES, BASE_NONE, NULL,
- 0x0, NULL, HFILL }},
+ { &hf_njack_set_authdata,
+ { "Authdata", "njack.tlv.authdata", FT_BYTES, BASE_NONE, NULL,
+ 0x0, NULL, HFILL }},
/* Type 0x08: set result */
- { &hf_njack_setresult,
- { "SetResult", "njack.setresult", FT_UINT8, BASE_HEX, VALS(njack_setresult_vals),
- 0x0, NULL, HFILL }},
+ { &hf_njack_setresult,
+ { "SetResult", "njack.setresult", FT_UINT8, BASE_HEX, VALS(njack_setresult_vals),
+ 0x0, NULL, HFILL }},
/* Type 0x0b get */
@@ -774,14 +774,14 @@ proto_register_njack(void)
{ "Unknown1", "njack.getresp.unknown1", FT_UINT8, BASE_HEX, NULL,
0x0, NULL, HFILL }},
- };
+ };
static gint *ett[] = {
&ett_njack,
&ett_njack_tlv_header,
};
- proto_njack = proto_register_protocol(PROTO_LONG_NAME, PROTO_SHORT_NAME, "njack");
- proto_register_field_array(proto_njack, hf, array_length(hf));
+ proto_njack = proto_register_protocol(PROTO_LONG_NAME, PROTO_SHORT_NAME, "njack");
+ proto_register_field_array(proto_njack, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
@@ -796,7 +796,7 @@ proto_reg_handoff_njack(void)
dissector_add_uint("udp.port", PORT_NJACK_SWITCH, njack_handle);
/* dissector_add_uint("tcp.port", PORT_NJACK_SWITCH, njack_handle); */
- heur_dissector_add("udp", dissect_njack_heur, proto_njack);
- /* heur_dissector_add("tcp", dissect_njack_heur, proto_njack); */
+ heur_dissector_add("udp", dissect_njack_heur, proto_njack);
+ /* heur_dissector_add("tcp", dissect_njack_heur, proto_njack); */
}