aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2020-05-14 17:45:29 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2020-06-03 17:30:07 +0200
commit6109f1015b06ed0bbfa2648c8cc1e463457b9e4f (patch)
treeade3e303ad35be8a5b1c4f8c2bea87a898bb5b62
parentd3cb71b5510476f6f8aed1b3e9e5585dac317b5e (diff)
create only one SCCP user per SCCP instance
-rw-r--r--src/osmo-bsc/osmo_bsc_sigtran.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/osmo-bsc/osmo_bsc_sigtran.c b/src/osmo-bsc/osmo_bsc_sigtran.c
index cbf0fec1a..f5489e421 100644
--- a/src/osmo-bsc/osmo_bsc_sigtran.c
+++ b/src/osmo-bsc/osmo_bsc_sigtran.c
@@ -547,8 +547,12 @@ int osmo_bsc_sigtran_init(struct llist_head *mscs)
LOGP(DMSC, LOGL_NOTICE, "(%s) A-interface: remote (MSC) SCCP address: %s\n",
msc_name, osmo_sccp_inst_addr_name(msc->a.sccp, &msc->a.msc_addr));
- /* Bind SCCP user */
- msc->a.sccp_user = osmo_sccp_user_bind(msc->a.sccp, msc_name, sccp_sap_up, msc->a.bsc_addr.ssn);
+ /* Bind SCCP user. Bind only one user per sccp_instance. */
+ msc->a.sccp_user = osmo_sccp_user_find(msc->a.sccp, msc->a.bsc_addr.ssn, msc->a.bsc_addr.pc);
+ LOGP(DMSC, LOGL_NOTICE, "(%s) A-interface: %s\n", msc_name,
+ msc->a.sccp_user ? "user already bound for this SCCP instance" : "binding SCCP user");
+ if (!msc->a.sccp_user)
+ msc->a.sccp_user = osmo_sccp_user_bind(msc->a.sccp, msc_name, sccp_sap_up, msc->a.bsc_addr.ssn);
if (!msc->a.sccp_user)
return -EINVAL;