aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVasil Velichkov <vvvelichkov@gmail.com>2018-05-16 04:41:51 +0300
committerPascal Quantin <pascal.quantin@gmail.com>2018-05-16 18:07:59 +0000
commitd0823e39209de5b3c95e300751e74e864370b26d (patch)
tree39e1b0c30002f7b068b05eaf1c4f8d5636357ba9
parent322f163cbd72d617397e27cca77ca6b341ca5723 (diff)
GSM MAP: Dissect SM-RP-SMEA
According to 3GPP TS 29.002 this parameter contains an address field which is encoded as defined in 3GPP TS 23.040. Change-Id: If82a09e43729a90ede1619da34e50ed5d14e869a Reviewed-on: https://code.wireshark.org/review/27569 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
-rw-r--r--.mailmap1
-rw-r--r--AUTHORS2
-rw-r--r--epan/dissectors/asn1/gsm_map/gsm_map.cnf10
-rw-r--r--epan/dissectors/packet-gsm_map.c13
-rw-r--r--epan/dissectors/packet-gsm_sms.c2
-rw-r--r--epan/dissectors/packet-gsm_sms.h2
6 files changed, 27 insertions, 3 deletions
diff --git a/.mailmap b/.mailmap
index 20e20d7be8..f7da4d6d62 100644
--- a/.mailmap
+++ b/.mailmap
@@ -172,6 +172,7 @@ Sumit Kumar Jha <sjha3@ncsu.edu> sjha3 <sjha3@ncsu.edu>
Thies Moeller <thies.moeller[AT]baslerweb.com> <thies.moeller@baslerweb.com>
Thomas Portassau <thomas.portassau@hotmail.fr> Thomas PORTASSAU <thomas.portassau@hotmail.fr>
Uli Heilmeier <uh@heilmeier.eu> Uli Heilmeier <openid@heilmeier.eu>
+Vasil Velichkov <vvvelichkov@gmail.com> Vasil Velichckov <vvvelichkov@gmail.com>
Vikram Hegde <vikram.h@samsung.com> Vikram Hegde <vikram.h@amsung.com>
Vincent Helfre <vincent.helfre@gmx.net> Vincent Helfre <vincenthelfre@googlemail.com>
Volodymyr Khomenko <Khomenko.Volodymyr@gmail.com> Volodymyr Khomenko <Volodymyr_Khomenko@DellTeam.com>
diff --git a/AUTHORS b/AUTHORS
index 1c04d18a3b..038fd26a28 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -4488,7 +4488,7 @@ Uli Schlachter <psychon[AT]znc.in>
Umberto Corponi <umberto.corponi[AT]athonet.com>
Uri Simchoni <urisimchoni[AT]gmail.com>
Valentin Vidic <Valentin.Vidic[AT]CARNet.hr>
-Vasil Velichckov <vvvelichkov[AT]gmail.com>
+Vasil Velichkov <vvvelichkov[AT]gmail.com>
Victor Barratault <victor.barratault[AT]gmail.com>
Victor Dodon <dodonvictor[AT]gmail.com>
Victor Voronkov <victor.voronkov[AT]gmail.com>
diff --git a/epan/dissectors/asn1/gsm_map/gsm_map.cnf b/epan/dissectors/asn1/gsm_map/gsm_map.cnf
index de93a8a296..ffc0561707 100644
--- a/epan/dissectors/asn1/gsm_map/gsm_map.cnf
+++ b/epan/dissectors/asn1/gsm_map/gsm_map.cnf
@@ -1169,6 +1169,16 @@ MAP interfaces
}
}
+#.FN_BODY SM-RP-SMEA VAL_PTR=&payload_tvb
+ tvbuff_t *payload_tvb;
+%(DEFAULT_BODY)s
+ if (payload_tvb) {
+ guint32 tvb_offset = 0;
+ PROTO_ITEM_SET_HIDDEN(actx->created_item);
+ dis_field_addr(payload_tvb, actx->pinfo, tree, &tvb_offset, "SM-RP-SMEA");
+ }
+
+
# Make dissector table for V3 messages
#.REGISTER
diff --git a/epan/dissectors/packet-gsm_map.c b/epan/dissectors/packet-gsm_map.c
index bb79ac6b03..acb4569023 100644
--- a/epan/dissectors/packet-gsm_map.c
+++ b/epan/dissectors/packet-gsm_map.c
@@ -6530,8 +6530,19 @@ dissect_gsm_map_sm_SM_RP_MTI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_gsm_map_sm_SM_RP_SMEA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+#line 1173 "./asn1/gsm_map/gsm_map.cnf"
+ tvbuff_t *payload_tvb;
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+ &payload_tvb);
+
+ if (payload_tvb) {
+ guint32 tvb_offset = 0;
+ PROTO_ITEM_SET_HIDDEN(actx->created_item);
+ dis_field_addr(payload_tvb, actx->pinfo, tree, &tvb_offset, "SM-RP-SMEA");
+ }
+
+
+
return offset;
}
diff --git a/epan/dissectors/packet-gsm_sms.c b/epan/dissectors/packet-gsm_sms.c
index 69a73261ce..3e276b3763 100644
--- a/epan/dissectors/packet-gsm_sms.c
+++ b/epan/dissectors/packet-gsm_sms.c
@@ -582,7 +582,7 @@ static const value_string dis_field_addr_numbering_plan_vals[] = {
{0, NULL }
};
-static void
+void
dis_field_addr(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, guint32 *offset_p, const gchar *title)
{
static gchar digit_table[] = {"0123456789*#abc\0"};
diff --git a/epan/dissectors/packet-gsm_sms.h b/epan/dissectors/packet-gsm_sms.h
index a69d818c14..068b338ffd 100644
--- a/epan/dissectors/packet-gsm_sms.h
+++ b/epan/dissectors/packet-gsm_sms.h
@@ -32,6 +32,8 @@ typedef struct {
void dis_field_udh(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, guint32 *offset, guint32 *length,
guint8 *udl, enum character_set cset, guint8 *fill_bits, gsm_sms_udh_fields_t *p_udh_fields);
+void dis_field_addr(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, guint32 *offset_p, const gchar *title);
+
/* Data structure that can be optionally given to gsm_sms dissector */
typedef struct _gsm_sms_data_t {
gboolean stk_packing_required;