Fri Jul 29 22:31:00 GMT 2011
On Fri, 2011-07-29 at 22:23 +0200, Corinna Vinschen wrote:
> On Jul 29 13:30, Eric Blake wrote:
> > Is there any specific reason why socklen_t on cygwin is int instead
> > of uint32_t, like it is on Linux?
> Other than history? No, I don't think so. But I also don't think
> it's worth the effort. All the underlying Windows functions typically
> use int rather than uint32_t, and even the Linux man page states:
> The optlen argument of getsockopt() and setsockopt() is in reality an
> int [*] (and this is what 4.x BSD and libc4 and libc5 have). Some
> POSIX confusion resulted in the present socklen_t, also used by glibc.
FWIW, I am aware of the following packages which are affected by the
But POSIX says:
> The <sys/socket.h> header shall define the socklen_t type, which is an
> integer type of width of at least 32 bits...
> To forestall portability problems, it is recommended that applications
> not use values larger than 2^31 -1 for the socklen_t type.
That would seem to allow either 'uint32_t' or 'int', so we're not wrong,
and its the aforementioned applications' fault for making Linux
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin