aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/osmo-bsc_nat/bsc_filter.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-09-03 14:35:33 +0200
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-09-03 15:04:43 +0200
commit1b9902c1280b3b1092b726695142a09a1edcb154 (patch)
tree531c3101b4a3009da5c494fad58f3d1f15f6f1c1 /openbsc/src/osmo-bsc_nat/bsc_filter.c
parentff98b3cffa9badc7d2cc5b2e8fed3460ccb017c6 (diff)
nat: Remember the original dest local reference in the parsed struct
In case of the RLSD coming from the MSC we are patching the address in-situ but for local calls set con = NULL. We then answered the RLSD with the wrong reference and the MSC kept on trying.
Diffstat (limited to 'openbsc/src/osmo-bsc_nat/bsc_filter.c')
-rw-r--r--openbsc/src/osmo-bsc_nat/bsc_filter.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/openbsc/src/osmo-bsc_nat/bsc_filter.c b/openbsc/src/osmo-bsc_nat/bsc_filter.c
index bbbba6994..6a9e99fb8 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_filter.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_filter.c
@@ -120,6 +120,8 @@ struct bsc_nat_parsed *bsc_nat_parse(struct msgb *msg)
parsed->sccp_type = sccp_determine_msg_type(msg);
parsed->src_local_ref = result.source_local_reference;
parsed->dest_local_ref = result.destination_local_reference;
+ if (parsed->dest_local_ref)
+ parsed->original_dest_ref = *parsed->dest_local_ref;
parsed->called_ssn = result.called.ssn;
parsed->calling_ssn = result.calling.ssn;