2
2
3
3
#![ unstable( feature = "unix_socket_ancillary_data" , issue = "76915" ) ]
4
4
5
+ use crate :: ffi:: CStr ;
5
6
use crate :: io;
6
7
use crate :: os:: unix:: net;
7
8
use crate :: sealed:: Sealed ;
@@ -40,6 +41,15 @@ pub trait UnixSocketExt: Sealed {
40
41
/// ```
41
42
#[ unstable( feature = "unix_socket_ancillary_data" , issue = "76915" ) ]
42
43
fn set_local_creds_persistent ( & self , local_creds_persistent : bool ) -> io:: Result < ( ) > ;
44
+
45
+ /// Get a filter name if one had been set previously on the socket.
46
+ #[ unstable( feature = "acceptfilter" , issue = "121891" ) ]
47
+ fn acceptfilter ( & self ) -> io:: Result < & CStr > ;
48
+
49
+ /// Set or disable a filter on the socket to filter incoming connections
50
+ /// to defer it before accept(2)
51
+ #[ unstable( feature = "acceptfilter" , issue = "121891" ) ]
52
+ fn set_acceptfilter ( & self , name : & CStr ) -> io:: Result < ( ) > ;
43
53
}
44
54
45
55
#[ unstable( feature = "unix_socket_ancillary_data" , issue = "76915" ) ]
@@ -51,6 +61,14 @@ impl UnixSocketExt for net::UnixDatagram {
51
61
fn set_local_creds_persistent ( & self , local_creds_persistent : bool ) -> io:: Result < ( ) > {
52
62
self . as_inner ( ) . set_local_creds_persistent ( local_creds_persistent)
53
63
}
64
+
65
+ fn acceptfilter ( & self ) -> io:: Result < & CStr > {
66
+ self . as_inner ( ) . acceptfilter ( )
67
+ }
68
+
69
+ fn set_acceptfilter ( & self , name : & CStr ) -> io:: Result < ( ) > {
70
+ self . as_inner ( ) . set_acceptfilter ( name)
71
+ }
54
72
}
55
73
56
74
#[ unstable( feature = "unix_socket_ancillary_data" , issue = "76915" ) ]
@@ -62,4 +80,12 @@ impl UnixSocketExt for net::UnixStream {
62
80
fn set_local_creds_persistent ( & self , local_creds_persistent : bool ) -> io:: Result < ( ) > {
63
81
self . as_inner ( ) . set_local_creds_persistent ( local_creds_persistent)
64
82
}
83
+
84
+ fn acceptfilter ( & self ) -> io:: Result < & CStr > {
85
+ self . as_inner ( ) . acceptfilter ( )
86
+ }
87
+
88
+ fn set_acceptfilter ( & self , name : & CStr ) -> io:: Result < ( ) > {
89
+ self . as_inner ( ) . set_acceptfilter ( name)
90
+ }
65
91
}
0 commit comments