From 5df86557fa070e8860f786dcd3a8be6f9d03081a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Linus=20L=C3=BCssing?= 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 --- package/gluon-mesh-batman-adv/Makefile | 6 ----- package/gluon-mesh-batman-adv/src/respondd.c | 25 ++++++++++---------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/package/gluon-mesh-batman-adv/Makefile b/package/gluon-mesh-batman-adv/Makefile index 8841d5c4..b7e98974 100644 --- a/package/gluon-mesh-batman-adv/Makefile +++ b/package/gluon-mesh-batman-adv/Makefile @@ -38,16 +38,10 @@ endef define Package/gluon-mesh-batman-adv-14/install $(Gluon/Build/Install) - - $(INSTALL_DIR) $(1)/lib/gluon/mesh-batman-adv - echo 14 > $(1)/lib/gluon/mesh-batman-adv/compat endef define Package/gluon-mesh-batman-adv-15/install $(Gluon/Build/Install) - - $(INSTALL_DIR) $(1)/lib/gluon/mesh-batman-adv - echo 15 > $(1)/lib/gluon/mesh-batman-adv/compat endef $(eval $(call BuildPackageGluon,gluon-mesh-batman-adv-14)) diff --git a/package/gluon-mesh-batman-adv/src/respondd.c b/package/gluon-mesh-batman-adv/src/respondd.c index 810dfc59..8b812b7d 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) +static struct json_object * get_batman_adv_compat(const char *version) { + int compat = 15; + + if (!version) return NULL; - struct json_object *ret = NULL; + if (!strncmp(version, "2013.4.0", strlen("2013.4.0"))) + compat = 14; - int compat; - if (fscanf(f, "%i", &compat) == 1) - ret = json_object_new_int(compat); - - fclose(f); - - 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);