diff options
author | Anders Broman <anders.broman@ericsson.com> | 2009-01-27 20:25:28 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2009-01-27 20:25:28 +0000 |
commit | bae6a0d02f9cd2b8e31718ab0616be145b1279b5 (patch) | |
tree | 956cc321dbfde7034aa0032e0eebd67c261a8144 /asn1/gsmmap | |
parent | f68d3d46fe5603226aba47d4fd7332597a18c2f7 (diff) |
Handle V3 SendRoutingInfoRes where the tag[3] is missing.
svn path=/trunk/; revision=27311
Diffstat (limited to 'asn1/gsmmap')
-rw-r--r-- | asn1/gsmmap/packet-gsmmap-template.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/asn1/gsmmap/packet-gsmmap-template.c b/asn1/gsmmap/packet-gsmmap-template.c index 9fef0ce1fd..98ee9d6e50 100644 --- a/asn1/gsmmap/packet-gsmmap-template.c +++ b/asn1/gsmmap/packet-gsmmap-template.c @@ -1321,10 +1321,18 @@ static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset, offset=dissect_gsm_map_sm_MT_ForwardSM_VGCS_Res(FALSE, tvb, offset, actx, tree, -1); break; case 22: /*sendRoutingInfo*/ - offset=dissect_mc_message(tvb, offset, actx, tree, + if (application_context_version == 3){ + /* If the tag is missing use SendRoutingInfoRes_U */ + offset=dissect_mc_message(tvb, offset, actx, tree, + FALSE, NULL, -1, + FALSE, dissect_gsm_map_ch_SendRoutingInfoRes_U, -1, + TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1); + }else{ + offset=dissect_mc_message(tvb, offset, actx, tree, FALSE, dissect_gsm_map_IMSI, hf_gsm_map_imsi, FALSE, dissect_gsm_old_SendRoutingInfoResV2, -1, TRUE , dissect_gsm_map_ch_SendRoutingInfoRes, -1); + } break; case 23: /*updateGprsLocation*/ offset=dissect_gsm_map_ms_UpdateGprsLocationRes(FALSE, tvb, offset, actx, tree, -1); |