summaryrefslogtreecommitdiffabout
path: root/src
authorMichael Krelin <hacker@klever.net>2005-07-19 13:08:58 (UTC)
committer Michael Krelin <hacker@klever.net>2005-07-19 13:08:58 (UTC)
commitdb69589bdc32c60b1fce6700a35d4126058bf7bc (patch) (side-by-side diff)
tree34727675eaeb4210436a9b61119c7484dbc0cd97 /src
parent9cc67ea5af191d5bc1f26506c35d8387a05361c2 (diff)
downloadkingate-db69589bdc32c60b1fce6700a35d4126058bf7bc.zip
kingate-db69589bdc32c60b1fce6700a35d4126058bf7bc.tar.gz
kingate-db69589bdc32c60b1fce6700a35d4126058bf7bc.tar.bz2
turned cookies into multimap
Diffstat (limited to 'src') (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
@@ -170,32 +170,36 @@ namespace kingate {
rv += "; Version=1";
return rv;
}
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) {
iterator i=find(n);
if(i==end())
throw exception_notfound(CODEPOINT,"No cookie with such name found");
return i->second;
@@ -221,22 +225,21 @@ namespace kingate {
continue;
string n = s.substr(0,eq);
s.erase(0,eq+1);
nsp = n.find_last_not_of(" \t");
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));
}
}
}