From ea01bf2b293727f162665672c440d2190a038778 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Mon, 18 Jan 2021 14:01:01 +0100 Subject: gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70 --- src/gb/gprs_ns2_vc_fsm.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 8a78e571..60c46e69 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -57,6 +57,7 @@ struct gprs_ns2_vc_priv { int N; /* The initiator is responsible to UNBLOCK the VC. The BSS is usually the initiator. * It can change during runtime. The side which blocks an unblocked side.*/ + bool initiator; bool initiate_block; bool initiate_reset; /* if blocked by O&M/vty */ @@ -228,6 +229,9 @@ static void gprs_ns2_st_unconfigured(struct osmo_fsm_inst *fi, uint32_t event, v struct gprs_ns2_vc_priv *priv = fi->priv; struct gprs_ns2_inst *nsi = priv->nsvc->nse->nsi; + priv->initiate_reset = priv->initiate_block = priv->initiator; + priv->om_blocked = false; + switch (event) { case GPRS_NS2_EV_REQ_START: switch (priv->nsvc->mode) { @@ -690,8 +694,7 @@ struct osmo_fsm_inst *gprs_ns2_vc_fsm_alloc(struct gprs_ns2_vc *nsvc, nsvc->fi = fi; priv = fi->priv = talloc_zero(fi, struct gprs_ns2_vc_priv); priv->nsvc = nsvc; - priv->initiate_reset = initiator; - priv->initiate_block = initiator; + priv->initiator = initiator; osmo_timer_setup(&priv->alive.timer, alive_timeout_handler, fi); -- cgit v1.2.3