lkml.org 
[lkml]   [2012]   [Jul]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: getsockopt/setsockopt with SO_RCVBUF and SO_SNDBUF "non-standard" behaviour
Any idea?

On 17/07/12 11:27, Eugen Dedu wrote:
> Hi all,
>
> I looked on Internet and at the old thread
> http://lkml.indiana.edu/hypermail/linux/kernel/0108.0/0275.html, but the
> issue is still not settled as far as I see.
>
> I need to have the highest memory available for snd/rcv buffer and I
> need to know/confirm how much it allocated for my process (how much I
> can use).
>
> So with Linux we need to do something like:
> setsockopt (..., SO_RCVBUF, 256000, ...)
> getsockopt (..., SO_RCVBUF, &i, ...)
> i /= 2;
>
> where i is the size I am looking for.
>
> Now, to make this code work for other OSes it should be changed to:
> setsockopt (..., SO_RCVBUF, 256000, ...)
> getsockopt (..., SO_RCVBUF, &i, ...)
> #ifdef LINUX
> i /= 2;
> #endif
>
> First question, is this code correct? If not, what code gives the amount
> of memory useable for my process?
>
> Second, it seems to me that linux is definitely "non-standard" here.
> Saying that linux uses twice as memory has nothing to do with that,
> since getsockopt should return what the application can count on, not
> what is the internal use. It is like a hypothetical malloc (10) would
> return not 10, but 20 (including meta-information). Is that right?
>
> Cheers,


\
 
 \ /
  Last update: 2012-07-18 18:41    [W:0.056 / U:0.136 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site