diff options
author | Jose M. Guisado <jguisado@soleta.eu> | 2021-05-04 15:42:45 +0000 |
---|---|---|
committer | OpenGnSys Support Team <soporte-og@soleta.eu> | 2021-05-04 18:13:35 +0200 |
commit | 40d4279b316e9d8b6636dd518cddec65b78c05aa (patch) | |
tree | d10d4bdd529870835bc85f64d3309eef79cd98c6 | |
parent | a7cce8d442a2c83562483ff3e649c95e6e732ea9 (diff) |
#995 Add link speed parsing to client probe response
If a probe response contains speedinformation, parse and store
it inside the client struct. Speed is interpreted as an unsigned
integer representing Mbit/s.
-rw-r--r-- | src/client.c | 6 | ||||
-rw-r--r-- | src/rest.c | 1 | ||||
-rw-r--r-- | src/rest.h | 1 |
3 files changed, 8 insertions, 0 deletions
diff --git a/src/client.c b/src/client.c index fcf3cbf..c21c373 100644 --- a/src/client.c +++ b/src/client.c @@ -28,6 +28,7 @@ static int og_resp_probe(struct og_client *cli, json_t *data) { const char *status = NULL; const char *key; + uint32_t speed; json_t *value; int err = 0; @@ -39,6 +40,11 @@ static int og_resp_probe(struct og_client *cli, json_t *data) err = og_json_parse_string(value, &status); if (err < 0) return err; + } else if (!strcmp(key, "speed")) { + err = og_json_parse_uint(value, &speed); + if (err < 0) + return err; + cli->speed = speed; } else { return -1; } @@ -389,6 +389,7 @@ static int og_json_client_append(json_t *array, struct og_client *client) return -1; } json_object_set_new(object, "state", state); + json_object_set_new(object, "speed", json_integer(client->speed)); json_array_append_new(array, object); return 0; @@ -55,6 +55,7 @@ struct og_client { enum og_cmd_type last_cmd; unsigned int last_cmd_id; bool autorun; + uint32_t speed; }; void og_client_add(struct og_client *cli); |