aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2006-04-18 21:08:14 +0000
committerAnders Broman <anders.broman@ericsson.com>2006-04-18 21:08:14 +0000
commit6cb8d805f0fc8b808b9bc78a3341ec38cfe88d6e (patch)
treed555b52bcd9b318b8a74f345e75957b0b7882af3
parent583f9e5436a663d4928f493b6991b88439531279 (diff)
Fix Bug http://bugs.ethereal.com/bugzilla/show_bug.cgi?id=677 megaco.dll can not handle lowcase descriptor
svn path=/trunk/; revision=17900
-rw-r--r--plugins/megaco/packet-megaco.c138
1 files changed, 71 insertions, 67 deletions
diff --git a/plugins/megaco/packet-megaco.c b/plugins/megaco/packet-megaco.c
index cb5a615fe0..5bbdf518c6 100644
--- a/plugins/megaco/packet-megaco.c
+++ b/plugins/megaco/packet-megaco.c
@@ -403,6 +403,8 @@ dissect_megaco_text(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
*/
tempchar = tvb_get_guint8(tvb, tvb_previous_offset );
+ if ( (tempchar >= 'a')&& (tempchar <= 'z'))
+ tempchar = tempchar - 0x20;
switch ( tempchar ){
/* errorDescriptor */
@@ -812,7 +814,8 @@ nextcontext:
tokenlen = tvb_offset - tvb_command_start_offset;
tempchar = tvb_get_guint8(tvb, tvb_command_start_offset);
-
+ if ( (tempchar >= 'a')&& (tempchar <= 'z'))
+ tempchar = tempchar - 0x20;
if ( tempchar != 'E' ){
@@ -1128,6 +1131,8 @@ dissect_megaco_descriptors(tvbuff_t *tvb, proto_tree *megaco_tree_command_line,
tempchar = tvb_get_guint8(tvb, tvb_previous_offset );
+ if ( (tempchar >= 'a')&& (tempchar <= 'z'))
+ tempchar = tempchar - 0x20;
switch ( tempchar ){
@@ -1163,87 +1168,86 @@ dissect_megaco_descriptors(tvbuff_t *tvb, proto_tree *megaco_tree_command_line,
}
break;
- case 'S':
- tempchar = tvb_get_guint8(tvb, tvb_previous_offset+1 );
- switch ( tempchar ){
-
- case 'i':
- dissect_megaco_signaldescriptor(tvb, pinfo, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- break;
+ case 'S':
+ tempchar = tvb_get_guint8(tvb, tvb_previous_offset+1 );
+ switch ( tempchar ){
+ case 'i':
+ dissect_megaco_signaldescriptor(tvb, pinfo, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
+ break;
- case 'G':
- dissect_megaco_signaldescriptor(tvb, pinfo, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- break;
+ case 'G':
+ dissect_megaco_signaldescriptor(tvb, pinfo, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
+ break;
- case 'e':
- dissect_megaco_servicechangedescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- break;
+ case 'e':
+ dissect_megaco_servicechangedescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
+ break;
- case 'V':
- dissect_megaco_servicechangedescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- break;
+ case 'V':
+ dissect_megaco_servicechangedescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
+ break;
- case 'C':
- dissect_megaco_servicechangedescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- break;
+ case 'C':
+ dissect_megaco_servicechangedescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
+ break;
- case 't':
- dissect_megaco_statisticsdescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- break;
+ case 't':
+ dissect_megaco_statisticsdescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
+ break;
- case 'A':
- dissect_megaco_statisticsdescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- break;
- default:
- tokenlen = (tvb_RBRKT+1) - tvb_previous_offset;
- proto_tree_add_string(megaco_tree_command_line, hf_megaco_error_Frame, tvb,
- tvb_previous_offset, tokenlen,
- "No Descriptor detectable !");
- break;
- }
+ case 'A':
+ dissect_megaco_statisticsdescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
break;
+ default:
+ tokenlen = (tvb_RBRKT+1) - tvb_previous_offset;
+ proto_tree_add_string(megaco_tree_command_line, hf_megaco_error_Frame, tvb,
+ tvb_previous_offset, tokenlen,
+ "No Descriptor detectable !");
+ break;
+ }
+ break;
- case 'E':
- tempchar = tvb_get_guint8(tvb, tvb_previous_offset+1 );
- if ( tempchar == 'r' || tempchar == 'R'){
+ case 'E':
+ tempchar = tvb_get_guint8(tvb, tvb_previous_offset+1 );
+ if ( tempchar == 'r' || tempchar == 'R'){
- if ( tvb_get_guint8(tvb, tvb_skip_wsp(tvb, tvb_RBRKT +1)) == ';'){
- tvb_RBRKT = tvb_find_guint8(tvb, tvb_RBRKT+1, tvb_len, '}');
- tvb_RBRKT = tvb_skip_wsp_return(tvb, tvb_RBRKT -1)-1;
- }
+ if ( tvb_get_guint8(tvb, tvb_skip_wsp(tvb, tvb_RBRKT +1)) == ';'){
+ tvb_RBRKT = tvb_find_guint8(tvb, tvb_RBRKT+1, tvb_len, '}');
+ tvb_RBRKT = tvb_skip_wsp_return(tvb, tvb_RBRKT -1)-1;
+ }
+ dissect_megaco_errordescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
+ }
+ else{
+ dissect_megaco_eventsdescriptor(tvb, pinfo, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
+ }
+ break;
- dissect_megaco_errordescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- }
- else{
- dissect_megaco_eventsdescriptor(tvb, pinfo, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- }
- break;
+ case 'A':
+ dissect_megaco_auditdescriptor(tvb, megaco_tree_command_line, pinfo, tvb_RBRKT, tvb_previous_offset);
+ break;
- case 'A':
- dissect_megaco_auditdescriptor(tvb, megaco_tree_command_line, pinfo, tvb_RBRKT, tvb_previous_offset);
- break;
+ case 'D':
+ dissect_megaco_digitmapdescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
+ break;
- case 'D':
- dissect_megaco_digitmapdescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- break;
+ case 'O':
+ dissect_megaco_observedeventsdescriptor(tvb, pinfo, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
+ break;
- case 'O':
- dissect_megaco_observedeventsdescriptor(tvb, pinfo, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- break;
+ case 'T':
+ dissect_megaco_topologydescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
+ break;
- case 'T':
- dissect_megaco_topologydescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- break;
- case 'P':
- dissect_megaco_Packagesdescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
- break;
+ case 'P':
+ dissect_megaco_Packagesdescriptor(tvb, megaco_tree_command_line, tvb_RBRKT, tvb_previous_offset);
+ break;
- default:
- tokenlen = (tvb_RBRKT+1) - tvb_previous_offset;
- proto_tree_add_string(megaco_tree_command_line, hf_megaco_error_Frame, tvb,
- tvb_previous_offset, tokenlen,
- "No Descriptor detectable !");
- break;
+ default:
+ tokenlen = (tvb_RBRKT+1) - tvb_previous_offset;
+ proto_tree_add_string(megaco_tree_command_line, hf_megaco_error_Frame, tvb,
+ tvb_previous_offset, tokenlen,
+ "No Descriptor detectable !");
+ break;
}