@@ -129,7 +129,7 @@ static int versions_settings(void *setting, void *data)
return 0;
}
-void get_sw_versions(char *cfgname, struct swupdate_cfg *sw)
+void get_sw_versions(swupdate_cfg_handle *handle, struct swupdate_cfg *sw)
{
int ret = -EINVAL;
@@ -138,8 +138,8 @@ void get_sw_versions(char *cfgname, struct swupdate_cfg *sw)
* If not found, fall back to a legacy file
* in the format "<image name> <version>"
*/
- if (cfgname)
- ret = read_module_settings(cfgname, "versions",
+ if (handle != NULL)
+ ret = swupdate_cfg_read_module_settings(handle, "versions",
versions_settings,
sw);
@@ -581,7 +581,12 @@ int main(int argc, char **argv)
(void)swupdate_cfg_read_module_settings(&handle, "processes",
read_processes_settings, &swcfg);
+
+ get_sw_versions(&handle, &swcfg);
+
swupdate_cfg_destroy(&handle);
+ } else {
+ get_sw_versions(NULL, &swcfg);
}
/*
@@ -826,15 +831,11 @@ int main(int argc, char **argv)
}
}
-
if (strlen(swcfg.globals.default_software_set) > 0 && strlen(swcfg.globals.default_running_mode) > 0) {
INFO("software set: %s mode: %s", swcfg.globals.default_software_set,
swcfg.globals.default_running_mode);
}
- /* Read sw-versions */
- get_sw_versions(cfgfname, &swcfg);
-
/*
* Start daemon if just a check is required
* SWUpdate will exit after the check
@@ -17,6 +17,7 @@
#endif
#include "swupdate.h"
#include "swupdate_status.h"
+#include "swupdate_settings.h"
#include "compat.h"
#define NOTIFY_BUF_SIZE 2048
@@ -208,7 +209,7 @@ char *substring(const char *src, int first, int len);
size_t snescape(char *dst, size_t n, const char *src);
void freeargs (char **argv);
int get_hw_revision(struct hw_type *hw);
-void get_sw_versions(char *cfgfname, struct swupdate_cfg *sw);
+void get_sw_versions(swupdate_cfg_handle *handle, struct swupdate_cfg *sw);
int compare_versions(const char* left_version, const char* right_version);
int hwid_match(const char* rev, const char* hwrev);
int check_hw_compatibility(struct swupdate_cfg *cfg);