mirror of https://github.com/fafhrd91/actix-net
fix actix-server build on windows
This commit is contained in:
parent
869175e1c9
commit
9b5400aa27
|
@ -27,7 +27,7 @@ actix-utils = "2.0.0"
|
||||||
|
|
||||||
concurrent-queue = "1.2.2"
|
concurrent-queue = "1.2.2"
|
||||||
futures-channel = { version = "0.3.4", default-features = false }
|
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"
|
log = "0.4"
|
||||||
mio = { version = "0.7.3", features = [ "os-poll", "tcp", "uds"] }
|
mio = { version = "0.7.3", features = [ "os-poll", "tcp", "uds"] }
|
||||||
num_cpus = "1.13"
|
num_cpus = "1.13"
|
||||||
|
@ -35,7 +35,8 @@ slab = "0.4"
|
||||||
socket2 = "0.3"
|
socket2 = "0.3"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
actix-testing = "1.0.0"
|
||||||
bytes = "0.5"
|
bytes = "0.5"
|
||||||
env_logger = "0.7"
|
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"] }
|
tokio = { version = "0.3.0", features = ["full"] }
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
use std::{io, thread};
|
use std::{io, thread};
|
||||||
|
|
||||||
use actix_rt::time::{sleep_until, Instant};
|
use actix_rt::time::{sleep_until, Instant};
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
use std::future::Future;
|
||||||
use std::pin::Pin;
|
use std::pin::Pin;
|
||||||
use std::task::{Context, Poll};
|
use std::task::{Context, Poll};
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
@ -10,7 +11,7 @@ use futures_channel::mpsc::{unbounded, UnboundedReceiver};
|
||||||
use futures_channel::oneshot;
|
use futures_channel::oneshot;
|
||||||
use futures_util::future::ready;
|
use futures_util::future::ready;
|
||||||
use futures_util::stream::FuturesUnordered;
|
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 log::{error, info};
|
||||||
use socket2::{Domain, Protocol, Socket, Type};
|
use socket2::{Domain, Protocol, Socket, Type};
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ use std::{fmt, io, net};
|
||||||
use actix_rt::net::TcpStream;
|
use actix_rt::net::TcpStream;
|
||||||
use actix_service as actix;
|
use actix_service as actix;
|
||||||
use actix_utils::counter::CounterGuard;
|
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 log::error;
|
||||||
|
|
||||||
use super::builder::bind_addr;
|
use super::builder::bind_addr;
|
||||||
|
@ -145,7 +145,7 @@ impl InternalServiceFactory for ConfiguredService {
|
||||||
Box::new(StreamService::new(actix::fn_service(
|
Box::new(StreamService::new(actix::fn_service(
|
||||||
move |_: TcpStream| {
|
move |_: TcpStream| {
|
||||||
error!("Service {:?} is not configured", name);
|
error!("Service {:?} is not configured", name);
|
||||||
ok::<_, ()>(())
|
ready::<Result<_, ()>>(Ok(()))
|
||||||
},
|
},
|
||||||
))),
|
))),
|
||||||
));
|
));
|
||||||
|
|
|
@ -6,7 +6,7 @@ use std::time::Duration;
|
||||||
use actix_rt::spawn;
|
use actix_rt::spawn;
|
||||||
use actix_service::{self as actix, Service, ServiceFactory as ActixServiceFactory};
|
use actix_service::{self as actix, Service, ServiceFactory as ActixServiceFactory};
|
||||||
use actix_utils::counter::CounterGuard;
|
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 futures_util::{FutureExt, TryFutureExt};
|
||||||
use log::error;
|
use log::error;
|
||||||
|
|
||||||
|
@ -87,12 +87,12 @@ where
|
||||||
let _ = f.await;
|
let _ = f.await;
|
||||||
drop(guard);
|
drop(guard);
|
||||||
});
|
});
|
||||||
ok(())
|
ready(Ok(()))
|
||||||
} else {
|
} else {
|
||||||
err(())
|
ready(Err(()))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => ok(()),
|
_ => ready(Ok(())),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@ use std::pin::Pin;
|
||||||
use std::task::{Context, Poll};
|
use std::task::{Context, Poll};
|
||||||
|
|
||||||
use futures_util::future::lazy;
|
use futures_util::future::lazy;
|
||||||
use futures_util::stream::Stream;
|
|
||||||
|
|
||||||
use crate::server::Server;
|
use crate::server::Server;
|
||||||
|
|
||||||
|
@ -43,6 +42,7 @@ impl Signals {
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
{
|
{
|
||||||
use actix_rt::signal::unix;
|
use actix_rt::signal::unix;
|
||||||
|
use futures_util::stream::Stream;
|
||||||
|
|
||||||
let mut streams = Vec::new();
|
let mut streams = Vec::new();
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ impl Future for Signals {
|
||||||
self.srv.signal(Signal::Int);
|
self.srv.signal(Signal::Int);
|
||||||
Poll::Ready(())
|
Poll::Ready(())
|
||||||
}
|
}
|
||||||
Poll::Pending => return Poll::Pending,
|
Poll::Pending => Poll::Pending,
|
||||||
}
|
}
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
{
|
{
|
||||||
|
|
|
@ -6,19 +6,20 @@ use std::os::unix::{
|
||||||
io::{FromRawFd, IntoRawFd},
|
io::{FromRawFd, IntoRawFd},
|
||||||
net::{SocketAddr as StdUdsSocketAddr, UnixListener as StdUnixListener},
|
net::{SocketAddr as StdUdsSocketAddr, UnixListener as StdUnixListener},
|
||||||
};
|
};
|
||||||
|
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
use std::os::windows::io::{FromRawSocket, IntoRawSocket};
|
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_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
|
/// 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
|
/// 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);
|
let raw = IntoRawSocket::into_raw_socket(mio);
|
||||||
TcpStream::from_std(unsafe { FromRawSocket::from_raw_socket(raw) })
|
TcpStream::from_std(unsafe { FromRawSocket::from_raw_socket(raw) })
|
||||||
}
|
}
|
||||||
MioStream::Uds(_) => {
|
|
||||||
panic!("Should not happen, bug in server impl");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
use std::future::Future;
|
||||||
use std::pin::Pin;
|
use std::pin::Pin;
|
||||||
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
|
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
@ -10,7 +11,7 @@ use actix_utils::counter::Counter;
|
||||||
use futures_channel::mpsc::{unbounded, UnboundedReceiver, UnboundedSender};
|
use futures_channel::mpsc::{unbounded, UnboundedReceiver, UnboundedSender};
|
||||||
use futures_channel::oneshot;
|
use futures_channel::oneshot;
|
||||||
use futures_util::future::{join_all, LocalBoxFuture, MapOk};
|
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 log::{error, info, trace};
|
||||||
|
|
||||||
use crate::service::{BoxedServerService, InternalServiceFactory, ServerMessage};
|
use crate::service::{BoxedServerService, InternalServiceFactory, ServerMessage};
|
||||||
|
|
Loading…
Reference in New Issue