]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/configuration/sgconfig/configproto.cpp
Fixed problems with connect/disconnect notification.
[stg.git] / projects / stargazer / plugins / configuration / sgconfig / configproto.cpp
index c6218e94276c2799753d87fb37ad31f7da24b518..7ca37b49fb95a9c75302465d5658cdb31c26cf84 100644 (file)
@@ -41,16 +41,15 @@ CONFIGPROTO * cp = static_cast<CONFIGPROTO *>(data);
 if (cp->currParser)
     {
     cp->currParser->SetAnswerList(&cp->answerList);
-    cp->currParser->SetCurrAdmin(cp->currAdmin);
+    cp->currParser->SetCurrAdmin(*cp->currAdmin);
     cp->currParser->ParseStart(data, el, attr);
     }
 else
     {
-    for (unsigned int i = 0; i < cp->dataParser.size(); i++)
+    for (size_t i = 0; i < cp->dataParser.size(); i++)
         {
         cp->dataParser[i]->SetAnswerList(&cp->answerList);
-        //cp->currAdmin->SetAdminIP(cp->GetAdminIP());
-        cp->dataParser[i]->SetCurrAdmin(cp->currAdmin);
+        cp->dataParser[i]->SetCurrAdmin(*cp->currAdmin);
         cp->dataParser[i]->Reset();
         if (cp->dataParser[i]->ParseStart(data, el, attr) == 0)
             {
@@ -77,7 +76,7 @@ if (cp->currParser)
     }
 else
     {
-    for (unsigned int i = 0; i < cp->dataParser.size(); i++)
+    for (size_t i = 0; i < cp->dataParser.size(); i++)
         {
         if (cp->dataParser[i]->ParseEnd(data, el) == 0)
             {
@@ -87,21 +86,40 @@ else
     }
 }
 //-----------------------------------------------------------------------------
-CONFIGPROTO::CONFIGPROTO()
-    : adminIP(0),
+CONFIGPROTO::CONFIGPROTO(PLUGIN_LOGGER & l)
+    : answerList(),
+      requestList(),
+      adminIP(0),
+      adminLogin(),
+      adminPassword(),
       port(0),
-      nonstop(1),
+      thrReciveSendConf(),
+      nonstop(true),
       state(0),
-      currAdmin(),
-      WriteServLog(GetStgLogger()),
-      outerSocket(0),
-      listenSocket(0),
+      currAdmin(NULL),
+      logger(l),
+      listenSocket(-1),
+      parserGetServInfo(),
+      parserGetUsers(),
+      parserGetUser(),
+      parserChgUser(),
+      parserAddUser(),
+      parserDelUser(),
+      parserCheckUser(),
+      parserSendMessage(),
+      parserGetAdmins(),
+      parserAddAdmin(),
+      parserDelAdmin(),
+      parserChgAdmin(),
+      parserGetTariffs(),
+      parserAddTariff(),
+      parserDelTariff(),
+      parserChgTariff(),
       admins(NULL),
-      //users(NULL),
-      //tariffs(NULL),
-      //store(NULL),
-      //settings(NULL),
-      currParser(NULL)
+      currParser(NULL),
+      dataParser(),
+      xmlParser(),
+      errorStr()
 {
 dataParser.push_back(&parserGetServInfo);
 
@@ -127,11 +145,10 @@ xmlParser = XML_ParserCreate(NULL);
 
 if (!xmlParser)
     {
-    WriteServLog("Couldn't allocate memory for parser.");
+    logger("Couldn't allocate memory for parser.");
     exit(1);
     }
 
-//XML_SetElementHandler(parser, ParseXMLStart, ParseXMLEnd);
 }
 //-----------------------------------------------------------------------------
 CONFIGPROTO::~CONFIGPROTO()
@@ -164,14 +181,14 @@ while(nonstop)
     str[8] = 0;
     len = strlen(str);
 
-    n++;
+    ++n;
     if (n == requestList.end())
         done = 1;
-    n--;
+    --n;
 
     if (XML_Parse(xmlParser, (*n).c_str(), len, done) == XML_STATUS_ERROR)
         {
-        WriteServLog("Invalid configuration request");
+        logger("Invalid configuration request");
         printfd(__FILE__, "Parse error at line %d:\n%s\n",
            XML_GetCurrentLineNumber(xmlParser),
            XML_ErrorString(XML_GetErrorCode(xmlParser)));
@@ -188,7 +205,7 @@ while(nonstop)
     if (done)
         return 0;
 
-    n++;
+    ++n;
     }
 
 return 0;
@@ -199,15 +216,10 @@ void CONFIGPROTO::SetPort(uint16_t p)
 port = p;
 }
 //-----------------------------------------------------------------------------
-/*void CONFIGPROTO::SetHostAllow(HOSTALLOW *)
-{
-//hostAllow = ha;
-}*/
-//-----------------------------------------------------------------------------
 void CONFIGPROTO::SetAdmins(ADMINS * a)
 {
 admins = a;
-for (unsigned int i = 0; i < dataParser.size(); i++)
+for (size_t i = 0; i < dataParser.size(); i++)
     {
     dataParser[i]->SetAdmins(a);
     }
@@ -216,8 +228,7 @@ for (unsigned int i = 0; i < dataParser.size(); i++)
 //-----------------------------------------------------------------------------
 void CONFIGPROTO::SetUsers(USERS * u)
 {
-//users = u;
-for (unsigned int i = 0; i < dataParser.size(); i++)
+for (size_t i = 0; i < dataParser.size(); i++)
     {
     dataParser[i]->SetUsers(u);
     }
@@ -226,17 +237,15 @@ for (unsigned int i = 0; i < dataParser.size(); i++)
 //-----------------------------------------------------------------------------
 void CONFIGPROTO::SetTariffs(TARIFFS * t)
 {
-//tariffs = t;
-for (unsigned int i = 0; i < dataParser.size(); i++)
+for (size_t i = 0; i < dataParser.size(); i++)
     {
     dataParser[i]->SetTariffs(t);
     }
 }
 //-----------------------------------------------------------------------------
-void CONFIGPROTO::SetStore(BASE_STORE * s)
+void CONFIGPROTO::SetStore(STORE * s)
 {
-//store = s;
-for (unsigned int i = 0; i < dataParser.size(); i++)
+for (size_t i = 0; i < dataParser.size(); i++)
     {
     dataParser[i]->SetStore(s);
     }
@@ -244,56 +253,9 @@ for (unsigned int i = 0; i < dataParser.size(); i++)
 //-----------------------------------------------------------------------------
 void CONFIGPROTO::SetStgSettings(const SETTINGS * s)
 {
-//settings = s;
-for (unsigned int i = 0; i < dataParser.size(); i++)
+for (size_t i = 0; i < dataParser.size(); i++)
     {
     dataParser[i]->SetStgSettings(s);
     }
 }
 //-----------------------------------------------------------------------------
-/*void CONFIGPROTO::Start()
-{
-finished = false;
-threadExited = false;
-status = starting;
-
-xmlParser = XML_ParserCreate(NULL);
-
-if (!xmlParser)
-    {
-    WriteServLog("Couldn't allocate memory for parser.");
-    }
-
-pthread_create(&thrReciveSendConf, NULL, ReciveSendConf, this);
-status = started;
-}*/
-//-----------------------------------------------------------------------------
-/*int CONFIGPROTO::Stop()
-{
-nonstop = true;
-close(outerSocket);
-return 0;
-}*/
-//-----------------------------------------------------------------------------
-/*void CONFIGPROTO::Restart()
-{
-//Stop();
-//Start();
-}*/
-//-----------------------------------------------------------------------------
-/*CONF_STATUS CONFIGPROTO::Status()
-{
-//return status;
-}
-//-----------------------------------------------------------------------------
-*/
-const string & CONFIGPROTO::GetStrError() const
-{
-return errorStr;
-}
-//-----------------------------------------------------------------------------
-uint32_t CONFIGPROTO::GetAdminIP() const
-{
-return adminIP;
-}
-//-----------------------------------------------------------------------------