<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/9377">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ctrl: Make 'struct ctrl_connection' non-public<br><br>The ctrl_connection is always dynamically allocated by API functions<br>exported by libosmoctrl, and users simply pass pointers to it back<br>into other API functions.  As such, there's no need to expose the<br>detailed intenals of this structure to the user.<br><br>Change-Id: I3fb9fb19eb057a40fcda139066f04f1096944755<br>---<br>M include/osmocom/ctrl/control_cmd.h<br>M include/osmocom/gsm/protocol/gsm_08_08.h<br>M src/ctrl/Makefile.am<br>M src/ctrl/control_cmd.c<br>M src/ctrl/control_if.c<br>A src/ctrl/ctrl_internal.h<br>M tests/Makefile.am<br>M tests/ctrl/ctrl_test.c<br>8 files changed, 36 insertions(+), 22 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/77/9377/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/ctrl/control_cmd.h b/include/osmocom/ctrl/control_cmd.h</span><br><span>index 08376f3..29425e1 100644</span><br><span>--- a/include/osmocom/ctrl/control_cmd.h</span><br><span>+++ b/include/osmocom/ctrl/control_cmd.h</span><br><span>@@ -41,25 +41,7 @@</span><br><span> extern const struct value_string ctrl_type_vals[];</span><br><span> </span><br><span> /*! Represents a single ctrl connection */</span><br><span style="color: hsl(0, 100%, 40%);">-struct ctrl_connection {</span><br><span style="color: hsl(0, 100%, 40%);">-      struct llist_head list_entry;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   /*! The queue for sending data back */</span><br><span style="color: hsl(0, 100%, 40%);">-  struct osmo_wqueue write_queue;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /*! Buffer for partial input data */</span><br><span style="color: hsl(0, 100%, 40%);">-    struct msgb *pending_msg;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       /*! Callback if the connection was closed */</span><br><span style="color: hsl(0, 100%, 40%);">-    void (*closed_cb)(struct ctrl_connection *conn);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        /*! Pending commands for this connection */</span><br><span style="color: hsl(0, 100%, 40%);">-     struct llist_head cmds;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /*! Pending deferred command responses for this connection */</span><br><span style="color: hsl(0, 100%, 40%);">-   struct llist_head def_cmds;</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+struct ctrl_connection;</span><br><span> struct ctrl_cmd_def;</span><br><span> </span><br><span> /*! Represents a single ctrl command after parsing */</span><br><span>diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h</span><br><span>index 5d2bf13..0a5e299 100644</span><br><span>--- a/include/osmocom/gsm/protocol/gsm_08_08.h</span><br><span>+++ b/include/osmocom/gsm/protocol/gsm_08_08.h</span><br><span>@@ -549,8 +549,8 @@</span><br><span> </span><br><span> /* TS 48.008 3.2.2.117 */</span><br><span> enum gsm0808_lcls_control {</span><br><span style="color: hsl(0, 100%, 40%);">-  GSM0808_LCLS_CSC_CONNET                                         = 0x00,</span><br><span style="color: hsl(0, 100%, 40%);">- GSM0808_LCLS_CSC_DO_NOT_CONNET                                  = 0x01,</span><br><span style="color: hsl(120, 100%, 40%);">+       GSM0808_LCLS_CSC_CONNECT                                        = 0x00,</span><br><span style="color: hsl(120, 100%, 40%);">+       GSM0808_LCLS_CSC_DO_NOT_CONNECT                                 = 0x01,</span><br><span>      GSM0808_LCLS_CSC_RELEASE_LCLS                                   = 0x02,</span><br><span>      GSM0808_LCLS_CSC_BICAST_UL_AT_HANDOVER                          = 0x03,</span><br><span>      GSM0808_LCLS_CSC_BICAST_UL_AND_RECV_DL_AT_HANDOVER              = 0x04,</span><br><span>diff --git a/src/ctrl/Makefile.am b/src/ctrl/Makefile.am</span><br><span>index a51ae05..0a401c8 100644</span><br><span>--- a/src/ctrl/Makefile.am</span><br><span>+++ b/src/ctrl/Makefile.am</span><br><span>@@ -20,6 +20,6 @@</span><br><span> libosmoctrl_la_SOURCES += control_vty.c</span><br><span> endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-EXTRA_DIST = libosmoctrl.map</span><br><span style="color: hsl(120, 100%, 40%);">+EXTRA_DIST = libosmoctrl.map ctrl_internal.h</span><br><span> </span><br><span> endif</span><br><span>diff --git a/src/ctrl/control_cmd.c b/src/ctrl/control_cmd.c</span><br><span>index bff4d17..e6bc073 100644</span><br><span>--- a/src/ctrl/control_cmd.c</span><br><span>+++ b/src/ctrl/control_cmd.c</span><br><span>@@ -42,6 +42,8 @@</span><br><span> #include <osmocom/vty/command.h></span><br><span> #include <osmocom/vty/vector.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include "ctrl_internal.h"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> extern vector ctrl_node_vec;</span><br><span> </span><br><span> const struct value_string ctrl_type_vals[] = {</span><br><span>diff --git a/src/ctrl/control_if.c b/src/ctrl/control_if.c</span><br><span>index d3e6fac..8eadf7e 100644</span><br><span>--- a/src/ctrl/control_if.c</span><br><span>+++ b/src/ctrl/control_if.c</span><br><span>@@ -64,6 +64,8 @@</span><br><span> #include <osmocom/vty/command.h></span><br><span> #include <osmocom/vty/vector.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include "ctrl_internal.h"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> extern int osmo_fsm_ctrl_cmds_install(void);</span><br><span> </span><br><span> vector ctrl_node_vec;</span><br><span>diff --git a/src/ctrl/ctrl_internal.h b/src/ctrl/ctrl_internal.h</span><br><span>new file mode 100644</span><br><span>index 0000000..d2911be</span><br><span>--- /dev/null</span><br><span>+++ b/src/ctrl/ctrl_internal.h</span><br><span>@@ -0,0 +1,25 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#pragma once</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/core/linuxlist.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/core/write_queue.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/core/msgb.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/ctrl/control_if.h></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+struct ctrl_connection {</span><br><span style="color: hsl(120, 100%, 40%);">+   struct llist_head list_entry;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /*! The queue for sending data back */</span><br><span style="color: hsl(120, 100%, 40%);">+        struct osmo_wqueue write_queue;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     /*! Buffer for partial input data */</span><br><span style="color: hsl(120, 100%, 40%);">+  struct msgb *pending_msg;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /*! Callback if the connection was closed */</span><br><span style="color: hsl(120, 100%, 40%);">+  void (*closed_cb)(struct ctrl_connection *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /*! Pending commands for this connection */</span><br><span style="color: hsl(120, 100%, 40%);">+   struct llist_head cmds;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     /*! Pending deferred command responses for this connection */</span><br><span style="color: hsl(120, 100%, 40%);">+ struct llist_head def_cmds;</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span>diff --git a/tests/Makefile.am b/tests/Makefile.am</span><br><span>index 70b5cb8..a2ace2c 100644</span><br><span>--- a/tests/Makefile.am</span><br><span>+++ b/tests/Makefile.am</span><br><span>@@ -75,6 +75,7 @@</span><br><span> abis_abis_test_LDADD = $(LDADD) $(top_builddir)/src/gsm/libosmogsm.la</span><br><span> </span><br><span> ctrl_ctrl_test_SOURCES = ctrl/ctrl_test.c</span><br><span style="color: hsl(120, 100%, 40%);">+ctrl_ctrl_test_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/src/ctrl</span><br><span> ctrl_ctrl_test_LDADD = $(LDADD) $(top_builddir)/src/ctrl/libosmoctrl.la</span><br><span> </span><br><span> gea_gea_test_SOURCES = gea/gea_test.c</span><br><span>diff --git a/tests/ctrl/ctrl_test.c b/tests/ctrl/ctrl_test.c</span><br><span>index 8bb917b..a0f5973 100644</span><br><span>--- a/tests/ctrl/ctrl_test.c</span><br><span>+++ b/tests/ctrl/ctrl_test.c</span><br><span>@@ -12,6 +12,8 @@</span><br><span> #include <osmocom/gsm/protocol/ipaccess.h></span><br><span> #include <osmocom/ctrl/control_if.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include "ctrl_internal.h"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void check_type(enum ctrl_type c)</span><br><span> {</span><br><span>    const char *t = get_value_string(ctrl_type_vals, c);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9377">change 9377</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/9377"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I3fb9fb19eb057a40fcda139066f04f1096944755 </div>
<div style="display:none"> Gerrit-Change-Number: 9377 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>