Skip to content

Commit dff5aca

Browse files
committed
Auto merge of #2756 - MaxF12:master, r=Amanieu
Added SSM sockops for OSes that have support but were missing from libc Closes #2753
2 parents 284335c + e7efff4 commit dff5aca

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

src/unix/bsd/apple/mod.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,12 @@ s! {
224224
pub imr_ifindex: ::c_int,
225225
}
226226

227+
pub struct ip_mreq_source {
228+
pub imr_multiaddr: in_addr,
229+
pub imr_sourceaddr: in_addr,
230+
pub imr_interface: in_addr,
231+
}
232+
227233
pub struct aiocb {
228234
pub aio_fildes: ::c_int,
229235
pub aio_offset: ::off_t,
@@ -3542,6 +3548,10 @@ pub const IPV6_PKTINFO: ::c_int = 46;
35423548
pub const IPV6_HOPLIMIT: ::c_int = 47;
35433549
pub const IPV6_RECVPKTINFO: ::c_int = 61;
35443550
pub const IPV6_DONTFRAG: ::c_int = 62;
3551+
pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70;
3552+
pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71;
3553+
pub const IP_BLOCK_SOURCE: ::c_int = 72;
3554+
pub const IP_UNBLOCK_SOURCE: ::c_int = 73;
35453555

35463556
pub const TCP_NOPUSH: ::c_int = 4;
35473557
pub const TCP_NOOPT: ::c_int = 8;

src/unix/bsd/freebsdlike/mod.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@ s! {
9696
pub imr_ifindex: ::c_int,
9797
}
9898

99+
pub struct ip_mreq_source {
100+
pub imr_multiaddr: in_addr,
101+
pub imr_sourceaddr: in_addr,
102+
pub imr_interface: in_addr,
103+
}
104+
99105
pub struct glob_t {
100106
pub gl_pathc: ::size_t,
101107
pub gl_matchc: ::size_t,
@@ -964,6 +970,10 @@ pub const IPV6_HOPLIMIT: ::c_int = 47;
964970
pub const IPV6_RECVTCLASS: ::c_int = 57;
965971
pub const IPV6_TCLASS: ::c_int = 61;
966972
pub const IPV6_DONTFRAG: ::c_int = 62;
973+
pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 70;
974+
pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 71;
975+
pub const IP_BLOCK_SOURCE: ::c_int = 72;
976+
pub const IP_UNBLOCK_SOURCE: ::c_int = 73;
967977

968978
pub const TCP_NOPUSH: ::c_int = 4;
969979
pub const TCP_NOOPT: ::c_int = 8;

src/unix/solarish/mod.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ s! {
8383
pub imr_interface: in_addr,
8484
}
8585

86+
pub struct ip_mreq_source {
87+
pub imr_multiaddr: in_addr,
88+
pub imr_sourceaddr: in_addr,
89+
pub imr_interface: in_addr,
90+
}
91+
8692
pub struct ipc_perm {
8793
pub uid: ::uid_t,
8894
pub gid: ::gid_t,
@@ -1764,6 +1770,10 @@ pub const IP_ADD_MEMBERSHIP: ::c_int = 19;
17641770
pub const IP_DROP_MEMBERSHIP: ::c_int = 20;
17651771
pub const IPV6_JOIN_GROUP: ::c_int = 9;
17661772
pub const IPV6_LEAVE_GROUP: ::c_int = 10;
1773+
pub const IP_ADD_SOURCE_MEMBERSHIP: ::c_int = 23;
1774+
pub const IP_DROP_SOURCE_MEMBERSHIP: ::c_int = 24;
1775+
pub const IP_BLOCK_SOURCE: ::c_int = 21;
1776+
pub const IP_UNBLOCK_SOURCE: ::c_int = 22;
17671777

17681778
// These TCP socket options are common between illumos and Solaris, while higher
17691779
// numbers have generally diverged:

0 commit comments

Comments
 (0)