aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-e212.c
diff options
context:
space:
mode:
authorGerasimos Dimitriadis <dimeg@intracom.gr>2010-03-22 18:06:03 +0000
committerGerasimos Dimitriadis <dimeg@intracom.gr>2010-03-22 18:06:03 +0000
commiteaba9a11473205a8cc0f907acce4ae40b7830d3c (patch)
treea422937ed0f093ee6891e9ae99f4985edef2d3c8 /epan/dissectors/packet-e212.c
parentdabad92be60b25981b052028f0068cd2c4409408 (diff)
Include the leading zeroes when decoding the MNC
svn path=/trunk/; revision=32265
Diffstat (limited to 'epan/dissectors/packet-e212.c')
-rw-r--r--epan/dissectors/packet-e212.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/epan/dissectors/packet-e212.c b/epan/dissectors/packet-e212.c
index eb8c285f7c..8fce5e55cf 100644
--- a/epan/dissectors/packet-e212.c
+++ b/epan/dissectors/packet-e212.c
@@ -1681,10 +1681,17 @@ dissect_e212_mcc_mnc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int of
if ((mcc1 > 9) || (mcc2 > 9) || (mcc3 > 9))
expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN, "MCC contains non-decimal digits");
- item = proto_tree_add_uint_format(tree, hf_E212_mnc , tvb, start_offset + 1, 2, mnc,
- "Mobile Network Code (MNC): %s (%u)",
+ if(mnc3 != 0x0f)
+ item = proto_tree_add_uint_format(tree, hf_E212_mnc , tvb, start_offset + 1, 2, mnc,
+ "Mobile Network Code (MNC): %s (%03u)",
val_to_str(mcc * 1000 + mnc, mcc_mnc_codes, "Unknown"),
mnc);
+ else
+ item = proto_tree_add_uint_format(tree, hf_E212_mnc , tvb, start_offset + 1, 2, mnc,
+ "Mobile Network Code (MNC): %s (%02u)",
+ val_to_str(mcc * 1000 + mnc, mcc_mnc_codes, "Unknown"),
+ mnc);
+
if ((mnc1 > 9) || (mnc2 > 9) || ((mnc3 > 9) && (mnc3 != 0x0f)))
expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN, "MNC contains non-decimal digits");
@@ -1772,10 +1779,17 @@ dissect_e212_mcc_mnc_in_address(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
if ((mcc1 > 9) || (mcc2 > 9) || (mcc3 > 9))
expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN, "MCC contains non-decimal digits");
- item = proto_tree_add_uint_format(tree, hf_E212_mnc , tvb, start_offset + 1, 2, mnc,
- "Mobile Network Code (MNC): %s (%u)",
+ if(long_mnc)
+ item = proto_tree_add_uint_format(tree, hf_E212_mnc , tvb, start_offset + 1, 2, mnc,
+ "Mobile Network Code (MNC): %s (%03u)",
val_to_str(mcc * 1000 + mnc, mcc_mnc_codes, "Unknown"),
mnc);
+ else
+ item = proto_tree_add_uint_format(tree, hf_E212_mnc , tvb, start_offset + 1, 2, mnc,
+ "Mobile Network Code (MNC): %s (%02u)",
+ val_to_str(mcc * 1000 + mnc, mcc_mnc_codes, "Unknown"),
+ mnc);
+
if ((mnc1 > 9) || (mnc2 > 9) || (long_mnc && (mnc3 > 9)))
expert_add_info_format(pinfo, item, PI_MALFORMED, PI_WARN, "MNC contains non-decimal digits");