From 6109f1015b06ed0bbfa2648c8cc1e463457b9e4f Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Thu, 14 May 2020 17:45:29 +0200 Subject: create only one SCCP user per SCCP instance Depends: I9ecbab16b45268f626950303d6ff8296dd6acda0 (libosmo-sccp) Change-Id: I6a2710edeb9ba047ae70e6b49d4c2e5f06d41a4e --- src/osmo-bsc/osmo_bsc_sigtran.c | 8 ++++++-- 1 file 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; -- cgit v1.2.3