<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/libosmo-netif/+/17031">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  fixeria: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">stream: Add new WAIT_RECONNECT cli state<br><br>It's not really needed right now from logic point of view, since we<br>reused NONE for that. But it makes logging and logic clearer, and will<br>make it easier if we decide to move it to FSMs at a later point in time.<br><br>Other state value_string names are also modified with its whitespace<br>removed since anyway we'd need to change them to match WAIT_RECONNECT<br>length. Let's drop the space because imho it's not that useful and<br>anyway if we move to FSMs at some point then we won't have them anyway.<br><br>Change-Id: I7b9a6da87081c418b0d14bab5f34369c5eca6fe8<br>---<br>M src/stream.c<br>M tests/stream/stream_test.err<br>2 files changed, 14 insertions(+), 10 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/stream.c b/src/stream.c</span><br><span>index c47ae3e..8a063f2 100644</span><br><span>--- a/src/stream.c</span><br><span>+++ b/src/stream.c</span><br><span>@@ -129,16 +129,18 @@</span><br><span>  */</span><br><span> </span><br><span> enum osmo_stream_cli_state {</span><br><span style="color: hsl(0, 100%, 40%);">-        STREAM_CLI_STATE_NONE         = 0, /* No fd associated, may have timer active to try to connect again */</span><br><span style="color: hsl(0, 100%, 40%);">-        STREAM_CLI_STATE_CONNECTING   = 1, /* Fd associated, but connection not yet confirmed by peer or lower layers */</span><br><span style="color: hsl(0, 100%, 40%);">-        STREAM_CLI_STATE_CONNECTED    = 2, /* Fd associated and connection is established */</span><br><span style="color: hsl(120, 100%, 40%);">+        STREAM_CLI_STATE_NONE,                  /* No fd associated, no timer active */</span><br><span style="color: hsl(120, 100%, 40%);">+        STREAM_CLI_STATE_WAIT_RECONNECT, /* No fd associated, has timer active to try to connect again */</span><br><span style="color: hsl(120, 100%, 40%);">+        STREAM_CLI_STATE_CONNECTING,        /* Fd associated, but connection not yet confirmed by peer or lower layers */</span><br><span style="color: hsl(120, 100%, 40%);">+        STREAM_CLI_STATE_CONNECTED,      /* Fd associated and connection is established */</span><br><span>         STREAM_CLI_STATE_MAX</span><br><span> };</span><br><span> </span><br><span> static const struct value_string stream_cli_state_names[] = {</span><br><span style="color: hsl(0, 100%, 40%);">-   { STREAM_CLI_STATE_NONE,       "      NONE" },</span><br><span style="color: hsl(0, 100%, 40%);">-        { STREAM_CLI_STATE_CONNECTING, "CONNECTING" },</span><br><span style="color: hsl(0, 100%, 40%);">-        { STREAM_CLI_STATE_CONNECTED,  " CONNECTED" },</span><br><span style="color: hsl(120, 100%, 40%);">+      { STREAM_CLI_STATE_NONE,           "NONE" },</span><br><span style="color: hsl(120, 100%, 40%);">+        { STREAM_CLI_STATE_WAIT_RECONNECT, "WAIT_RECONNECT" },</span><br><span style="color: hsl(120, 100%, 40%);">+      { STREAM_CLI_STATE_CONNECTING,     "CONNECTING" },</span><br><span style="color: hsl(120, 100%, 40%);">+  { STREAM_CLI_STATE_CONNECTED,      "CONNECTED" },</span><br><span>  { 0, NULL }</span><br><span> };</span><br><span> </span><br><span>@@ -187,6 +189,7 @@</span><br><span>          return;</span><br><span>      }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ cli->state = STREAM_CLI_STATE_WAIT_RECONNECT;</span><br><span>     LOGSCLI(cli, LOGL_INFO, "retrying in %d seconds...\n",</span><br><span>             cli->reconnect_timeout);</span><br><span>  osmo_timer_schedule(&cli->timer, cli->reconnect_timeout, 0);</span><br><span>@@ -669,6 +672,7 @@</span><br><span>         return 0;</span><br><span> </span><br><span> error_close_socket:</span><br><span style="color: hsl(120, 100%, 40%);">+  cli->state = STREAM_CLI_STATE_NONE;</span><br><span>       close(cli->ofd.fd);</span><br><span>       cli->ofd.fd = -1;</span><br><span>         return -EIO;</span><br><span>diff --git a/tests/stream/stream_test.err b/tests/stream/stream_test.err</span><br><span>index 04bfcfe..69a0b85 100644</span><br><span>--- a/tests/stream/stream_test.err</span><br><span>+++ b/tests/stream/stream_test.err</span><br><span>@@ -12,8 +12,8 @@</span><br><span> {2.000006} autoreconnecting test step 6 [client OK, server OK], FD reg 1</span><br><span> </span><br><span> {2.000007} autoreconnecting test step 5 [client OK, server OK], FD reg 1</span><br><span style="color: hsl(0, 100%, 40%);">-[ CONNECTED] osmo_stream_cli_recv(): connection closed with srv</span><br><span style="color: hsl(0, 100%, 40%);">-[      NONE] osmo_stream_cli_reconnect(): retrying in 9 seconds...</span><br><span style="color: hsl(120, 100%, 40%);">+[CONNECTED] osmo_stream_cli_recv(): connection closed with srv</span><br><span style="color: hsl(120, 100%, 40%);">+[WAIT_RECONNECT] osmo_stream_cli_reconnect(): retrying in 9 seconds...</span><br><span> </span><br><span> {11.000008} autoreconnecting test step 4 [client OK, server OK], FD reg 0</span><br><span> </span><br><span>@@ -37,7 +37,7 @@</span><br><span> {11.000017} non-reconnecting test step 2 [client OK, server OK], FD reg 1</span><br><span> </span><br><span> {11.000018} non-reconnecting test step 1 [client OK, server OK], FD reg 1</span><br><span style="color: hsl(0, 100%, 40%);">-[ CONNECTED] osmo_stream_cli_recv(): connection closed with srv</span><br><span style="color: hsl(0, 100%, 40%);">-[      NONE] osmo_stream_cli_reconnect(): not reconnecting, disabled.</span><br><span style="color: hsl(120, 100%, 40%);">+[CONNECTED] osmo_stream_cli_recv(): connection closed with srv</span><br><span style="color: hsl(120, 100%, 40%);">+[NONE] osmo_stream_cli_reconnect(): not reconnecting, disabled.</span><br><span> </span><br><span> {20.000019} non-reconnecting test step 0 [client OK, server OK], FD reg 0</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmo-netif/+/17031">change 17031</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/libosmo-netif/+/17031"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmo-netif </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I7b9a6da87081c418b0d14bab5f34369c5eca6fe8 </div>
<div style="display:none"> Gerrit-Change-Number: 17031 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>