a_reset: Add additional "a_reset_alloc" argument
Using this argument we can create the state machine in the
"already connected" state, i.e. without starting an outbound
RESET procedure.
Change-Id: Ibf569d57300965cd47084fa0bff54aa67679e2a1
diff --git a/src/libcommon-cs/a_reset.c b/src/libcommon-cs/a_reset.c
index 072181d..25192c3 100644
--- a/src/libcommon-cs/a_reset.c
+++ b/src/libcommon-cs/a_reset.c
@@ -114,7 +114,8 @@
};
/* Create and start state machine which handles the reset/reset-ack procedure */
-struct a_reset_ctx *a_reset_alloc(const void *ctx, const char *name, void *cb, void *priv)
+struct a_reset_ctx *a_reset_alloc(const void *ctx, const char *name, void *cb, void *priv,
+ bool already_connected)
{
OSMO_ASSERT(name);
@@ -134,8 +135,13 @@
OSMO_ASSERT(reset->fsm);
reset->fsm->priv = reset;
- /* kick off reset-ack sending mechanism */
- osmo_fsm_inst_state_chg(reset->fsm, ST_DISC, RESET_RESEND_INTERVAL, RESET_RESEND_TIMER_NO);
+ if (already_connected)
+ osmo_fsm_inst_state_chg(reset->fsm, ST_CONN, 0, 0);
+ else {
+ /* kick off reset-ack sending mechanism */
+ osmo_fsm_inst_state_chg(reset->fsm, ST_DISC, RESET_RESEND_INTERVAL,
+ RESET_RESEND_TIMER_NO);
+ }
return reset;
}