@@ -121,9 +121,9 @@ impl Socket {
121
121
///
122
122
/// On Unix-like systems, the close-on-exec flag is set on the new socket.
123
123
/// Additionally, on Apple platforms `SOCK_NOSIGPIPE` is set. On Windows,
124
- /// the socket is made non-inheritable.
125
- ///
126
- /// [`Socket::new_raw`] can be used if you don't want these flags to be set.
124
+ /// the socket is made non-inheritable. [`Socket::new_raw`] can be used if
125
+ /// you don't want these flags to be set.
126
+ # [ doc = man_links ! ( socket ( 2 ) ) ]
127
127
pub fn new ( domain : Domain , ty : Type , protocol : Option < Protocol > ) -> io:: Result < Socket > {
128
128
let ty = set_common_type ( ty) ;
129
129
Socket :: new_raw ( domain, ty, protocol) . and_then ( set_common_flags)
@@ -142,8 +142,9 @@ impl Socket {
142
142
///
143
143
/// This function corresponds to `socketpair(2)`.
144
144
///
145
- /// This function sets the same flags as in done for [`Socket::new`],
145
+ /// This function sets the same flags as in done for [`Socket::new`].
146
146
/// [`Socket::pair_raw`] can be used if you don't want to set those flags.
147
+ #[ doc = man_links ! ( unix: socketpair( 2 ) ) ]
147
148
#[ cfg( any( doc, all( feature = "all" , unix) ) ) ]
148
149
#[ cfg_attr( docsrs, doc( cfg( all( feature = "all" , unix) ) ) ) ]
149
150
pub fn pair (
@@ -177,6 +178,7 @@ impl Socket {
177
178
///
178
179
/// This function directly corresponds to the `bind(2)` function on Windows
179
180
/// and Unix.
181
+ #[ doc = man_links ! ( bind( 2 ) ) ]
180
182
pub fn bind ( & self , address : & SockAddr ) -> io:: Result < ( ) > {
181
183
sys:: bind ( self . as_raw ( ) , address)
182
184
}
@@ -188,6 +190,7 @@ impl Socket {
188
190
///
189
191
/// An error will be returned if `listen` or `connect` has already been
190
192
/// called on this builder.
193
+ #[ doc = man_links ! ( connect( 2 ) ) ]
191
194
///
192
195
/// # Notes
193
196
///
@@ -242,6 +245,7 @@ impl Socket {
242
245
///
243
246
/// An error will be returned if `listen` or `connect` has already been
244
247
/// called on this builder.
248
+ #[ doc = man_links ! ( listen( 2 ) ) ]
245
249
pub fn listen ( & self , backlog : c_int ) -> io:: Result < ( ) > {
246
250
sys:: listen ( self . as_raw ( ) , backlog)
247
251
}
@@ -253,6 +257,7 @@ impl Socket {
253
257
///
254
258
/// This function sets the same flags as in done for [`Socket::new`],
255
259
/// [`Socket::accept_raw`] can be used if you don't want to set those flags.
260
+ #[ doc = man_links ! ( accept( 2 ) ) ]
256
261
pub fn accept ( & self ) -> io:: Result < ( Socket , SockAddr ) > {
257
262
// Use `accept4` on platforms that support it.
258
263
#[ cfg( any(
@@ -299,6 +304,10 @@ impl Socket {
299
304
300
305
/// Returns the socket address of the local half of this socket.
301
306
///
307
+ /// This function directly corresponds to the `getsockname(2)` function on
308
+ /// Windows and Unix.
309
+ #[ doc = man_links ! ( getsockname( 2 ) ) ]
310
+ ///
302
311
/// # Notes
303
312
///
304
313
/// Depending on the OS this may return an error if the socket is not
@@ -311,6 +320,10 @@ impl Socket {
311
320
312
321
/// Returns the socket address of the remote peer of this socket.
313
322
///
323
+ /// This function directly corresponds to the `getpeername(2)` function on
324
+ /// Windows and Unix.
325
+ #[ doc = man_links ! ( getpeername( 2 ) ) ]
326
+ ///
314
327
/// # Notes
315
328
///
316
329
/// This returns an error if the socket is not [`connect`ed].
@@ -336,8 +349,7 @@ impl Socket {
336
349
/// On Windows this uses `WSA_FLAG_NO_HANDLE_INHERIT` setting inheriting to
337
350
/// false.
338
351
///
339
- /// On Windows this can **not** be used function cannot be used on a
340
- /// QOS-enabled socket, see
352
+ /// On Windows this function cannot be used on a QOS-enabled socket, see
341
353
/// <https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsaduplicatesocketw>.
342
354
pub fn try_clone ( & self ) -> io:: Result < Socket > {
343
355
sys:: try_clone ( self . as_raw ( ) ) . map ( Socket :: from_raw)
@@ -359,6 +371,7 @@ impl Socket {
359
371
///
360
372
/// This function will cause all pending and future I/O on the specified
361
373
/// portions to return immediately with an appropriate value.
374
+ #[ doc = man_links ! ( shutdown( 2 ) ) ]
362
375
pub fn shutdown ( & self , how : Shutdown ) -> io:: Result < ( ) > {
363
376
sys:: shutdown ( self . as_raw ( ) , how)
364
377
}
@@ -368,6 +381,7 @@ impl Socket {
368
381
///
369
382
/// The [`connect`] method will connect this socket to a remote address.
370
383
/// This method might fail if the socket is not connected.
384
+ #[ doc = man_links ! ( recv( 2 ) ) ]
371
385
///
372
386
/// [`connect`]: Socket::connect
373
387
///
@@ -419,6 +433,7 @@ impl Socket {
419
433
/// In addition to the number of bytes read, this function returns the flags
420
434
/// for the received message. See [`RecvFlags`] for more information about
421
435
/// the returned flags.
436
+ #[ doc = man_links ! ( recvmsg( 2 ) ) ]
422
437
///
423
438
/// [`recv`]: Socket::recv
424
439
/// [`connect`]: Socket::connect
@@ -484,6 +499,7 @@ impl Socket {
484
499
485
500
/// Receives data from the socket. On success, returns the number of bytes
486
501
/// read and the address from whence the data came.
502
+ #[ doc = man_links ! ( recvfrom( 2 ) ) ]
487
503
///
488
504
/// # Safety
489
505
///
@@ -510,6 +526,7 @@ impl Socket {
510
526
/// Receives data from the socket. Returns the amount of bytes read, the
511
527
/// [`RecvFlags`] and the remote address from the data is coming. Unlike
512
528
/// [`recv_from`] this allows passing multiple buffers.
529
+ #[ doc = man_links ! ( recvmsg( 2 ) ) ]
513
530
///
514
531
/// [`recv_from`]: Socket::recv_from
515
532
///
@@ -573,6 +590,7 @@ impl Socket {
573
590
/// been connected.
574
591
///
575
592
/// On success returns the number of bytes that were sent.
593
+ #[ doc = man_links ! ( send( 2 ) ) ]
576
594
pub fn send ( & self , buf : & [ u8 ] ) -> io:: Result < usize > {
577
595
self . send_with_flags ( buf, 0 )
578
596
}
@@ -594,6 +612,7 @@ impl Socket {
594
612
595
613
/// Identical to [`send_vectored`] but allows for specification of arbitrary
596
614
/// flags to the underlying `sendmsg`/`WSASend` call.
615
+ #[ doc = man_links ! ( sendmsg( 2 ) ) ]
597
616
///
598
617
/// [`send_vectored`]: Socket::send_vectored
599
618
#[ cfg( not( target_os = "redox" ) ) ]
@@ -621,6 +640,7 @@ impl Socket {
621
640
/// number of bytes written.
622
641
///
623
642
/// This is typically used on UDP or datagram-oriented sockets.
643
+ #[ doc = man_links ! ( sendto( 2 ) ) ]
624
644
pub fn send_to ( & self , buf : & [ u8 ] , addr : & SockAddr ) -> io:: Result < usize > {
625
645
self . send_to_with_flags ( buf, addr, 0 )
626
646
}
@@ -640,6 +660,7 @@ impl Socket {
640
660
641
661
/// Send data to a peer listening on `addr`. Returns the amount of bytes
642
662
/// written.
663
+ #[ doc = man_links ! ( sendmsg( 2 ) ) ]
643
664
#[ cfg( not( target_os = "redox" ) ) ]
644
665
#[ cfg_attr( docsrs, doc( cfg( not( target_os = "redox" ) ) ) ) ]
645
666
pub fn send_to_vectored ( & self , bufs : & [ IoSlice < ' _ > ] , addr : & SockAddr ) -> io:: Result < usize > {
@@ -737,6 +758,7 @@ pub enum InterfaceIndexOrAddress {
737
758
/// Additional documentation can be found in documentation of the OS.
738
759
/// * Linux: <https://man7.org/linux/man-pages/man7/socket.7.html>
739
760
/// * Windows: <https://docs.microsoft.com/en-us/windows/win32/winsock/sol-socket-socket-options>
761
+ //#[doc = man_links!(setsockopt(2))]
740
762
impl Socket {
741
763
/// Get the value of the `SO_BROADCAST` option for this socket.
742
764
///
0 commit comments