]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/configuration/sgconfig/parser_message.cpp
Added "done" signature for parsers.
[stg.git] / projects / stargazer / plugins / configuration / sgconfig / parser_message.cpp
index 18767320340720152a9f8ddff6bba56dfc474b9b..2279aae6c6519e8968007a215426208b5424a069 100644 (file)
 #include "parser_message.h"
 
 #include "stg/users.h"
-#include "stg/common.h"
 
 extern volatile time_t stgTime; // So sad...
 
 using STG::PARSER::SEND_MESSAGE;
 
+const char * SEND_MESSAGE::tag = "Message";
+
 int SEND_MESSAGE::Start(void *, const char *el, const char **attr)
 {
-    if (strcasecmp(el, tag.c_str()) != 0)
+    if (strcasecmp(el, m_tag.c_str()) != 0)
         return -1;
 
     for (size_t i = 0; i < 14; i++)
@@ -85,7 +86,7 @@ int SEND_MESSAGE::Start(void *, const char *el, const char **attr)
 
 int SEND_MESSAGE::End(void *, const char *el)
 {
-    if (strcasecmp(el, tag.c_str()) != 0)
+    if (strcasecmp(el, m_tag.c_str()) != 0)
         return -1;
 
     m_result = res_unknown;
@@ -101,6 +102,7 @@ int SEND_MESSAGE::End(void *, const char *el)
         m_result = res_ok;
     }
     CreateAnswer();
+    m_done = true;
     return 0;
 }
 
@@ -126,13 +128,13 @@ void SEND_MESSAGE::CreateAnswer()
     switch (m_result)
     {
         case res_ok:
-            answer = "<SendMessageResult value=\"ok\"/>";
+            m_answer = "<SendMessageResult value=\"ok\"/>";
             break;
         case res_params_error:
-            answer = "<SendMessageResult value=\"Parameters error.\"/>";
+            m_answer = "<SendMessageResult value=\"Parameters error.\"/>";
             break;
         case res_unknown:
-            answer = "<SendMessageResult value=\"Unknown user.\"/>";
+            m_answer = "<SendMessageResult value=\"Unknown user.\"/>";
             break;
     }
 }