diff options
author | Olivier Biot <obiot.ethereal@gmail.com> | 2004-04-25 20:42:15 +0000 |
---|---|---|
committer | Olivier Biot <obiot.ethereal@gmail.com> | 2004-04-25 20:42:15 +0000 |
commit | 8300516bcb2bd8fb71bb59122c7223818a2facf9 (patch) | |
tree | e7b9b3adc3f2979e17a666ee0908e923869622a7 /packet-wsp.c | |
parent | 63cd8c0bdce99aa3d6d63e484715a4de8e3cb0cf (diff) | |
download | wireshark-8300516bcb2bd8fb71bb59122c7223818a2facf9.tar.gz wireshark-8300516bcb2bd8fb71bb59122c7223818a2facf9.tar.bz2 wireshark-8300516bcb2bd8fb71bb59122c7223818a2facf9.zip |
Fix highlighting of unknown typed parameter bytes (caused an exception to
be thrown when expoerting as PDML.
Implement the Size parameter (WSP 1.4 encoding).
Add the word "parameter" to the parameter header field blurbs.
Provide stubs for the not yet implemented typed parameter decoding, in order
to make the distiction between a valid undecoded and an unknown (and
potentially invalid) typed parameter.
svn path=/trunk/; revision=10698
Diffstat (limited to 'packet-wsp.c')
-rw-r--r-- | packet-wsp.c | 86 |
1 files changed, 74 insertions, 12 deletions
diff --git a/packet-wsp.c b/packet-wsp.c index c36c6b1e98..43c667a60d 100644 --- a/packet-wsp.c +++ b/packet-wsp.c @@ -2,7 +2,7 @@ * * Routines to dissect WSP component of WAP traffic. * - * $Id: packet-wsp.c,v 1.113 2004/04/20 19:27:33 obiot Exp $ + * $Id: packet-wsp.c,v 1.114 2004/04/25 20:42:15 obiot Exp $ * * Refer to the AUTHORS file or the AUTHORS section in the man page * for contacting the author(s) of this file. @@ -281,6 +281,7 @@ static int hf_wsp_parameter_sec = HF_EMPTY; static int hf_wsp_parameter_mac = HF_EMPTY; static int hf_wsp_parameter_upart_type = HF_EMPTY; static int hf_wsp_parameter_level = HF_EMPTY; +static int hf_wsp_parameter_size = HF_EMPTY; static int hf_wsp_reply_data = HF_EMPTY; static int hf_wsp_post_data = HF_EMPTY; static int hf_wsp_push_data = HF_EMPTY; @@ -4202,17 +4203,71 @@ parameter (proto_tree *tree, proto_item *ti, tvbuff_t *tvb, int start, int len) offset = parameter_value_q(tree, ti, tvb, offset); break; + case 0x16: /* WSP 1.4 encoding - Size: Integer-value */ + get_integer_value (val,tvb,offset,val_len,ok); + if (ok) { + proto_tree_add_uint (tree, hf_wsp_parameter_size, + tvb, start, type_len + val_len, val); + s = g_strdup_printf("; Size=%u", val); + proto_item_append_string (ti, s); + g_free(s); + offset += val_len; + } else { + proto_tree_add_text (tree, tvb, start, offset, + InvalidParameterValue("Size", "Integer-value")); + offset = start + len; /* Skip to end of buffer */ + } + break; + + /* + * TODO + */ + case 0x07: /* WSP 1.1 encoding - Differences: Field-name */ + DebugLog(("Skipping remaining parameters from here\n")); + proto_tree_add_text(tree, tvb, start, offset - start, + "Undecoded parameter Differences - decoding stopped"); + break; + case 0x08: /* WSP 1.1 encoding - Padding: Short-integer */ + DebugLog(("Skipping remaining parameters from here\n")); + proto_tree_add_text(tree, tvb, start, offset - start, + "Undecoded parameter Padding - decoding stopped"); + break; + case 0x0E: /* WSP 1.3 encoding - Max-Age: Delta-seconds-value */ + DebugLog(("Skipping remaining parameters from here\n")); + proto_tree_add_text(tree, tvb, start, offset - start, + "Undecoded parameter Max-Age - decoding stopped"); + break; + case 0x10: /* WSP 1.3 encoding - Secure: No-value */ + DebugLog(("Skipping remaining parameters from here\n")); + proto_tree_add_text(tree, tvb, start, offset - start, + "Undecoded parameter Secure - decoding stopped"); + break; + case 0x13: /* WSP 1.4 encoding - Creation-date: Date-value */ + DebugLog(("Skipping remaining parameters from here\n")); + proto_tree_add_text(tree, tvb, start, offset - start, + "Undecoded parameter Creation-Date - decoding stopped"); + break; + case 0x14: /* WSP 1.4 encoding - Modification-date: Date-value */ + DebugLog(("Skipping remaining parameters from here\n")); + proto_tree_add_text(tree, tvb, start, offset - start, + "Undecoded parameter Modification-Date - decoding stopped"); + break; + case 0x15: /* WSP 1.4 encoding - Read-date: Date-value */ - case 0x16: /* WSP 1.4 encoding - Size: Integer-value */ + DebugLog(("Skipping remaining parameters from here\n")); + proto_tree_add_text(tree, tvb, start, offset - start, + "Undecoded parameter Read-Date - decoding stopped"); + break; + default: DebugLog(("Skipping remaining parameters from here\n")); - proto_tree_add_text(tree, tvb, start, len - start, + proto_tree_add_text(tree, tvb, start, offset - start, "Undecoded parameter type 0x%02x - decoding stopped", type); offset = start + len; /* Skip the parameters */ @@ -5881,56 +5936,56 @@ proto_register_wsp(void) { "Type", "wsp.parameter.type", FT_UINT32, BASE_DEC, NULL, 0x00, - "Type", HFILL + "Type parameter", HFILL } }, { &hf_wsp_parameter_name, { "Name", "wsp.parameter.name", FT_STRING, BASE_NONE, NULL, 0x00, - "Name", HFILL + "Name parameter", HFILL } }, { &hf_wsp_parameter_filename, { "Filename", "wsp.parameter.filename", FT_STRING, BASE_NONE, NULL, 0x00, - "Filename", HFILL + "Filename parameter", HFILL } }, { &hf_wsp_parameter_start, { "Start", "wsp.parameter.start", FT_STRING, BASE_NONE, NULL, 0x00, - "Start", HFILL + "Start parameter", HFILL } }, { &hf_wsp_parameter_start_info, { "Start-info", "wsp.parameter.start_info", FT_STRING, BASE_NONE, NULL, 0x00, - "Start-info", HFILL + "Start-info parameter", HFILL } }, { &hf_wsp_parameter_comment, { "Comment", "wsp.parameter.comment", FT_STRING, BASE_NONE, NULL, 0x00, - "Comment", HFILL + "Comment parameter", HFILL } }, { &hf_wsp_parameter_domain, { "Domain", "wsp.parameter.domain", FT_STRING, BASE_NONE, NULL, 0x00, - "Domain", HFILL + "Domain parameter", HFILL } }, { &hf_wsp_parameter_path, { "Path", "wsp.parameter.path", FT_STRING, BASE_NONE, NULL, 0x00, - "Path", HFILL + "Path parameter", HFILL } }, { &hf_wsp_parameter_sec, @@ -5951,7 +6006,7 @@ proto_register_wsp(void) { "Type", "wsp.parameter.upart.type", FT_STRING, BASE_NONE, NULL, 0x00, - "Multipart type", HFILL + "Multipart type parameter", HFILL } }, { &hf_wsp_parameter_level, @@ -5961,6 +6016,13 @@ proto_register_wsp(void) "Level parameter", HFILL } }, + { &hf_wsp_parameter_size, + { "Size", + "wsp.parameter.size", + FT_UINT32, BASE_DEC, NULL, 0x00, + "Size parameter", HFILL + } + }, { &hf_wsp_reply_data, { "Data", "wsp.reply.data", |