This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Bug at getsockopt when TCP_NODELAY is used as parameter


On May  5 14:34, Corinna Vinschen wrote:
> Only, starting with Windows Vista, getsockopt suddenly returned with
> optlen set to 1, which is sizeof(BOOLEAN), the boolean type used by the
> underlying kernel.  And this has never been fixed again.
> 
> Cygwin already handles this problem by converting the value to a
> sizeof(int) value and changing optlen accordingly, but only for the
> socket options SOL_SOCKET/SO_KEEPALIVE and SOL_SOCKET/SO_DONTROUTE.
> 
> I will fix that at one point, but I have to dig into that a bit more to
> see which socket options have to be special-cased, or if this
> special-casing can be radically simplified somehow.  Special-casing
> dozens of socket options just to tweak the return type isn't exactly
> fun.

Funny enough, of all BSD/Linux-compatible options, only three seem to be
affected at all, SOL_SOCKET/SO_KEEPALIVE, SOL_SOCKET/SO_DONTROUTE, and
IPPROTO_TCP/TCP_NODELAY.  I applied a patch which is supposed to fix
this problem, and I just generated a new developer snapshot which is,
as usual, available on http://cygwin.com/snapshots/ Please give it a try.


Thanks,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgpMj3XaUcp3i.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]