aboutsummaryrefslogtreecommitdiffstats
path: root/packet-srvloc.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2003-02-24 02:04:18 +0000
committerGuy Harris <guy@alum.mit.edu>2003-02-24 02:04:18 +0000
commita9d8ca4d87a0bbe5d2127e59d3332b705bb318b1 (patch)
tree3bc7d476d0722c7567fc01f69b238c32df9667bd /packet-srvloc.c
parente345e5640e4d675c2de7b95077fa9ae3f8d07c9b (diff)
Rename "dissect_url_entry()" to "dissect_url_entry_v1()".
Fix up the handling of V1 Service Deregister messages to match the RFC. Remove the item before the body of the message reiterating the message type in V1 messages; it's not present in V2 messages. Strings don't have a number base; use BASE_NONE, not BASE_DEC. Don't abbreviate "Previous Response". svn path=/trunk/; revision=7187
Diffstat (limited to 'packet-srvloc.c')
-rw-r--r--packet-srvloc.c112
1 files changed, 48 insertions, 64 deletions
diff --git a/packet-srvloc.c b/packet-srvloc.c
index 410d83cd5c..745fe8c613 100644
--- a/packet-srvloc.c
+++ b/packet-srvloc.c
@@ -7,7 +7,7 @@
* In particular I have not had an opportunity to see how it
* responds to SRVLOC over TCP.
*
- * $Id: packet-srvloc.c,v 1.37 2003/02/24 01:22:20 guy Exp $
+ * $Id: packet-srvloc.c,v 1.38 2003/02/24 02:04:18 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -89,8 +89,6 @@ static int hf_srvloc_srvreg_srvtypelen = -1;
static int hf_srvloc_srvreg_srvtype = -1;
static int hf_srvloc_srvreg_scopelistlen = -1;
static int hf_srvloc_srvreg_scopelist = -1;
-static int hf_srvloc_srvdereg_attrlistlen = -1;
-static int hf_srvloc_srvdereg_attrlist = -1;
static int hf_srvloc_srvdereg_scopelistlen = -1;
static int hf_srvloc_srvdereg_scopelist = -1;
static int hf_srvloc_srvdereg_taglistlen = -1;
@@ -403,8 +401,8 @@ add_v1_string(proto_tree *tree, int hf, tvbuff_t *tvb, int offset, int length,
}
static int
-dissect_url_entry(tvbuff_t *tvb, int offset, proto_tree *tree, guint16 encoding,
- guint16 flags)
+dissect_url_entry_v1(tvbuff_t *tvb, int offset, proto_tree *tree,
+ guint16 encoding, guint16 flags)
{
guint16 url_len;
@@ -519,7 +517,6 @@ dissect_srvloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
switch (function) {
case SRVREQ:
- proto_tree_add_text(srvloc_tree, tvb, offset, 0, "Service Request");
length = tvb_get_ntohs(tvb, offset);
proto_tree_add_uint(srvloc_tree, hf_srvloc_srvreq_prlistlen, tvb, offset, 2, length);
offset += 2;
@@ -533,22 +530,20 @@ dissect_srvloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
case SRVRPLY:
- proto_tree_add_text(srvloc_tree, tvb, offset, 0, "Service Reply");
proto_tree_add_item(srvloc_tree, hf_srvloc_error, tvb, offset, 2, FALSE);
offset += 2;
count = tvb_get_ntohs(tvb, offset);
proto_tree_add_uint(srvloc_tree, hf_srvloc_srvrply_urlcount, tvb, offset, 2, count);
offset += 2;
while (count > 0) {
- offset = dissect_url_entry(tvb, offset, srvloc_tree,
- encoding, flags);
+ offset = dissect_url_entry_v1(tvb, offset, srvloc_tree,
+ encoding, flags);
count--;
};
break;
case SRVREG:
- proto_tree_add_text(srvloc_tree, tvb, offset, 0, "Service Registration");
- offset = dissect_url_entry(tvb, offset, srvloc_tree, encoding,
+ offset = dissect_url_entry_v1(tvb, offset, srvloc_tree, encoding,
flags);
length = tvb_get_ntohs(tvb, offset);
proto_tree_add_uint(srvloc_tree, hf_srvloc_srvreg_attrlistlen, tvb, offset, 2, length);
@@ -560,25 +555,26 @@ dissect_srvloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
case SRVDEREG:
- proto_tree_add_text(srvloc_tree, tvb, offset, 0, "Service Deregister");
- offset = dissect_url_entry(tvb, offset, srvloc_tree, encoding,
- flags);
length = tvb_get_ntohs(tvb, offset);
- proto_tree_add_uint(srvloc_tree, hf_srvloc_srvdereg_attrlistlen, tvb, offset, 2, length);
- add_v1_string(srvloc_tree, hf_srvloc_srvdereg_attrlist, tvb, offset, length, encoding);
+ proto_tree_add_uint(tree, hf_srvloc_url_urllen, tvb, offset, 2, length);
+ offset += 2;
+ add_v1_string(tree, hf_srvloc_url_url, tvb, offset, length, encoding);
offset += length;
- if ( (flags & FLAG_A) == FLAG_A )
+ if ( (flags & FLAG_U) == FLAG_U )
offset = dissect_authblk(tvb, offset, srvloc_tree);
+ length = tvb_get_ntohs(tvb, offset);
+ proto_tree_add_uint(srvloc_tree, hf_srvloc_srvdereg_taglistlen, tvb, offset, 2, length);
+ offset += 2;
+ add_v1_string(srvloc_tree, hf_srvloc_srvdereg_taglist, tvb, offset, length, encoding);
+ offset += length;
break;
case SRVACK:
- proto_tree_add_text(srvloc_tree, tvb, offset, 0, "Service Acknowledge");
proto_tree_add_item(srvloc_tree, hf_srvloc_error, tvb, offset, 2, FALSE);
offset += 2;
break;
case ATTRRQST:
- proto_tree_add_text(srvloc_tree, tvb, offset, 0, "Attribute Request");
length = tvb_get_ntohs(tvb, offset);
proto_tree_add_uint(srvloc_tree, hf_srvloc_attrreq_prlistlen, tvb, offset, 2, length);
offset += 2;
@@ -602,7 +598,6 @@ dissect_srvloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
case ATTRRPLY:
- proto_tree_add_text(srvloc_tree, tvb, offset, 0, "Attribute Reply");
proto_tree_add_item(srvloc_tree, hf_srvloc_error_v2, tvb, offset, 2, FALSE);
offset += 2;
length = tvb_get_ntohs(tvb, offset);
@@ -615,7 +610,6 @@ dissect_srvloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
case DAADVERT:
- proto_tree_add_text(srvloc_tree, tvb, offset, 0, "DA Advertisement");
proto_tree_add_item(srvloc_tree, hf_srvloc_error, tvb, offset, 2, FALSE);
offset += 2;
length = tvb_get_ntohs(tvb, offset);
@@ -631,7 +625,6 @@ dissect_srvloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
case SRVTYPERQST:
- proto_tree_add_text(srvloc_tree, tvb, offset, 0, "Service Type Request");
length = tvb_get_ntohs(tvb, offset);
proto_tree_add_uint(srvloc_tree, hf_srvloc_srvtypereq_prlistlen, tvb, offset, 2, length);
offset += 2;
@@ -650,7 +643,6 @@ dissect_srvloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
case SRVTYPERPLY:
- proto_tree_add_text(srvloc_tree, tvb, offset, 0, "Service Type Reply");
proto_tree_add_item(srvloc_tree, hf_srvloc_error, tvb, offset, 2, FALSE);
offset += 2;
count = tvb_get_ntohs(tvb, offset);
@@ -954,7 +946,7 @@ proto_register_srvloc(void)
},
{&hf_srvloc_langtag,
{"Lang Tag", "srvloc.langtag",
- FT_STRING, BASE_DEC, NULL, 0x0,
+ FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL }
},
{&hf_srvloc_langtaglen,
@@ -983,7 +975,7 @@ proto_register_srvloc(void)
},
{&hf_srvloc_url_url,
{"URL", "srvloc.url.url",
- FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL }
+ FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL }
},
{&hf_srvloc_url_numauths,
{"Num Auths", "srvloc.url.numauths",
@@ -1051,7 +1043,7 @@ proto_register_srvloc(void)
"Length of the SLP SPI", HFILL}
},
{ &hf_srvloc_authblkv2_slpspi,
- { "SLP SPI", "srvloc.authblkv2.slpspi", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "SLP SPI", "srvloc.authblkv2.slpspi", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
@@ -1061,7 +1053,7 @@ proto_register_srvloc(void)
"Length of Previous Response List", HFILL}
},
{ &hf_srvloc_srvreq_prlist,
- { "Previous Response List", "srvloc.srvreq.prlist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Previous Response List", "srvloc.srvreq.prlist", FT_STRING, BASE_NONE, NULL, 0x0,
"Previous Response List", HFILL}
},
{ &hf_srvloc_srvreq_srvtypelen,
@@ -1069,7 +1061,7 @@ proto_register_srvloc(void)
"Length of Service Type List", HFILL}
},
{ &hf_srvloc_srvreq_srvtypelist,
- { "Service Type List", "srvloc.srvreq.srvtypelist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Service Type List", "srvloc.srvreq.srvtypelist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_srvreq_scopelistlen,
@@ -1077,7 +1069,7 @@ proto_register_srvloc(void)
"Length of the Scope List", HFILL}
},
{ &hf_srvloc_srvreq_scopelist,
- { "Scope List", "srvloc.srvreq.scopelist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Scope List", "srvloc.srvreq.scopelist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_srvreq_predicatelen,
@@ -1085,7 +1077,7 @@ proto_register_srvloc(void)
"Length of the Predicate", HFILL}
},
{ &hf_srvloc_srvreq_predicate,
- { "Predicate", "srvloc.srvreq.predicate", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Predicate", "srvloc.srvreq.predicate", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_srvreq_slpspilen,
@@ -1093,7 +1085,7 @@ proto_register_srvloc(void)
"Length of the SLP SPI", HFILL}
},
{ &hf_srvloc_srvreq_slpspi,
- { "SLP SPI", "srvloc.srvreq.slpspi", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "SLP SPI", "srvloc.srvreq.slpspi", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
@@ -1109,7 +1101,7 @@ proto_register_srvloc(void)
"", HFILL}
},
{ &hf_srvloc_srvreg_srvtype,
- { "Service Type", "srvloc.srvreq.srvtype", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Service Type", "srvloc.srvreq.srvtype", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_srvreg_scopelistlen,
@@ -1117,7 +1109,7 @@ proto_register_srvloc(void)
"", HFILL}
},
{ &hf_srvloc_srvreg_scopelist,
- { "Scope List", "srvloc.srvreq.scopelist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Scope List", "srvloc.srvreq.scopelist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_srvreg_attrlistlen,
@@ -1125,7 +1117,7 @@ proto_register_srvloc(void)
"", HFILL}
},
{ &hf_srvloc_srvreg_attrlist,
- { "Attribute List", "srvloc.srvreq.attrlist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Attribute List", "srvloc.srvreq.attrlist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_srvreg_attrauthcount,
@@ -1134,20 +1126,12 @@ proto_register_srvloc(void)
},
/* Helper functions for Service Deregistration */
- { &hf_srvloc_srvdereg_attrlistlen,
- { "Attribute List Length", "srvloc.srvdereg.attrlistlen", FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL}
- },
- { &hf_srvloc_srvdereg_attrlist,
- { "Attribute List", "srvloc.srvdereg.attrlist", FT_STRING, BASE_DEC, NULL, 0x0,
- "", HFILL}
- },
{ &hf_srvloc_srvdereg_scopelistlen,
{ "Scope List Length", "srvloc.srvdereq.scopelistlen", FT_UINT16, BASE_DEC, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_srvdereg_scopelist,
- { "Scope List", "srvloc.srvdereq.scopelist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Scope List", "srvloc.srvdereq.scopelist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_srvdereg_taglistlen,
@@ -1155,7 +1139,7 @@ proto_register_srvloc(void)
"", HFILL}
},
{ &hf_srvloc_srvdereg_taglist,
- { "Tag List", "srvloc.srvdereq.taglist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Tag List", "srvloc.srvdereq.taglist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
@@ -1166,7 +1150,7 @@ proto_register_srvloc(void)
"Length of Previous Response List", HFILL}
},
{ &hf_srvloc_attrreq_prlist,
- { "Previous Response List", "srvloc.attrreq.prlist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Previous Response List", "srvloc.attrreq.prlist", FT_STRING, BASE_NONE, NULL, 0x0,
"Previous Response List", HFILL}
},
{ &hf_srvloc_attrreq_urllen,
@@ -1174,7 +1158,7 @@ proto_register_srvloc(void)
"", HFILL}
},
{ &hf_srvloc_attrreq_url,
- { "Service URL", "srvloc.attrreq.url", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Service URL", "srvloc.attrreq.url", FT_STRING, BASE_NONE, NULL, 0x0,
"URL of service", HFILL}
},
{ &hf_srvloc_attrreq_scopelistlen,
@@ -1182,7 +1166,7 @@ proto_register_srvloc(void)
"Length of the Scope List", HFILL}
},
{ &hf_srvloc_attrreq_scopelist,
- { "Scope List", "srvloc.attrreq.scopelist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Scope List", "srvloc.attrreq.scopelist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_attrreq_attrlistlen,
@@ -1190,7 +1174,7 @@ proto_register_srvloc(void)
"", HFILL}
},
{ &hf_srvloc_attrreq_attrlist,
- { "Attribute List", "srvloc.attrreq.attrlist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Attribute List", "srvloc.attrreq.attrlist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_attrreq_taglistlen,
@@ -1198,7 +1182,7 @@ proto_register_srvloc(void)
"", HFILL}
},
{ &hf_srvloc_attrreq_taglist,
- { "Tag List", "srvloc.attrreq.taglist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Tag List", "srvloc.attrreq.taglist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_attrreq_slpspilen,
@@ -1206,7 +1190,7 @@ proto_register_srvloc(void)
"Length of the SLP SPI", HFILL}
},
{ &hf_srvloc_attrreq_slpspi,
- { "SLP SPI", "srvloc.attrreq.slpspi", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "SLP SPI", "srvloc.attrreq.slpspi", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
@@ -1216,7 +1200,7 @@ proto_register_srvloc(void)
"Length of Attribute List", HFILL}
},
{ &hf_srvloc_attrrply_attrlist,
- { "Attribute List", "srvloc.attrrply.attrlist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Attribute List", "srvloc.attrrply.attrlist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_attrrply_attrauthcount,
@@ -1234,7 +1218,7 @@ proto_register_srvloc(void)
"", HFILL}
},
{ &hf_srvloc_daadvert_url,
- { "URL", "srvloc.daadvert.url", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "URL", "srvloc.daadvert.url", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_daadvert_scopelistlen,
@@ -1242,7 +1226,7 @@ proto_register_srvloc(void)
"Length of the Scope List", HFILL}
},
{ &hf_srvloc_daadvert_scopelist,
- { "Scope List", "srvloc.daadvert.scopelist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Scope List", "srvloc.daadvert.scopelist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_daadvert_attrlistlen,
@@ -1250,7 +1234,7 @@ proto_register_srvloc(void)
"", HFILL}
},
{ &hf_srvloc_daadvert_attrlist,
- { "Attribute List", "srvloc.daadvert.attrlist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Attribute List", "srvloc.daadvert.attrlist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_daadvert_slpspilen,
@@ -1258,7 +1242,7 @@ proto_register_srvloc(void)
"Length of the SLP SPI", HFILL}
},
{ &hf_srvloc_daadvert_slpspi,
- { "SLP SPI", "srvloc.daadvert.slpspi", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "SLP SPI", "srvloc.daadvert.slpspi", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_daadvert_authcount,
@@ -1268,11 +1252,11 @@ proto_register_srvloc(void)
/* collection of helper functions for Service Type Request */
{ &hf_srvloc_srvtypereq_prlistlen,
- { "PR List Length", "srvloc.srvtypereq.prlistlen", FT_UINT16, BASE_DEC, NULL, 0x0,
+ { "Previous Response List Length", "srvloc.srvtypereq.prlistlen", FT_UINT16, BASE_DEC, NULL, 0x0,
"Length of Previous Response List", HFILL}
},
{ &hf_srvloc_srvtypereq_prlist,
- { "PR List", "srvloc.srvtypereq.prlist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Previous Response List", "srvloc.srvtypereq.prlist", FT_STRING, BASE_NONE, NULL, 0x0,
"Previous Response List", HFILL}
},
{ &hf_srvloc_srvtypereq_nameauthlistlen,
@@ -1284,7 +1268,7 @@ proto_register_srvloc(void)
"Length of the Naming Authority List", HFILL}
},
{ &hf_srvloc_srvtypereq_nameauthlist,
- { "Naming Authority List", "srvloc.srvtypereq.nameauthlist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Naming Authority List", "srvloc.srvtypereq.nameauthlist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_srvtypereq_scopelistlen,
@@ -1292,7 +1276,7 @@ proto_register_srvloc(void)
"Length of the Scope List", HFILL}
},
{ &hf_srvloc_srvtypereq_scopelist,
- { "Scope List", "srvloc.srvtypereq.scopelist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Scope List", "srvloc.srvtypereq.scopelist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
@@ -1302,7 +1286,7 @@ proto_register_srvloc(void)
"Length of the Service Type", HFILL}
},
{ &hf_srvloc_srvtyperply_srvtype,
- { "Service Type", "srvloc.srvtyperply.srvtype", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Service Type", "srvloc.srvtyperply.srvtype", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_srvtyperply_srvtypelistlen,
@@ -1310,7 +1294,7 @@ proto_register_srvloc(void)
"Length of the Service Type List", HFILL}
},
{ &hf_srvloc_srvtyperply_srvtypelist,
- { "Service Type List", "srvloc.srvtyperply.srvtypelist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Service Type List", "srvloc.srvtyperply.srvtypelist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
@@ -1320,7 +1304,7 @@ proto_register_srvloc(void)
"", HFILL}
},
{ &hf_srvloc_saadvert_url,
- { "URL", "srvloc.saadvert.url", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "URL", "srvloc.saadvert.url", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_saadvert_scopelistlen,
@@ -1328,7 +1312,7 @@ proto_register_srvloc(void)
"Length of the Scope List", HFILL}
},
{ &hf_srvloc_saadvert_scopelist,
- { "Scope List", "srvloc.saadvert.scopelist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Scope List", "srvloc.saadvert.scopelist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_saadvert_attrlistlen,
@@ -1336,7 +1320,7 @@ proto_register_srvloc(void)
"", HFILL}
},
{ &hf_srvloc_saadvert_attrlist,
- { "Attribute List", "srvloc.saadvert.attrlist", FT_STRING, BASE_DEC, NULL, 0x0,
+ { "Attribute List", "srvloc.saadvert.attrlist", FT_STRING, BASE_NONE, NULL, 0x0,
"", HFILL}
},
{ &hf_srvloc_saadvert_authcount,