From 683e33459980a50a44e95acf7d4691b2e9a78a58 Mon Sep 17 00:00:00 2001 From: Thomas Porzelt Date: Sun, 4 Apr 2010 17:07:24 +0200 Subject: [PATCH] [plugin_core] Return error 405 for methods other than GET or HEAD on static files --- src/main/plugin_core.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/plugin_core.c b/src/main/plugin_core.c index 708c038..ce84f5c 100644 --- a/src/main/plugin_core.c +++ b/src/main/plugin_core.c @@ -428,16 +428,23 @@ static liHandlerResult core_handle_static(liVRequest *vr, gpointer param, gpoint UNUSED(param); UNUSED(context); + if (li_vrequest_is_handled(vr)) + return LI_HANDLER_GO_ON; + switch (vr->request.http_method) { case LI_HTTP_METHOD_GET: case LI_HTTP_METHOD_HEAD: break; default: + if (!li_vrequest_handle_direct(vr)) { + return LI_HANDLER_ERROR; + } + + vr->response.http_status = 405; + li_http_header_overwrite(vr->response.headers, CONST_STR_LEN("Allow"), CONST_STR_LEN("GET, HEAD")); return LI_HANDLER_GO_ON; } - if (li_vrequest_is_handled(vr)) return LI_HANDLER_GO_ON; - if (vr->physical.path->len == 0) return LI_HANDLER_GO_ON; if (exclude_arr) {