#include "lgconfig.h"
#include "NodeListDialog.h"
+#include "vlp/config.h"
namespace loglan {
namespace vlp {
i = Nodes.indexOf(pom);
sprintf(pomstr, "%s.cfg", pom->addr);
- config_t cfg;
- config_setting_t *root, *setting;
- config_init(&cfg);
+
+ loglan::vlp::Config config;
- root = config_root_setting(&cfg);
+ config.setProgramDir(pom->progdir);
+ config.setNodeNumber(pom->ID);
+ config.setConnectionType(
+ (pom->type == 0) ? EXPLICIT : REGISTER
+ );
- setting = config_setting_get_member(root, "progdir");
- if(!setting) {
- setting = config_setting_add(root, "progdir", CONFIG_TYPE_STRING);
- }
- config_setting_set_string(setting, pom->progdir);
-
- setting = config_setting_get_member(root, "homedir");
- if(!setting) {
- setting = config_setting_add(root, "homedir", CONFIG_TYPE_STRING);
- }
- config_setting_set_string(setting, pom->homedir);
-
- setting = config_setting_get_member(root, "node_number");
- if(!setting) {
- setting = config_setting_add(root, "node_number", CONFIG_TYPE_INT);
- }
- config_setting_set_int(setting, pom->ID);
-
- if (pom->type == 0) {
- setting = config_setting_get_member(root, "type");
- if(!setting) {
- setting = config_setting_add(root, "type", CONFIG_TYPE_STRING);
- }
- config_setting_set_string(setting, "explicit");
- }
+ std::vector<std::string> hosts;
for (auto node : Nodes) {
if (pom != node) {
- setting = config_setting_get_member(root, "host");
- if (!setting) {
- setting = config_setting_add(root, "host", CONFIG_TYPE_STRING);
- }
- config_setting_set_string(setting, node->addr);
+ hosts.push_back(node->addr);
}
}
+ config.setHosts(hosts);
+
+ config.save(pomstr);
+
+// TODO: add handling of homedir or remove it at all
+// setting = config_setting_get_member(root, "homedir");
+// if(!setting) {
+// setting = config_setting_add(root, "homedir", CONFIG_TYPE_STRING);
+// }
+// config_setting_set_string(setting, pom->homedir);
- if(!config_write_file(&cfg, pomstr)) {
- fprintf(stderr, "Error while writing to file: %s.\n", pomstr);
- }
- config_destroy(&cfg);
pom = Nodes.at(i);
}