netdev
[Top] [All Lists]

Re: asymmetry with MSG_DONTWAIT in sendmsg() and recvmsg()

To: Chris Friesen <cfriesen@xxxxxxxxxxxxxxxxxx>
Subject: Re: asymmetry with MSG_DONTWAIT in sendmsg() and recvmsg()
From: Andries Brouwer <Andries.Brouwer@xxxxxx>
Date: Thu, 8 Jul 2004 19:07:05 +0200
Cc: Andries.Brouwer@xxxxxx, Andi Kleen <ak@xxxxxxx>, Michael T Kerrisk <mtk-lists@xxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <40ED7B18.800@xxxxxxxxxxxxxxxxxx>
References: <20040708162703.GA12934@xxxxxxxxxxxxx> <40ED7B18.800@xxxxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4i
On Thu, Jul 08, 2004 at 12:49:28PM -0400, Chris Friesen wrote:

> > > why its not in the man pages?
> >
> >Nobody ever added it? Just send a patch to aeb@xxxxxx
> 
> Sending patch as suggested.  Fundamentally, the delta is as follows, I've 
> included an attachment with what I hope are the proper formatting codes 
> (copied from send(2)).
> 
> --- recv.man    2004-07-08 15:43:17.000000000 -0400
> +++ recv2.man   2004-07-08 15:47:29.000000000 -0400
> @@ -67,6 +67,11 @@
>                disconnect occurs, or the next data to be received is of a  
>                dif-
>                ferent type than that returned.
> 
> +       MSG_DONTWAIT
> +              Enables  non-blocking  operation;  if the operation would 
> block,
> +              EAGAIN is returned (this can also be enabled  using  the  
> O_NON-
> +              BLOCK with the F_SETFL fcntl(2)).
> +
>         MSG_NOSIGNAL
>                This  flag  turns  off raising of SIGPIPE on stream sockets 
>                when
>                the other end disappears.
> 
> 
> Note also that there is a mention of MSG_DONTWAIT in the msg_flags field in 
> the msghdr.  It gives the impression that one can *set* that field to cause 
> the non-blocking behaviour.  My understanding is that the msg_flags field 
> is a return value only.  Perhaps that portion should be reworded as well.
> 
> Chris


Can you find the man-pages-1.67 package and construct a concrete patch?

(Don't know precisely what you want to do. The above gives a filename
recv.man, which would be recv.2 in my sources. But there is no MSG_NOSIGNAL
in recv.2, only in send.2. The fragment of text that you give occurs
already in recv.2.)

Andries

<Prev in Thread] Current Thread [Next in Thread>