1.\" Copyright (c) 2007 Bruce M. Simpson. 2.\" Copyright (c) 1983, 1991, 1993 3.\" The Regents of the University of California. All rights reserved. 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 3. Neither the name of the University nor the names of its contributors 14.\" may be used to endorse or promote products derived from this software 15.\" without specific prior written permission. 16.\" 17.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 18.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 21.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27.\" SUCH DAMAGE. 28.\" 29.\" @(#)shutdown.2 8.1 (Berkeley) 6/4/93 30.\" $FreeBSD$ 31.\" 32.Dd July 27, 2015 33.Dt SHUTDOWN 2 34.Os 35.Sh NAME 36.Nm shutdown 37.Nd disable sends and/or receives on a socket 38.Sh LIBRARY 39.Lb libc 40.Sh SYNOPSIS 41.In sys/types.h 42.In sys/socket.h 43.Ft int 44.Fn shutdown "int s" "int how" 45.Sh DESCRIPTION 46The 47.Fn shutdown 48system call disables sends or receives on a socket. 49The 50.Fa how 51argument specifies the type of shutdown. 52Possible values are: 53.Bl -tag -width ".Dv SHUT_RDWR" 54.It Dv SHUT_RD 55Further receives will be disallowed. 56.It Dv SHUT_WR 57Further sends will be disallowed. 58This may cause actions specific to the protocol family of the socket 59.Fa s 60to happen; see 61.Sx IMPLEMENTATION NOTES . 62.It Dv SHUT_RDWR 63Further sends and receives will be disallowed. 64Implies 65.Dv SHUT_WR . 66.El 67.Pp 68If the file descriptor 69.Fa s 70is associated with a 71.Dv SOCK_STREAM 72socket, all or part of the full-duplex connection will be shut down. 73.\" 74.Sh IMPLEMENTATION NOTES 75The following protocol specific actions apply to the use of 76.Dv SHUT_WR 77(and potentially also 78.Dv SHUT_RDWR ) , 79based on the properties of the socket associated with the file descriptor 80.Fa s . 81.Bl -column ".Dv PF_INET6" ".Dv SOCK_STREAM" ".Dv IPPROTO_SCTP" 82.It Sy Domain Ta Sy Type Ta Sy Protocol Ta Sy Action 83.It Dv PF_INET Ta Dv SOCK_DGRAM Ta Dv IPPROTO_SCTP Ta 84Failure, 85as socket is not connected. 86.It Dv PF_INET Ta Dv SOCK_DGRAM Ta Dv IPPROTO_UDP Ta 87Failure, 88as socket is not connected. 89.It Dv PF_INET Ta Dv SOCK_STREAM Ta Dv IPPROTO_SCTP Ta 90Send queued data and tear down association. 91.It Dv PF_INET Ta Dv SOCK_STREAM Ta Dv IPPROTO_TCP Ta 92Send queued data, wait for ACK, then send FIN. 93.It Dv PF_INET6 Ta Dv SOCK_DGRAM Ta Dv IPPROTO_SCTP Ta 94Failure, 95as socket is not connected. 96.It Dv PF_INET6 Ta Dv SOCK_DGRAM Ta Dv IPPROTO_UDP Ta 97Failure, 98as socket is not connected. 99.It Dv PF_INET6 Ta Dv SOCK_STREAM Ta Dv IPPROTO_SCTP Ta 100Send queued data and tear down association. 101.It Dv PF_INET6 Ta Dv SOCK_STREAM Ta Dv IPPROTO_TCP Ta 102Send queued data, wait for ACK, then send FIN. 103.El 104.\" 105.Sh RETURN VALUES 106.Rv -std shutdown 107.Sh ERRORS 108The 109.Fn shutdown 110system call fails if: 111.Bl -tag -width Er 112.It Bq Er EBADF 113The 114.Fa s 115argument is not a valid file descriptor. 116.It Bq Er EINVAL 117The 118.Fa how 119argument is invalid. 120.It Bq Er ENOTCONN 121The 122.Fa s 123argument specifies a socket which is not connected. 124.It Bq Er ENOTSOCK 125The 126.Fa s 127argument does not refer to a socket. 128.El 129.Sh SEE ALSO 130.Xr connect 2 , 131.Xr socket 2 , 132.Xr inet 4 , 133.Xr inet6 4 134.Sh STANDARDS 135The 136.Fn shutdown 137system call is expected to comply with 138.St -p1003.1g-2000 , 139when finalized. 140.Sh HISTORY 141The 142.Fn shutdown 143system call appeared in 144.Bx 4.2 . 145The 146.Dv SHUT_RD , SHUT_WR , 147and 148.Dv SHUT_RDWR 149constants appeared in 150.St -p1003.1g-2000 . 151.Sh AUTHORS 152.An -nosplit 153This manual page was updated by 154.An Bruce M. Simpson Aq Mt [email protected] 155to reflect how 156.Fn shutdown 157behaves with 158.Dv PF_INET 159and 160.Dv PF_INET6 161sockets. 162.Sh BUGS 163The ICMP 164.Dq Li "port unreachable" 165message should be generated in response to 166datagrams received on a local port to which 167.Fa s 168is bound 169after 170.Fn shutdown 171is called. 172