summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2007-08-09 11:23:36 (UTC)
committer Michael Krelin <hacker@klever.net>2007-08-09 11:23:36 (UTC)
commit65bab7c9f984d6fe45ce72e7db014c40eba4d240 (patch) (unidiff)
tree28c4791aea6b7dc404ad0d27050c34f447a84314
parent1f347795ef5eba50892fd777c173a2a6db1755f2 (diff)
downloadlibopkele-65bab7c9f984d6fe45ce72e7db014c40eba4d240.zip
libopkele-65bab7c9f984d6fe45ce72e7db014c40eba4d240.tar.gz
libopkele-65bab7c9f984d6fe45ce72e7db014c40eba4d240.tar.bz2
associations robustness improvements and documentation updates
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--include/opkele/association.h2
-rw-r--r--include/opkele/consumer.h19
-rw-r--r--lib/consumer.cc4
3 files changed, 24 insertions, 1 deletions
diff --git a/include/opkele/association.h b/include/opkele/association.h
index a8f3915..72eff5b 100644
--- a/include/opkele/association.h
+++ b/include/opkele/association.h
@@ -63,2 +63,4 @@ namespace opkele {
63 virtual bool stateless() const { return _stateless; } 63 virtual bool stateless() const { return _stateless; }
64
65 virtual bool is_expired() const { return _expires<time(0); }
64 }; 66 };
diff --git a/include/opkele/consumer.h b/include/opkele/consumer.h
index 042e2d1..b9d1e54 100644
--- a/include/opkele/consumer.h
+++ b/include/opkele/consumer.h
@@ -15,2 +15,7 @@ namespace opkele {
15 * implementation of basic consumer functionality 15 * implementation of basic consumer functionality
16 *
17 * @note
18 * The consumer uses libcurl internally, which means that if you're using
19 * libopkele in multithreaded environment you should call curl_global_init
20 * yourself before spawning any threads.
16 */ 21 */
@@ -33,2 +38,8 @@ namespace opkele {
33 * store. 38 * store.
39 *
40 * @note
41 * The user is responsible for handling associations expiry and
42 * this function should never return an expired or invalidated
43 * association.
44 *
34 * @param server the OpenID server 45 * @param server the OpenID server
@@ -36,3 +47,3 @@ namespace opkele {
36 * @return the autho_ptr<> for the newly allocated association_t object 47 * @return the autho_ptr<> for the newly allocated association_t object
37 * @throw failed_lookup in case of error 48 * @throw failed_lookup if no unexpired association found
38 */ 49 */
@@ -50,2 +61,8 @@ namespace opkele {
50 * association will be established for each request. 61 * association will be established for each request.
62 *
63 * @note
64 * The user is responsible for handling associations and this
65 * function should never return an expired or invalidated
66 * association.
67 *
51 * @param server the OpenID server 68 * @param server the OpenID server
diff --git a/lib/consumer.cc b/lib/consumer.cc
index dd8e150..af309c1 100644
--- a/lib/consumer.cc
+++ b/lib/consumer.cc
@@ -146,2 +146,4 @@ namespace opkele {
146 string ah = find_assoc(server)->handle(); 146 string ah = find_assoc(server)->handle();
147 if(ah->is_expired()) /* TODO: or should I throw some other exception to force programmer fix his implementation? */
148 throw failed_lookup(OPKELE_CP_ "find_assoc() has returned expired handle");
147 p["assoc_handle"] = ah; 149 p["assoc_handle"] = ah;
@@ -163,2 +165,4 @@ namespace opkele {
163 assoc_t assoc = retrieve_assoc(server,pin.get_param("openid.assoc_handle")); 165 assoc_t assoc = retrieve_assoc(server,pin.get_param("openid.assoc_handle"));
166 if(assoc->is_expired()) /* TODO: or should I throw some other exception to force programmer fix his implementation? */
167 throw failed_lookup(OPKELE_CP_ "retrieve_assoc() has returned expired handle");
164 const string& sigenc = pin.get_param("openid.sig"); 168 const string& sigenc = pin.get_param("openid.sig");