]> git.stg.codes - stg.git/blobdiff - stglibs/srvconf.lib/parsers/get_service.h
Always think about \0 and block boundry during encryption.
[stg.git] / stglibs / srvconf.lib / parsers / get_service.h
index 847d8bfda6c1af56d183e3c88e6cf6941ddb1c47..fe29ec09daaf463e0684991c7eebd99b9c21b0ab 100644 (file)
@@ -38,16 +38,18 @@ class PARSER: public STG::PARSER
 {
 public:
     typedef GET_SERVICE::INFO INFO;
 {
 public:
     typedef GET_SERVICE::INFO INFO;
-    PARSER(CALLBACK f, void * data);
+    PARSER(CALLBACK f, void * data, const std::string & encoding);
     virtual ~PARSER();
     int  ParseStart(const char * el, const char ** attr);
     void ParseEnd(const char * el);
     virtual ~PARSER();
     int  ParseStart(const char * el, const char ** attr);
     void ParseEnd(const char * el);
+    void Failure(const std::string & reason) { callback(false, reason, info, data); }
 
 private:
     PROPERTY_PARSERS propertyParsers;
     CALLBACK callback;
     void * data;
     INFO info;
 
 private:
     PROPERTY_PARSERS propertyParsers;
     CALLBACK callback;
     void * data;
     INFO info;
+    std::string encoding;
     int depth;
     bool parsingAnswer;
     std::string error;
     int depth;
     bool parsingAnswer;
     std::string error;