summaryrefslogtreecommitdiffstats
path: root/lib/libc/sys/shutdown.2
diff options
context:
space:
mode:
authorbms <bms@FreeBSD.org>2007-03-05 12:39:53 +0000
committerbms <bms@FreeBSD.org>2007-03-05 12:39:53 +0000
commitd623026ad10fd369470ba71bbd2b8891ec0b9ea4 (patch)
treeca7f848fbc7f7c1970d0b9a07b9eeb6f2dd51b80 /lib/libc/sys/shutdown.2
parent9c67960d12613ef9ec0631c06d10b562739a0261 (diff)
downloadFreeBSD-src-d623026ad10fd369470ba71bbd2b8891ec0b9ea4.zip
FreeBSD-src-d623026ad10fd369470ba71bbd2b8891ec0b9ea4.tar.gz
Update shutdown() manual page to reflect actual behaviour of code.
Add IMPLEMENTATION NOTES section explaining in detail the effect this system call has in common use cases involving PF_INET and PF_INET6 sockets. PR: kern/84761 MFC after: 2 days
Diffstat (limited to 'lib/libc/sys/shutdown.2')
-rw-r--r--lib/libc/sys/shutdown.292
1 files changed, 82 insertions, 10 deletions
diff --git a/lib/libc/sys/shutdown.2 b/lib/libc/sys/shutdown.2
index 58a7438..6c01dab 100644
--- a/lib/libc/sys/shutdown.2
+++ b/lib/libc/sys/shutdown.2
@@ -28,12 +28,12 @@
.\" @(#)shutdown.2 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
-.Dd February 27, 2001
+.Dd March 5, 2007
.Dt SHUTDOWN 2
.Os
.Sh NAME
.Nm shutdown
-.Nd shut down part of a full-duplex connection
+.Nd disable sends and/or receives on a socket
.Sh LIBRARY
.Lb libc
.Sh SYNOPSIS
@@ -44,22 +44,72 @@
.Sh DESCRIPTION
The
.Fn shutdown
-system call causes all or part of a full-duplex connection on
-the socket associated with the file descriptor
-.Fa s
-to be shut down.
+system call disables sends or receives on a socket.
The
.Fa how
argument specifies the type of shutdown.
Possible values are:
.Bl -tag -width SHUT_RDWR
.It Dv SHUT_RD
-further receives will be disallowed.
+Further receives will be disallowed.
.It Dv SHUT_WR
-further sends will be disallowed.
+Further sends will be disallowed.
+This may cause actions specific to the protocol family of the socket
+.Fa s
+to happen; see
+.Sx IMPLEMENTATION NOTES .
.It Dv SHUT_RDWR
-further sends and receives will be disallowed.
+Further sends and receives will be disallowed.
+Implies SHUT_WR.
+.El
+.Pp
+If the file descriptor
+.Fa s
+is associated with a
+.Dv SOCK_STREAM
+socket, all or part of the full-duplex connection will be shut down.
+.\"
+.Sh IMPLEMENTATION NOTES
+.Pp
+The following protocol specific actions apply to the use of
+.Dv SHUT_WR
+(and potentially also
+.Dv SHUT_RDWR ) ,
+based on the properties of the socket associated with the file descriptor
+.Fa s .
+.Bl -column ".Sy PF_INET6" ".Sy SOCK_STREAM" ".Sy IPPROTO_SCTP" \
+ -width "xxxxxxxxxxxxxxxx"
+.It Li Sy Domain Ta Sy Type Ta Sy Protocol Ta Sy Return value and action
+.It Li PF_INET Ta SOCK_DGRAM Ta IPPROTO_SCTP Ta
+Return -1.
+.Va errno
+will be set to
+.Er EOPNOTSUPP .
+.It Li PF_INET Ta SOCK_DGRAM Ta IPPROTO_UDP Ta
+Return 0.
+ICMP messages will NOT be generated.
+.It Li PF_INET Ta SOCK_STREAM Ta IPPROTO_SCTP Ta
+Return 0.
+Send queued data and tear down association.
+.It Li PF_INET Ta SOCK_STREAM Ta IPPROTO_TCP Ta
+Return 0.
+Send queued data, wait for ACK, then send FIN.
+.It Li PF_INET6 Ta SOCK_DGRAM Ta IPPROTO_SCTP Ta
+Return -1.
+.Va errno
+will be set to
+.Er EOPNOTSUPP .
+.It Li PF_INET6 Ta SOCK_DGRAM Ta IPPROTO_UDP Ta
+Return 0.
+ICMP messages will NOT be generated.
+.It Li PF_INET6 Ta SOCK_STREAM Ta IPPROTO_SCTP Ta
+Return 0.
+Send queued data and tear down association.
+.It Li PF_INET6 Ta SOCK_STREAM Ta IPPROTO_TCP Ta
+Return 0.
+Send queued data, wait for ACK, then send FIN.
.El
+.\"
.Sh RETURN VALUES
.Rv -std shutdown
.Sh ERRORS
@@ -75,8 +125,16 @@ argument is not a valid file descriptor.
The
.Fa how
argument is invalid.
+.It Bq Er EOPNOTSUPP
+The socket associated with the file descriptor
+.Fa s
+does not support this operation.
.It Bq Er ENOTCONN
-The socket is not connected.
+The
+.Da s
+argument specifies a
+.Dv SOCK_STREAM
+socket which is not connected.
.It Bq Er ENOTSOCK
The
.Fa s
@@ -84,6 +142,8 @@ argument does not refer to a socket.
.El
.Sh SEE ALSO
.Xr connect 2 ,
+.Xr inet 4 ,
+.Xr inet6 4 ,
.Xr socket 2
.Sh STANDARDS
The
@@ -102,3 +162,15 @@ and
.Dv SHUT_RDWR
constants appeared in
.St -p1003.1g-2000 .
+.Sh AUTHORS
+.An -nosplit
+This manual page was updated by
+.An Bruce M. Simpson Aq bms@FreeBSD.org .
+.Sh BUGS
+The ICMP "port unreachable" message should be generated in response to
+datagrams received on a local port to which
+.Fa s
+is bound
+after
+.Fn shutdown
+is called.
OpenPOWER on IntegriCloud