diff --git a/ferron/src/modules/default_handler_checks.rs b/ferron/src/modules/default_handler_checks.rs index bbdad77f..308b6f1b 100644 --- a/ferron/src/modules/default_handler_checks.rs +++ b/ferron/src/modules/default_handler_checks.rs @@ -50,16 +50,26 @@ impl ServerModuleHandlers for DefaultHandlerChecksModuleHandlers { .response( Response::builder() .status(StatusCode::NO_CONTENT) - .header(header::ALLOW, "GET, POST, HEAD, OPTIONS") + .header( + header::ALLOW, + "GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE", + ) .body(Empty::new().map_err(|e| match e {}).boxed()) .unwrap_or_default(), ) .build(), ), - &Method::GET | &Method::POST | &Method::HEAD => Ok(ResponseData::builder(request).build()), + &Method::GET + | &Method::POST + | &Method::HEAD + | &Method::PUT + | &Method::PATCH + | &Method::DELETE => Ok(ResponseData::builder(request).build()), _ => { let mut header_map = HeaderMap::new(); - if let Ok(header_value) = HeaderValue::from_str("GET, POST, HEAD, OPTIONS") { + if let Ok(header_value) = + HeaderValue::from_str("GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE") + { header_map.insert(header::ALLOW, header_value); }; Ok( diff --git a/ferron/src/request_handler.rs b/ferron/src/request_handler.rs index 0ea2b6ae..b9a9559c 100644 --- a/ferron/src/request_handler.rs +++ b/ferron/src/request_handler.rs @@ -802,12 +802,17 @@ async fn request_handler_wrapped( let response = match request.method() { &Method::OPTIONS => Response::builder() .status(StatusCode::NO_CONTENT) - .header(header::ALLOW, "GET, POST, HEAD, OPTIONS") + .header( + header::ALLOW, + "GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE", + ) .body(Empty::new().map_err(|e| match e {}).boxed()) .unwrap_or_default(), _ => { let mut header_map = HeaderMap::new(); - if let Ok(header_value) = HeaderValue::from_str("GET, POST, HEAD, OPTIONS") { + if let Ok(header_value) = + HeaderValue::from_str("GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE") + { header_map.insert(header::ALLOW, header_value); }; generate_error_response(StatusCode::BAD_REQUEST, &combined_config, &Some(header_map)).await