[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20120215.155226.1446930776120577759.davem@davemloft.net>
Date: Wed, 15 Feb 2012 15:52:26 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: xemul@...allels.com
Cc: tj@...nel.org, netdev@...r.kernel.org
Subject: Re: [PATCH] datagram: Extend the datagram queue MSG_PEEK-ing
From: Pavel Emelyanov <xemul@...allels.com>
Date: Fri, 10 Feb 2012 17:54:10 +0400
> We're working on the checkpoint-restore project. To checkpoint a unix socket
> we need to read its skb queue. Analogous task for TCP sockets Tejun proposed
> to solve with parasite + recvmsg + MSG_PEEK. That's nice, but doesn't work
> for unix sockets, because for them MSG_PEEK always peeks a single skb from the
> head of the queue.
>
> I propose to extend the MSG_PEEK functionality with two more flags that peek
> either next not picked skb in queue or pick the last picked one. The latter
> ability is required to make it possible to re-read a message if MSG_TRUNC
> was reported on it.
>
> These two flags can be used for unix stream sockets, since making the MSG_PEEK
> just report all data that fits the buffer length is bad -- we may have scms
> in queue thus turning stream socket into dgram one.
>
> Signed-off-by: Pavel Emelyanov <xemul@...allels.com>
I'm still thinking about how I feel about this.
But meanwhile you can fix some thing up, for example I really
feel that you should make sure that multiple bits aren't set
at the same time.
You either mean MSG_PEEK_MORE or MSG_PEEK_AGAIN, so setting both
makes no sense and should be flagged as an error.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists