pespin submitted this change.

View Change

Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve
stream_cli: Announce failed connect() if reconnect is disabled

One of the use cases of disabling reconnect in osmo_stream_cli is
because the user of the stream wants to control the reconnect based on
upper layer contexts. In this case, though, if there's a failure during
connect() time, the user won't get any notification and hence stay
disconnected forever. Instead, inform the user through the
disconnect_cb().

Change-Id: I69a5f7c3c7cea97d31e2fa03e8c32ce806285eb6
---
M src/stream_cli.c
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/stream_cli.c b/src/stream_cli.c
index 25dda4f..807f062 100644
--- a/src/stream_cli.c
+++ b/src/stream_cli.c
@@ -207,7 +207,10 @@

cli->state = STREAM_CLI_STATE_CLOSED;

- if (old_state == STREAM_CLI_STATE_CONNECTED) {
+ /* If conn was established, notify the disconnection to the user:
+ * Also, if reconnect is disabled by user, notify the user that connect() failed: */
+ if (old_state == STREAM_CLI_STATE_CONNECTED ||
+ (old_state == STREAM_CLI_STATE_CONNECTING && cli->reconnect_timeout < 0)) {
LOGSCLI(cli, LOGL_DEBUG, "connection closed\n");
if (cli->disconnect_cb)
cli->disconnect_cb(cli);

To view, visit change 38893. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I69a5f7c3c7cea97d31e2fa03e8c32ce806285eb6
Gerrit-Change-Number: 38893
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>