mirror of
https://github.com/fafhrd91/actix-web
synced 2024-11-24 00:21:08 +01:00
Merge pull request #192 from fuchsnj/check_if_close_code_exists
check if close code exists before reading it
This commit is contained in:
commit
805dbea8e7
@ -310,10 +310,14 @@ where
|
|||||||
}
|
}
|
||||||
OpCode::Close => {
|
OpCode::Close => {
|
||||||
self.closed = true;
|
self.closed = true;
|
||||||
let code = NetworkEndian::read_uint(payload.as_ref(), 2) as u16;
|
let close_code = if payload.len() >= 2{
|
||||||
Ok(Async::Ready(Some(Message::Close(CloseCode::from(
|
let raw_code = NetworkEndian::read_uint(payload.as_ref(), 2) as u16;
|
||||||
code,
|
CloseCode::from(raw_code)
|
||||||
)))))
|
}else{
|
||||||
|
CloseCode::Status
|
||||||
|
};
|
||||||
|
|
||||||
|
Ok(Async::Ready(Some(Message::Close(close_code))))
|
||||||
}
|
}
|
||||||
OpCode::Ping => Ok(Async::Ready(Some(Message::Ping(
|
OpCode::Ping => Ok(Async::Ready(Some(Message::Ping(
|
||||||
String::from_utf8_lossy(payload.as_ref()).into(),
|
String::from_utf8_lossy(payload.as_ref()).into(),
|
||||||
|
@ -60,6 +60,16 @@ fn test_simple() {
|
|||||||
assert_eq!(item, Some(ws::Message::Close(ws::CloseCode::Normal)));
|
assert_eq!(item, Some(ws::Message::Close(ws::CloseCode::Normal)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_empty_close_code() {
|
||||||
|
let mut srv = test::TestServer::new(|app| app.handler(|req| ws::start(req, Ws)));
|
||||||
|
let (reader, mut writer) = srv.ws().unwrap();
|
||||||
|
|
||||||
|
writer.close(ws::CloseCode::Empty, "");
|
||||||
|
let (item, _) = srv.execute(reader.into_future()).unwrap();
|
||||||
|
assert_eq!(item, Some(ws::Message::Close(ws::CloseCode::Status)));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_large_text() {
|
fn test_large_text() {
|
||||||
let data = rand::thread_rng()
|
let data = rand::thread_rng()
|
||||||
|
Loading…
Reference in New Issue
Block a user