X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=misc%2Fnetwork_servers%2Fvtl%2Fconfig.cc;fp=misc%2Fnetwork_servers%2Fvtl%2Fconfig.cc;h=f54d7650c0ec29b01462673213a1c8bb06f99159;hp=0000000000000000000000000000000000000000;hb=ac93f0773f4c6cef2f2f542240695a8706037d41;hpb=c016bb46bd68474161e275a5ace086c3fb810d9f diff --git a/misc/network_servers/vtl/config.cc b/misc/network_servers/vtl/config.cc new file mode 100644 index 0000000..f54d765 --- /dev/null +++ b/misc/network_servers/vtl/config.cc @@ -0,0 +1,43 @@ +#include "config.h" + + +int read_config(string conf_file_name, config_t * config) { + fstream conf_file(conf_file_name.c_str(), ios::in); + char line[MAX_CONFIG_LINE_SIZE]; + + if (!conf_file.is_open()) { + return -1; + } + + while ((conf_file.getline(line, MAX_CONFIG_LINE_SIZE))) { + string conf_line = line; + string tag; + string value; + int offset, ltrim_index, rtrim_index; + + if (conf_line[0] == '#') { + continue; + } + + offset = conf_line.find(":", 0); + tag = conf_line.substr(0,offset); + + // kill white space + istringstream tag_stream(tag, istringstream::in); + tag_stream >> tag; + + if (tag.empty()) { + continue; + } + + // basic whitespace trimming, we assume that the config handlers will deal with + // tokenizing and further formatting + value = conf_line.substr(offset + 1, conf_line.length() - offset); + ltrim_index = value.find_first_not_of(" \t"); + rtrim_index = value.find_last_not_of(" \t"); + value = value.substr(ltrim_index, (rtrim_index + 1) - ltrim_index); + + (*config)[tag] = value; + } + return 0; +}