summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2008-01-06 23:00:18 (UTC)
committer Michael Krelin <hacker@klever.net>2008-01-06 23:05:57 (UTC)
commit7b5a82f255a85fe2ef466b68e40d9eb1829c633a (patch) (side-by-side diff)
treee466813db17bd974de0b0d277f35219c393c5796
parent6a843bb112988976892058c56d5fe2f24e24300a (diff)
downloadlibopkele-7b5a82f255a85fe2ef466b68e40d9eb1829c633a.zip
libopkele-7b5a82f255a85fe2ef466b68e40d9eb1829c633a.tar.gz
libopkele-7b5a82f255a85fe2ef466b68e40d9eb1829c633a.tar.bz2
Revert "discovery: stop parser with XML_StopParser()" for now
This reverts commit 7bde7f66284b47a75bbceadc360e7f03550ace21. because some older expat version do not support this function I don't want to make it conditional for now. Conflicts: lib/discovery.cc Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/expat.h6
-rw-r--r--lib/discovery.cc11
2 files changed, 7 insertions, 10 deletions
diff --git a/include/opkele/expat.h b/include/opkele/expat.h
index 97ed61a..60c41ac 100644
--- a/include/opkele/expat.h
+++ b/include/opkele/expat.h
@@ -20,16 +20,14 @@ namespace opkele {
operator const XML_Parser(void) const { return _x; }
operator XML_Parser(void) { return _x; }
inline bool parse(const char *s,int len,bool final=false) {
assert(_x);
- return XML_Parse(_x,s,len,final); }
- enum XML_Status stop_parser(bool resumable=false) {
- assert(_x);
- return XML_StopParser(_x,resumable); }
+ return XML_Parse(_x,s,len,final);
+ }
virtual void start_element(const XML_Char *n,const XML_Char **a) { }
virtual void end_element(const XML_Char *n) { }
void set_element_handler();
virtual void character_data(const XML_Char *s,int l) { }
diff --git a/lib/discovery.cc b/lib/discovery.cc
index af9686a..d868308 100644
--- a/lib/discovery.cc
+++ b/lib/discovery.cc
@@ -280,13 +280,13 @@ namespace opkele {
assert(xrd);
xrd->clear();
pt_stack.push_back(n);
}else if(xmode&xmode_html) {
html_start_element(n,a);
}else{
- skipping = -1; stop_parser();
+ skipping = -1;
}
}else{
int pt_s = pt_stack.size();
if(pt_s==1) {
if(is_qelement(n,NSURI_XRD "\tCanonicalID")) {
assert(xrd);
@@ -365,21 +365,20 @@ namespace opkele {
xrd_service = 0;
}else if(is_qelement(n,NSURI_XRD "\tStatus")) {
assert(xrd);
if(is_qelement(pt_stack.back().c_str(),n)) {
assert(cdata==&status_string);
pt_stack.pop_back();
- if(status_code!=100) {
- skipping = -1; stop_parser();
- }
+ if(status_code!=100)
+ skipping = -1;
}
}else if(is_qelement(n,NSURI_XRD "\tExpires")) {
assert(xrd);
xrd->expires = util::w3c_to_time(cdata_buf);
}else if((xmode&xmode_html) && is_element(n,"head")) {
- skipping = -1; stop_parser();
+ skipping = -1;
}
cdata = 0;
}
void character_data(const XML_Char *s,int l) {
if(skipping) return;
if(cdata) cdata->append(s,l);
@@ -430,13 +429,13 @@ namespace opkele {
else if(rel=="openid2.provider")
html_openid2.uris.add(-1,href);
else if(rel=="openid2.local_id")
html_openid2.local_ids.add(-1,href);
}
}else if(is_element(n,"body")) {
- skipping = -1; stop_parser();
+ skipping = -1;
}
}
};
void idiscover(idiscovery_t& result,const string& identity) {