From d025278aa1a1a53c8a49cb0a1bb670fcf4000656 Mon Sep 17 00:00:00 2001 From: Alfred Perlstein Date: Wed, 9 Mar 2005 00:17:33 +0000 Subject: [PATCH] Make MSG_NOSIGNAL available to native programs. Bump FreeBSD_version to note this change. Reviewed by: sobomax --- lib/libc/sys/send.2 | 14 +++++++++----- sys/sys/param.h | 2 +- sys/sys/socket.h | 4 +++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/libc/sys/send.2 b/lib/libc/sys/send.2 index de048542c85..7434db284f5 100644 --- a/lib/libc/sys/send.2 +++ b/lib/libc/sys/send.2 @@ -103,11 +103,12 @@ The .Fa flags argument may include one or more of the following: .Bd -literal -#define MSG_OOB 0x1 /* process out-of-band data */ -#define MSG_PEEK 0x2 /* peek at incoming message */ -#define MSG_DONTROUTE 0x4 /* bypass routing, use direct interface */ -#define MSG_EOR 0x8 /* data completes record */ -#define MSG_EOF 0x100 /* data completes transaction */ +#define MSG_OOB 0x00001 /* process out-of-band data */ +#define MSG_PEEK 0x00002 /* peek at incoming message */ +#define MSG_DONTROUTE 0x00004 /* bypass routing, use direct interface */ +#define MSG_EOR 0x00008 /* data completes record */ +#define MSG_EOF 0x00100 /* data completes transaction */ +#define MSG_NOSIGNAL 0x20000 /* do not generate SIGPIPE on EOF */ .Ed .Pp The flag @@ -135,6 +136,9 @@ protocol family, and is used to implement Transaction .Xr ttcp 4 ) . .Dv MSG_DONTROUTE is usually used only by diagnostic or routing programs. +.Dv MSG_NOSIGNAL +is used to prevent SIGPIPE generation when writing a socket that +may be closed. .Pp See .Xr recv 2 diff --git a/sys/sys/param.h b/sys/sys/param.h index 1607c45eee3..f6b6382acc6 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -57,7 +57,7 @@ * is created, otherwise 1. */ #undef __FreeBSD_version -#define __FreeBSD_version 600019 /* Master, propagated to newvers */ +#define __FreeBSD_version 600020 /* Master, propagated to newvers */ #ifndef LOCORE #include diff --git a/sys/sys/socket.h b/sys/sys/socket.h index d34c816464b..27e529418f0 100644 --- a/sys/sys/socket.h +++ b/sys/sys/socket.h @@ -398,7 +398,9 @@ struct msghdr { #endif #ifdef _KERNEL #define MSG_SOCALLBCK 0x10000 /* for use by socket callbacks - soreceive (TCP) */ -#define MSG_NOSIGNAL 0x20000 /* for use with emulation layers */ +#endif +#if __BSD_VISIBLE +#define MSG_NOSIGNAL 0x20000 /* do not generate SIGPIPE on EOF */ #endif /*