$Author: faust $
*/
-#include <stdio.h>
-#include <string.h>
+#include <cstdio>
+#include <cstring>
-#include "servconf.h"
+#include "stg/common.h"
+#include "stg/servconf.h"
using namespace std;
if (XML_Parse(sc->parser, ans, len, done) == XML_STATUS_ERROR)
{
- snprintf(sc->errorMsg, MAX_ERR_STR_LEN, "XML parse error at line %d: %s",
- static_cast<int>(XML_GetCurrentLineNumber(sc->parser)),
- XML_ErrorString(XML_GetErrorCode(sc->parser)));
- printf(sc->errorMsg, "XML parse error at line %d: %s",
- XML_GetCurrentLineNumber(sc->parser),
- XML_ErrorString(XML_GetErrorCode(sc->parser)));
+ strprintf(&sc->errorMsg, "XML parse error at line %d: %s",
+ static_cast<int>(XML_GetCurrentLineNumber(sc->parser)),
+ XML_ErrorString(XML_GetErrorCode(sc->parser)));
return st_xml_parse_error;
}
++node;
}
//-----------------------------------------------------------------------------
SERVCONF::SERVCONF()
+ : currParser(NULL),
+ error(0),
+ RecvUserDataCb(NULL),
+ RecvGetUserDataCb(NULL),
+ RecvServerInfoDataCb(NULL),
+ RecvChgUserCb(NULL),
+ RecvCheckUserCb(NULL),
+ RecvSendMessageCb(NULL),
+ getUserDataDataCb(NULL),
+ getUserAuthByDataCb(NULL),
+ getUsersDataDataCb(NULL),
+ getServerInfoDataCb(NULL),
+ chgUserDataCb(NULL),
+ checkUserDataCb(NULL),
+ sendMessageDataCb(NULL)
{
parser = XML_ParserCreate(NULL);
-parseDepth = 0;
+}
+//-----------------------------------------------------------------------------
+SERVCONF::~SERVCONF()
+{
+XML_ParserFree(parser);
}
//-----------------------------------------------------------------------------
void SERVCONF::SetServer(const char * server)
if ((ret = nt.Connect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
+ return ret;
+ }
+if ((ret = nt.Transact(request)) != st_ok)
+ {
+ errorMsg = nt.GetError();
+ return ret;
+ }
+if ((ret = nt.Disconnect()) != st_ok)
+ {
+ errorMsg = nt.GetError();
+ return ret;
+ }
+
+return st_ok;
+}
+//-----------------------------------------------------------------------------
+int SERVCONF::GetUserAuthBy(const char * l)
+{
+char request[255];
+snprintf(request, 255, "<GetUserAuthBy login=\"%s\"/>", l);
+int ret;
+
+currParser = &parserAuthBy;
+((PARSER_AUTH_BY*)currParser)->SetRecvCb(RecvAuthByCb, getUserAuthByDataCb);
+
+nt.Reset();
+nt.SetRxCallback(this, AnsRecv);
+
+if ((ret = nt.Connect()) != st_ok)
+ {
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Transact(request)) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Disconnect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Connect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Transact(request)) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Disconnect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Connect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Transact(request)) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Disconnect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Connect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Transact(request)) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Disconnect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Connect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
- printfd(__FILE__, "Error on connect: '%s'\n", errorMsg);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Transact(request)) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
- printfd(__FILE__, "Error on transact: '%s'\n", errorMsg);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Disconnect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
- printfd(__FILE__, "Error on disconnect: '%s'\n", errorMsg);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Connect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Transact(request)) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Disconnect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Connect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Transact(request)) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
if ((ret = nt.Disconnect()) != st_ok)
{
- strncpy(errorMsg, nt.GetError(), MAX_ERR_STR_LEN);
+ errorMsg = nt.GetError();
return ret;
}
getUserDataDataCb = data;
}
//-----------------------------------------------------------------------------
+void SERVCONF::SetGetUserAuthByRecvCb(RecvAuthByDataCb_t f, void * data)
+{
+RecvAuthByCb = f;
+getUserAuthByDataCb = data;
+}
+//-----------------------------------------------------------------------------
void SERVCONF::SetServerInfoRecvCb(RecvServerInfoDataCb_t f, void * data)
{
RecvServerInfoDataCb = f;
sendMessageDataCb = data;
}
//-----------------------------------------------------------------------------
-char * SERVCONF::GetStrError()
+const std::string & SERVCONF::GetStrError() const
{
return errorMsg;
}