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) (side-by-side diff)
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 {
/**
* Retrieve the HTTP header value from the HTTP_ meta-variable.
* (see RFC3875)
* @param hn header field name.
* @return the HTTP header value.
*/
const string& http_request_header(const string& hn) const;
/**
* Retrieve the AUTH_TYPE meta-variable (see RFC3875)
* @return authentication type.
*/
const string& auth_type() const;
/**
* Retrieve the CONTENT_LENGTH meta-variable (see RFC3875)
* @return size of the request message body.
*/
unsigned long content_length() const;
/**
* Retrieve the CONTENT_TYPE meta-variable (see RFC3875)
* @return media type of the request message body.
*/
const string& content_type() const;
/**
* Retrieve the GATEWAY_INTERFACE meta-variable (see RFC3875)
* @return the gateway interface dialect.
*/
const string& gateway_interface() const;
/**
* Retrieve the PATH_INFO meta-variable (see RFC3875)
* @return path to be interpreted by the script.
*/
const string& path_info() const;
/**
* Retrieve the PATH_TRANSLATED meta-variable (see RFC3875)
* @return the translated path to the document.
*/
const string& path_translated() const;
/**
* Retrieve the QUERY_STRING meta-variable (see RFC3875)
* @return the query string.
*/
const string& query_string() const;
/**
* Retrieve the REMOTE_ADDR meta-variable (see RFC3875)
* @return the network address of the remote host.
*/
const string& remote_addr() const;
/**
* Retrieve the REMOTE_HOST meta-variable (see RFC3875)
* @return the fully qualified domain name of the client if
* available. REMOTE_ADDR otherwise.
* @see remote_addr()
*/
const string& remote_host() const;
/**
* Retrieve the REMOTE_IDENT meta-variable (see RFC3875)
* @return remote user identity (see RFC1413).
*/
const string& remote_ident() const;
/**
* Retrieve the REMOTE_USER meta-variable (see RFC3875)
* @return the authenticated user name.
*/
const string& remote_user() const;
/**
* Retrieve the REQUEST_METHOD meta-variable (see RFC3875)
* @return the http request method.
*/
const string& request_method() const;
/**
* Retrieve the SCRIPT_NAME meta-variable (see RFC3875)
* @return the uri path identifying the script.
*/
const string& script_name() const;
/**
* Retrieve the SERVER_NAME meta-variable (see RFC3875)
* @return the server name of the script.
*/
const string& server_name() const;
/**
* Retrieve the SERVER_PORT meta-variable (see RFC3875)
* @return the port on which request was received.
*/
unsigned int server_port() const;
/**
* Retrieve the SERVER_PROTOCOL meta-variable (see RFC3875)
* @return the protocol used for the request.
*/
const string& server_protocol() const;
/**
* Retrieve the SERVER_SOFTWARE meta-variable (see RFC3875)
* @return the name and version of server software.
*/
const string& server_software() const;
- private:
/**
* Parse the query string, putting the parameters into the map
* specified.
* @param q the query string.
* @param p destination parameters map.
*/
static void parse_query(string& q,params_t& p);
};
}
#endif /* __KINGATE_CGI_GATEWAY_H */
/*
* vim:set ft=cpp:
*/
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 {
* @see has_expires()
* @see unset_expires()
*/
const string& get_expires() const;
/**
* @return true if cookie has comment.
* @see set_comment()
* @see get_comment()
* @see unset_comment()
*/
bool has_comment() const;
/**
* @return true if cookie has domain.
* @see set_domain()
* @see get_domain()
* @see unset_domain()
*/
bool has_domain() const;
/**
* @return true if cookie has max-age.
* @see set_max_age()
* @see get_max_age()
* @see unset_max_age()
*/
bool has_max_age() const;
/**
* @return true if cookie has path.
* @see set_path()
* @see get_path()
* @see unset_path()
*/
bool has_path() const;
/**
* @return true if cookie has expiration time.
* @see set_expires()
* @see get_expires()
* @see unset_expires()
*/
bool has_expires() const;
/**
* rid cookie of comment.
* @see set_comment()
* @see get_comment()
* @see has_comment()
*/
void unset_comment();
/**
* rid cookie of domain.
* @see set_domain()
* @see get_domain()
* @see has_domain()
*/
void unset_domain();
/**
* rid cookie of max-age.
* @see set_max_age()
* @see get_max_age()
* @see has_max_age()
*/
void unset_max_age();
/**
* rid cookie of path.
* @see set_path()
* @see get_path()
* @see has_path()
*/
void unset_path();
/**
* rid cookie of expiration time.
* @see set_expires()
* @see get_expires()
* @see has_expires()
*/
void unset_expires();
/**
* render the 'Set-Cookie' HTTP header according to RFC2109.
* Absolutely useless, only works with lynx.
* @return the rendered header content.
*/
string set_cookie_header_rfc2109() const;
/**
* render the 'Set-Cookie' header according to the early vague
* netscape specs and common practice.
* @return the rendered header content.
*/
string set_cookie_header() const;
};
/**
* Cookies container class.
*/
- class cookies_t : public map<string,cookie> {
+ class cookies_t : public multimap<string,cookie> {
public:
cookies_t() { }
/**
* @param s 'Cookie:' HTTP header contents to parse.
*/
cookies_t(const string& s) { parse_cookies(s); }
/**
* @param c cookie to set.
*/
- void set_cookie(const cookie& c) { (*this)[c.get_name()]=c; }
+ void set_cookie(const cookie& c);
/**
* @param n cookie name to remove.
*/
void unset_cookie(const key_type& n) { erase(n); }
/**
* @param n cookie name.
* @return true if exists.
*/
bool has_cookie(const key_type& n) const;
/**
* Return the named cookie if one exists.
* @param n cookie name.
* @return const reference to cookie object.
*/
const cookie& get_cookie(const key_type& n) const;
/**
* Return the named cookie if one exists.
* @param n cookie name.
* @return reference to cookie object.
*/
cookie& get_cookie(const key_type& n);
/**
* @param s HTTP 'Cookie' header content.
*/
void parse_cookies(const string& s);
};
}
#endif /* __KINGATE_COOKIES_H */