]> git.stg.codes - stg.git/blobdiff - stglibs/srvconf.lib/servconf.cpp
Merge branch 'stg-2.409-radius'
[stg.git] / stglibs / srvconf.lib / servconf.cpp
index 4c69c813da26bf8d066ddfa89e33a8be2801a6aa..046190ee25bcf9381d69cb5876a4cd8de95decb4 100644 (file)
@@ -107,10 +107,10 @@ SERVCONF::IMPL * sc = static_cast<SERVCONF::IMPL *>(data);
 
 if (XML_Parse(sc->parser, chunk.c_str(), chunk.length(), final) == XML_STATUS_ERROR)
     {
-    strprintf(&sc->errorMsg, "XML parse error at line %d: %s",
+    strprintf(&sc->errorMsg, "XML parse error at line %d, %d: %s. Is final: %d",
               static_cast<int>(XML_GetCurrentLineNumber(sc->parser)),
-              XML_ErrorString(XML_GetErrorCode(sc->parser)));
-    printf("%s\n", sc->errorMsg.c_str());
+              static_cast<int>(XML_GetCurrentColumnNumber(sc->parser)),
+              XML_ErrorString(XML_GetErrorCode(sc->parser)), (int)final);
     return false;
     }
 
@@ -280,7 +280,7 @@ return pImpl->Exec<GET_SERVICE::PARSER>("<GetService name=\"" + name + "\"/>", f
 
 int SERVCONF::ChgService(const SERVICE_CONF_RES & conf, SIMPLE::CALLBACK f, void * data)
 {
-return pImpl->Exec<SIMPLE::PARSER>("SetService", "<SetService name=\"" + conf.name.data() + "\">" + CHG_SERVICE::Serialize(conf, pImpl->Encoding()) + "</SetService>", f, data);
+return pImpl->Exec<SIMPLE::PARSER>("SetService", "<SetService " + CHG_SERVICE::Serialize(conf, pImpl->Encoding()) + "/>", f, data);
 }
 
 int SERVCONF::AddService(const std::string & name,
@@ -290,7 +290,7 @@ int SERVCONF::AddService(const std::string & name,
 int res = pImpl->Exec<SIMPLE::PARSER>("AddService", "<AddService name=\"" + name + "\"/>", f, data);
 if (res != st_ok)
     return res;
-return pImpl->Exec<SIMPLE::PARSER>("SetService", "<SetService name=\"" + name + "\">" + CHG_SERVICE::Serialize(conf, pImpl->Encoding()) + "</SetService>", f, data);
+return pImpl->Exec<SIMPLE::PARSER>("SetService", "<SetService " + CHG_SERVICE::Serialize(conf, pImpl->Encoding()) + "/>", f, data);
 }
 
 int SERVCONF::DelService(const std::string & name, SIMPLE::CALLBACK f, void * data)
@@ -341,6 +341,7 @@ SERVCONF::IMPL::IMPL(const std::string & server, uint16_t port,
     : nt(server, port, login, password)
 {
 setlocale(LC_ALL, "");
+setlocale(LC_NUMERIC, "C");
 encoding = nl_langinfo(CODESET);
 parser = XML_ParserCreate(NULL);
 }
@@ -351,6 +352,7 @@ SERVCONF::IMPL::IMPL(const std::string & server, uint16_t port,
     : nt(server, port, localAddress, localPort, login, password)
 {
 setlocale(LC_ALL, "");
+setlocale(LC_NUMERIC, "C");
 encoding = nl_langinfo(CODESET);
 parser = XML_ParserCreate(NULL);
 }