author | Michael Krelin <hacker@klever.net> | 2007-12-30 21:08:55 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2008-01-04 18:22:43 (UTC) |
commit | b7cec6ccef5d4178cf02c4cc240fd39ab7c8fe97 (patch) (unidiff) | |
tree | c898f449b4238a239f491a62bd77ac7c75663bb1 | |
parent | 4b75ac58aa9baaf611df8ef694fd585529823c66 (diff) | |
download | libopkele-b7cec6ccef5d4178cf02c4cc240fd39ab7c8fe97.zip libopkele-b7cec6ccef5d4178cf02c4cc240fd39ab7c8fe97.tar.gz libopkele-b7cec6ccef5d4178cf02c4cc240fd39ab7c8fe97.tar.bz2 |
parse ProviderID while doing discovery
Signed-off-by: Michael Krelin <hacker@klever.net>
-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 { | |||
205 | types_t types; | 205 | types_t types; |
206 | uris_t uris; | 206 | uris_t uris; |
207 | local_ids_t local_ids; | 207 | local_ids_t local_ids; |
208 | string provider_id; | ||
208 | 209 | ||
209 | void clear() { | 210 | void clear() { |
210 | types.clear(); | 211 | types.clear(); |
211 | uris.clear(); local_ids.clear(); | 212 | uris.clear(); local_ids.clear(); |
213 | provider_id.clear(); | ||
212 | } | 214 | } |
213 | }; | 215 | }; |
214 | typedef priority_map<service_t> services_t; | 216 | typedef priority_map<service_t> services_t; |
@@ -220,11 +222,13 @@ namespace opkele { | |||
220 | canonical_ids_t canonical_ids; | 222 | canonical_ids_t canonical_ids; |
221 | local_ids_t local_ids; | 223 | local_ids_t local_ids; |
222 | services_t services; | 224 | services_t services; |
225 | string provider_id; | ||
223 | 226 | ||
224 | void clear() { | 227 | void clear() { |
225 | expires = 0; | 228 | expires = 0; |
226 | canonical_ids.clear(); local_ids.clear(); | 229 | canonical_ids.clear(); local_ids.clear(); |
227 | services.clear(); | 230 | services.clear(); |
231 | provider_id.clear(); | ||
228 | } | 232 | } |
229 | bool empty() const { | 233 | bool empty() const { |
230 | return | 234 | 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 { | |||
236 | }else if(is_qelement(n,NSURI_XRD "\tLocalID")) { | 236 | }else if(is_qelement(n,NSURI_XRD "\tLocalID")) { |
237 | assert(xrd); | 237 | assert(xrd); |
238 | cdata = &(xrd->local_ids.add(element_priority(a),string())); | 238 | cdata = &(xrd->local_ids.add(element_priority(a),string())); |
239 | }else if(is_qelement(n,NSURI_XRD "\tProviderID")) { | ||
240 | assert(xrd); | ||
241 | cdata = &(xrd->provider_id); | ||
239 | }else if(is_qelement(n,NSURI_XRD "\tService")) { | 242 | }else if(is_qelement(n,NSURI_XRD "\tService")) { |
240 | assert(xrd); | 243 | assert(xrd); |
241 | xrd_service = &(xrd->services.add(element_priority(a), | 244 | xrd_service = &(xrd->services.add(element_priority(a), |
@@ -273,6 +276,9 @@ namespace opkele { | |||
273 | || is_qelement(n,NSURI_OPENID10 "\tDelegate") ) { | 276 | || is_qelement(n,NSURI_OPENID10 "\tDelegate") ) { |
274 | assert(xrd); assert(xrd_service); | 277 | assert(xrd); assert(xrd_service); |
275 | cdata = &(xrd_service->local_ids.add(element_priority(a),string())); | 278 | cdata = &(xrd_service->local_ids.add(element_priority(a),string())); |
279 | }else if(is_qelement(n,NSURI_XRD "\tProviderID")) { | ||
280 | assert(xrd); assert(xrd_service); | ||
281 | cdata = &(xrd_service->provider_id); | ||
276 | }else{ | 282 | }else{ |
277 | skipping = 1; | 283 | skipping = 1; |
278 | } | 284 | } |