diff options
Diffstat (limited to 'icespider/fcgi/cgiRequestBase.cpp')
-rw-r--r-- | icespider/fcgi/cgiRequestBase.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/icespider/fcgi/cgiRequestBase.cpp b/icespider/fcgi/cgiRequestBase.cpp index 85f7966..d77fb84 100644 --- a/icespider/fcgi/cgiRequestBase.cpp +++ b/icespider/fcgi/cgiRequestBase.cpp @@ -76,9 +76,14 @@ namespace IceSpider { HttpMethod CgiRequestBase::getRequestMethod() const { - auto i = envmap.find("REQUEST_METHOD"); - return Slicer::ModelPartForEnum<HttpMethod>::lookup( + try { + auto i = envmap.find("REQUEST_METHOD"); + return Slicer::ModelPartForEnum<HttpMethod>::lookup( std::string(std::get<0>(i->second), std::get<1>(i->second))); + } + catch (const Slicer::InvalidEnumerationValue &) { + throw IceSpider::Http405_MethodNotAllowed(); + } } OptionalString |