- config_t cfg;
- config_setting_t *setting;
-
- /* Hack for checking if file exists without using external libs.*/
- FILE * file = fopen(fname, "rt");
- if (!file) {
- fprintf(stderr, "Error: Cannot load configuration file %s!\n", fname);
- exit(3);
- }
- /* File exists, so file has been locked. Release it. */
-
- config_init(&cfg);
-
- /* Read the file. If there is an error, report it and exit. */
- if (!config_read(&cfg, file)) {
- fprintf(stderr, "%s! In file %s, line %d\n",
- config_error_text(&cfg),
- config_error_file(&cfg),
- config_error_line(&cfg));
- config_destroy(&cfg);
- fclose(file);
- exit(3);
- }
-
- setting = config_lookup(&cfg, "node_number");
- if (setting) {
- nodeNumber->setValue(config_setting_get_int(setting));
- } else {
- fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
- "Warning", fname, "node_number");
- config_destroy(&cfg);
- fclose(file);
- exit(3);
- }
-
- setting = config_lookup(&cfg, "type");
- if (setting) {
- /* same as strcmp(..) == 0 */
- if (!strcmp(config_setting_get_string(setting), "explicit")) {
- explicitConnectionMode->setEnabled(true);
- registrationConnectionMode->setDisabled(true);
- } else {
- registrationConnectionMode->setEnabled(true);
- explicitConnectionMode->setDisabled(true);
- }
- } else {
- fprintf(stderr, "%s! In file %s, '%s' was not found.\n", "Warning", fname, "type");
+ loglan::vlp::Config config;
+ config.load(fname);
+
+ nodeNumber->setValue(config.getNodeNumber());
+ switch(config.getConnectionType()) {
+ case loglan::vlp::EXPLICIT:
+ explicitConnectionMode->setEnabled(true);
+ registrationConnectionMode->setDisabled(true);
+ break;
+ case loglan::vlp::REGISTER:
+ registrationConnectionMode->setEnabled(true);
+ explicitConnectionMode->setDisabled(true);
+ break;