<p>Max has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/12836">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Stream client: update logging<br><br>Introduce logging macro wrapper to properly log current client state and<br>function to aid in debugging.<br><br>Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53<br>---<br>M src/stream.c<br>1 file changed, 24 insertions(+), 16 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/36/12836/1</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 dbbaa9c..ca67aa0 100644</span><br><span>--- a/src/stream.c</span><br><span>+++ b/src/stream.c</span><br><span>@@ -49,6 +49,8 @@</span><br><span> #include <netinet/sctp.h></span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define LOGSCLI(cli, level, fmt, args...) LOGP(DLINP, level, "[%s] %s(): " fmt, get_value_string(stream_cli_state_names, cli->state), __func__, ## args)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*! \addtogroup stream Osmocom Stream Socket</span><br><span>  *  @{</span><br><span>  *</span><br><span>@@ -131,6 +133,13 @@</span><br><span>         STREAM_CLI_STATE_MAX</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+const struct value_string stream_cli_state_names[] = {</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_CONNECTING, "CONNECTING" },</span><br><span style="color: hsl(120, 100%, 40%);">+      { STREAM_CLI_STATE_CONNECTED,  " CONNECTED" },</span><br><span style="color: hsl(120, 100%, 40%);">+      { 0, NULL }</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #define OSMO_STREAM_CLI_F_RECONF   (1 << 0)</span><br><span> #define OSMO_STREAM_CLI_F_NODELAY     (1 << 1)</span><br><span> </span><br><span>@@ -160,12 +169,12 @@</span><br><span> void osmo_stream_cli_reconnect(struct osmo_stream_cli *cli)</span><br><span> {</span><br><span>       if (cli->reconnect_timeout < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOGP(DLINP, LOGL_DEBUG, "not reconnecting, disabled.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGSCLI(cli, LOGL_DEBUG, "not reconnecting, disabled.\n");</span><br><span>                 return;</span><br><span>      }</span><br><span style="color: hsl(0, 100%, 40%);">-       LOGP(DLINP, LOGL_DEBUG, "connection closed\n");</span><br><span style="color: hsl(120, 100%, 40%);">+     LOGSCLI(cli, LOGL_DEBUG, "connection closed\n");</span><br><span>   osmo_stream_cli_close(cli);</span><br><span style="color: hsl(0, 100%, 40%);">-     LOGP(DLINP, LOGL_DEBUG, "retrying in %d seconds...\n",</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGSCLI(cli, LOGL_DEBUG, "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>       cli->state = STREAM_CLI_STATE_CONNECTING;</span><br><span>@@ -186,7 +195,7 @@</span><br><span> </span><br><span> static void osmo_stream_cli_read(struct osmo_stream_cli *cli)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOGP(DLINP, LOGL_DEBUG, "message received\n");</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGSCLI(cli, LOGL_DEBUG, "message received\n");</span><br><span> </span><br><span>        if (cli->read_cb)</span><br><span>                 cli->read_cb(cli);</span><br><span>@@ -201,7 +210,7 @@</span><br><span>  struct llist_head *lh;</span><br><span>       int ret;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    LOGP(DLINP, LOGL_DEBUG, "sending data\n");</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGSCLI(cli, LOGL_DEBUG, "sending data\n");</span><br><span> </span><br><span>    if (llist_empty(&cli->tx_queue)) {</span><br><span>            cli->ofd.when &= ~BSC_FD_WRITE;</span><br><span>@@ -212,7 +221,7 @@</span><br><span>         msg = llist_entry(lh, struct msgb, list);</span><br><span> </span><br><span>        if (cli->state == STREAM_CLI_STATE_CONNECTING) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOGP(DLINP, LOGL_ERROR, "not connected, dropping data!\n");</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGSCLI(cli, LOGL_ERROR, "not connected, dropping data!\n");</span><br><span>               return 0;</span><br><span>    }</span><br><span> </span><br><span>@@ -235,7 +244,7 @@</span><br><span>          if (errno == EPIPE || errno == ENOTCONN) {</span><br><span>                   osmo_stream_cli_reconnect(cli);</span><br><span>              }</span><br><span style="color: hsl(0, 100%, 40%);">-               LOGP(DLINP, LOGL_ERROR, "error to send\n");</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGSCLI(cli, LOGL_ERROR, "error to send\n");</span><br><span>       }</span><br><span>    msgb_free(msg);</span><br><span>      return 0;</span><br><span>@@ -255,7 +264,7 @@</span><br><span>                      return 0;</span><br><span>            }</span><br><span>            ofd->when &= ~BSC_FD_WRITE;</span><br><span style="color: hsl(0, 100%, 40%);">-              LOGP(DLINP, LOGL_DEBUG, "connection done.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGSCLI(cli, LOGL_DEBUG, "connection done.\n");</span><br><span>            cli->state = STREAM_CLI_STATE_CONNECTED;</span><br><span>          if (cli->proto == IPPROTO_SCTP) {</span><br><span> #ifdef SO_NOSIGPIPE</span><br><span>@@ -263,7 +272,7 @@</span><br><span> </span><br><span>                        ret = setsockopt(ofd->fd, SOL_SOCKET, SO_NOSIGPIPE, (void*)&val, sizeof(val));</span><br><span>                        if (ret < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-                         LOGP(DLINP, LOGL_DEBUG, "Failed setting SO_NOSIGPIPE: %s\n", strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+                              LOGSCLI(cli, LOGL_DEBUG, "Failed setting SO_NOSIGPIPE: %s\n", strerror(errno));</span><br><span> #endif</span><br><span>                  sctp_sock_activate_events(ofd->fd);</span><br><span>               }</span><br><span>@@ -272,11 +281,11 @@</span><br><span>            break;</span><br><span>       case STREAM_CLI_STATE_CONNECTED:</span><br><span>             if (what & BSC_FD_READ) {</span><br><span style="color: hsl(0, 100%, 40%);">-                   LOGP(DLINP, LOGL_DEBUG, "connected read\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                        LOGSCLI(cli, LOGL_DEBUG, "connected read\n");</span><br><span>                      osmo_stream_cli_read(cli);</span><br><span>           }</span><br><span>            if (what & BSC_FD_WRITE) {</span><br><span style="color: hsl(0, 100%, 40%);">-                  LOGP(DLINP, LOGL_DEBUG, "connected write\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                       LOGSCLI(cli, LOGL_DEBUG, "connected write\n");</span><br><span>                     osmo_stream_cli_write(cli);</span><br><span>          }</span><br><span>            break;</span><br><span>@@ -503,7 +512,7 @@</span><br><span> {</span><br><span>    struct osmo_stream_cli *cli = data;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLINP, LOGL_DEBUG, "reconnecting.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGSCLI(cli, LOGL_DEBUG, "reconnecting.\n");</span><br><span> </span><br><span>   switch(cli->state) {</span><br><span>      case STREAM_CLI_STATE_CONNECTING:</span><br><span>@@ -535,18 +544,17 @@</span><br><span>    ret = recv(cli->ofd.fd, msg->data, msg->data_len, 0);</span><br><span>       if (ret < 0) {</span><br><span>            if (errno == EPIPE || errno == ECONNRESET) {</span><br><span style="color: hsl(0, 100%, 40%);">-                    LOGP(DLINP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">-                         "lost connection with srv\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                      LOGSCLI(cli, LOGL_ERROR, "lost connection with srv\n");</span><br><span>            }</span><br><span>            osmo_stream_cli_reconnect(cli);</span><br><span>              return ret;</span><br><span>  } else if (ret == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOGP(DLINP, LOGL_ERROR, "connection closed with srv\n");</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGSCLI(cli, LOGL_ERROR, "connection closed with srv\n");</span><br><span>          osmo_stream_cli_reconnect(cli);</span><br><span>              return ret;</span><br><span>  }</span><br><span>    msgb_put(msg, ret);</span><br><span style="color: hsl(0, 100%, 40%);">-     LOGP(DLINP, LOGL_DEBUG, "received %d bytes from srv\n", ret);</span><br><span style="color: hsl(120, 100%, 40%);">+       LOGSCLI(cli, LOGL_DEBUG, "received %d bytes from srv\n", ret);</span><br><span>     return ret;</span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12836">change 12836</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/12836"/><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-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 </div>
<div style="display:none"> Gerrit-Change-Number: 12836 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Max <msuraev@sysmocom.de> </div>