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/.
Max gerrit-no-reply at lists.osmocom.orgMax has submitted this change and it was merged. ( https://gerrit.osmocom.org/12760 ) Change subject: Stream client: fix disconnection logic ...................................................................... Stream client: fix disconnection logic Previously closing the client did not alter its state, so we might end-up with a client without any file descriptors, but being in state STREAM_CLI_STATE_CONNECTED. Fix this inconsistency by setting appropriate state. Related issue is that reconnect function, which is always (at least in the library and examples) called when some problem with the connection is detected, closed the connection only after checking whether reconnection is enabled. This might result in another inconsistency fixed in this patch by moving the check below connection cleanup. While at it, also move connection close logging to appropriate place: it's confusing to see logs about connection being closed while in reality it wasn't even established. Change-Id: If41ed60bd625488c283d1e8a2b078e640f04c78e --- M src/stream.c 1 file changed, 8 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/stream.c b/src/stream.c index 7cc77c9..7b97d2a 100644 --- a/src/stream.c +++ b/src/stream.c @@ -169,12 +169,13 @@ * connection (if any) and schedule a re-connect timer */ void osmo_stream_cli_reconnect(struct osmo_stream_cli *cli) { + osmo_stream_cli_close(cli); + if (cli->reconnect_timeout < 0) { LOGSCLI(cli, LOGL_DEBUG, "not reconnecting, disabled.\n"); return; } - LOGSCLI(cli, LOGL_DEBUG, "connection closed\n"); - osmo_stream_cli_close(cli); + LOGSCLI(cli, LOGL_DEBUG, "retrying in %d seconds...\n", cli->reconnect_timeout); osmo_timer_schedule(&cli->timer, cli->reconnect_timeout, 0); @@ -192,6 +193,11 @@ osmo_fd_unregister(&cli->ofd); close(cli->ofd.fd); cli->ofd.fd = -1; + + if (cli->state == STREAM_CLI_STATE_CONNECTED) + LOGSCLI(cli, LOGL_DEBUG, "connection closed\n"); + + cli->state = STREAM_CLI_STATE_NONE; } static void osmo_stream_cli_read(struct osmo_stream_cli *cli) -- To view, visit https://gerrit.osmocom.org/12760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If41ed60bd625488c283d1e8a2b078e640f04c78e Gerrit-Change-Number: 12760 Gerrit-PatchSet: 5 Gerrit-Owner: Max <msuraev at sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max <msuraev at sysmocom.de> Gerrit-Reviewer: Pablo Neira Ayuso <pablo at gnumonks.org> Gerrit-Reviewer: daniel <dwillmann at sysmocom.de> Gerrit-Reviewer: osmith <osmith at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190205/f91150a9/attachment.htm>