X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=src%2Fnet%2Flognet.cpp;h=088ef9fc24f012f8f8e73b8a05a65fa309ccccd5;hb=24268bd1db118a7ee6a291900dd771a01f2f660b;hp=dc2a750ca848f880437cd56765b5206ac5ec7750;hpb=ce4fe3550920241f33e597b3a11985924f98a7ca;p=vlp.git diff --git a/src/net/lognet.cpp b/src/net/lognet.cpp index dc2a750..088ef9f 100644 --- a/src/net/lognet.cpp +++ b/src/net/lognet.cpp @@ -186,7 +186,7 @@ NETMOD::NETMOD(char *kernel_name) void NETMOD::load_config(char *fname) { config_t cfg; - const char *str; + config_setting_t *setting; int on,k=0; NETlink *pomlink; @@ -194,7 +194,7 @@ void NETMOD::load_config(char *fname) /* Hack for checking if file exists without using external libs.*/ - FILE * file = fopen(fname, "r"); + FILE * file = fopen(fname, "rt"); if (!file) { fprintf(stderr, "Error: Cannot load configuration file %s!\n", fname); write_at_console("Cannot load configuration file!"); @@ -214,30 +214,45 @@ void NETMOD::load_config(char *fname) exit(3);/* from original code. */ } - if(config_lookup_int(&cfg, "node_number", &MyNode)) + setting = config_lookup(&cfg, "node_number"); + if(setting) { - if (MyNode==-1) { - write_at_console("Node number must be specified"); - config_destroy(&cfg); - fclose(file); - exit(1); - }; + MyNode = config_setting_get_int(setting); } - else + /* else */ + if (!setting || MyNode==-1) { fprintf(stderr, "%s! In file %s, '%s' was not found.\n", - "Warning", - fname, - "node_number"); + "Error", + fname, + "node_number"); + write_at_console("Node number must be specified"); config_destroy(&cfg); fclose(file); exit(1); } - if(config_lookup_string(&cfg, "host", &str)) { + setting = config_lookup(&cfg, "host"); + if(setting) { k++; pomlink = new NETlink; - strcpy(pomlink->addr, str); + + switch(config_setting_type(setting)) { + case CONFIG_TYPE_STRING:/* TODO: Deprecated. Made for back compatibility. */ + strncpy(pomlink->addr, config_setting_get_string(setting), 255); + break; + case CONFIG_TYPE_ARRAY: + strncpy(pomlink->addr, config_setting_get_string_elem(setting, 0), 255); + break; + default: + fprintf(stderr, "%s! In file %s, bad entry type for %s. Will not be read.\n" + "Fatal error", + fname, + "host"); + config_destroy(&cfg); + fclose(file); + exit(1); + } pomlink->connected = FALSE; pomlink->sock = socket(AF_INET, SOCK_STREAM, 0); fcntl(pomlink->sock, F_SETFL,O_NONBLOCK | fcntl(pomlink->sock,F_GETFL,0));