summaryrefslogtreecommitdiff
path: root/src/MetalinkParserStateMachine.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-03-02 14:07:30 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-03-02 14:07:30 +0000
commitba78b6f16712c40917312412c91f5e0c11742e12 (patch)
treee6773b0b12914fc372002d8de2a4c6d67a91112e /src/MetalinkParserStateMachine.h
parenteb32f5647923afdc30cb170b84424230714c411f (diff)
2010-03-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added strict attribute validation for metalink4. When specification violation is found, discard the whole document. * src/ExpatMetalinkProcessor.cc * src/MetalinkParserStateMachine.cc * src/MetalinkParserStateMachine.h * src/MetalinkParserStateV4Impl.cc * src/XML2SAXMetalinkProcessor.cc * test/Makefile.am * test/MetalinkProcessorTest.cc * test/metalink4-attrs.xml: Removed * test/metalink4-dirtraversal.xml: Removed
Diffstat (limited to 'src/MetalinkParserStateMachine.h')
-rw-r--r--src/MetalinkParserStateMachine.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/MetalinkParserStateMachine.h b/src/MetalinkParserStateMachine.h
index 601b0d21..472b05da 100644
--- a/src/MetalinkParserStateMachine.h
+++ b/src/MetalinkParserStateMachine.h
@@ -54,6 +54,9 @@ private:
std::stack<MetalinkParserState*> _stateStack;
+ // Error messages encountered while parsing document.
+ std::vector<std::string> _errors;
+
static MetalinkParserState* _initialState;
static MetalinkParserState* _skipTagState;
@@ -245,6 +248,16 @@ public:
bool needsCharactersBuffering() const;
+ // Only stores first 10 errors.
+ void logError(const std::string& log);
+
+ const std::vector<std::string>& getErrors() const
+ {
+ return _errors;
+ }
+
+ std::string getErrorString() const;
+
const SharedHandle<Metalinker>& getResult() const
{
return _ctrl->getResult();