From f2a426f8b215c396f2430a98b2929668398f3a51 Mon Sep 17 00:00:00 2001 From: Michael Krelin Date: Sun, 11 Jul 2010 12:18:29 +0000 Subject: cookie: time-based set_expires variants Signed-off-by: Michael Krelin --- diff --git a/include/kingate/cookies.h b/include/kingate/cookies.h index a1e813c..cba5aff 100644 --- a/include/kingate/cookies.h +++ b/include/kingate/cookies.h @@ -96,6 +96,8 @@ namespace kingate { * @see unset_expires() */ void set_expires(const string& e); + void set_expires_time(time_t etime); + void set_expires_in(time_t esecs); /** * get cookie parameter. diff --git a/src/cookies.cc b/src/cookies.cc index 1ee4f7c..3215271 100644 --- a/src/cookies.cc +++ b/src/cookies.cc @@ -96,6 +96,16 @@ namespace kingate { void cookie::set_expires(const string& e) { (*this)["expires"] = e; } + void cookie::set_expires_time(time_t etime) { + struct tm etm; + char e[64]; + if(strftime(e,sizeof(e)-1,"%a, %d %b %Y:%M:%S GMT",gmtime_r(&etime,&etm))) + set_expires(e); + /* TODO: handle error */ + } + void cookie::set_expires_in(time_t esecs) { + set_expires_time(time(0)+esecs); + } const string& cookie::_get_string(const string& s) const { const_iterator i = find(s); -- cgit v0.9.0.2