Mercurial > hg > orthanc
comparison Core/HttpServer/HttpHandler.cpp @ 330:78a8eaa5f30b
cookies
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 09 Jan 2013 11:41:13 +0100 |
parents | 7f74209ea0f8 |
children | c51c9ed603e6 |
comparison
equal
deleted
inserted
replaced
329:f579d50fdf8f | 330:78a8eaa5f30b |
---|---|
88 else | 88 else |
89 { | 89 { |
90 return it->second; | 90 return it->second; |
91 } | 91 } |
92 } | 92 } |
93 | |
94 | |
95 | |
96 void HttpHandler::ParseCookies(HttpHandler::Arguments& result, | |
97 const HttpHandler::Arguments& httpHeaders) | |
98 { | |
99 result.clear(); | |
100 | |
101 HttpHandler::Arguments::const_iterator it = httpHeaders.find("cookies"); | |
102 if (it != httpHeaders.end()) | |
103 { | |
104 const std::string& cookies = it->second; | |
105 | |
106 size_t pos = 0; | |
107 while (pos != std::string::npos) | |
108 { | |
109 size_t nextSemicolon = cookies.find(";", pos); | |
110 std::string cookie; | |
111 | |
112 if (nextSemicolon == std::string::npos) | |
113 { | |
114 cookie = cookies.substr(pos); | |
115 pos = std::string::npos; | |
116 } | |
117 else | |
118 { | |
119 cookie = cookies.substr(pos, nextSemicolon - pos); | |
120 pos = nextSemicolon + 1; | |
121 } | |
122 | |
123 size_t equal = cookie.find("="); | |
124 if (equal != std::string::npos) | |
125 { | |
126 std::string name = Toolbox::StripSpaces(cookie.substr(0, equal)); | |
127 std::string value = Toolbox::StripSpaces(cookie.substr(equal + 1)); | |
128 result[name] = value; | |
129 } | |
130 } | |
131 } | |
132 } | |
93 } | 133 } |