Max has uploaded this change for review. ( https://gerrit.osmocom.org/12316


Change subject: ctrl: make config structure public
......................................................................

ctrl: make config structure public

Moving configuration data from anonymous struct into shared header as a
preparation for ctrl logging improvements in follow-up patches.

Change-Id: I3520e14ca6e1b8e270dbd4b1bf2378fe486991ce
Related: SYS#2655
---
M src/osysmon_ctrl.c
M src/simple_ctrl.h
2 files changed, 26 insertions(+), 19 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/16/12316/1

diff --git a/src/osysmon_ctrl.c b/src/osysmon_ctrl.c
index 25c2b4c..097e24c 100644
--- a/src/osysmon_ctrl.c
+++ b/src/osysmon_ctrl.c
@@ -38,14 +38,7 @@
 struct ctrl_client {
        /* links to osysmon.ctrl_clients */
        struct llist_head list;
-       struct {
-               /* name of this CTRL client */
-               const char *name;
-               /* remote host/IP */
-               const char *remote_host;
-               /* remote CTRL port */
-               uint16_t remote_port;
-       } cfg;
+       struct ctrl_cfg *cfg;
        struct simple_ctrl_handle *sch;
        /* list of ctrl_client_get_var objects */
        struct llist_head get_vars;
@@ -69,7 +62,7 @@
 {
        struct ctrl_client *cc;
        llist_for_each_entry(cc, &os->ctrl_clients, list) {
-               if (!strcmp(name, cc->cfg.name))
+               if (!strcmp(name, cc->cfg->name))
                        return cc;
        }
        return NULL;
@@ -86,9 +79,14 @@
        cc = talloc_zero(os, struct ctrl_client);
        if (!cc)
                return NULL;
-       cc->cfg.name = talloc_strdup(cc, name);
-       cc->cfg.remote_host = talloc_strdup(cc, host);
-       cc->cfg.remote_port = port;
+
+       cc->cfg = talloc_zero(cc, struct ctrl_cfg);
+       if (!cc->cfg)
+               return NULL;
+
+       cc->cfg->name = talloc_strdup(cc, name);
+       cc->cfg->remote_host = talloc_strdup(cc, host);
+       cc->cfg->remote_port = port;
        INIT_LLIST_HEAD(&cc->get_vars);
        llist_add_tail(&cc->list, &os->ctrl_clients);
        /* FIXME */
@@ -163,10 +161,10 @@
        struct ctrl_client *cc;
        cc = ctrl_client_find(g_oss, argv[0]);
        if (cc) {
-               if ((strcmp(cc->cfg.remote_host, argv[1])) ||
-                   (cc->cfg.remote_port != atoi(argv[2]))) {
+               if ((strcmp(cc->cfg->remote_host, argv[1])) ||
+                   (cc->cfg->remote_port != atoi(argv[2]))) {
                        vty_out(vty, "Client %s has different IP/port, please 
remove it first%s",
-                               cc->cfg.name, VTY_NEWLINE);
+                               cc->cfg->name, VTY_NEWLINE);
                        return CMD_WARNING;
                }
        } else
@@ -222,8 +220,8 @@
 static void write_one_ctrl_client(struct vty *vty, struct ctrl_client *cc)
 {
        struct ctrl_client_get_var *ccgv;
-       vty_out(vty, "ctrl-client %s %s %u%s", cc->cfg.name,
-               cc->cfg.remote_host, cc->cfg.remote_port, VTY_NEWLINE);
+       vty_out(vty, "ctrl-client %s %s %u%s", cc->cfg->name,
+               cc->cfg->remote_host, cc->cfg->remote_port, VTY_NEWLINE);
        llist_for_each_entry(ccgv, &cc->get_vars, list) {
                vty_out(vty, " get-variable %s%s", ccgv->cfg.name, VTY_NEWLINE);
                if (ccgv->cfg.display_name)
@@ -266,11 +264,11 @@
 static int ctrl_client_poll(struct ctrl_client *cc, struct value_node *parent)
 {
        struct ctrl_client_get_var *ccgv;
-       struct value_node *vn_clnt = value_node_add(parent, parent, 
cc->cfg.name, NULL);
+       struct value_node *vn_clnt = value_node_add(parent, parent, 
cc->cfg->name, NULL);

        /* attempt to re-connect */
        if (!cc->sch)
-               cc->sch = simple_ctrl_open(cc, cc->cfg.remote_host, 
cc->cfg.remote_port, 1000);
+               cc->sch = simple_ctrl_open(cc, cc->cfg->remote_host, 
cc->cfg->remote_port, 1000);
        /* abort, if that failed */
        if (!cc->sch) {
                return -1;
diff --git a/src/simple_ctrl.h b/src/simple_ctrl.h
index 81a759d..f5aa770 100644
--- a/src/simple_ctrl.h
+++ b/src/simple_ctrl.h
@@ -2,6 +2,15 @@

 #include <stdint.h>

+struct ctrl_cfg {
+       /* name of this CTRL client */
+       const char *name;
+       /* remote host/IP */
+       const char *remote_host;
+       /* remote CTRL port */
+       uint16_t remote_port;
+};
+
 struct simple_ctrl_handle;

 struct simple_ctrl_handle *simple_ctrl_open(void *ctx, const char *host, 
uint16_t dport,

--
To view, visit https://gerrit.osmocom.org/12316
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-sysmon
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3520e14ca6e1b8e270dbd4b1bf2378fe486991ce
Gerrit-Change-Number: 12316
Gerrit-PatchSet: 1
Gerrit-Owner: Max <msur...@sysmocom.de>

Reply via email to