[core] 200 for OPTIONS /non-existent/path HTTP/1.1 (fixes #2939)

200 for OPTIONS /non-existent/path HTTP/1.1 when a module,
such as mod_webdav, has set Allow response header

x-ref:
  "OPTIONS should return 2xx status for non-existent resources if Allow is set"
  https://redmine.lighttpd.net/issues/2939
personal/stbuehler/ci-build
Glenn Strauss 2019-03-25 22:37:31 -04:00
parent 50aae03c31
commit 95aa2c178d
1 changed files with 6 additions and 0 deletions

View File

@ -138,6 +138,12 @@ static handler_t http_response_physical_path_check(server *srv, connection *con)
case ENAMETOOLONG:
/* file name to be read was too long. return 404 */
case ENOENT:
if (con->request.http_method == HTTP_METHOD_OPTIONS
&& NULL != http_header_response_get(con, HTTP_HEADER_OTHER, CONST_STR_LEN("Allow"))) {
con->http_status = 200;
return HANDLER_FINISHED;
}
con->http_status = 404;
if (con->conf.log_request_handling) {