aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/nat/bsc_nat.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-03-29 17:18:42 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-06-15 20:24:08 +0800
commit16a6f70834fecfd946ce36583ac738e591a30b10 (patch)
treebafe775370c8b73bf328c06fbeb27911adeae10b /openbsc/src/nat/bsc_nat.c
parentf8048d9f5c0dbc9a31034289ed8a310a19517520 (diff)
nat: Keep track of both sides of the connection
On a CC message we will need to remeber where the source local reference of the network belonged so we can properly identify the connection when receiving UDT messages.
Diffstat (limited to 'openbsc/src/nat/bsc_nat.c')
-rw-r--r--openbsc/src/nat/bsc_nat.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c
index 65fc10b4e..cafca8352 100644
--- a/openbsc/src/nat/bsc_nat.c
+++ b/openbsc/src/nat/bsc_nat.c
@@ -191,7 +191,11 @@ static int forward_sccp_to_bts(struct msgb *msg)
case SCCP_MSG_TYPE_RLSD:
case SCCP_MSG_TYPE_CREF:
case SCCP_MSG_TYPE_DT1:
+ bsc = patch_sccp_src_ref_to_bsc(msg, parsed, nat);
+ break;
case SCCP_MSG_TYPE_CC:
+ if (update_sccp_src_ref(bsc, msg, parsed) != 0)
+ goto exit;
bsc = patch_sccp_src_ref_to_bsc(msg, parsed, nat);
break;
case SCCP_MSG_TYPE_RLC: