OpenBSD manual page server

Manual Page Search Parameters

SHUTDOWN(2) System Calls Manual SHUTDOWN(2)

shutdowndisable sends or receives on a socket

#include <sys/socket.h>

int
shutdown(int s, int how);

The () system call disables sends or receives on a socket.

If the file descriptor s is associated with a SOCK_STREAM socket, all or part of the full-duplex connection will be shut down.

The how argument specifies the type of shutdown. Possible values are:

Further receives will be disallowed.
Further sends will be disallowed. This may cause actions specific to the protocol family of the socket s to happen.
Further sends and receives will be disallowed.

The following protocol specific actions apply to the use of SHUT_WR based on the properties of the socket associated with the file descriptor s:

DOMAIN TYPE PROTOCOL RETURN VALUE AND ACTION

Return 0. ICMP messages will not be generated.
Return 0. Send queued data, wait for ACK, then send FIN.
Return 0. ICMP messages will not be generated.
Return 0. Send queued data, wait for ACK, then send FIN.

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

The shutdown() system call fails if:

[]
The s argument is not a valid file descriptor.
[]
The how argument is invalid.
[]
The s argument specifies a SOCK_STREAM socket which is not connected.
[]
The s argument does not refer to a socket.
[]
The socket associated with the file descriptor s does not support this operation.

connect(2), socket(2), inet(4), inet6(4)

The shutdown() function conforms to IEEE Std 1003.1-2008 (“POSIX.1”).

The shutdown() system call first appeared in 4.1cBSD. The SHUT_RD, SHUT_WR, and SHUT_RDWR constants appeared in IEEE Std 1003.1g-2000 (“POSIX.1g”).

The ICMP “port unreachable” message should be generated in response to datagrams received on a local port to which s is bound after shutdown() is called.

September 9, 2014 OpenBSD-6.7