@@ -196,3 +196,39 @@ fn test_ttl_opts() {
196
196
setsockopt ( fd6, sockopt:: Ipv6Ttl , & 1 )
197
197
. expect ( "setting ipv6ttl on an inet6 socket should succeed" ) ;
198
198
}
199
+
200
+ #[ test]
201
+ #[ cfg( any( target_os = "ios" , target_os = "macos" ) ) ]
202
+ fn test_dontfrag_opts ( ) {
203
+ let fd4 = socket ( AddressFamily :: Inet , SockType :: Stream , SockFlag :: empty ( ) , SockProtocol :: Tcp ) . unwrap ( ) ;
204
+ setsockopt ( fd4, sockopt:: IpDontFrag , & true )
205
+ . expect ( "setting IP_DONTFRAG on an inet stream socket should succeed" ) ;
206
+ setsockopt ( fd4, sockopt:: IpDontFrag , & false )
207
+ . expect ( "unsetting IP_DONTFRAG on an inet stream socket should succeed" ) ;
208
+ let fd4d = socket ( AddressFamily :: Inet , SockType :: Datagram , SockFlag :: empty ( ) , None ) . unwrap ( ) ;
209
+ setsockopt ( fd4d, sockopt:: IpDontFrag , & true )
210
+ . expect ( "setting IP_DONTFRAG on an inet datagram socket should succeed" ) ;
211
+ setsockopt ( fd4d, sockopt:: IpDontFrag , & false )
212
+ . expect ( "unsetting IP_DONTFRAG on an inet datagram socket should succeed" ) ;
213
+ }
214
+
215
+ #[ test]
216
+ #[ cfg( any(
217
+ target_os = "android" ,
218
+ target_os = "ios" ,
219
+ target_os = "linux" ,
220
+ target_os = "macos" ,
221
+ )
222
+ ) ]
223
+ fn test_v6dontfrag_opts ( ) {
224
+ let fd6 = socket ( AddressFamily :: Inet6 , SockType :: Stream , SockFlag :: empty ( ) , SockProtocol :: Tcp ) . unwrap ( ) ;
225
+ setsockopt ( fd6, sockopt:: Ipv6DontFrag , & true )
226
+ . expect ( "setting IPV6_DONTFRAG on an inet6 stream socket should succeed" ) ;
227
+ setsockopt ( fd6, sockopt:: Ipv6DontFrag , & false )
228
+ . expect ( "unsetting IPV6_DONTFRAG on an inet6 stream socket should succeed" ) ;
229
+ let fd6d = socket ( AddressFamily :: Inet6 , SockType :: Datagram , SockFlag :: empty ( ) , None ) . unwrap ( ) ;
230
+ setsockopt ( fd6d, sockopt:: Ipv6DontFrag , & true )
231
+ . expect ( "setting IPV6_DONTFRAG on an inet6 datagram socket should succeed" ) ;
232
+ setsockopt ( fd6d, sockopt:: Ipv6DontFrag , & false )
233
+ . expect ( "unsetting IPV6_DONTFRAG on an inet6 datagram socket should succeed" ) ;
234
+ }
0 commit comments