aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-gsm_gsup.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-gsm_gsup.c')
-rw-r--r--epan/dissectors/packet-gsm_gsup.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/epan/dissectors/packet-gsm_gsup.c b/epan/dissectors/packet-gsm_gsup.c
index 10637ff4a2..6f5e0624f7 100644
--- a/epan/dissectors/packet-gsm_gsup.c
+++ b/epan/dissectors/packet-gsm_gsup.c
@@ -363,9 +363,16 @@ dissect_gsup_tlvs(tvbuff_t *tvb, int base_offs, int length, packet_info *pinfo,
proto_item_append_text(gsup_ti, ", MSISDN: %s", str);
break;
case OSMO_GSUP_ACCESS_POINT_NAME_IE:
- get_dns_name(tvb, offset, len, 0, &apn, &apn_len);
- proto_tree_add_string(att_tree, hf_gsup_apn, tvb, offset, len, apn);
- proto_item_append_text(ti, ", %s", apn);
+ if (len == 1) {
+ guint8 ch = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(att_tree, hf_gsup_ie_payload, tvb, offset, len, ENC_NA);
+ if (ch == '*')
+ proto_item_append_text(ti, ", '*' (Wildcard)");
+ } else {
+ get_dns_name(tvb, offset, len, 0, &apn, &apn_len);
+ proto_tree_add_string(att_tree, hf_gsup_apn, tvb, offset, len, apn);
+ proto_item_append_text(ti, ", %s", apn);
+ }
break;
case OSMO_GSUP_PDP_CONTEXT_ID_IE:
proto_tree_add_item(att_tree, hf_gsup_pdp_context_id, tvb, offset, len, ENC_NA);