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>