-rw-r--r-- | include/opkele/expat.h | 6 | ||||
-rw-r--r-- | lib/discovery.cc | 18 |
2 files changed, 16 insertions, 8 deletions
diff --git a/include/opkele/expat.h b/include/opkele/expat.h index 60c41ac..97ed61a 100644 --- a/include/opkele/expat.h +++ b/include/opkele/expat.h @@ -25,4 +25,6 @@ namespace opkele { assert(_x); - return XML_Parse(_x,s,len,final); - } + return XML_Parse(_x,s,len,final); } + enum XML_Status stop_parser(bool resumable=false) { + assert(_x); + return XML_StopParser(_x,resumable); } diff --git a/lib/discovery.cc b/lib/discovery.cc index 81727c0..8729cfb 100644 --- a/lib/discovery.cc +++ b/lib/discovery.cc @@ -7,2 +7,3 @@ #include <opkele/util.h> +#include <opkele/debug.h> @@ -177,3 +178,7 @@ namespace opkele { size_t bytes = s*nm; - parse((const char *)p,bytes,false); + bool rp = parse((const char *)p,bytes,false); + if(!rp) { + skipping = -1; + bytes = 0; + } return bytes; @@ -227,3 +232,3 @@ namespace opkele { }else{ - skipping = -1; + skipping = -1; stop_parser(); } @@ -312,4 +317,5 @@ namespace opkele { pt_stack.pop_back(); - if(status_code!=100) - skipping = -1; + if(status_code!=100) { + skipping = -1; stop_parser(); + } } @@ -319,3 +325,3 @@ namespace opkele { }else if((xmode&xmode_html) && is_element(n,"head")) { - skipping = -1; + skipping = -1; stop_parser(); } @@ -376,3 +382,3 @@ namespace opkele { }else if(is_element(n,"body")) { - skipping = -1; + skipping = -1; stop_parser(); } |