diff --git a/src/upgrade.rs b/src/upgrade.rs index 5f1d1fc..4a1e6cd 100644 --- a/src/upgrade.rs +++ b/src/upgrade.rs @@ -76,26 +76,29 @@ impl axum_core::extract::FromRequestParts for IncomingUpgrade where S: Sync, { - type Rejection = (); + type Rejection = hyper::StatusCode; async fn from_request_parts( parts: &mut http::request::Parts, _state: &S, ) -> Result { - let key = parts.headers.get("Sec-WebSocket-Key").ok_or(())?; + let key = parts + .headers + .get("Sec-WebSocket-Key") + .ok_or(hyper::StatusCode::BAD_REQUEST)?; if parts .headers .get("Sec-WebSocket-Version") .map(|v| v.as_bytes()) != Some(b"13") { - return Err(()); + return Err(hyper::StatusCode::BAD_REQUEST); } let on_upgrade = parts .extensions .remove::() - .unwrap(); + .ok_or(hyper::StatusCode::BAD_REQUEST)?; Ok(Self { on_upgrade, key: sec_websocket_protocol(key.as_bytes()),