1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! Thin wrapper around POSIX sockets.
//!
//! The standard library sockets are good for dealing with TCP, UDP and Unix streaming and datagram sockets.
//! However, for other sockets, you will get no help from the standard library.
//!
//! Additionally, the standard library sockets don't always expose all underlying features of the sockets.
//! For example, you can not send file descriptors over the standard library sockets without resorting to `libc`.
//!
//! This library intends to expose the POSIX socket API to Rust without cutting features.
//! It is currently still a work in progress.
pub use *;
pub use *;
pub type UnixSocket = ;
pub type Inet4Socket = ;
pub type Inet6Socket = ;
/// Disable SIGPIPE for the current process.
///
/// Writing to a closed socket may cause a SIGPIPE to be sent to the process (depending on the socket type).
/// On most platforms this is prevented, either by using the `MSG_NOSIGNAL` flag when writing
/// or by setting the `SO_NOSIGPIPE` socket option.
///
/// However, if a platform does not support `MSG_NOSIGNAL` or `SO_NOGSISPIPE`,
/// the signal needs to be handled or the process will be terminated by the kernel.
/// Calling [`disable_sigpipe()`] make sure the signal is ignored without terminating the process.