summaryrefslogtreecommitdiffabout
path: root/include/kingate
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) (unidiff)
tree34727675eaeb4210436a9b61119c7484dbc0cd97 /include/kingate
parent9cc67ea5af191d5bc1f26506c35d8387a05361c2 (diff)
downloadkingate-db69589bdc32c60b1fce6700a35d4126058bf7bc.zip
kingate-db69589bdc32c60b1fce6700a35d4126058bf7bc.tar.gz
kingate-db69589bdc32c60b1fce6700a35d4126058bf7bc.tar.bz2
turned cookies into multimap
Diffstat (limited to 'include/kingate') (more/less context) (ignore whitespace changes)
-rw-r--r--include/kingate/cgi_gateway.h1
-rw-r--r--include/kingate/cookies.h4
2 files changed, 2 insertions, 3 deletions
diff --git a/include/kingate/cgi_gateway.h b/include/kingate/cgi_gateway.h
index a26b0ae..087f7d0 100644
--- a/include/kingate/cgi_gateway.h
+++ b/include/kingate/cgi_gateway.h
@@ -214,112 +214,111 @@ namespace kingate {
214 /** 214 /**
215 * Retrieve the HTTP header value from the HTTP_ meta-variable. 215 * Retrieve the HTTP header value from the HTTP_ meta-variable.
216 * (see RFC3875) 216 * (see RFC3875)
217 * @param hn header field name. 217 * @param hn header field name.
218 * @return the HTTP header value. 218 * @return the HTTP header value.
219 */ 219 */
220 const string& http_request_header(const string& hn) const; 220 const string& http_request_header(const string& hn) const;
221 221
222 /** 222 /**
223 * Retrieve the AUTH_TYPE meta-variable (see RFC3875) 223 * Retrieve the AUTH_TYPE meta-variable (see RFC3875)
224 * @return authentication type. 224 * @return authentication type.
225 */ 225 */
226 const string& auth_type() const; 226 const string& auth_type() const;
227 /** 227 /**
228 * Retrieve the CONTENT_LENGTH meta-variable (see RFC3875) 228 * Retrieve the CONTENT_LENGTH meta-variable (see RFC3875)
229 * @return size of the request message body. 229 * @return size of the request message body.
230 */ 230 */
231 unsigned long content_length() const; 231 unsigned long content_length() const;
232 /** 232 /**
233 * Retrieve the CONTENT_TYPE meta-variable (see RFC3875) 233 * Retrieve the CONTENT_TYPE meta-variable (see RFC3875)
234 * @return media type of the request message body. 234 * @return media type of the request message body.
235 */ 235 */
236 const string& content_type() const; 236 const string& content_type() const;
237 /** 237 /**
238 * Retrieve the GATEWAY_INTERFACE meta-variable (see RFC3875) 238 * Retrieve the GATEWAY_INTERFACE meta-variable (see RFC3875)
239 * @return the gateway interface dialect. 239 * @return the gateway interface dialect.
240 */ 240 */
241 const string& gateway_interface() const; 241 const string& gateway_interface() const;
242 /** 242 /**
243 * Retrieve the PATH_INFO meta-variable (see RFC3875) 243 * Retrieve the PATH_INFO meta-variable (see RFC3875)
244 * @return path to be interpreted by the script. 244 * @return path to be interpreted by the script.
245 */ 245 */
246 const string& path_info() const; 246 const string& path_info() const;
247 /** 247 /**
248 * Retrieve the PATH_TRANSLATED meta-variable (see RFC3875) 248 * Retrieve the PATH_TRANSLATED meta-variable (see RFC3875)
249 * @return the translated path to the document. 249 * @return the translated path to the document.
250 */ 250 */
251 const string& path_translated() const; 251 const string& path_translated() const;
252 /** 252 /**
253 * Retrieve the QUERY_STRING meta-variable (see RFC3875) 253 * Retrieve the QUERY_STRING meta-variable (see RFC3875)
254 * @return the query string. 254 * @return the query string.
255 */ 255 */
256 const string& query_string() const; 256 const string& query_string() const;
257 /** 257 /**
258 * Retrieve the REMOTE_ADDR meta-variable (see RFC3875) 258 * Retrieve the REMOTE_ADDR meta-variable (see RFC3875)
259 * @return the network address of the remote host. 259 * @return the network address of the remote host.
260 */ 260 */
261 const string& remote_addr() const; 261 const string& remote_addr() const;
262 /** 262 /**
263 * Retrieve the REMOTE_HOST meta-variable (see RFC3875) 263 * Retrieve the REMOTE_HOST meta-variable (see RFC3875)
264 * @return the fully qualified domain name of the client if 264 * @return the fully qualified domain name of the client if
265 * available. REMOTE_ADDR otherwise. 265 * available. REMOTE_ADDR otherwise.
266 * @see remote_addr() 266 * @see remote_addr()
267 */ 267 */
268 const string& remote_host() const; 268 const string& remote_host() const;
269 /** 269 /**
270 * Retrieve the REMOTE_IDENT meta-variable (see RFC3875) 270 * Retrieve the REMOTE_IDENT meta-variable (see RFC3875)
271 * @return remote user identity (see RFC1413). 271 * @return remote user identity (see RFC1413).
272 */ 272 */
273 const string& remote_ident() const; 273 const string& remote_ident() const;
274 /** 274 /**
275 * Retrieve the REMOTE_USER meta-variable (see RFC3875) 275 * Retrieve the REMOTE_USER meta-variable (see RFC3875)
276 * @return the authenticated user name. 276 * @return the authenticated user name.
277 */ 277 */
278 const string& remote_user() const; 278 const string& remote_user() const;
279 /** 279 /**
280 * Retrieve the REQUEST_METHOD meta-variable (see RFC3875) 280 * Retrieve the REQUEST_METHOD meta-variable (see RFC3875)
281 * @return the http request method. 281 * @return the http request method.
282 */ 282 */
283 const string& request_method() const; 283 const string& request_method() const;
284 /** 284 /**
285 * Retrieve the SCRIPT_NAME meta-variable (see RFC3875) 285 * Retrieve the SCRIPT_NAME meta-variable (see RFC3875)
286 * @return the uri path identifying the script. 286 * @return the uri path identifying the script.
287 */ 287 */
288 const string& script_name() const; 288 const string& script_name() const;
289 /** 289 /**
290 * Retrieve the SERVER_NAME meta-variable (see RFC3875) 290 * Retrieve the SERVER_NAME meta-variable (see RFC3875)
291 * @return the server name of the script. 291 * @return the server name of the script.
292 */ 292 */
293 const string& server_name() const; 293 const string& server_name() const;
294 /** 294 /**
295 * Retrieve the SERVER_PORT meta-variable (see RFC3875) 295 * Retrieve the SERVER_PORT meta-variable (see RFC3875)
296 * @return the port on which request was received. 296 * @return the port on which request was received.
297 */ 297 */
298 unsigned int server_port() const; 298 unsigned int server_port() const;
299 /** 299 /**
300 * Retrieve the SERVER_PROTOCOL meta-variable (see RFC3875) 300 * Retrieve the SERVER_PROTOCOL meta-variable (see RFC3875)
301 * @return the protocol used for the request. 301 * @return the protocol used for the request.
302 */ 302 */
303 const string& server_protocol() const; 303 const string& server_protocol() const;
304 /** 304 /**
305 * Retrieve the SERVER_SOFTWARE meta-variable (see RFC3875) 305 * Retrieve the SERVER_SOFTWARE meta-variable (see RFC3875)
306 * @return the name and version of server software. 306 * @return the name and version of server software.
307 */ 307 */
308 const string& server_software() const; 308 const string& server_software() const;
309 309
310 private:
311 /** 310 /**
312 * Parse the query string, putting the parameters into the map 311 * Parse the query string, putting the parameters into the map
313 * specified. 312 * specified.
314 * @param q the query string. 313 * @param q the query string.
315 * @param p destination parameters map. 314 * @param p destination parameters map.
316 */ 315 */
317 static void parse_query(string& q,params_t& p); 316 static void parse_query(string& q,params_t& p);
318 }; 317 };
319 318
320} 319}
321 320
322#endif /* __KINGATE_CGI_GATEWAY_H */ 321#endif /* __KINGATE_CGI_GATEWAY_H */
323/* 322/*
324 * vim:set ft=cpp: 323 * vim:set ft=cpp:
325 */ 324 */
diff --git a/include/kingate/cookies.h b/include/kingate/cookies.h
index 83ef0c6..a1e813c 100644
--- a/include/kingate/cookies.h
+++ b/include/kingate/cookies.h
@@ -162,139 +162,139 @@ namespace kingate {
162 * @see has_expires() 162 * @see has_expires()
163 * @see unset_expires() 163 * @see unset_expires()
164 */ 164 */
165 const string& get_expires() const; 165 const string& get_expires() const;
166 166
167 /** 167 /**
168 * @return true if cookie has comment. 168 * @return true if cookie has comment.
169 * @see set_comment() 169 * @see set_comment()
170 * @see get_comment() 170 * @see get_comment()
171 * @see unset_comment() 171 * @see unset_comment()
172 */ 172 */
173 bool has_comment() const; 173 bool has_comment() const;
174 /** 174 /**
175 * @return true if cookie has domain. 175 * @return true if cookie has domain.
176 * @see set_domain() 176 * @see set_domain()
177 * @see get_domain() 177 * @see get_domain()
178 * @see unset_domain() 178 * @see unset_domain()
179 */ 179 */
180 bool has_domain() const; 180 bool has_domain() const;
181 /** 181 /**
182 * @return true if cookie has max-age. 182 * @return true if cookie has max-age.
183 * @see set_max_age() 183 * @see set_max_age()
184 * @see get_max_age() 184 * @see get_max_age()
185 * @see unset_max_age() 185 * @see unset_max_age()
186 */ 186 */
187 bool has_max_age() const; 187 bool has_max_age() const;
188 /** 188 /**
189 * @return true if cookie has path. 189 * @return true if cookie has path.
190 * @see set_path() 190 * @see set_path()
191 * @see get_path() 191 * @see get_path()
192 * @see unset_path() 192 * @see unset_path()
193 */ 193 */
194 bool has_path() const; 194 bool has_path() const;
195 195
196 /** 196 /**
197 * @return true if cookie has expiration time. 197 * @return true if cookie has expiration time.
198 * @see set_expires() 198 * @see set_expires()
199 * @see get_expires() 199 * @see get_expires()
200 * @see unset_expires() 200 * @see unset_expires()
201 */ 201 */
202 bool has_expires() const; 202 bool has_expires() const;
203 203
204 /** 204 /**
205 * rid cookie of comment. 205 * rid cookie of comment.
206 * @see set_comment() 206 * @see set_comment()
207 * @see get_comment() 207 * @see get_comment()
208 * @see has_comment() 208 * @see has_comment()
209 */ 209 */
210 void unset_comment(); 210 void unset_comment();
211 /** 211 /**
212 * rid cookie of domain. 212 * rid cookie of domain.
213 * @see set_domain() 213 * @see set_domain()
214 * @see get_domain() 214 * @see get_domain()
215 * @see has_domain() 215 * @see has_domain()
216 */ 216 */
217 void unset_domain(); 217 void unset_domain();
218 /** 218 /**
219 * rid cookie of max-age. 219 * rid cookie of max-age.
220 * @see set_max_age() 220 * @see set_max_age()
221 * @see get_max_age() 221 * @see get_max_age()
222 * @see has_max_age() 222 * @see has_max_age()
223 */ 223 */
224 void unset_max_age(); 224 void unset_max_age();
225 /** 225 /**
226 * rid cookie of path. 226 * rid cookie of path.
227 * @see set_path() 227 * @see set_path()
228 * @see get_path() 228 * @see get_path()
229 * @see has_path() 229 * @see has_path()
230 */ 230 */
231 void unset_path(); 231 void unset_path();
232 232
233 /** 233 /**
234 * rid cookie of expiration time. 234 * rid cookie of expiration time.
235 * @see set_expires() 235 * @see set_expires()
236 * @see get_expires() 236 * @see get_expires()
237 * @see has_expires() 237 * @see has_expires()
238 */ 238 */
239 void unset_expires(); 239 void unset_expires();
240 240
241 /** 241 /**
242 * render the 'Set-Cookie' HTTP header according to RFC2109. 242 * render the 'Set-Cookie' HTTP header according to RFC2109.
243 * Absolutely useless, only works with lynx. 243 * Absolutely useless, only works with lynx.
244 * @return the rendered header content. 244 * @return the rendered header content.
245 */ 245 */
246 string set_cookie_header_rfc2109() const; 246 string set_cookie_header_rfc2109() const;
247 /** 247 /**
248 * render the 'Set-Cookie' header according to the early vague 248 * render the 'Set-Cookie' header according to the early vague
249 * netscape specs and common practice. 249 * netscape specs and common practice.
250 * @return the rendered header content. 250 * @return the rendered header content.
251 */ 251 */
252 string set_cookie_header() const; 252 string set_cookie_header() const;
253 }; 253 };
254 254
255 /** 255 /**
256 * Cookies container class. 256 * Cookies container class.
257 */ 257 */
258 class cookies_t : public map<string,cookie> { 258 class cookies_t : public multimap<string,cookie> {
259 public: 259 public:
260 260
261 cookies_t() { } 261 cookies_t() { }
262 /** 262 /**
263 * @param s 'Cookie:' HTTP header contents to parse. 263 * @param s 'Cookie:' HTTP header contents to parse.
264 */ 264 */
265 cookies_t(const string& s) { parse_cookies(s); } 265 cookies_t(const string& s) { parse_cookies(s); }
266 266
267 /** 267 /**
268 * @param c cookie to set. 268 * @param c cookie to set.
269 */ 269 */
270 void set_cookie(const cookie& c) { (*this)[c.get_name()]=c; } 270 void set_cookie(const cookie& c);
271 /** 271 /**
272 * @param n cookie name to remove. 272 * @param n cookie name to remove.
273 */ 273 */
274 void unset_cookie(const key_type& n) { erase(n); } 274 void unset_cookie(const key_type& n) { erase(n); }
275 /** 275 /**
276 * @param n cookie name. 276 * @param n cookie name.
277 * @return true if exists. 277 * @return true if exists.
278 */ 278 */
279 bool has_cookie(const key_type& n) const; 279 bool has_cookie(const key_type& n) const;
280 /** 280 /**
281 * Return the named cookie if one exists. 281 * Return the named cookie if one exists.
282 * @param n cookie name. 282 * @param n cookie name.
283 * @return const reference to cookie object. 283 * @return const reference to cookie object.
284 */ 284 */
285 const cookie& get_cookie(const key_type& n) const; 285 const cookie& get_cookie(const key_type& n) const;
286 /** 286 /**
287 * Return the named cookie if one exists. 287 * Return the named cookie if one exists.
288 * @param n cookie name. 288 * @param n cookie name.
289 * @return reference to cookie object. 289 * @return reference to cookie object.
290 */ 290 */
291 cookie& get_cookie(const key_type& n); 291 cookie& get_cookie(const key_type& n);
292 292
293 /** 293 /**
294 * @param s HTTP 'Cookie' header content. 294 * @param s HTTP 'Cookie' header content.
295 */ 295 */
296 void parse_cookies(const string& s); 296 void parse_cookies(const string& s);
297 }; 297 };
298} 298}
299 299
300#endif /* __KINGATE_COOKIES_H */ 300#endif /* __KINGATE_COOKIES_H */