author | Michael Krelin <hacker@klever.net> | 2008-01-05 19:39:07 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2008-01-05 22:03:51 (UTC) |
commit | 7bde7f66284b47a75bbceadc360e7f03550ace21 (patch) (side-by-side diff) | |
tree | 401b24fc8b952fee21ad3dce117d4baf99048c9f /lib | |
parent | 8e3f9231383194d94e41032b64d87cc6ef1c2ee8 (diff) | |
download | libopkele-7bde7f66284b47a75bbceadc360e7f03550ace21.zip libopkele-7bde7f66284b47a75bbceadc360e7f03550ace21.tar.gz libopkele-7bde7f66284b47a75bbceadc360e7f03550ace21.tar.bz2 |
discovery: stop parser with XML_StopParser()
Signed-off-by: Michael Krelin <hacker@klever.net>
-rw-r--r-- | lib/discovery.cc | 18 |
1 files changed, 12 insertions, 6 deletions
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(); } |