lkml.org 
[lkml]   [2008]   [Jan]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: AF_UNIX MSG_PEEK bug?
On 08/01/2008, Brent Casavant <bcasavan@sgi.com> wrote:
> On Tue, 8 Jan 2008, Tom Spink wrote:
>
> > Where in the code is the message length being sent across the socket?
>
> In do_producer(), there are the following lines in the main loop:
>
> /* Send random lengths of data */
> messages[i].length = (rand() % MAXLEN) + sizeof(size_t);
> iov[i].iov_len = messages[i].length;
>
> The entire "struct sockmsg" is sent across the socket, so the first
> size_t in each message contains the length of the entire message
> (including the size_t). This size gets picked up at the
> recv(...,MSG_PEEK) line in do_consumer().
>
> Thanks,
> Brent
>
> --
> Brent Casavant All music is folk music. I ain't
> bcasavan@sgi.com never heard a horse sing a song.
> Silicon Graphics, Inc. -- Louis Armstrong
>

Hi,

But you're not consuming the size_t on the other end. You're only
peeking it, i.e. you're doing the recv to peek at the message, but
never calling recv to remove that data from the queue... or am I
missing something?

--
Regards,
Tom Spink
University of Edinburgh


\
 
 \ /
  Last update: 2008-01-09 00:43    [W:0.053 / U:7.052 seconds]
©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site