bug in tcp/ip on windows?
Filip Konvička
filip.konvicka.removethisantispamtoken at logis.cz
Thu Nov 24 11:12:13 CET 2005
>>Could you please take a look on what I found out (see my other post)?
>
> Which exactly?
The "Solved: bug in tcp/ip on windows" one (well, there is not much code
actually... I originally thought I'd include the std::set rewrite of
os.cc, but I did not since it won't link).
>>There is no problem in Open.socket - in fact, the backLog parameter
>>*can* be specified to Open.socket's meth listen and is passed correctly
>>to OS.listen.
>
>
> Yes, just after I sent the mail I remembered that Open.socket has the
> method listen.
Well, I read your other mail in which you explain this just after I'd
sent this :-)
>>I just have a feeling that on Windows you can not get past
>>the WinSock1's SOMAXCONN=5 limit.
>
>
> Indeed, the SOMAXCONN used to be set to 5 in cygwin, but from a cvs log
> from year 2003 I see that they switched to 0x7fffffff.
> So I would say that cygwin is not introducing the limitation.
I don't think that it's a Cygwin limitation. Mozart does not rely on
Cygwin binaries, anyway - it includes winsock.h and links winsock
directly (see platform/emulator/wsock.hh). But it includes and links
winsock1, not winsock2. Winsock.h defines SOMAXCONN = 5, Winsock2.h
defines SOMAXCONN=0x7fffffff.
Anyway, the socket code in os.cc for win32 is not good. For example,
SOCKET (defined as UINT_PTR) is silently converted to int - this will
introduce problems when someone will be porting Mozart to Win64 (note
that e.g. socket() returns SOCKET, not int, on Windows). And IMHO the
usage of fd_set is a bad idea too.
Cheers,
Filip
More information about the mozart-hackers
mailing list