* Re : [Qemu-devel] [patch] use socklen_t with getsockopt()
@ 2007-04-05 8:43 Sylvain Petreolle
2007-04-05 10:42 ` Jamie Lokier
0 siblings, 1 reply; 5+ messages in thread
From: Sylvain Petreolle @ 2007-04-05 8:43 UTC (permalink / raw)
To: qemu-devel
Was incorrect before too, since it was sizeof(int) in the first place ?
Sylvain
----- Message d'origine ----
De : Thiemo Seufer <ths@networkno.de>
À : Mike Frysinger <vapier@gentoo.org>
Cc : Qemu-devel@nongnu.org
Envoyé le : Dimanche, 1 Avril 2007, 20h43mn 02s
Objet : Re: [Qemu-devel] [patch] use socklen_t with getsockopt()
Mike Frysinger wrote:
> obvious fixup ... getsockopt() takes a socklen_t, not an int
> -mike
This is incorrect. Its initial value is sizeof(val).
Thiemo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re : [Qemu-devel] [patch] use socklen_t with getsockopt()
2007-04-05 8:43 Re : [Qemu-devel] [patch] use socklen_t with getsockopt() Sylvain Petreolle
@ 2007-04-05 10:42 ` Jamie Lokier
2007-04-06 21:51 ` Mike Frysinger
0 siblings, 1 reply; 5+ messages in thread
From: Jamie Lokier @ 2007-04-05 10:42 UTC (permalink / raw)
To: Sylvain Petreolle, qemu-devel
Sylvain Petreolle wrote:
> Was incorrect before too, since it was sizeof(int) in the first place ?
The old type of "val" was "int", so it made no different to the size.
When "val" is of type socklen_t, it matters.
-- Jamie
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [patch] use socklen_t with getsockopt()
2007-04-05 10:42 ` Jamie Lokier
@ 2007-04-06 21:51 ` Mike Frysinger
2007-04-06 21:59 ` Paul Brook
2007-04-10 10:59 ` Jamie Lokier
0 siblings, 2 replies; 5+ messages in thread
From: Mike Frysinger @ 2007-04-06 21:51 UTC (permalink / raw)
To: qemu-devel; +Cc: Sylvain Petreolle
[-- Attachment #1: Type: text/plain, Size: 396 bytes --]
On Thursday 05 April 2007, Jamie Lokier wrote:
> Sylvain Petreolle wrote:
> > Was incorrect before too, since it was sizeof(int) in the first place ?
>
> The old type of "val" was "int", so it made no different to the size.
> When "val" is of type socklen_t, it matters.
val is still of type int which is fine ... socklen_t is for the variable which
describes the length of val
-mike
[-- Attachment #2: Type: application/pgp-signature, Size: 827 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [patch] use socklen_t with getsockopt()
2007-04-06 21:51 ` Mike Frysinger
@ 2007-04-06 21:59 ` Paul Brook
2007-04-10 10:59 ` Jamie Lokier
1 sibling, 0 replies; 5+ messages in thread
From: Paul Brook @ 2007-04-06 21:59 UTC (permalink / raw)
To: qemu-devel; +Cc: Sylvain Petreolle, Mike Frysinger
On Friday 06 April 2007 22:51, Mike Frysinger wrote:
> On Thursday 05 April 2007, Jamie Lokier wrote:
> > Sylvain Petreolle wrote:
> > > Was incorrect before too, since it was sizeof(int) in the first place ?
> >
> > The old type of "val" was "int", so it made no different to the size.
> > When "val" is of type socklen_t, it matters.
>
> val is still of type int which is fine ... socklen_t is for the variable
> which describes the length of val
It's worth noting that socklen_t should be "int" anyway.
From the accept(2) manpage:
NOTE
The third argument of accept() was originally declared as an `int *'
(and is that under libc4 and libc5 and on many other systems like 4.x
BSD, SunOS 4, SGI); a POSIX.1g draft standard wanted to change it into
a `size_t *', and that is what it is for SunOS 5. Later POSIX drafts
have `socklen_t *', and so do the Single Unix Specification and glibc2.
Quoting Linus Torvalds:
"_Any_ sane library _must_ have "socklen_t" be the same size as int.
Anything else breaks any BSD socket layer stuff. POSIX initially did
make it a size_t, and I (and hopefully others, but obviously not too
many) complained to them very loudly indeed. Making it a size_t is
completely broken, exactly because size_t very seldom is the same size
as "int" on 64-bit architectures, for example. And it has to be the
same size as "int" because that's what the BSD socket interface is.
Anyway, the POSIX people eventually got a clue, and created
"socklen_t". They shouldn't have touched it in the first place, but
once they did they felt it had to have a named type for some unfath-
omable reason (probably somebody didn't like losing face over having
done the original stupid thing, so they silently just renamed their
blunder)."
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [patch] use socklen_t with getsockopt()
2007-04-06 21:51 ` Mike Frysinger
2007-04-06 21:59 ` Paul Brook
@ 2007-04-10 10:59 ` Jamie Lokier
1 sibling, 0 replies; 5+ messages in thread
From: Jamie Lokier @ 2007-04-10 10:59 UTC (permalink / raw)
To: Mike Frysinger; +Cc: Sylvain Petreolle, qemu-devel
Mike Frysinger wrote:
> On Thursday 05 April 2007, Jamie Lokier wrote:
> > Sylvain Petreolle wrote:
> > > Was incorrect before too, since it was sizeof(int) in the first place ?
> >
> > The old type of "val" was "int", so it made no different to the size.
> > When "val" is of type socklen_t, it matters.
>
> val is still of type int which is fine ... socklen_t is for the variable which
> describes the length of val
Yes, thanks for pointing it out.
-- Jamie
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-04-10 11:03 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-04-05 8:43 Re : [Qemu-devel] [patch] use socklen_t with getsockopt() Sylvain Petreolle
2007-04-05 10:42 ` Jamie Lokier
2007-04-06 21:51 ` Mike Frysinger
2007-04-06 21:59 ` Paul Brook
2007-04-10 10:59 ` Jamie Lokier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).