Skip to content

Commit

Permalink
switch to socket2
Browse files Browse the repository at this point in the history
net2 has been deprecated for some time now

Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
  • Loading branch information
Keruspe authored and FlorentinDUBOIS committed Jul 13, 2022
1 parent 57b07a4 commit 64715c7
Show file tree
Hide file tree
Showing 8 changed files with 34 additions and 54 deletions.
51 changes: 17 additions & 34 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ include = [
rand = "^0.8"
url = "^2.1"
log = "^0.4"
net2 = "^0.2"
socket2 ={ version = "^0.4", features = [ "all" ] }
time = "^0.3"
mio = { version = "^0.7", features = [ "os-poll", "os-ext", "net" ] }
libc = "^0.2"
Expand Down
2 changes: 1 addition & 1 deletion lib/src/http.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1407,7 +1407,7 @@ impl Listener {
}

let mut listener = tcp_listener.or_else(|| {
server_bind(&self.config.address)
server_bind(self.config.address)
.map_err(|e| {
error!(
"could not create listener {:?}: {:?}",
Expand Down
2 changes: 1 addition & 1 deletion lib/src/https_openssl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1589,7 +1589,7 @@ impl Listener {
}

let mut listener = tcp_listener.or_else(|| {
server_bind(&self.config.address)
server_bind(self.config.address)
.map_err(|e| {
error!(
"could not create listener {:?}: {:?}",
Expand Down
2 changes: 1 addition & 1 deletion lib/src/https_rustls/configuration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ impl Listener {
}

let mut listener = tcp_listener.or_else(|| {
server_bind(&self.config.address)
server_bind(self.config.address)
.map_err(|e| {
error!(
"could not create listener {:?}: {:?}",
Expand Down
2 changes: 1 addition & 1 deletion lib/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -153,14 +153,14 @@ extern crate hdrhistogram;
extern crate libc;
extern crate log;
extern crate mio;
extern crate net2;
#[cfg(feature = "use-openssl")]
extern crate openssl;
extern crate pool as pool_crate;
extern crate rand;
extern crate rustls;
extern crate rusty_ulid;
extern crate slab;
extern crate socket2;
extern crate time;
extern crate url;
#[macro_use]
Expand Down
25 changes: 11 additions & 14 deletions lib/src/socket.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
use mio::net::{TcpListener, TcpStream};
use net2::unix::UnixTcpBuilderExt;
use net2::TcpBuilder;
#[cfg(feature = "use-openssl")]
use openssl::ssl::{ErrorCode, SslStream, SslVersion};
use rustls::{ProtocolVersion, ServerSession, Session};
use socket2::{Domain, Protocol, Socket, Type};
use std::io::{self, ErrorKind, Read, Write};
use std::net::SocketAddr;

Expand Down Expand Up @@ -444,27 +443,25 @@ impl SocketHandler for FrontRustls {
}
}

pub fn server_bind(addr: &SocketAddr) -> io::Result<TcpListener> {
let sock = match *addr {
SocketAddr::V4(..) => TcpBuilder::new_v4()?,
SocketAddr::V6(..) => TcpBuilder::new_v6()?,
};
pub fn server_bind(addr: SocketAddr) -> io::Result<TcpListener> {
let sock = Socket::new(Domain::for_address(addr), Type::STREAM, Some(Protocol::TCP))?;

// set so_reuseaddr, but only on unix (mirrors what libstd does)
if cfg!(unix) {
sock.reuse_address(true)?;
sock.set_reuse_address(true)?;
}

sock.reuse_port(true)?;
sock.set_reuse_port(true)?;

// bind the socket
sock.bind(addr)?;
let addr = addr.into();
sock.bind(&addr)?;

sock.set_nonblocking(true)?;

// listen
// FIXME: make the backlog configurable?
let listener = sock.listen(1024)?;

listener.set_nonblocking(true)?;
sock.listen(1024)?;

Ok(TcpListener::from_std(listener))
Ok(TcpListener::from_std(sock.into()))
}
2 changes: 1 addition & 1 deletion lib/src/tcp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1060,7 +1060,7 @@ impl Listener {
}

let mut listener = tcp_listener.or_else(|| {
server_bind(&self.config.address)
server_bind(self.config.address)
.map_err(|e| {
error!(
"could not create listener {:?}: {:?}",
Expand Down

0 comments on commit 64715c7

Please sign in to comment.