]> git.stg.codes - stg.git/blobdiff - stglibs/srvconf.lib/parser.cpp
Prevent memory leak in smux plugin
[stg.git] / stglibs / srvconf.lib / parser.cpp
index 7c96b2ed442c4422c502049f8b75dc5e864dc476..0038f03da27dcb1ee9c25d3278090febe9728f5e 100644 (file)
 #include <arpa/inet.h>
 #include <string>
 
 #include <arpa/inet.h>
 #include <string>
 
-#include "common.h"
-//#include "srvconf_common.h"
-#include "stg_const.h"
+#include "stg/common.h"
+#include "stg/const.h"
 #include "servconf.h"
 
 using namespace std;
 
 #include "servconf.h"
 
 using namespace std;
 
-//-----------------------------------------------------------------------------
-PARSER::PARSER()
-{
-}
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PARSER_GET_USERS::PARSER_GET_USERS()
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PARSER_GET_USERS::PARSER_GET_USERS()
+    : RecvUserDataCb(NULL),
+      userDataCb(NULL),
+      user(),
+      depth(0),
+      error(false)
 {
 {
-depth = 0;
-error = false;
-RecvUserDataCb = NULL;
-}
-//-----------------------------------------------------------------------------
-void PARSER_GET_USERS::Reset()
-{
-
 }
 //-----------------------------------------------------------------------------
 int PARSER_GET_USERS::ParseStart(const char *el, const char **attr)
 }
 //-----------------------------------------------------------------------------
 int PARSER_GET_USERS::ParseStart(const char *el, const char **attr)
@@ -173,6 +165,14 @@ if (strcasecmp(el, "credit") == 0)
         }
     }
 
         }
     }
 
+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)
 /*if (strcasecmp(el, "freemb") == 0)
     {
     if (strtodouble2(attr[1], user.freeMb) < 0)
@@ -385,15 +385,12 @@ userDataCb = data;
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PARSER_GET_USER::PARSER_GET_USER()
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PARSER_GET_USER::PARSER_GET_USER()
+    : RecvUserDataCb(NULL),
+      userDataCb(NULL),
+      user(),
+      depth(0),
+      error(false)
 {
 {
-depth = 0;
-error = false;
-RecvUserDataCb = NULL;
-}
-//-----------------------------------------------------------------------------
-void PARSER_GET_USER::Reset()
-{
-
 }
 //-----------------------------------------------------------------------------
 int PARSER_GET_USER::ParseStart(const char *el, const char **attr)
 }
 //-----------------------------------------------------------------------------
 int PARSER_GET_USER::ParseStart(const char *el, const char **attr)
@@ -530,6 +527,14 @@ if (strcasecmp(el, "currip") == 0)
     user.ip = inet_addr(attr[1]);
     }
 
     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;
 for (int i = 0; i < USERDATA_NUM; i++)
     {
     string num;
@@ -658,15 +663,12 @@ userDataCb = data;
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PARSER_GET_SERVER_INFO::PARSER_GET_SERVER_INFO()
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PARSER_GET_SERVER_INFO::PARSER_GET_SERVER_INFO()
+    : RecvServerInfoDataCb(NULL),
+      serverInfoDataCb(NULL),
+      depth(0),
+      error(false),
+      serverInfo()
 {
 {
-depth = 0;
-error = false;
-RecvServerInfoDataCb = NULL;
-}
-//-----------------------------------------------------------------------------
-void PARSER_GET_SERVER_INFO::Reset()
-{
-
 }
 //-----------------------------------------------------------------------------
 int PARSER_GET_SERVER_INFO::ParseStart(const char *el, const char **attr)
 }
 //-----------------------------------------------------------------------------
 int PARSER_GET_SERVER_INFO::ParseStart(const char *el, const char **attr)
@@ -821,10 +823,11 @@ if (strcmp(attr[0], "value") == 0)
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PARSER_CHG_USER::PARSER_CHG_USER()
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PARSER_CHG_USER::PARSER_CHG_USER()
+    : RecvChgUserCb(NULL),
+      chgUserCbData(NULL),
+      depth(0),
+      error(false)
 {
 {
-depth = 0;
-error = false;
-RecvChgUserCb = NULL;
 }
 //-----------------------------------------------------------------------------
 int PARSER_CHG_USER::ParseStart(const char *el, const char **attr)
 }
 //-----------------------------------------------------------------------------
 int PARSER_CHG_USER::ParseStart(const char *el, const char **attr)
@@ -851,11 +854,6 @@ return 0;
 void PARSER_CHG_USER::ParseEnd(const char *)
 {
 depth--;
 void PARSER_CHG_USER::ParseEnd(const char *)
 {
 depth--;
-}
-//-----------------------------------------------------------------------------
-void PARSER_CHG_USER::Reset()
-{
-
 }
 //-----------------------------------------------------------------------------
 void PARSER_CHG_USER::ParseAnswer(const char *, const char **attr)
 }
 //-----------------------------------------------------------------------------
 void PARSER_CHG_USER::ParseAnswer(const char *, const char **attr)
@@ -875,10 +873,11 @@ chgUserCbData = data;
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PARSER_CHECK_USER::PARSER_CHECK_USER()
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PARSER_CHECK_USER::PARSER_CHECK_USER()
+    : RecvCheckUserCb(NULL),
+      checkUserCbData(NULL),
+      depth(0),
+      error(false)
 {
 {
-depth = 0;
-error = false;
-RecvCheckUserCb = NULL;
 }
 //-----------------------------------------------------------------------------
 int PARSER_CHECK_USER::ParseStart(const char *el, const char **attr)
 }
 //-----------------------------------------------------------------------------
 int PARSER_CHECK_USER::ParseStart(const char *el, const char **attr)
@@ -917,10 +916,11 @@ checkUserCbData = data;
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PARSER_SEND_MESSAGE::PARSER_SEND_MESSAGE()
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 PARSER_SEND_MESSAGE::PARSER_SEND_MESSAGE()
+    : RecvSendMessageCb(NULL),
+      sendMessageCbData(NULL),
+      depth(0),
+      error(false)
 {
 {
-depth = 0;
-error = false;
-RecvSendMessageCb = NULL;
 }
 //-----------------------------------------------------------------------------
 int  PARSER_SEND_MESSAGE::ParseStart(const char *el, const char **attr)
 }
 //-----------------------------------------------------------------------------
 int  PARSER_SEND_MESSAGE::ParseStart(const char *el, const char **attr)
@@ -939,11 +939,6 @@ return 0;
 void PARSER_SEND_MESSAGE::ParseEnd(const char *)
 {
 depth--;
 void PARSER_SEND_MESSAGE::ParseEnd(const char *)
 {
 depth--;
-}
-//-----------------------------------------------------------------------------
-void PARSER_SEND_MESSAGE::Reset()
-{
-
 }
 //-----------------------------------------------------------------------------
 void PARSER_SEND_MESSAGE::ParseAnswer(const char *, const char **attr)
 }
 //-----------------------------------------------------------------------------
 void PARSER_SEND_MESSAGE::ParseAnswer(const char *, const char **attr)
@@ -958,4 +953,3 @@ RecvSendMessageCb = f;
 sendMessageCbData = data;
 }
 //-----------------------------------------------------------------------------
 sendMessageCbData = data;
 }
 //-----------------------------------------------------------------------------
-