- config_t cfg;
- config_setting_t *setting;
- const char *str;
-
- /* 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);/* from original code. */
- }
-
- setting = config_lookup(&cfg, "node_number");
- if(setting) {
- NodeNumber = 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) {
- ConType = (strcmp(config_setting_get_string(setting), "explicit") == 0) ? 1 : 2;
- }
- else {
- fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
- "Warning",
- fname,
- "type");
- }
-
- setting = config_lookup(&cfg, "host");
- if(setting) {
- switch(config_setting_type(setting)) {
- case CONFIG_TYPE_STRING:/* TODO: Deprecated. Made for back compatibility. */
- ConnectList.append(new ConnectEntry((char*)config_setting_get_string(setting)));
- break;
- case CONFIG_TYPE_ARRAY:
- for (int i = 0; i < config_setting_length(setting); i++) {
- ConnectList.append(new ConnectEntry((char*)config_setting_get_string_elem(setting, i)));
- }
- break;
- default:
- fprintf(stderr, "%s! In file %s, bad entry type for %s. Will not be read.\n",
- "Error",
- fname,
- "host");
- }
- }
- else {
- fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
- "Warning",
- fname,
- "host");
- }
-
- setting = config_lookup(&cfg, "progdir");
- if(setting){
- strncpy(progdir, config_setting_get_string(setting), 256);
- }
- else {
- fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
- "Warning",
- fname,
- "progdir");
- }
-
- setting = config_lookup(&cfg, "homedir");
- if(setting) {
- strncpy(HomeDir, config_setting_get_string(setting), 255);
- }
- else {
- fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
- "Warning",
- fname,
- "homedir");
- }
-
- config_destroy(&cfg);
- fclose(file);
+ config_t cfg;
+ config_setting_t *setting;
+ const char *str;
+
+ /* 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);/* from original code. */
+ }
+
+ setting = config_lookup(&cfg, "node_number");
+ if(setting) {
+ NodeNumber = 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) {
+ ConType = (strcmp(config_setting_get_string(setting), "explicit") == 0) ? 1 : 2;
+ } else {
+ fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
+ "Warning",
+ fname,
+ "type");
+ }
+
+ setting = config_lookup(&cfg, "host");
+ if(setting) {
+ switch(config_setting_type(setting)) {
+ case CONFIG_TYPE_STRING:/* TODO: Deprecated. Made for back compatibility. */
+ ConnectList.append(new ConnectEntry((char*)config_setting_get_string(setting)));
+ break;
+ case CONFIG_TYPE_ARRAY:
+ for (int i = 0; i < config_setting_length(setting); i++) {
+ ConnectList.append(new ConnectEntry((char*)config_setting_get_string_elem(setting, i)));
+ }
+ break;
+ default:
+ fprintf(stderr, "%s! In file %s, bad entry type for %s. Will not be read.\n",
+ "Error",
+ fname,
+ "host");
+ }
+ } else {
+ fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
+ "Warning",
+ fname,
+ "host");
+ }
+
+ setting = config_lookup(&cfg, "progdir");
+ if(setting){
+ strncpy(progdir, config_setting_get_string(setting), 256);
+ } else {
+ fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
+ "Warning",
+ fname,
+ "progdir");
+ }
+
+ setting = config_lookup(&cfg, "homedir");
+ if(setting) {
+ strncpy(HomeDir, config_setting_get_string(setting), 255);
+ } else {
+ fprintf(stderr, "%s! In file %s, '%s' was not found.\n",
+ "Warning",
+ fname,
+ "homedir");
+ }
+
+ config_destroy(&cfg);
+ fclose(file);