Differences of behaviour between Windows and Linux (sockets, 8.6b)



Dear fellow Tcl:ers,

I am going to give it a go at a question, even though I have at this point difficulties to understand what is happening right now.

I have some code that was working perfectly in 8.5 both on Linux and Windows. The software, among other things implements a web server (it is my old web server from til, revamped and now hosted at Google code http://code.google.com/p/efr-tools/source/browse/#svn%2Ftrunk%2Ftil%2Fminihttpd).

You might have understood from my previous post today that I am slowly moving to IPv6, so I am trying to run the code under 8.6. Basically, what I have problem with is that the code runs perfectly on Linux, but blocks on Windows. I have been able to track it down to the procedure being bound to "accept", i.e. to be run when a client connects, is never called on Windows. Every access to the server timeouts for reasons that I cannot explain. Since the code has moved from versions to versions of Tcl (actually, since 8.2 if I remember it right), it is event based and does not make use of the new stuff from 8.6.

I don't really know where to start. I have tried with all firewalls turned off and on two different Windows (7, 32bits Tcl on 64bits OS) installations.. Any ideas?

/Emmanuel
.