gprs_ns2_vc_fsm: ensure all state is resetted via force_unconf
Change-Id: I240225ce82fa27dfcb5b4b8e2981bb4d8cc4cd70
diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c
index 8a78e57..60c46e6 100644
--- a/src/gb/gprs_ns2_vc_fsm.c
+++ b/src/gb/gprs_ns2_vc_fsm.c
@@ -57,6 +57,7 @@
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 @@
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 @@
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);