summaryrefslogtreecommitdiffabout
path: root/include/opkele
Side-by-side diff
Diffstat (limited to 'include/opkele') (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/discovery.h3
-rw-r--r--include/opkele/prequeue_rp.h8
-rw-r--r--include/opkele/types.h3
3 files changed, 12 insertions, 2 deletions
diff --git a/include/opkele/discovery.h b/include/opkele/discovery.h
index 4471597..f2721a6 100644
--- a/include/opkele/discovery.h
+++ b/include/opkele/discovery.h
@@ -76,26 +76,25 @@ namespace opkele {
}
bool empty() const {
return
canonical_ids.empty()
&& local_ids.empty()
&& services.empty();
}
};
}
- typedef util::output_iterator_proxy<openid_endpoint_t>
- endpoint_discovery_iterator;
+ typedef openid_endpoint_output_iterator endpoint_discovery_iterator;
string idiscover(
endpoint_discovery_iterator oi,
const string& identity);
void yadiscover(
endpoint_discovery_iterator oi,
const string& yurl,
const char **types, bool redirs=false);
struct idiscovery_t {
bool xri_identity;
string normalized_id;
diff --git a/include/opkele/prequeue_rp.h b/include/opkele/prequeue_rp.h
index 68fe03d..6f1fda9 100644
--- a/include/opkele/prequeue_rp.h
+++ b/include/opkele/prequeue_rp.h
@@ -72,17 +72,25 @@ namespace opkele {
/**
* In addition to base class implementation it does endpoints
* discovery and queueing
* @param usi User-suppled identifier
*/
void initiate(const string& usi);
/**
* @}
*/
void verify_OP(const string& OP,
const string& claimed_id,const string& identity) const;
+
+ /**
+ * Perform full discovery on identity
+ * @param it iterator used for feeding discovered endpoints back to caller
+ * @param id user supplied identity
+ * @returns normalized identity (canonical identifier can be found in endpoints)
+ */
+ virtual const string discover(openid_endpoint_output_iterator it,const string& id) const;
};
}
#endif /* __OPKELE_RP_H */
diff --git a/include/opkele/types.h b/include/opkele/types.h
index 1f48362..1fab869 100644
--- a/include/opkele/types.h
+++ b/include/opkele/types.h
@@ -216,15 +216,18 @@ namespace opkele {
openid_endpoint_t() { }
openid_endpoint_t(const string& u,const string& cid,const string& lid)
: uri(u), claimed_id(cid), local_id(lid) { }
bool operator==(const openid_endpoint_t& x) const {
return uri==x.uri && local_id==x.local_id; }
bool operator<(const openid_endpoint_t& x) const {
int c;
return (c=strcmp(uri.c_str(),x.uri.c_str()))
? (c<0) : (strcmp(local_id.c_str(),x.local_id.c_str())<0); }
};
+ typedef util::output_iterator_proxy<openid_endpoint_t>
+ openid_endpoint_output_iterator;
+
}
#endif /* __OPKELE_TYPES_H */