pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/41501?usp=email )
Change subject: ss7_xua_srv: Make sure we don't accept conns for ASPs configured as transport-role client ......................................................................
ss7_xua_srv: Make sure we don't accept conns for ASPs configured as transport-role client
Change-Id: I955aed3c6cdaa0a7eaa14150eeb7458ee9b41d9d --- M src/ss7_xua_srv.c 1 file changed, 17 insertions(+), 7 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/01/41501/1
diff --git a/src/ss7_xua_srv.c b/src/ss7_xua_srv.c index a97b07f..7e55777 100644 --- a/src/ss7_xua_srv.c +++ b/src/ss7_xua_srv.c @@ -75,13 +75,23 @@ LOGP(DLSS7, LOGL_INFO, "%s: New %s connection accepted\n", sock_name, proto_name);
asp = ss7_asp_find_by_socket_addr(fd, oxs->cfg.trans_proto); - if (asp && asp->cfg.adm_state == OSMO_SS7_ASP_ADM_S_SHUTDOWN) { - LOGPASP(asp, DLSS7, LOGL_NOTICE, - "Reject incoming new connection from %s for ASP in adm state %s\n", - sock_name, get_value_string(osmo_ss7_asp_admin_state_names, asp->cfg.adm_state)); - close(fd); - talloc_free(sock_name); - return 0; + if (asp) { + if (!asp->cfg.is_server) { + LOGPASP(asp, DLSS7, LOGL_NOTICE, + "Reject incoming new connection from %s for ASP configured as 'transport-role client'\n", + sock_name); + close(fd); + talloc_free(sock_name); + return 0; + } + if (asp->cfg.adm_state == OSMO_SS7_ASP_ADM_S_SHUTDOWN) { + LOGPASP(asp, DLSS7, LOGL_NOTICE, + "Reject incoming new connection from %s for ASP in adm state %s\n", + sock_name, get_value_string(osmo_ss7_asp_admin_state_names, asp->cfg.adm_state)); + close(fd); + talloc_free(sock_name); + return 0; + } }
srv = osmo_stream_srv_create2(oxs, link, fd, NULL);