diff options
Diffstat (limited to 'sca-cpp/trunk/modules/http/httpd.hpp')
-rw-r--r-- | sca-cpp/trunk/modules/http/httpd.hpp | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/sca-cpp/trunk/modules/http/httpd.hpp b/sca-cpp/trunk/modules/http/httpd.hpp index 7c839c1306..af075a04e8 100644 --- a/sca-cpp/trunk/modules/http/httpd.hpp +++ b/sca-cpp/trunk/modules/http/httpd.hpp @@ -120,6 +120,22 @@ template<typename C> C& dirConf(const void* c) { } /** + * Returns a request-scoped module configuration. + */ +template<typename C> C& makeRequestConf(const request_rec* r, const module* mod) { + C* c = new (gc_new<C>(r->pool)) C(r->pool, r); + ap_set_module_config(r->request_config, mod, c); + return *c; +} + +template<typename C> C& requestConf(const request_rec* r, const module* mod) { + C* c = (C*)ap_get_module_config(r->request_config, mod); + if (c == NULL) + return makeRequestConf<C>(r, mod); + return *c; +} + +/** * Return the host name for a server. */ const string hostName(const server_rec* s, const string& def = "localhost") { @@ -425,17 +441,6 @@ const int reportStatus(const failable<int>& rc) { } /** - * Construct a redirect URI. - */ -const string redirectURI(const string& file, const string& pi) { - return file + pi; -} - -const string redirectURI(const string& file, const string& pi, const string& args) { - return file + pi + "?" + args; -} - -/** * Convert a value to an HTTPD request struc */ request_rec* request(const value& v) { |