-rw-r--r-- | include/opkele/association.h | 2 | ||||
-rw-r--r-- | include/opkele/consumer.h | 19 | ||||
-rw-r--r-- | lib/consumer.cc | 4 |
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"); |