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);