diff options
author | Harald Welte <laforge@osmocom.org> | 2019-10-22 21:38:29 +0200 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2019-10-23 18:11:17 +0000 |
commit | f4f4e8c310d63e746bec97e978c374bc58fd678a (patch) | |
tree | dd7d41dbb86ec72e12949190f3f5692ca6274dba | |
parent | 8a7c2eba437e3a6ce18b60059b652d04008bece2 (diff) |
xua_rkm: Don't permit de-registration of rctx with ASP active
Change-Id: Ie47eb205b397f3d2ce94c4ec3531664ed290a819
Closes: OS#4238
-rw-r--r-- | src/xua_rkm.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/xua_rkm.c b/src/xua_rkm.c index 976d649..2d8a25e 100644 --- a/src/xua_rkm.c +++ b/src/xua_rkm.c @@ -30,6 +30,7 @@ #include "xua_internal.h" #include "xua_as_fsm.h" +#include "xua_asp_fsm.h" const struct value_string m3ua_rkm_reg_status_vals[] = { { M3UA_RKM_REG_SUCCESS, "SUCCESS" }, @@ -338,7 +339,11 @@ static int handle_rkey_dereg(struct osmo_ss7_asp *asp, uint32_t rctx, return -1; } - /* FIXME Reject if any ASP stillactively using this RCTX */ + /* Reject if ASP is still active */ + if (asp->fi->state == XUA_ASP_S_ACTIVE) { + msgb_append_dereg_res(resp, M3UA_RKM_DEREG_ERR_ASP_ACTIVE, 0); + return -1; + } rt = osmo_ss7_route_find_dpc(inst->rtable_system, as->cfg.routing_key.pc); if (!rt) { |