+
+int SERVCONF::RawXML(const std::string & request, RAW_XML::CALLBACK f, void * data)
+{
+std::string response;
+nt.SetRxCallback(&response, SimpleRecv);
+int ret = 0;
+if ((ret = nt.Connect()) != st_ok)
+ {
+ nt.SetRxCallback(this, ParserRecv);
+ errorMsg = nt.GetError();
+ f(false, errorMsg, "", data);
+ return ret;
+ }
+if ((ret = nt.Transact(request.c_str())) != st_ok)
+ {
+ nt.SetRxCallback(this, ParserRecv);
+ errorMsg = nt.GetError();
+ f(false, errorMsg, "", data);
+ return ret;
+ }
+if ((ret = nt.Disconnect()) != st_ok)
+ {
+ nt.SetRxCallback(this, ParserRecv);
+ errorMsg = nt.GetError();
+ f(false, errorMsg, "", data);
+ return ret;
+ }
+nt.SetRxCallback(this, ParserRecv);
+f(true, "", response, data);
+return st_ok;
+}