diff options
-rw-r--r-- | src/libmsc/sgs_iface.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libmsc/sgs_iface.c b/src/libmsc/sgs_iface.c index eed107ab5..8b4b61d30 100644 --- a/src/libmsc/sgs_iface.c +++ b/src/libmsc/sgs_iface.c @@ -168,6 +168,12 @@ static int decode_mme_name(char *mme_name, const struct tlv_parsed *tp) if (!mme_name_enc) return -EINVAL; + /* some implementations use FDQN format violating TS 29.118 9.3.14 */ + if (!osmo_parse_mme_domain(&gummei, (const char *) mme_name_enc)) { + memcpy(mme_name, mme_name_enc, TLVP_LEN(tp, SGSAP_IE_MME_NAME)); + return 0; + } + /* decode the MME name from DNS labels to string */ osmo_apn_to_str(mme_name, TLVP_VAL(tp, SGSAP_IE_MME_NAME), TLVP_LEN(tp, SGSAP_IE_MME_NAME)); |