* fhandler_socket.cc (fhandler_socket::sendto): Restrict EPIPE and

SIGPIPE handling to connection oriented sockets.  Add comment.
This commit is contained in:
Corinna Vinschen 2003-03-20 08:53:28 +00:00
parent 4da34970de
commit fa85038b5f
2 changed files with 12 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2003-03-20 Corinna Vinschen <corinna@vinschen.de>
* fhandler_socket.cc (fhandler_socket::sendto): Restrict EPIPE and
SIGPIPE handling to connection oriented sockets. Add comment.
2003-03-19 Christopher Faylor <cgf@redhat.com>
* sigproc.h (signal_fixup_after_exec): Eliminate argument in declaration.

View File

@ -1058,8 +1058,13 @@ fhandler_socket::sendto (const void *ptr, size_t len, int flags,
else
res = ret;
/* Special handling for SIGPIPE */
if (res == -1 && get_errno () == ESHUTDOWN)
/* Special handling for EPIPE and SIGPIPE.
EPIPE is generated if the local end has been shut down on a connection
oriented socket. In this case the process will also receive a SIGPIPE
unless MSG_NOSIGNAL is set. */
if (res == -1 && get_errno () == ESHUTDOWN
&& get_socket_type () == SOCK_STREAM)
{
set_errno (EPIPE);
if (! (flags & MSG_NOSIGNAL))