-rw-r--r-- | lib/discovery.cc | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/discovery.cc b/lib/discovery.cc index cbdceb3..f8a3988 100644 --- a/lib/discovery.cc +++ b/lib/discovery.cc @@ -456,6 +456,10 @@ namespace opkele { if(is_qelement(n,NSURI_XRD "\tType")) { - assert(xrd); assert(xrd_service); assert(cdata==&cdata_buf); + if(xrd && xrd_service) { + assert(cdata==&cdata_buf); xrd_service->types.insert(cdata_buf); + } }else if(is_qelement(n,NSURI_XRD "\tService")) { - assert(xrd); assert(xrd_service); + if(!(xrd && xrd_service)) { + skipping = -1; + }else{ assert(!pt_stack.empty()); @@ -464,4 +468,7 @@ namespace opkele { xrd_service = 0; + } }else if(is_qelement(n,NSURI_XRD "\tStatus")) { - assert(xrd); + if(!xrd) { + skipping=-1; + }else{ if(is_qelement(pt_stack.back().c_str(),n)) { @@ -472,5 +479,9 @@ namespace opkele { } + } }else if(is_qelement(n,NSURI_XRD "\tExpires")) { - assert(xrd); + if(!xrd) { + skipping=-1; + }else{ xrd->expires = util::w3c_to_time(cdata_buf); + } }else if((xmode&xmode_html) && is_element(n,"head")) { |