From d62d6e68e003ef97f051e304c37bb2310e76fd3e Mon Sep 17 00:00:00 2001 From: Nikolay Kim <fafhrd91@gmail.com> Date: Wed, 28 Feb 2018 14:16:55 -0800 Subject: [PATCH] use new version of http crate --- Cargo.toml | 2 +- src/ws/client.rs | 9 ++++----- src/ws/mod.rs | 23 +++++++++-------------- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 0780053d..08587830 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,7 +42,7 @@ brotli2 = "^0.3.2" failure = "0.1.1" flate2 = "1.0" h2 = "0.1" -http = "^0.1.2" +http = "^0.1.5" httparse = "1.2" http-range = "0.1" libc = "0.2" diff --git a/src/ws/client.rs b/src/ws/client.rs index 587d60a6..e160016b 100644 --- a/src/ws/client.rs +++ b/src/ws/client.rs @@ -197,11 +197,11 @@ impl WsClient { self.request.upgrade(); self.request.set_header(header::UPGRADE, "websocket"); self.request.set_header(header::CONNECTION, "upgrade"); - self.request.set_header("SEC-WEBSOCKET-VERSION", "13"); + self.request.set_header(header::SEC_WEBSOCKET_VERSION, "13"); self.request.with_connector(self.conn.clone()); if let Some(protocols) = self.protocols.take() { - self.request.set_header("SEC-WEBSOCKET-PROTOCOL", protocols.as_str()); + self.request.set_header(header::SEC_WEBSOCKET_PROTOCOL, protocols.as_str()); } let request = match self.request.finish() { Ok(req) => req, @@ -249,7 +249,7 @@ impl WsClientHandshake { let key = base64::encode(&sec_key); request.headers_mut().insert( - HeaderName::try_from("SEC-WEBSOCKET-KEY").unwrap(), + header::SEC_WEBSOCKET_KEY, HeaderValue::try_from(key.as_str()).unwrap()); let (tx, rx) = unbounded(); @@ -328,8 +328,7 @@ impl Future for WsClientHandshake { return Err(WsClientError::MissingConnectionHeader) } - if let Some(key) = resp.headers().get( - HeaderName::try_from("SEC-WEBSOCKET-ACCEPT").unwrap()) + if let Some(key) = resp.headers().get(header::SEC_WEBSOCKET_ACCEPT) { // field is constructed by concatenating /key/ // with the string "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" (RFC 6455) diff --git a/src/ws/mod.rs b/src/ws/mod.rs index 90b2558b..8cd4d920 100644 --- a/src/ws/mod.rs +++ b/src/ws/mod.rs @@ -70,11 +70,6 @@ pub use self::context::WebsocketContext; pub use self::client::{WsClient, WsClientError, WsClientReader, WsClientWriter, WsClientHandshake}; -const SEC_WEBSOCKET_ACCEPT: &str = "SEC-WEBSOCKET-ACCEPT"; -const SEC_WEBSOCKET_KEY: &str = "SEC-WEBSOCKET-KEY"; -const SEC_WEBSOCKET_VERSION: &str = "SEC-WEBSOCKET-VERSION"; -// const SEC_WEBSOCKET_PROTOCOL: &'static str = "SEC-WEBSOCKET-PROTOCOL"; - /// Websocket errors #[derive(Fail, Debug)] @@ -222,11 +217,11 @@ pub fn handshake<S>(req: &HttpRequest<S>) -> Result<HttpResponseBuilder, WsHands } // check supported version - if !req.headers().contains_key(SEC_WEBSOCKET_VERSION) { + if !req.headers().contains_key(header::SEC_WEBSOCKET_VERSION) { return Err(WsHandshakeError::NoVersionHeader) } let supported_ver = { - if let Some(hdr) = req.headers().get(SEC_WEBSOCKET_VERSION) { + if let Some(hdr) = req.headers().get(header::SEC_WEBSOCKET_VERSION) { hdr == "13" || hdr == "8" || hdr == "7" } else { false @@ -237,11 +232,11 @@ pub fn handshake<S>(req: &HttpRequest<S>) -> Result<HttpResponseBuilder, WsHands } // check client handshake for validity - if !req.headers().contains_key(SEC_WEBSOCKET_KEY) { + if !req.headers().contains_key(header::SEC_WEBSOCKET_KEY) { return Err(WsHandshakeError::BadWebsocketKey) } let key = { - let key = req.headers().get(SEC_WEBSOCKET_KEY).unwrap(); + let key = req.headers().get(header::SEC_WEBSOCKET_KEY).unwrap(); hash_key(key.as_ref()) }; @@ -249,7 +244,7 @@ pub fn handshake<S>(req: &HttpRequest<S>) -> Result<HttpResponseBuilder, WsHands .connection_type(ConnectionType::Upgrade) .header(header::UPGRADE, "websocket") .header(header::TRANSFER_ENCODING, "chunked") - .header(SEC_WEBSOCKET_ACCEPT, key.as_str()) + .header(header::SEC_WEBSOCKET_ACCEPT, key.as_str()) .take()) } @@ -385,7 +380,7 @@ mod tests { header::HeaderValue::from_static("websocket")); headers.insert(header::CONNECTION, header::HeaderValue::from_static("upgrade")); - headers.insert(SEC_WEBSOCKET_VERSION, + headers.insert(header::SEC_WEBSOCKET_VERSION, header::HeaderValue::from_static("5")); let req = HttpRequest::new(Method::GET, Uri::from_str("/").unwrap(), Version::HTTP_11, headers, None); @@ -396,7 +391,7 @@ mod tests { header::HeaderValue::from_static("websocket")); headers.insert(header::CONNECTION, header::HeaderValue::from_static("upgrade")); - headers.insert(SEC_WEBSOCKET_VERSION, + headers.insert(header::SEC_WEBSOCKET_VERSION, header::HeaderValue::from_static("13")); let req = HttpRequest::new(Method::GET, Uri::from_str("/").unwrap(), Version::HTTP_11, headers, None); @@ -407,9 +402,9 @@ mod tests { header::HeaderValue::from_static("websocket")); headers.insert(header::CONNECTION, header::HeaderValue::from_static("upgrade")); - headers.insert(SEC_WEBSOCKET_VERSION, + headers.insert(header::SEC_WEBSOCKET_VERSION, header::HeaderValue::from_static("13")); - headers.insert(SEC_WEBSOCKET_KEY, + headers.insert(header::SEC_WEBSOCKET_KEY, header::HeaderValue::from_static("13")); let req = HttpRequest::new(Method::GET, Uri::from_str("/").unwrap(), Version::HTTP_11, headers, None);