Remove SO_NOSIGPIPE dummy variable on platforms that don't use it.

This commit is contained in:
Markus Reiter 2019-12-18 08:46:00 +01:00
parent 3ed3b8bb7b
commit 58910255aa
2 changed files with 6 additions and 12 deletions

View File

@ -28,14 +28,6 @@
#[cfg(not(target_os = "linux"))] #[cfg(not(target_os = "linux"))]
const SOCK_CLOEXEC: c_int = 0; const SOCK_CLOEXEC: c_int = 0;
// Another conditional constant for name resolution: Macos et iOS use
// SO_NOSIGPIPE as a setsockopt flag to disable SIGPIPE emission on socket.
// Other platforms do otherwise.
#[cfg(target_vendor = "apple")]
use libc::SO_NOSIGPIPE;
#[cfg(not(target_vendor = "apple"))]
const SO_NOSIGPIPE: c_int = 0;
pub struct Socket(FileDesc); pub struct Socket(FileDesc);
pub fn init() {} pub fn init() {}
@ -89,9 +81,12 @@ pub fn new_raw(fam: c_int, ty: c_int) -> io::Result<Socket> {
let fd = FileDesc::new(fd); let fd = FileDesc::new(fd);
fd.set_cloexec()?; fd.set_cloexec()?;
let socket = Socket(fd); let socket = Socket(fd);
if cfg!(target_vendor = "apple") {
setsockopt(&socket, libc::SOL_SOCKET, SO_NOSIGPIPE, 1)?; // macOS and iOS use `SO_NOSIGPIPE` as a `setsockopt`
} // flag to disable `SIGPIPE` emission on socket.
#[cfg(target_vendor = "apple")]
setsockopt(&socket, libc::SOL_SOCKET, libc::SO_NOSIGPIPE, 1)?;
Ok(socket) Ok(socket)
} }
} }

View File

@ -19,7 +19,6 @@
pub type wrlen_t = size_t; pub type wrlen_t = size_t;
const SOCK_CLOEXEC: c_int = 0; const SOCK_CLOEXEC: c_int = 0;
const SO_NOSIGPIPE: c_int = 0;
pub struct Socket(FileDesc); pub struct Socket(FileDesc);