summaryrefslogtreecommitdiff
path: root/icespider/fcgi/cgiRequestBase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'icespider/fcgi/cgiRequestBase.cpp')
-rw-r--r--icespider/fcgi/cgiRequestBase.cpp9
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