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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ipaccess: Allow reconfiguring the ipa line during line_update()<br><br>The e1inp_line_update() API is precisely aimed at that: tell that we<br>want to reconfigure some aspects of the e1 line. Hence, it makes no<br>sense to apply a no-op with the flag "line_already_initialized".<br>That flag was added a long time ago in order to avoid problems when<br>several BTS are attached to the same ipa server link. That case doesn't<br>apply to the BTS role, so we can simply recreate the ipa_cli_conn.<br><br>Fixes: d6216405b7363c94174a6d301b96f5ed4a8730ce<br>Change-Id: Iff8092f88726cf238dac2abb99e135ac5864272d<br>---<br>M src/input/ipaccess.c<br>1 file changed, 12 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/input/ipaccess.c b/src/input/ipaccess.c</span><br><span>index a584e0d..63461a2 100644</span><br><span>--- a/src/input/ipaccess.c</span><br><span>+++ b/src/input/ipaccess.c</span><br><span>@@ -1005,6 +1005,7 @@</span><br><span> </span><br><span> struct ipaccess_line {</span><br><span>   bool line_already_initialized;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct ipa_client_conn *ipa_cli;</span><br><span> };</span><br><span> </span><br><span> static int ipaccess_line_update(struct e1inp_line *line)</span><br><span>@@ -1021,12 +1022,11 @@</span><br><span>     }</span><br><span>    il = line->driver_data;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  /* We only initialize this line once. */</span><br><span style="color: hsl(0, 100%, 40%);">-        if (il->line_already_initialized)</span><br><span style="color: hsl(0, 100%, 40%);">-            return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>    switch(line->ops->cfg.ipa.role) {</span><br><span>      case E1INP_LINE_R_BSC: {</span><br><span style="color: hsl(120, 100%, 40%);">+              /* We only initialize this line once. */</span><br><span style="color: hsl(120, 100%, 40%);">+              if (il->line_already_initialized)</span><br><span style="color: hsl(120, 100%, 40%);">+                  return 0;</span><br><span>            struct ipa_server_link *oml_link, *rsl_link;</span><br><span>                 const char *ipa = e1inp_ipa_get_bind_addr();</span><br><span> </span><br><span>@@ -1077,6 +1077,13 @@</span><br><span>                 "OML connecting to %s:%u\n", line->ops->cfg.ipa.addr,</span><br><span>                IPA_TCP_PORT_OML);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+           /* Drop previous line */</span><br><span style="color: hsl(120, 100%, 40%);">+              if (il->ipa_cli) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 ipa_client_conn_close(il->ipa_cli);</span><br><span style="color: hsl(120, 100%, 40%);">+                        ipa_client_conn_destroy(il->ipa_cli);</span><br><span style="color: hsl(120, 100%, 40%);">+                      il->ipa_cli = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+                }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>          link = ipa_client_conn_create2(tall_ipa_ctx,</span><br><span>                                               e1inp_line_ipa_oml_ts(line),</span><br><span>                                         E1INP_SIGN_OML,</span><br><span>@@ -1104,6 +1111,7 @@</span><br><span> </span><br><span>            e1i_ts = e1inp_line_ipa_oml_ts(line);</span><br><span>                ipaccess_bts_keepalive_fsm_alloc(e1i_ts, link, "oml_bts_to_bsc");</span><br><span style="color: hsl(120, 100%, 40%);">+           il->ipa_cli = link;</span><br><span>               ret = 0;</span><br><span>             break;</span><br><span>       }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmo-abis/+/25639">change 25639</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-abis/+/25639"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmo-abis </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Iff8092f88726cf238dac2abb99e135ac5864272d </div>
<div style="display:none"> Gerrit-Change-Number: 25639 </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: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>