From 9b5400aa27324a72677e4bcebbd81f9a8b99c9ad Mon Sep 17 00:00:00 2001 From: fakeshadow <24548779@qq.com> Date: Mon, 19 Oct 2020 13:37:31 +0800 Subject: [PATCH] fix actix-server build on windows --- actix-server/Cargo.toml | 5 +++-- actix-server/src/accept.rs | 1 - actix-server/src/builder.rs | 3 ++- actix-server/src/config.rs | 4 ++-- actix-server/src/service.rs | 8 ++++---- actix-server/src/signals.rs | 4 ++-- actix-server/src/socket.rs | 22 ++++++++++------------ actix-server/src/worker.rs | 3 ++- 8 files changed, 25 insertions(+), 25 deletions(-) diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 4e24ce2c..cf5e87eb 100644 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -27,7 +27,7 @@ actix-utils = "2.0.0" concurrent-queue = "1.2.2" futures-channel = { version = "0.3.4", default-features = false } -futures-util = { version = "0.3.4", default-features = false, features = ["sink"] } +futures-util = { version = "0.3.4", default-features = false } log = "0.4" mio = { version = "0.7.3", features = [ "os-poll", "tcp", "uds"] } num_cpus = "1.13" @@ -35,7 +35,8 @@ slab = "0.4" socket2 = "0.3" [dev-dependencies] +actix-testing = "1.0.0" bytes = "0.5" env_logger = "0.7" -actix-testing = "1.0.0" +futures-util = { version = "0.3.4", default-features = false, features = ["sink"] } tokio = { version = "0.3.0", features = ["full"] } diff --git a/actix-server/src/accept.rs b/actix-server/src/accept.rs index a78e3ea6..efe54a8a 100644 --- a/actix-server/src/accept.rs +++ b/actix-server/src/accept.rs @@ -1,5 +1,4 @@ use std::time::Duration; - use std::{io, thread}; use actix_rt::time::{sleep_until, Instant}; diff --git a/actix-server/src/builder.rs b/actix-server/src/builder.rs index e51ed8f7..d01eff44 100644 --- a/actix-server/src/builder.rs +++ b/actix-server/src/builder.rs @@ -1,3 +1,4 @@ +use std::future::Future; use std::pin::Pin; use std::task::{Context, Poll}; use std::time::Duration; @@ -10,7 +11,7 @@ use futures_channel::mpsc::{unbounded, UnboundedReceiver}; use futures_channel::oneshot; use futures_util::future::ready; use futures_util::stream::FuturesUnordered; -use futures_util::{future::Future, ready, stream::Stream, FutureExt, StreamExt}; +use futures_util::{ready, stream::Stream, FutureExt, StreamExt}; use log::{error, info}; use socket2::{Domain, Protocol, Socket, Type}; diff --git a/actix-server/src/config.rs b/actix-server/src/config.rs index fda1ade9..e409fd7a 100644 --- a/actix-server/src/config.rs +++ b/actix-server/src/config.rs @@ -4,7 +4,7 @@ use std::{fmt, io, net}; use actix_rt::net::TcpStream; use actix_service as actix; use actix_utils::counter::CounterGuard; -use futures_util::future::{ok, Future, FutureExt, LocalBoxFuture}; +use futures_util::future::{ready, Future, FutureExt, LocalBoxFuture}; use log::error; use super::builder::bind_addr; @@ -145,7 +145,7 @@ impl InternalServiceFactory for ConfiguredService { Box::new(StreamService::new(actix::fn_service( move |_: TcpStream| { error!("Service {:?} is not configured", name); - ok::<_, ()>(()) + ready::>(Ok(())) }, ))), )); diff --git a/actix-server/src/service.rs b/actix-server/src/service.rs index 3869d4d4..46d76761 100644 --- a/actix-server/src/service.rs +++ b/actix-server/src/service.rs @@ -6,7 +6,7 @@ use std::time::Duration; use actix_rt::spawn; use actix_service::{self as actix, Service, ServiceFactory as ActixServiceFactory}; use actix_utils::counter::CounterGuard; -use futures_util::future::{err, ok, LocalBoxFuture, Ready}; +use futures_util::future::{ready, LocalBoxFuture, Ready}; use futures_util::{FutureExt, TryFutureExt}; use log::error; @@ -87,12 +87,12 @@ where let _ = f.await; drop(guard); }); - ok(()) + ready(Ok(())) } else { - err(()) + ready(Err(())) } } - _ => ok(()), + _ => ready(Ok(())), } } } diff --git a/actix-server/src/signals.rs b/actix-server/src/signals.rs index a2e9cf7f..622b4efb 100644 --- a/actix-server/src/signals.rs +++ b/actix-server/src/signals.rs @@ -4,7 +4,6 @@ use std::pin::Pin; use std::task::{Context, Poll}; use futures_util::future::lazy; -use futures_util::stream::Stream; use crate::server::Server; @@ -43,6 +42,7 @@ impl Signals { #[cfg(unix)] { use actix_rt::signal::unix; + use futures_util::stream::Stream; let mut streams = Vec::new(); @@ -82,7 +82,7 @@ impl Future for Signals { self.srv.signal(Signal::Int); Poll::Ready(()) } - Poll::Pending => return Poll::Pending, + Poll::Pending => Poll::Pending, } #[cfg(unix)] { diff --git a/actix-server/src/socket.rs b/actix-server/src/socket.rs index 40850aa1..69974b37 100644 --- a/actix-server/src/socket.rs +++ b/actix-server/src/socket.rs @@ -6,19 +6,20 @@ use std::os::unix::{ io::{FromRawFd, IntoRawFd}, net::{SocketAddr as StdUdsSocketAddr, UnixListener as StdUnixListener}, }; - #[cfg(windows)] use std::os::windows::io::{FromRawSocket, IntoRawSocket}; -use mio::event::Source; -use mio::net::{ - SocketAddr as MioSocketAddr, TcpListener as MioTcpListener, TcpStream as MioTcpStream, - UnixListener as MioUnixListener, UnixStream as MioUnixStream, -}; -use mio::{Interest, Registry, Token}; - use actix_codec::{AsyncRead, AsyncWrite}; -use actix_rt::net::{TcpStream, UnixStream}; +use actix_rt::net::TcpStream; +#[cfg(unix)] +use actix_rt::net::UnixStream; +use mio::event::Source; +#[cfg(unix)] +use mio::net::{ + SocketAddr as MioSocketAddr, UnixListener as MioUnixListener, UnixStream as MioUnixStream, +}; +use mio::net::{TcpListener as MioTcpListener, TcpStream as MioTcpStream}; +use mio::{Interest, Registry, Token}; /// socket module contains a unified wrapper for Tcp/Uds listener/SocketAddr/Stream and necessary /// trait impl for registering the listener to mio::Poll and convert stream to @@ -203,9 +204,6 @@ impl FromStream for TcpStream { let raw = IntoRawSocket::into_raw_socket(mio); TcpStream::from_std(unsafe { FromRawSocket::from_raw_socket(raw) }) } - MioStream::Uds(_) => { - panic!("Should not happen, bug in server impl"); - } } } } diff --git a/actix-server/src/worker.rs b/actix-server/src/worker.rs index c879ca30..e98c1016 100644 --- a/actix-server/src/worker.rs +++ b/actix-server/src/worker.rs @@ -1,3 +1,4 @@ +use std::future::Future; use std::pin::Pin; use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering}; use std::sync::Arc; @@ -10,7 +11,7 @@ use actix_utils::counter::Counter; use futures_channel::mpsc::{unbounded, UnboundedReceiver, UnboundedSender}; use futures_channel::oneshot; use futures_util::future::{join_all, LocalBoxFuture, MapOk}; -use futures_util::{future::Future, stream::Stream, FutureExt, TryFutureExt}; +use futures_util::{stream::Stream, FutureExt, TryFutureExt}; use log::{error, info, trace}; use crate::service::{BoxedServerService, InternalServiceFactory, ServerMessage};