<p>Vadim Yanitskiy <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/13373">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">libmsc: fix: properly initialize the SGs server<br><br>It was observed that the SGs server is started before<br>the actual VTY configuration is parsed. For example:<br><br>  sgs<br>   local-port 9999<br>   local-ip 127.0.0.1<br>   vlr-name vlr.example.net<br><br>produces the following debug output:<br><br>  <0011> sgs_server.c:185 SGs socket bound to r=NULL<->l=0.0.0.0:29118<br>  DLSS7 NOTICE <001e> osmo_ss7.c:1284 0: ASP Restart for server not implemented yet!<br>  DSGS NOTICE <0011> sgs_server.c:185 SGs socket bound to r=NULL<->l=0.0.0.0:9999<br>  DSGS NOTICE <0011> sgs_server.c:185 SGs socket bound to r=NULL<->l=127.0.0.1:9999<br>  DMNCC DEBUG <0004> msc_main.c:604 Using internal MNCC handler.<br><br>The first startup is triggered by sgs_iface_init(), before reading<br>the VTY configuration, so the logging style is different. The next<br>two calls to sgs_server_open() are triggered during reading of the<br>VTY configuration by cfg_sgs_local_port() and cfg_sgs_local_ip().<br><br>Let's avoid starting the SGs server three times, and do it once,<br>after the VTY configuration is parsed. Also, keep the possibility<br>to change the binding parameters at run-time.<br><br>Change-Id: Ie0c31205ac48be7e50d0380a89833771b2708da4<br>---<br>M src/libmsc/sgs_iface.c<br>M src/libmsc/sgs_vty.c<br>M src/osmo-msc/msc_main.c<br>3 files changed, 16 insertions(+), 8 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/libmsc/sgs_iface.c b/src/libmsc/sgs_iface.c</span><br><span>index 95b68f8..450d552 100644</span><br><span>--- a/src/libmsc/sgs_iface.c</span><br><span>+++ b/src/libmsc/sgs_iface.c</span><br><span>@@ -1258,8 +1258,6 @@</span><br><span>              return NULL;</span><br><span>         g_sgs = sgs;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        sgs_server_open(sgs);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>        return sgs;</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/libmsc/sgs_vty.c b/src/libmsc/sgs_vty.c</span><br><span>index 8ba5a79..dbf2607 100644</span><br><span>--- a/src/libmsc/sgs_vty.c</span><br><span>+++ b/src/libmsc/sgs_vty.c</span><br><span>@@ -56,9 +56,11 @@</span><br><span>       osmo_strlcpy(sgs->cfg.local_addr, argv[0], sizeof(sgs->cfg.local_addr));</span><br><span>       osmo_stream_srv_link_set_addr(sgs->srv_link, sgs->cfg.local_addr);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    rc = sgs_server_open(sgs);</span><br><span style="color: hsl(0, 100%, 40%);">-      if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-          return CMD_WARNING;</span><br><span style="color: hsl(120, 100%, 40%);">+   if (vty->type != VTY_FILE) {</span><br><span style="color: hsl(120, 100%, 40%);">+               rc = sgs_server_open(sgs);</span><br><span style="color: hsl(120, 100%, 40%);">+            if (rc < 0)</span><br><span style="color: hsl(120, 100%, 40%);">+                        return CMD_WARNING;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span> </span><br><span>        return CMD_SUCCESS;</span><br><span> }</span><br><span>@@ -74,9 +76,11 @@</span><br><span>        sgs->cfg.local_port = atoi(argv[0]);</span><br><span>      osmo_stream_srv_link_set_port(sgs->srv_link, sgs->cfg.local_port);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    rc = sgs_server_open(sgs);</span><br><span style="color: hsl(0, 100%, 40%);">-      if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-          return CMD_WARNING;</span><br><span style="color: hsl(120, 100%, 40%);">+   if (vty->type != VTY_FILE) {</span><br><span style="color: hsl(120, 100%, 40%);">+               rc = sgs_server_open(sgs);</span><br><span style="color: hsl(120, 100%, 40%);">+            if (rc < 0)</span><br><span style="color: hsl(120, 100%, 40%);">+                        return CMD_WARNING;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span> </span><br><span>        return CMD_SUCCESS;</span><br><span> }</span><br><span>diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c</span><br><span>index f29b2a8..b55d38f 100644</span><br><span>--- a/src/osmo-msc/msc_main.c</span><br><span>+++ b/src/osmo-msc/msc_main.c</span><br><span>@@ -62,6 +62,7 @@</span><br><span> #include <osmocom/sigtran/osmo_ss7.h></span><br><span> #include <osmocom/mgcp_client/mgcp_client.h></span><br><span> #include <osmocom/msc/sgs_iface.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/msc/sgs_server.h></span><br><span> </span><br><span> #ifdef BUILD_IU</span><br><span> #include <osmocom/ranap/iu_client.h></span><br><span>@@ -692,6 +693,11 @@</span><br><span>                return 8;</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (sgs_server_open(g_sgs)) {</span><br><span style="color: hsl(120, 100%, 40%);">+         printf("Starting SGs server failed\n");</span><br><span style="color: hsl(120, 100%, 40%);">+             return 9;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #ifdef BUILD_IU</span><br><span>       /* Set up IuCS */</span><br><span>    ranap_iu_init(tall_msc_ctx, DRANAP, "OsmoMSC-IuCS", msc_network->iu.sccp, rcvmsg_iu_cs, rx_iu_event);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13373">change 13373</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/13373"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-msc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Ie0c31205ac48be7e50d0380a89833771b2708da4 </div>
<div style="display:none"> Gerrit-Change-Number: 13373 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Vadim Yanitskiy <axilirator@gmail.com> </div>