-rw-r--r-- | include/opkele/types.h | 5 | ||||
-rw-r--r-- | lib/consumer.cc | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/include/opkele/types.h b/include/opkele/types.h index 757c0af..8f4bf73 100644 --- a/include/opkele/types.h +++ b/include/opkele/types.h @@ -90,16 +90,21 @@ namespace opkele { * @return seconds till expiration */ virtual int expires_in() const = 0; /** * check whether the association is stateless. * @return true if stateless */ virtual bool stateless() const = 0; + /** + * check whether the association is expired. + * @return true if expired + */ + virtual bool is_expired() const = 0; }; /** * the auto_ptr<> for association_t object type */ typedef auto_ptr<association_t> assoc_t; /** diff --git a/lib/consumer.cc b/lib/consumer.cc index af309c1..8f66688 100644 --- a/lib/consumer.cc +++ b/lib/consumer.cc @@ -139,18 +139,16 @@ namespace opkele { string server, delegate; retrieve_links(iurl,server,delegate); p["identity"] = delegate.empty()?iurl:delegate; if(!trust_root.empty()) p["trust_root"] = trust_root; p["return_to"] = return_to; try { string ah = find_assoc(server)->handle(); - if(ah->is_expired()) /* TODO: or should I throw some other exception to force programmer fix his implementation? */ - throw failed_lookup(OPKELE_CP_ "find_assoc() has returned expired handle"); p["assoc_handle"] = ah; }catch(failed_lookup& fl) { string ah = associate(server)->handle(); p["assoc_handle"] = ah; } if(ext) ext->checkid_hook(p,identity); return p.append_query(server); } |