summaryrefslogtreecommitdiffabout
path: root/src/cookies.cc
Side-by-side diff
Diffstat (limited to 'src/cookies.cc') (more/less context) (ignore whitespace changes)
-rw-r--r--src/cookies.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/cookies.cc b/src/cookies.cc
index 40a0c8b..1ee4f7c 100644
--- a/src/cookies.cc
+++ b/src/cookies.cc
@@ -174,24 +174,28 @@ namespace kingate {
string cookie::set_cookie_header() const {
string rv = name + "=" + value;
for(const_iterator i=begin();i!=end();++i) {
if(i->first=="secure") {
rv += "; secure";
}else{
rv += "; "+i->first+"="+i->second;
}
}
return rv;
}
+ void cookies_t::set_cookie(const cookie& c) {
+ insert(value_type(c.get_name(),c));
+ }
+
bool cookies_t::has_cookie(const key_type& n) const {
return find(n)!=end();
}
const cookie& cookies_t::get_cookie(const key_type& n) const {
const_iterator i=find(n);
if(i==end())
throw exception_notfound(CODEPOINT,"No cookie with such name found");
return i->second;
}
cookie& cookies_t::get_cookie(const key_type& n) {
@@ -225,18 +229,17 @@ namespace kingate {
n.erase(nsp+1);
nsp = s.find_first_not_of(" \t");
string v;
if(nsp!=string::npos)
v = s.substr(nsp);
else
v = s;
nsp = v.find_last_not_of(" \t");
if(nsp==string::npos)
v.erase();
else
v.erase(nsp+1);
- cookie& c = (*this)[n];
- c.set_name(n); c.set_value(v);
+ set_cookie(cookie(n,v));
}
}
}