This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/17184 ) Change subject: rspro_client_fsm: Add SRVC_E_DISCONNECT to disconnect from RSPRO server ...................................................................... rspro_client_fsm: Add SRVC_E_DISCONNECT to disconnect from RSPRO server This is in preparation of other patches which will actually issue the SRVC_E_DISCONNET event towards this FSM. Related: OS#4399 Change-Id: I080f9e85987bbbe7aef84c32ce84b69d949ff561 --- M src/rspro_client_fsm.c M src/rspro_client_fsm.h 2 files changed, 22 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/rspro_client_fsm.c b/src/rspro_client_fsm.c index d5cf04b..b006809 100644 --- a/src/rspro_client_fsm.c +++ b/src/rspro_client_fsm.c @@ -110,6 +110,7 @@ static const struct value_string server_conn_fsm_event_names[] = { OSMO_VALUE_STRING(SRVC_E_ESTABLISH), + OSMO_VALUE_STRING(SRVC_E_DISCONNECT), OSMO_VALUE_STRING(SRVC_E_TCP_UP), OSMO_VALUE_STRING(SRVC_E_TCP_DOWN), OSMO_VALUE_STRING(SRVC_E_KA_TIMEOUT), @@ -330,10 +331,26 @@ static void srvc_allstate_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) { + struct rspro_server_conn *srvc = (struct rspro_server_conn *) fi->priv; + switch (event) { case SRVC_E_ESTABLISH: osmo_fsm_inst_state_chg(fi, SRVC_ST_REESTABLISH, T2_RECONNECT, 2); break; + case SRVC_E_DISCONNECT: + if (srvc->keepalive_fi) { + ipa_keepalive_fsm_stop(srvc->keepalive_fi); + osmo_fsm_inst_term(srvc->keepalive_fi, OSMO_FSM_TERM_REGULAR, NULL); + srvc->keepalive_fi = NULL; + } + if (srvc->conn) { + LOGPFSML(fi, LOGL_INFO, "Destroying existing connection to server\n"); + ipa_client_conn_close(srvc->conn); + ipa_client_conn_destroy(srvc->conn); + srvc->conn = NULL; + } + osmo_fsm_inst_state_chg(fi, SRVC_ST_INIT, 0, 0); + break; default: OSMO_ASSERT(0); } @@ -370,20 +387,20 @@ [SRVC_ST_ESTABLISHED] = { .name = "ESTABLISHED", .in_event_mask = S(SRVC_E_TCP_DOWN) | S(SRVC_E_KA_TIMEOUT) | S(SRVC_E_CLIENT_CONN_RES), - .out_state_mask = S(SRVC_ST_CONNECTED) | S(SRVC_ST_REESTABLISH), + .out_state_mask = S(SRVC_ST_CONNECTED) | S(SRVC_ST_REESTABLISH) | S(SRVC_ST_INIT), .action = srvc_st_established, .onenter = srvc_st_established_onenter, }, [SRVC_ST_CONNECTED] = { .name = "CONNECTED", .in_event_mask = S(SRVC_E_TCP_DOWN) | S(SRVC_E_KA_TIMEOUT) | S(SRVC_E_RSPRO_TX), - .out_state_mask = S(SRVC_ST_REESTABLISH), + .out_state_mask = S(SRVC_ST_REESTABLISH) | S(SRVC_ST_INIT), .action = srvc_st_connected, }, [SRVC_ST_REESTABLISH] = { .name = "REESTABLISH", .in_event_mask = S(SRVC_E_TCP_UP) | S(SRVC_E_TCP_DOWN), - .out_state_mask = S(SRVC_ST_ESTABLISHED) | S(SRVC_ST_REESTABLISH), + .out_state_mask = S(SRVC_ST_ESTABLISHED) | S(SRVC_ST_REESTABLISH) | S(SRVC_ST_INIT), .action = srvc_st_reestablish, .onenter = srvc_st_reestablish_onenter, }, @@ -393,7 +410,7 @@ .name = "RSPRO_CLIENT", .states = server_conn_fsm_states, .num_states = ARRAY_SIZE(server_conn_fsm_states), - .allstate_event_mask = S(SRVC_E_ESTABLISH), + .allstate_event_mask = S(SRVC_E_ESTABLISH) | S(SRVC_E_DISCONNECT), .allstate_action = srvc_allstate_action, .timer_cb = server_conn_fsm_timer_cb, .log_subsys = DMAIN, diff --git a/src/rspro_client_fsm.h b/src/rspro_client_fsm.h index 2f3f7fc..c1ae764 100644 --- a/src/rspro_client_fsm.h +++ b/src/rspro_client_fsm.h @@ -8,6 +8,7 @@ enum server_conn_fsm_event { SRVC_E_ESTABLISH, /* instruct SRVC to (re)etablish TCP connection to bankd */ + SRVC_E_DISCONNECT, /* instruct SRVC to disconnect TCP connection to bankd */ SRVC_E_TCP_UP, SRVC_E_TCP_DOWN, SRVC_E_KA_TIMEOUT, -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/17184 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I080f9e85987bbbe7aef84c32ce84b69d949ff561 Gerrit-Change-Number: 17184 Gerrit-PatchSet: 4 Gerrit-Owner: laforge <laforge at osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200221/f6c9db15/attachment.htm>