summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-04-12 21:34:25 +0000
committerbors <bors@rust-lang.org>2022-04-12 21:34:25 +0000
commitdff5aca2a10d886b13b66b92b959e769b74a0fb7 (patch)
tree6d71befa5ca4303af1527ba37f6a16aa875cfaef
parent284335c960f4610cafda8c5691ce87e098c4eb74 (diff)
parente7efff4a0a6fb85c4f21bdf13b14e7fe17135544 (diff)
downloadrust-libc-dff5aca2a10d886b13b66b92b959e769b74a0fb7.tar.gz
Auto merge of #2756 - MaxF12:master, r=Amanieu
Added SSM sockops for OSes that have support but were missing from libc Closes #2753
-rw-r--r--src/unix/bsd/apple/mod.rs10
-rw-r--r--src/unix/bsd/freebsdlike/mod.rs10
-rw-r--r--src/unix/solarish/mod.rs10
3 files changed, 30 insertions, 0 deletions
diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs
index 4133c2b504..bd69d8aaaf 100644
--- a/src/unix/bsd/apple/mod.rs
+++ b/src/unix/bsd/apple/mod.rs
@@ -224,6 +224,12 @@ s! {
pub imr_ifindex: ::c_int,
}
+ pub struct ip_mreq_source {
+ pub imr_multiaddr: in_addr,
+ pub imr_sourceaddr: in_addr,
+ pub imr_interface: in_addr,
+ }
+
pub struct aiocb {
pub aio_fildes: ::c_int,
pub aio_offset: ::off_t,
@@ -3542,6 +3548,10 @@ pub const IPV6_PKTINFO: ::c_int = 46;
pub const IPV6_HOPLIMIT: ::c_int = 47;
pub const IPV6_RECVPKTINFO: ::c_int = 61;
pub const IPV6_DONTFRAG: ::c_int = 62;
+pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70;
+pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71;
+pub const IP_BLOCK_SOURCE: ::c_int = 72;
+pub const IP_UNBLOCK_SOURCE: ::c_int = 73;
pub const TCP_NOPUSH: ::c_int = 4;
pub const TCP_NOOPT: ::c_int = 8;
diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs
index b27a48448c..b9d29d8251 100644
--- a/src/unix/bsd/freebsdlike/mod.rs
+++ b/src/unix/bsd/freebsdlike/mod.rs
@@ -96,6 +96,12 @@ s! {
pub imr_ifindex: ::c_int,
}
+ pub struct ip_mreq_source {
+ pub imr_multiaddr: in_addr,
+ pub imr_sourceaddr: in_addr,
+ pub imr_interface: in_addr,
+ }
+
pub struct glob_t {
pub gl_pathc: ::size_t,
pub gl_matchc: ::size_t,
@@ -964,6 +970,10 @@ pub const IPV6_HOPLIMIT: ::c_int = 47;
pub const IPV6_RECVTCLASS: ::c_int = 57;
pub const IPV6_TCLASS: ::c_int = 61;
pub const IPV6_DONTFRAG: ::c_int = 62;
+pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70;
+pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71;
+pub const IP_BLOCK_SOURCE: ::c_int = 72;
+pub const IP_UNBLOCK_SOURCE: ::c_int = 73;
pub const TCP_NOPUSH: ::c_int = 4;
pub const TCP_NOOPT: ::c_int = 8;
diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs
index 9bcbbbeb5b..3ccdb8cab9 100644
--- a/src/unix/solarish/mod.rs
+++ b/src/unix/solarish/mod.rs
@@ -83,6 +83,12 @@ s! {
pub imr_interface: in_addr,
}
+ pub struct ip_mreq_source {
+ pub imr_multiaddr: in_addr,
+ pub imr_sourceaddr: in_addr,
+ pub imr_interface: in_addr,
+ }
+
pub struct ipc_perm {
pub uid: ::uid_t,
pub gid: ::gid_t,
@@ -1764,6 +1770,10 @@ pub const IP_ADD_MEMBERSHIP: ::c_int = 19;
pub const IP_DROP_MEMBERSHIP: ::c_int = 20;
pub const IPV6_JOIN_GROUP: ::c_int = 9;
pub const IPV6_LEAVE_GROUP: ::c_int = 10;
+pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 23;
+pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 24;
+pub const IP_BLOCK_SOURCE: ::c_int = 21;
+pub const IP_UNBLOCK_SOURCE: ::c_int = 22;
// These TCP socket options are common between illumos and Solaris, while higher
// numbers have generally diverged: