-rw-r--r-- | include/opkele/types.h | 4 | ||||
-rw-r--r-- | lib/discovery.cc | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/include/opkele/types.h b/include/opkele/types.h index d959021..4e1415f 100644 --- a/include/opkele/types.h +++ b/include/opkele/types.h @@ -205,10 +205,12 @@ namespace opkele { types_t types; uris_t uris; local_ids_t local_ids; + string provider_id; void clear() { types.clear(); uris.clear(); local_ids.clear(); + provider_id.clear(); } }; typedef priority_map<service_t> services_t; @@ -220,11 +222,13 @@ namespace opkele { canonical_ids_t canonical_ids; local_ids_t local_ids; services_t services; + string provider_id; void clear() { expires = 0; canonical_ids.clear(); local_ids.clear(); services.clear(); + provider_id.clear(); } bool empty() const { return diff --git a/lib/discovery.cc b/lib/discovery.cc index bc7d6fb..81727c0 100644 --- a/lib/discovery.cc +++ b/lib/discovery.cc @@ -236,6 +236,9 @@ namespace opkele { }else if(is_qelement(n,NSURI_XRD "\tLocalID")) { assert(xrd); cdata = &(xrd->local_ids.add(element_priority(a),string())); + }else if(is_qelement(n,NSURI_XRD "\tProviderID")) { + assert(xrd); + cdata = &(xrd->provider_id); }else if(is_qelement(n,NSURI_XRD "\tService")) { assert(xrd); xrd_service = &(xrd->services.add(element_priority(a), @@ -273,6 +276,9 @@ namespace opkele { || is_qelement(n,NSURI_OPENID10 "\tDelegate") ) { assert(xrd); assert(xrd_service); cdata = &(xrd_service->local_ids.add(element_priority(a),string())); + }else if(is_qelement(n,NSURI_XRD "\tProviderID")) { + assert(xrd); assert(xrd_service); + cdata = &(xrd_service->provider_id); }else{ skipping = 1; } |