From f9e68be4e0b6d46edb4d88fdf4256de16c6efe4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Linus=20L=C3=BCssing?= <linus.luessing@c0d3.blue> Date: Sat, 27 Jul 2019 07:40:27 +0200 Subject: [PATCH] gluon-mesh-batman-adv: respondd: determine compat version from release version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We cannot add the same file (here: /lib/gluon/mesh-batman-adv/compat) to two, installed packages. Therefore, instead of determining the compat version number from this file, infer it from the batman-adv release version number instead. Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue> --- package/gluon-mesh-batman-adv/src/respondd.c | 25 ++++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/package/gluon-mesh-batman-adv/src/respondd.c b/package/gluon-mesh-batman-adv/src/respondd.c index 810dfc593..7d84d1499 100644 --- a/package/gluon-mesh-batman-adv/src/respondd.c +++ b/package/gluon-mesh-batman-adv/src/respondd.c @@ -232,25 +232,24 @@ static struct json_object * get_mesh(void) { return ret; } -static struct json_object * get_batman_adv_compat(void) { - FILE *f = fopen("/lib/gluon/mesh-batman-adv/compat", "r"); - if (!f) - return NULL; - - struct json_object *ret = NULL; +static struct json_object * get_batman_adv_compat(const char *version) { + int compat = 15; - int compat; - if (fscanf(f, "%i", &compat) == 1) - ret = json_object_new_int(compat); + if (!version) + return NULL; - fclose(f); + if (strcmp(version, "2013.4.0") == 0) + compat = 14; - return ret; + return json_object_new_int(compat); } static struct json_object * respondd_provider_nodeinfo(void) { struct json_object *ret = json_object_new_object(); + char *version = gluonutil_read_line("/sys/module/batman_adv/version"); + struct json_object *compat = get_batman_adv_compat(version); + struct json_object *network = json_object_new_object(); json_object_object_add(network, "addresses", get_addresses()); json_object_object_add(network, "mesh", get_mesh()); @@ -258,8 +257,8 @@ static struct json_object * respondd_provider_nodeinfo(void) { struct json_object *software = json_object_new_object(); struct json_object *software_batman_adv = json_object_new_object(); - json_object_object_add(software_batman_adv, "version", gluonutil_wrap_and_free_string(gluonutil_read_line("/sys/module/batman_adv/version"))); - json_object_object_add(software_batman_adv, "compat", get_batman_adv_compat()); + json_object_object_add(software_batman_adv, "version", gluonutil_wrap_and_free_string(version)); + json_object_object_add(software_batman_adv, "compat", compat); json_object_object_add(software, "batman-adv", software_batman_adv); json_object_object_add(ret, "software", software); -- GitLab