Ethereal-dev: [Ethereal-dev] New updates for wsp and wtls
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "Alexandre P. Ferreira" <alexandref@xxxxxxxxxxxxxxx>
Date: Mon, 19 Feb 2001 09:23:03 -0300
Hi, Some corrections for accept-charset and other improvements. Thanks, -- Alexandre P. Ferreira Coordenador de Plataforma Splice IP +55 61 3137504
diff -cr ethereal-2001-02-19/packet-wap.c ethereal-2001-02-19.new/packet-wap.c
*** ethereal-2001-02-19/packet-wap.c Mon Feb 12 22:17:54 2001
--- ethereal-2001-02-19.new/packet-wap.c Mon Feb 19 08:53:27 2001
***************
*** 57,69 ****
#ifdef DEBUG
fprintf (stderr, "dissect_wsp: Starting tvb_get_guintvar at offset %d, count=NULL\n", offset);
#endif
}
else
{
#ifdef DEBUG
fprintf (stderr, "dissect_wsp: Starting tvb_get_guintvar at offset %d, count=%d\n", offset, *octetCount);
#endif
- counter = *octetCount;
}
while (cont != 0)
--- 57,69 ----
#ifdef DEBUG
fprintf (stderr, "dissect_wsp: Starting tvb_get_guintvar at offset %d, count=NULL\n", offset);
#endif
+ /* counter = *octetCount; */
}
else
{
#ifdef DEBUG
fprintf (stderr, "dissect_wsp: Starting tvb_get_guintvar at offset %d, count=%d\n", offset, *octetCount);
#endif
}
while (cont != 0)
diff -cr ethereal-2001-02-19/packet-wsp.c ethereal-2001-02-19.new/packet-wsp.c
*** ethereal-2001-02-19/packet-wsp.c Mon Feb 12 22:17:54 2001
--- ethereal-2001-02-19.new/packet-wsp.c Mon Feb 19 08:53:27 2001
***************
*** 818,824 ****
guint valueLen = tvb_reported_length (value_buff);
guint peek = 0;
struct timeval timeValue;
- guint count = 0;
guint value = 0;
guint valueLength = 0;
char valString[100];
--- 818,823 ----
***************
*** 883,890 ****
{
offset++;
! /* TODO: Need to read peek octets */
! value = 0x00;
offset += peek;
}
valMatch = match_strval(value, vals_character_sets);
--- 882,907 ----
{
offset++;
! switch (peek)
! {
! case 1:
! value = tvb_get_guint8 (value_buff, offset);
! break;
! case 2:
! value = tvb_get_ntohs (value_buff, offset);
! break;
! case 3:
! value = tvb_get_ntoh24 (value_buff, offset);
! break;
! case 4:
! value = tvb_get_ntohl (value_buff, offset);
! break;
! default:
! /* TODO: Need to read peek octets */
! value = 0;
! fprintf (stderr, "dissect_wsp: accept-charset size %d NYI\n", peek);
! break;
! }
offset += peek;
}
valMatch = match_strval(value, vals_character_sets);
***************
*** 897,918 ****
/* Any remaining data relates to Q-Value */
if (offset < valueLen)
{
! count = 0;
! q_value = tvb_get_guintvar (value_buff, offset, &count);
! if (count == 1) /* Two decimal quality factors */
! {
! q_value -= 1;
! q_value /= 100;
}
! else if (count == 2) /* Three decimal quality factors */
! {
! q_value -= 100;
! q_value /= 1000;
! }
! else
! {
! fprintf (stderr, "dissect_wsp: Accept-Charset invalid Q-value %f\n", q_value);
}
}
/* Build string including Q values if present */
--- 914,927 ----
/* Any remaining data relates to Q-Value */
if (offset < valueLen)
{
! peek = tvb_get_guintvar (value_buff, offset, NULL);
! if (peek <= 100) {
! peek = (peek - 1) * 10;
}
! else {
! peek -= 100;
}
+ q_value = peek/1000.0;
}
/* Build string including Q values if present */
***************
*** 920,926 ****
{
if (valMatch == NULL)
{
! snprintf (valString, 100, "Unknown (%02X)", peek);
}
else
{
--- 929,935 ----
{
if (valMatch == NULL)
{
! snprintf (valString, 100, "Unknown (%X)", peek);
}
else
{
***************
*** 929,943 ****
}
else
{
- snprintf (valString, 100, "Unknown %d; Q=%5.3f", value,
- q_value/1000.0);
if (valMatch == NULL)
{
! snprintf (valString, 100, "Unknown (%02X)", peek);
}
else
{
! snprintf (valString, 100, "%s", valMatch);
}
}
--- 938,950 ----
}
else
{
if (valMatch == NULL)
{
! snprintf (valString, 100, "Unknown (%X); Q=%5.3f", peek,q_value);
}
else
{
! snprintf (valString, 100, "%s; Q=%5.3f", valMatch,q_value);
}
}
***************
*** 1192,1211 ****
* by a 4-byte date value */
if (strncasecmp ("x-wap.tod", tvb_get_ptr (header_buff, 0, headerLen), 9) == 0)
{
! if (tvb_reported_length (value_buff) == 4) /* Probably a date value */
{
! timeValue.tv_sec = tvb_get_ntohl (value_buff, 0);
ti = proto_tree_add_time (tree, hf_wsp_header_x_wap_tod, header_buff, offset, headerLen, &timeValue);
}
- else if (tvb_reported_length (value_buff) == 5) /* Probably a date */
- {
- add_date_value (value_buff, 0, tree,
- hf_wsp_header_x_wap_tod, header_buff, offset,
- headerLen, &timeValue, "X-Wap.Tod");
- }
else
! {
! ti = proto_tree_add_text (tree, header_buff, 0, headerLen, "%s: %s", tvb_get_ptr (header_buff, 0, headerLen), tvb_get_ptr (value_buff, 0, valueLen));
}
}
else
--- 1199,1232 ----
* by a 4-byte date value */
if (strncasecmp ("x-wap.tod", tvb_get_ptr (header_buff, 0, headerLen), 9) == 0)
{
! peek = tvb_get_guint8 (value_buff,offset);
! if (peek < 31)
{
! timeValue.tv_usec = 0;
! switch (peek)
! {
! case 1:
! timeValue.tv_sec = tvb_get_guint8 (value_buff, 1);
! break;
! case 2:
! timeValue.tv_sec = tvb_get_ntohs (value_buff, 1);
! break;
! case 3:
! timeValue.tv_sec = tvb_get_ntoh24 (value_buff, 1);
! break;
! case 4:
! timeValue.tv_sec = tvb_get_ntohl (value_buff, 1);
! break;
! default:
! timeValue.tv_sec = 0;
! fprintf (stderr, "dissect_wsp: X-WAP.TOD NYI\n");
! break;
! }
ti = proto_tree_add_time (tree, hf_wsp_header_x_wap_tod, header_buff, offset, headerLen, &timeValue);
}
else
! {
! fprintf (stderr, "dissect_wsp: X-WAP.TOD peek %X NYI\n",peek);
}
}
else
diff -cr ethereal-2001-02-19/packet-wtls.c ethereal-2001-02-19.new/packet-wtls.c
*** ethereal-2001-02-19/packet-wtls.c Thu Feb 15 17:46:41 2001
--- ethereal-2001-02-19.new/packet-wtls.c Mon Feb 19 09:02:01 2001
***************
*** 497,511 ****
wtls_msg_type_item_sub_tree = proto_item_add_subtree(ti, ett_wtls_msg_type_item_sub);
offset+=2;
for (;count > 0;count-=client_size) {
! cli_key_item = proto_tree_add_item(wtls_msg_type_item_sub_tree,
hf_wtls_hands_cli_hello_key_exchange, tvb, offset,1,
! bo_little_endian);
client_size=1;
wtls_msg_type_item_sub_sub_tree = proto_item_add_subtree(cli_key_item,
ett_wtls_msg_type_item_sub_sub);
! ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
hf_wtls_hands_cli_hello_key_exchange_suite,
! tvb,offset,1,bo_big_endian);
offset++;
value = tvb_get_guint8 (tvb, offset);
ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
--- 497,512 ----
wtls_msg_type_item_sub_tree = proto_item_add_subtree(ti, ett_wtls_msg_type_item_sub);
offset+=2;
for (;count > 0;count-=client_size) {
! value = tvb_get_guint8 (tvb, offset);
! cli_key_item = proto_tree_add_uint(wtls_msg_type_item_sub_tree,
hf_wtls_hands_cli_hello_key_exchange, tvb, offset,1,
! value);
client_size=1;
wtls_msg_type_item_sub_sub_tree = proto_item_add_subtree(cli_key_item,
ett_wtls_msg_type_item_sub_sub);
! ti = proto_tree_add_uint(wtls_msg_type_item_sub_sub_tree,
hf_wtls_hands_cli_hello_key_exchange_suite,
! tvb,offset,1,value);
offset++;
value = tvb_get_guint8 (tvb, offset);
ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
***************
*** 536,550 ****
wtls_msg_type_item_sub_tree = proto_item_add_subtree(ti, ett_wtls_msg_type_item_sub);
offset+=2;
for (;count > 0;count-=client_size) {
cli_key_item = proto_tree_add_item(wtls_msg_type_item_sub_tree,
hf_wtls_hands_cli_hello_key_exchange, tvb, offset,1,
! bo_little_endian);
client_size=1;
wtls_msg_type_item_sub_sub_tree = proto_item_add_subtree(cli_key_item,
ett_wtls_msg_type_item_sub_sub);
! ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
hf_wtls_hands_cli_hello_key_exchange_suite,
! tvb,offset,1,bo_big_endian);
offset++;
value = tvb_get_guint8 (tvb, offset);
ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
--- 537,552 ----
wtls_msg_type_item_sub_tree = proto_item_add_subtree(ti, ett_wtls_msg_type_item_sub);
offset+=2;
for (;count > 0;count-=client_size) {
+ value = tvb_get_guint8 (tvb, offset);
cli_key_item = proto_tree_add_item(wtls_msg_type_item_sub_tree,
hf_wtls_hands_cli_hello_key_exchange, tvb, offset,1,
! value);
client_size=1;
wtls_msg_type_item_sub_sub_tree = proto_item_add_subtree(cli_key_item,
ett_wtls_msg_type_item_sub_sub);
! ti = proto_tree_add_uint(wtls_msg_type_item_sub_sub_tree,
hf_wtls_hands_cli_hello_key_exchange_suite,
! tvb,offset,1,value);
offset++;
value = tvb_get_guint8 (tvb, offset);
ti = proto_tree_add_item(wtls_msg_type_item_sub_sub_tree,
***************
*** 974,980 ****
{ &hf_wtls_hands_cli_hello_key_exchange,
{ "Key Exchange",
"wsp.wtls.handshake.client_hello.key.key_exchange",
! FT_NONE, BASE_NONE, NULL, 0x00,
"Key Exchange"
}
},
--- 976,982 ----
{ &hf_wtls_hands_cli_hello_key_exchange,
{ "Key Exchange",
"wsp.wtls.handshake.client_hello.key.key_exchange",
! FT_UINT8, BASE_HEX, VALS ( wtls_vals_key_exchange_suite ), 0x00,
"Key Exchange"
}
},
- Follow-Ups:
- Re: [Ethereal-dev] New updates for wsp and wtls
- From: Guy Harris
- Re: [Ethereal-dev] New updates for wsp and wtls
- Prev by Date: Re: [Ethereal-dev] Likely solution for : tcp.port == .... causes the Filtering to hang forever
- Next by Date: [Ethereal-dev] Bad Packet Handing (Was packet-diameter lock bug)
- Previous by thread: Re: [Ethereal-dev] Bad Packet Handing (Was packet-diameter lock bug)
- Next by thread: Re: [Ethereal-dev] New updates for wsp and wtls
- Index(es):





