diff options
| -rw-r--r-- | icespider/fcgi/cgiRequestBase.cpp | 15 | ||||
| -rw-r--r-- | icespider/fcgi/cgiRequestBase.h | 6 | 
2 files changed, 13 insertions, 8 deletions
| diff --git a/icespider/fcgi/cgiRequestBase.cpp b/icespider/fcgi/cgiRequestBase.cpp index eb141c2..a773b07 100644 --- a/icespider/fcgi/cgiRequestBase.cpp +++ b/icespider/fcgi/cgiRequestBase.cpp @@ -27,6 +27,12 @@ namespace IceSpider {  		}  	} +	std::string +	operator*(const CgiRequestBase::Env & t) +	{ +		return std::string(std::get<0>(t), std::get<1>(t)); +	} +  	void  	CgiRequestBase::initialize()  	{ @@ -41,13 +47,13 @@ namespace IceSpider {  		auto qs = envmap.find("QUERY_STRING");  		if (qs != envmap.end()) { -			XWwwFormUrlEncoded::iterateVars(std::string(std::get<0>(qs->second), std::get<1>(qs->second)), [this](auto k, auto v) { +			XWwwFormUrlEncoded::iterateVars(*qs->second, [this](auto k, auto v) {  				qsmap.insert({ k, v });  			}, "&");  		}  		auto cs = envmap.find("HTTP_COOKIE");  		if (cs != envmap.end()) { -			XWwwFormUrlEncoded::iterateVars(std::string(std::get<0>(cs->second), std::get<1>(cs->second)), [this](auto k, auto v) { +			XWwwFormUrlEncoded::iterateVars(*cs->second, [this](auto k, auto v) {  				cookiemap.insert({ k, v });  			}, "; ");  		} @@ -60,7 +66,7 @@ namespace IceSpider {  		if (i == vm.end()) {  			return IceUtil::None;  		} -		return std::string(std::get<0>(i->second), std::get<1>(i->second)); +		return *i->second;  	}  	OptionalString @@ -84,8 +90,7 @@ namespace IceSpider {  	{  		try {  			auto i = envmap.find("REQUEST_METHOD"); -			return Slicer::ModelPartForEnum<HttpMethod>::lookup( -				std::string(std::get<0>(i->second), std::get<1>(i->second))); +			return Slicer::ModelPartForEnum<HttpMethod>::lookup(*i->second);  		}  		catch (const Slicer::InvalidEnumerationSymbol &) {  			throw IceSpider::Http405_MethodNotAllowed(); diff --git a/icespider/fcgi/cgiRequestBase.h b/icespider/fcgi/cgiRequestBase.h index 1cfcacc..e613866 100644 --- a/icespider/fcgi/cgiRequestBase.h +++ b/icespider/fcgi/cgiRequestBase.h @@ -13,14 +13,14 @@ namespace IceSpider {  				bool operator()(char const *a, char const *b) const;  			}; -			typedef std::tuple<char *, char *> Env; -			typedef std::map<const char *, Env, cmp_str> VarMap; -  			CgiRequestBase(Core * c, char ** env);  			void addenv(char *);  			void initialize();  		public: +			typedef std::tuple<char *, char *> Env; +			typedef std::map<const char *, Env, cmp_str> VarMap; +  			const PathElements & getRequestPath() const override;  			HttpMethod getRequestMethod() const override;  			OptionalString getQueryStringParam(const std::string & key) const override; | 
