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


Change subject: ctrl: pass config struct to all simple_ctrl_*()
......................................................................

ctrl: pass config struct to all simple_ctrl_*()

Make basic logging-related information available to simple_ctrl_*()
functions.

Change-Id: I783dda27dfc5fd57401d971b2e970ede0efc7b2c
Related: SYS#2655
---
M src/osmo-ctrl-client.c
M src/osysmon_ctrl.c
M src/simple_ctrl.c
M src/simple_ctrl.h
4 files changed, 22 insertions(+), 25 deletions(-)



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

diff --git a/src/osmo-ctrl-client.c b/src/osmo-ctrl-client.c
index 83e9b7b..6a196eb 100644
--- a/src/osmo-ctrl-client.c
+++ b/src/osmo-ctrl-client.c
@@ -45,19 +45,18 @@
 int main(int argc, char **argv)
 {
        struct simple_ctrl_handle *sch;
-       const char *host;
-       uint16_t port;
+       struct ctrl_cfg cfg = { .name = "osmo-ctrl-client" };
        int rc;

        if (argc < 4)
                exit_help();

-       host = argv[1];
-       port = atoi(argv[2]);
+       cfg.remote_host = argv[1];
+       cfg.remote_port = atoi(argv[2]);

        osmo_init_logging2(NULL, &log_info);

-       sch = simple_ctrl_open(NULL, host, port, 1000);
+       sch = simple_ctrl_open(NULL, &cfg, 1000);
        if (!sch)
                exit(1);

@@ -65,20 +64,20 @@
                char *val;
                if (argc < 5)
                        exit_help();
-               val = simple_ctrl_get(sch, argv[4]);
+               val = simple_ctrl_get(&cfg, sch, argv[4]);
                if (!val)
                        exit(2);
                printf("%s\n", val);
        } else if (!strcmp(argv[3], "set")) {
                if (argc < 6)
                        exit_help();
-               rc = simple_ctrl_set(sch, argv[4], argv[5]);
+               rc = simple_ctrl_set(&cfg, sch, argv[4], argv[5]);
                if (rc < 0)
                        exit(1);
        } else if (!strcmp(argv[3], "monitor")) {
                simple_ctrl_set_timeout(sch, 0);
                while (true) {
-                       struct msgb *msg = simple_ctrl_receive(sch);
+                       struct msgb *msg = simple_ctrl_receive(&cfg, sch);
                        if (!msg)
                                exit(1);
                        printf("%s", (char *) msgb_l2(msg));
diff --git a/src/osysmon_ctrl.c b/src/osysmon_ctrl.c
index 097e24c..bcab94c 100644
--- a/src/osysmon_ctrl.c
+++ b/src/osysmon_ctrl.c
@@ -268,14 +268,14 @@

        /* 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, 1000);
        /* abort, if that failed */
        if (!cc->sch) {
                return -1;
        }

        llist_for_each_entry(ccgv, &cc->get_vars, list) {
-               char *value = simple_ctrl_get(cc->sch, ccgv->cfg.name);
+               char *value = simple_ctrl_get(cc->cfg, cc->sch, ccgv->cfg.name);

                /* FIXME: Distinguish between ERROR reply and
                 * connection issues */
diff --git a/src/simple_ctrl.c b/src/simple_ctrl.c
index 2261323..24d92b9 100644
--- a/src/simple_ctrl.c
+++ b/src/simple_ctrl.c
@@ -100,15 +100,14 @@
        uint32_t tout_msec;
 };

-struct simple_ctrl_handle *simple_ctrl_open(void *ctx, const char *host, 
uint16_t dport,
-                                           uint32_t tout_msec)
+struct simple_ctrl_handle *simple_ctrl_open(void *ctx, const struct ctrl_cfg 
*cfg, uint32_t tout_msec)
 {
        struct simple_ctrl_handle *sch;
        fd_set writeset;
        int off = 0;
        int rc, fd;

-       fd = osmo_sock_init(AF_INET, SOCK_STREAM, IPPROTO_TCP, host, dport,
+       fd = osmo_sock_init(AF_INET, SOCK_STREAM, IPPROTO_TCP, 
cfg->remote_host, cfg->remote_port,
                            OSMO_SOCK_F_CONNECT | OSMO_SOCK_F_NONBLOCK);
        if (fd < 0) {
                fprintf(stderr, "CTRL: error connecting socket: %s\n", 
strerror(errno));
@@ -191,7 +190,7 @@
        return resp;
 }

-struct msgb *simple_ctrl_receive(struct simple_ctrl_handle *sch)
+struct msgb *simple_ctrl_receive(const struct ctrl_cfg *cfg, struct 
simple_ctrl_handle *sch)
 {
        struct msgb *resp;
        struct ipaccess_head *ih;
@@ -241,7 +240,7 @@
        }
 }

-static struct msgb *simple_ctrl_xceive(struct simple_ctrl_handle *sch, struct 
msgb *msg)
+static struct msgb *simple_ctrl_xceive(const struct ctrl_cfg *cfg, struct 
simple_ctrl_handle *sch, struct msgb *msg)
 {
        int rc;

@@ -250,10 +249,10 @@
                return NULL;

        /* FIXME: ignore any TRAP */
-       return simple_ctrl_receive(sch);
+       return simple_ctrl_receive(cfg, sch);
 }

-char *simple_ctrl_get(struct simple_ctrl_handle *sch, const char *var)
+char *simple_ctrl_get(const struct ctrl_cfg *cfg, struct simple_ctrl_handle 
*sch, const char *var)
 {
        struct msgb *msg = msgb_alloc_headroom(512+8, 8, "CTRL GET");
        struct msgb *resp;
@@ -269,7 +268,7 @@
                msgb_free(msg);
                return NULL;
        }
-       resp = simple_ctrl_xceive(sch, msg);
+       resp = simple_ctrl_xceive(cfg, sch, msg);
        if (!resp)
                return NULL;

@@ -290,7 +289,7 @@
        return NULL;
 }

-int simple_ctrl_set(struct simple_ctrl_handle *sch, const char *var, const 
char *val)
+int simple_ctrl_set(const struct ctrl_cfg *cfg, struct simple_ctrl_handle 
*sch, const char *var, const char *val)
 {
        struct msgb *msg = msgb_alloc_headroom(512+8, 8, "CTRL SET");
        struct msgb *resp;
@@ -306,7 +305,7 @@
                msgb_free(msg);
                return -1;
        }
-       resp = simple_ctrl_xceive(sch, msg);
+       resp = simple_ctrl_xceive(cfg, sch, msg);
        if (!resp)
                return -1;

diff --git a/src/simple_ctrl.h b/src/simple_ctrl.h
index f5aa770..b320fb8 100644
--- a/src/simple_ctrl.h
+++ b/src/simple_ctrl.h
@@ -13,13 +13,12 @@

 struct simple_ctrl_handle;

-struct simple_ctrl_handle *simple_ctrl_open(void *ctx, const char *host, 
uint16_t dport,
-                                           uint32_t tout_msec);
+struct simple_ctrl_handle *simple_ctrl_open(void *ctx, const struct ctrl_cfg 
*cfg, uint32_t tout_msec);
 void simple_ctrl_close(struct simple_ctrl_handle *sch);

 void simple_ctrl_set_timeout(struct simple_ctrl_handle *sch, uint32_t 
tout_msec);
-struct msgb *simple_ctrl_receive(struct simple_ctrl_handle *sch);
+struct msgb *simple_ctrl_receive(const struct ctrl_cfg *cfg, struct 
simple_ctrl_handle *sch);

-char *simple_ctrl_get(struct simple_ctrl_handle *sch, const char *var);
-int simple_ctrl_set(struct simple_ctrl_handle *sch, const char *var, const 
char *val);
+char *simple_ctrl_get(const struct ctrl_cfg *cfg, struct simple_ctrl_handle 
*sch, const char *var);
+int simple_ctrl_set(const struct ctrl_cfg *cfg, struct simple_ctrl_handle 
*sch, const char *var, const char *val);


--
To view, visit https://gerrit.osmocom.org/12317
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: I783dda27dfc5fd57401d971b2e970ede0efc7b2c
Gerrit-Change-Number: 12317
Gerrit-PatchSet: 1
Gerrit-Owner: Max <msur...@sysmocom.de>

Reply via email to