#include <arpa/inet.h>
#include <string>
-#include "common.h"
-//#include "srvconf_common.h"
-#include "stg_const.h"
-#include "servconf.h"
+#include "stg/common.h"
+#include "stg/const.h"
+#include "stg/servconf.h"
using namespace std;
-//-----------------------------------------------------------------------------
-PARSER::PARSER()
-{
-}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
PARSER_GET_USERS::PARSER_GET_USERS()
+ : RecvUserDataCb(NULL),
+ userDataCb(NULL),
+ depth(0)
{
-depth = 0;
-error = false;
-RecvUserDataCb = NULL;
-}
-//-----------------------------------------------------------------------------
-void PARSER_GET_USERS::Reset()
-{
-
}
//-----------------------------------------------------------------------------
int PARSER_GET_USERS::ParseStart(const char *el, const char **attr)
}
}
+if (strcasecmp(el, "creditExpire") == 0)
+ {
+ if (str2x(attr[1], user.creditExpire) < 0)
+ {
+ return;
+ }
+ }
+
/*if (strcasecmp(el, "freemb") == 0)
{
if (strtodouble2(attr[1], user.freeMb) < 0)
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
PARSER_GET_USER::PARSER_GET_USER()
+ : RecvUserDataCb(NULL),
+ userDataCb(NULL),
+ depth(0)
{
-depth = 0;
-error = false;
-RecvUserDataCb = NULL;
-}
-//-----------------------------------------------------------------------------
-void PARSER_GET_USER::Reset()
-{
-
}
//-----------------------------------------------------------------------------
int PARSER_GET_USER::ParseStart(const char *el, const char **attr)
user.ip = inet_addr(attr[1]);
}
+if (strcasecmp(el, "creditExpire") == 0)
+ {
+ if (str2x(attr[1], user.creditExpire) < 0)
+ {
+ return;
+ }
+ }
+
for (int i = 0; i < USERDATA_NUM; i++)
{
string num;
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
PARSER_GET_SERVER_INFO::PARSER_GET_SERVER_INFO()
+ : RecvServerInfoDataCb(NULL),
+ serverInfoDataCb(NULL),
+ depth(0)
{
-depth = 0;
-error = false;
-RecvServerInfoDataCb = NULL;
-}
-//-----------------------------------------------------------------------------
-void PARSER_GET_SERVER_INFO::Reset()
-{
-
}
//-----------------------------------------------------------------------------
int PARSER_GET_SERVER_INFO::ParseStart(const char *el, const char **attr)
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
+PARSER_AUTH_BY::PARSER_AUTH_BY()
+ : RecvAuthByDataCb(NULL),
+ authByDataCb(NULL),
+ depth(0)
+{
+}
+//-----------------------------------------------------------------------------
+int PARSER_AUTH_BY::ParseStart(const char *el, const char **attr)
+{
+depth++;
+if (depth == 1)
+ {
+ if (strcasecmp(el, "AuthorizedBy") != 0)
+ {
+ list.erase(list.begin(), list.end());
+ //printf("%s\n", el);
+ }
+ }
+else
+ {
+ if (depth == 2)
+ {
+ if (strcasecmp(el, "Auth") == 0)
+ {
+ if (attr && attr[0] && attr[1])
+ list.push_back(attr[1]);
+ return 0;
+ }
+ }
+ }
+return 0;
+}
+//-----------------------------------------------------------------------------
+void PARSER_AUTH_BY::ParseEnd(const char *)
+{
+depth--;
+if (depth == 0)
+ {
+ RecvAuthByDataCb(list, authByDataCb);
+ }
+}
+//-----------------------------------------------------------------------------
+void PARSER_AUTH_BY::SetRecvCb(RecvAuthByDataCb_t f, void * data)
+{
+RecvAuthByDataCb = f;
+authByDataCb = data;
+}
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
PARSER_CHG_USER::PARSER_CHG_USER()
+ : RecvChgUserCb(NULL),
+ chgUserCbData(NULL),
+ depth(0)
{
-depth = 0;
-error = false;
-RecvChgUserCb = NULL;
}
//-----------------------------------------------------------------------------
int PARSER_CHG_USER::ParseStart(const char *el, const char **attr)
void PARSER_CHG_USER::ParseEnd(const char *)
{
depth--;
-}
-//-----------------------------------------------------------------------------
-void PARSER_CHG_USER::Reset()
-{
-
}
//-----------------------------------------------------------------------------
void PARSER_CHG_USER::ParseAnswer(const char *, const char **attr)
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
PARSER_CHECK_USER::PARSER_CHECK_USER()
+ : RecvCheckUserCb(NULL),
+ checkUserCbData(NULL),
+ depth(0)
{
-depth = 0;
-error = false;
-RecvCheckUserCb = NULL;
}
//-----------------------------------------------------------------------------
int PARSER_CHECK_USER::ParseStart(const char *el, const char **attr)
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
PARSER_SEND_MESSAGE::PARSER_SEND_MESSAGE()
+ : RecvSendMessageCb(NULL),
+ sendMessageCbData(NULL),
+ depth(0)
{
-depth = 0;
-error = false;
-RecvSendMessageCb = NULL;
}
//-----------------------------------------------------------------------------
int PARSER_SEND_MESSAGE::ParseStart(const char *el, const char **attr)
void PARSER_SEND_MESSAGE::ParseEnd(const char *)
{
depth--;
-}
-//-----------------------------------------------------------------------------
-void PARSER_SEND_MESSAGE::Reset()
-{
-
}
//-----------------------------------------------------------------------------
void PARSER_SEND_MESSAGE::ParseAnswer(const char *, const char **attr)
sendMessageCbData = data;
}
//-----------------------------------------------------------------------------
-