Change in osmo-sysmon[master]: ctrl: pass config struct to all simple_ctrl_*()

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.org
Fri Dec 14 15:12:15 UTC 2018


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 <msuraev at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181214/fcafe66b/attachment.htm>


More information about the gerrit-log mailing list