pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/libosmo-sigtran/+/40695?usp=email )
Change subject: xua_as_fsm: Fix wrong pointer cast during XUA_ASPAS_ASP_DOWN_IND
......................................................................
xua_as_fsm: Fix wrong pointer cast during XUA_ASPAS_ASP_DOWN_IND
Change-Id: Ied523e080419723e0a3eb2f8103897b241bff41f
---
M src/xua_as_fsm.c
M src/xua_as_fsm.h
2 files changed, 17 insertions(+), 9 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-sigtran refs/changes/95/40695/1
diff --git a/src/xua_as_fsm.c b/src/xua_as_fsm.c
index 7afcb6d..c39132b 100644
--- a/src/xua_as_fsm.c
+++ b/src/xua_as_fsm.c
@@ -586,14 +586,8 @@
switch (event) {
case XUA_ASPAS_ASP_DOWN_IND:
- case XUA_ASPAS_ASP_INACTIVE_IND:
- inact_ind_pars = data;
- if (check_any_other_asp_in_active(xafp->as, inact_ind_pars->asp)) {
- if (event == XUA_ASPAS_ASP_INACTIVE_IND &&
inact_ind_pars->asp_requires_notify) {
- fill_notify_statchg_pars(fi, &npar);
- tx_notify(inact_ind_pars->asp, &npar);
- } /* ASP_DOWN_IND: ignore, nothing to be sent */
- } else {
+ asp = data;
+ if (!check_any_other_asp_in_active(xafp->as, asp)) {
uint32_t recovery_msec = xafp->as->cfg.recovery_timeout_msec;
osmo_fsm_inst_state_chg(fi, XUA_AS_S_PENDING, 0, 0);
/* Start T(r) */
@@ -602,6 +596,20 @@
* recovery or T(r) expiry */
}
break;
+ case XUA_ASPAS_ASP_INACTIVE_IND:
+ inact_ind_pars = data;
+ if (!check_any_other_asp_in_active(xafp->as, inact_ind_pars->asp)) {
+ uint32_t recovery_msec = xafp->as->cfg.recovery_timeout_msec;
+ osmo_fsm_inst_state_chg(fi, XUA_AS_S_PENDING, 0, 0);
+ /* Start T(r) */
+ osmo_timer_schedule(&xafp->recovery.t_r, MSEC_TO_S_US(recovery_msec));
+ /* FIXME: Queue all signalling messages until
+ * recovery or T(r) expiry */
+ } else if (inact_ind_pars->asp_requires_notify) {
+ fill_notify_statchg_pars(fi, &npar);
+ tx_notify(inact_ind_pars->asp, &npar);
+ }
+ break;
case XUA_ASPAS_ASP_ACTIVE_IND:
asp = data;
/* RFC466 sec 4.3.4.3 ASP Active Procedures*/
diff --git a/src/xua_as_fsm.h b/src/xua_as_fsm.h
index 08f626b..5f6c7f3 100644
--- a/src/xua_as_fsm.h
+++ b/src/xua_as_fsm.h
@@ -21,7 +21,7 @@
enum xua_as_event {
XUA_ASPAS_ASP_INACTIVE_IND, /* param: struct xua_as_event_asp_inactive_ind_pars* */
- XUA_ASPAS_ASP_DOWN_IND,
+ XUA_ASPAS_ASP_DOWN_IND, /* param: struct osmo_ss7_asp* */
XUA_ASPAS_ASP_ACTIVE_IND,
XUA_AS_E_RECOVERY_EXPD,
XUA_AS_E_TRANSFER_REQ, /* param: struct xua_msg*, ownership transferred. */
--
To view, visit
https://gerrit.osmocom.org/c/libosmo-sigtran/+/40695?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: Ied523e080419723e0a3eb2f8103897b241bff41f
Gerrit-Change-Number: 40695
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>