mirror of
https://github.com/fafhrd91/actix-web
synced 2025-06-25 06:39:22 +02:00
update actix-net dependencies
This commit is contained in:
@ -15,7 +15,7 @@ use rand::Rng;
|
||||
use actix_codec::{AsyncRead, AsyncWrite};
|
||||
use actix_http::HttpService;
|
||||
use actix_http_test::TestServer;
|
||||
use actix_service::{fn_service, NewService};
|
||||
use actix_service::{service_fn, NewService};
|
||||
use actix_web::http::{Cookie, Version};
|
||||
use actix_web::middleware::{BodyEncoding, Compress};
|
||||
use actix_web::{http::header, web, App, Error, HttpMessage, HttpRequest, HttpResponse};
|
||||
@ -182,7 +182,7 @@ fn test_connection_reuse() {
|
||||
|
||||
let mut srv = TestServer::new(move || {
|
||||
let num2 = num2.clone();
|
||||
fn_service(move |io| {
|
||||
service_fn(move |io| {
|
||||
num2.fetch_add(1, Ordering::Relaxed);
|
||||
Ok(io)
|
||||
})
|
||||
@ -216,7 +216,7 @@ fn test_connection_reuse_h2() {
|
||||
|
||||
let mut srv = TestServer::new(move || {
|
||||
let num2 = num2.clone();
|
||||
fn_service(move |io| {
|
||||
service_fn(move |io| {
|
||||
num2.fetch_add(1, Ordering::Relaxed);
|
||||
Ok(io)
|
||||
})
|
||||
@ -268,7 +268,7 @@ fn test_connection_force_close() {
|
||||
|
||||
let mut srv = TestServer::new(move || {
|
||||
let num2 = num2.clone();
|
||||
fn_service(move |io| {
|
||||
service_fn(move |io| {
|
||||
num2.fetch_add(1, Ordering::Relaxed);
|
||||
Ok(io)
|
||||
})
|
||||
@ -300,7 +300,7 @@ fn test_connection_server_close() {
|
||||
|
||||
let mut srv = TestServer::new(move || {
|
||||
let num2 = num2.clone();
|
||||
fn_service(move |io| {
|
||||
service_fn(move |io| {
|
||||
num2.fetch_add(1, Ordering::Relaxed);
|
||||
Ok(io)
|
||||
})
|
||||
@ -335,7 +335,7 @@ fn test_connection_wait_queue() {
|
||||
|
||||
let mut srv = TestServer::new(move || {
|
||||
let num2 = num2.clone();
|
||||
fn_service(move |io| {
|
||||
service_fn(move |io| {
|
||||
num2.fetch_add(1, Ordering::Relaxed);
|
||||
Ok(io)
|
||||
})
|
||||
@ -380,7 +380,7 @@ fn test_connection_wait_queue_force_close() {
|
||||
|
||||
let mut srv = TestServer::new(move || {
|
||||
let num2 = num2.clone();
|
||||
fn_service(move |io| {
|
||||
service_fn(move |io| {
|
||||
num2.fetch_add(1, Ordering::Relaxed);
|
||||
Ok(io)
|
||||
})
|
||||
|
@ -1,17 +1,11 @@
|
||||
use std::io;
|
||||
|
||||
use actix_codec::Framed;
|
||||
use actix_http::{body::BodySize, h1, ws, Error, HttpService, Request, Response};
|
||||
use actix_http_test::TestServer;
|
||||
use actix_server::Io;
|
||||
use actix_service::{fn_service, NewService};
|
||||
use actix_utils::framed::IntoFramed;
|
||||
use actix_utils::stream::TakeItem;
|
||||
use bytes::{Bytes, BytesMut};
|
||||
use futures::future::{ok, Either};
|
||||
use futures::future::ok;
|
||||
use futures::{Future, Sink, Stream};
|
||||
use tokio_tcp::TcpStream;
|
||||
|
||||
use actix_http::{body::BodySize, h1, ws, Request, ResponseError, ServiceConfig};
|
||||
|
||||
fn ws_service(req: ws::Frame) -> impl Future<Item = ws::Message, Error = io::Error> {
|
||||
match req {
|
||||
@ -37,52 +31,20 @@ fn ws_service(req: ws::Frame) -> impl Future<Item = ws::Message, Error = io::Err
|
||||
#[test]
|
||||
fn test_simple() {
|
||||
let mut srv = TestServer::new(|| {
|
||||
fn_service(|io: Io<TcpStream>| Ok(io.into_parts().0))
|
||||
.and_then(IntoFramed::new(|| h1::Codec::new(ServiceConfig::default())))
|
||||
.and_then(TakeItem::new().map_err(|_| ()))
|
||||
.and_then(
|
||||
|(req, framed): (Option<h1::Message<Request>>, Framed<_, _>)| {
|
||||
// validate request
|
||||
if let Some(h1::Message::Item(req)) = req {
|
||||
match ws::verify_handshake(req.head()) {
|
||||
Err(e) => {
|
||||
// validation failed
|
||||
let res = e.error_response();
|
||||
Either::A(
|
||||
framed
|
||||
.send(h1::Message::Item((
|
||||
res.drop_body(),
|
||||
BodySize::Empty,
|
||||
)))
|
||||
.map_err(|_| ())
|
||||
.map(|_| ()),
|
||||
)
|
||||
}
|
||||
Ok(_) => {
|
||||
let res = ws::handshake_response(req.head()).finish();
|
||||
Either::B(
|
||||
// send handshake response
|
||||
framed
|
||||
.send(h1::Message::Item((
|
||||
res.drop_body(),
|
||||
BodySize::None,
|
||||
)))
|
||||
.map_err(|_| ())
|
||||
.and_then(|framed| {
|
||||
// start websocket service
|
||||
let framed =
|
||||
framed.into_framed(ws::Codec::new());
|
||||
ws::Transport::with(framed, ws_service)
|
||||
.map_err(|_| ())
|
||||
}),
|
||||
)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
panic!()
|
||||
}
|
||||
},
|
||||
)
|
||||
HttpService::build()
|
||||
.upgrade(|(req, framed): (Request, Framed<_, _>)| {
|
||||
let res = ws::handshake_response(req.head()).finish();
|
||||
// send handshake response
|
||||
framed
|
||||
.send(h1::Message::Item((res.drop_body(), BodySize::None)))
|
||||
.map_err(|e: io::Error| e.into())
|
||||
.and_then(|framed| {
|
||||
// start websocket service
|
||||
let framed = framed.into_framed(ws::Codec::new());
|
||||
ws::Transport::with(framed, ws_service)
|
||||
})
|
||||
})
|
||||
.finish(|_| ok::<_, Error>(Response::NotFound()))
|
||||
});
|
||||
|
||||
// client service
|
||||
|
Reference in New Issue
Block a user