aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/reg-proxy/sup.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/reg-proxy/sup.c')
-rw-r--r--openbsc/src/reg-proxy/sup.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/openbsc/src/reg-proxy/sup.c b/openbsc/src/reg-proxy/sup.c
index 4c2f8cbd6..e6092b6a1 100644
--- a/openbsc/src/reg-proxy/sup.c
+++ b/openbsc/src/reg-proxy/sup.c
@@ -344,10 +344,13 @@ int handle_location_update_result(struct gsm_sup_server *sup_server,
memcpy(gsup_msg.imsi, imsi, 17);
printf("handle_location_update_result %d len = %d 2\n", gsup_msg.msisdn_enc, strlen(msisdn));
- gsm48_encode_bcd_number(msisdn_enc, 9, 0, msisdn);
- gsup_msg.msisdn_enc = msisdn_enc + 1;
- gsup_msg.msisdn_enc_len = msisdn_enc[0];
- printf("handle_location_update_result %d %d\n", gsup_msg.msisdn_enc_len, gsup_msg.msisdn_enc);
+ if (strcmp(imsi, msisdn) != 0) {
+ gsm48_encode_bcd_number(msisdn_enc, 9, 0, msisdn);
+ gsup_msg.msisdn_enc = msisdn_enc + 1;
+ gsup_msg.msisdn_enc_len = msisdn_enc[0];
+ printf("handle_location_update_result %d %d\n", gsup_msg.msisdn_enc_len, gsup_msg.msisdn_enc);
+ }
+
return tx_sup_message(sup_server, &gsup_msg);
}