<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-e1d/+/19045">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  tnt: 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;">add e1_line_destroy() / e1_intf_destroy() functions<br><br>Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b<br>---<br>M src/e1d.h<br>M src/intf_line.c<br>2 files changed, 35 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/e1d.h b/src/e1d.h</span><br><span>index a5076b0..7803b2e 100644</span><br><span>--- a/src/e1d.h</span><br><span>+++ b/src/e1d.h</span><br><span>@@ -94,9 +94,15 @@</span><br><span> struct e1_intf *</span><br><span> e1d_find_intf(struct e1_daemon *e1d, uint8_t id);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+void</span><br><span style="color: hsl(120, 100%, 40%);">+e1_intf_destroy(struct e1_intf *intf);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> struct e1_line *</span><br><span> e1_line_new(struct e1_intf *intf, void *drv_data);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+void</span><br><span style="color: hsl(120, 100%, 40%);">+e1_line_destroy(struct e1_line *line);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> int</span><br><span> e1_line_mux_out(struct e1_line *line, uint8_t *buf, int fts);</span><br><span> </span><br><span>diff --git a/src/intf_line.c b/src/intf_line.c</span><br><span>index a879922..9118232 100644</span><br><span>--- a/src/intf_line.c</span><br><span>+++ b/src/intf_line.c</span><br><span>@@ -67,6 +67,21 @@</span><br><span>      return intf;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+void</span><br><span style="color: hsl(120, 100%, 40%);">+e1_intf_destroy(struct e1_intf *intf)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ struct e1_line *line, *line2;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* destroy all lines */</span><br><span style="color: hsl(120, 100%, 40%);">+       llist_for_each_entry_safe(line, line2, &intf->lines, list)</span><br><span style="color: hsl(120, 100%, 40%);">+             e1_line_destroy(line);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* remove from global list of interfaces */</span><br><span style="color: hsl(120, 100%, 40%);">+   llist_del(&intf->list);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      talloc_free(intf);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> struct e1_line *</span><br><span> e1_line_new(struct e1_intf *intf, void *drv_data)</span><br><span> {</span><br><span>@@ -95,6 +110,20 @@</span><br><span>  return line;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+void</span><br><span style="color: hsl(120, 100%, 40%);">+e1_line_destroy(struct e1_line *line)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ /* close all [peer] file descriptors */</span><br><span style="color: hsl(120, 100%, 40%);">+       for (int i=0; i<32; i++)</span><br><span style="color: hsl(120, 100%, 40%);">+           e1_ts_stop(&line->ts[i]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* remove from per-interface list of lines */</span><br><span style="color: hsl(120, 100%, 40%);">+ llist_del(&line->list);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      talloc_free(line);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> // ---------------------------------------------------------------------------</span><br><span> // data transfer</span><br><span> // ---------------------------------------------------------------------------</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-e1d/+/19045">change 19045</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/osmo-e1d/+/19045"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-e1d </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I5425d22288d7239063d621bddfe81e9cf21f1a5b </div>
<div style="display:none"> Gerrit-Change-Number: 19045 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Assignee: tnt <tnt@246tNt.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: tnt <tnt@246tNt.com> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>