This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Max gerrit-no-reply at lists.osmocom.orgMax 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 <msuraev at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181214/fcafe66b/attachment.htm>