Messages in this thread | | | Date | Wed, 17 Nov 2004 17:23:54 +0100 (CET) | From | Catalin Drula <> | Subject | Re: AF_UNIX sockets: strange behaviour |
| |
> Dick Johnson wrote: > > > Catalin Drula wrote: > > > > - there is a skb in the sk_receive_queue with a len of 13 > > - 6 bytes are read from it > > - a skb with the remaining 7 bytes is requeued in sk_receive_queue > > - on the next call to unix_stream_recvmsg, the sk_receive_queue is > > empty (!) > > > > Thus, this confirms the behaviour observed from userspace. Is this a > > bug? Who could be removing the skb from the receive_queue? > > If you need STREAM behavior I think you need to use recv(), > recvfrom(),or read(). > > If you use recvmsg(), the "message" will be removed even it you > haven't read it all. Note in the 'man' page description: > "If the a message is too long to fit in the supplied buffer, excess > bytes may be discarded depending upon the type of socket the message > is being received from...
At first I used read() and then I tried recv() as well.
Catalin
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |