How is 0.0.0.0 handled in Wine?
Ben Klein
shacklein at gmail.com
Tue Jun 9 03:54:57 CDT 2009
2009/6/9 Kai Blin <kai.blin at gmail.com>:
> It was
> annoying enough having to handle that modern linux distros always resolve the
> hostname to a loopback address and many windows apps think that
> gethostbyname(gethostname()) was a good idea to figure out what IP address to
> bind to when they actually want to bind to INADDR_ANY. (That's 0.0.0.0 btw,
> and will find you my "gethostname() should not resolve to localhost" hack.)
Ah, I thought 0.0.0.0 was invalid. This explains a bit.
Only case that I can think of where 0.0.0.0 handling will break apps
is in lazy network programming. Consider the psuedo-code:
ip_addr = "0.0.0.0"
for (each_ip in valid_addresses)
if (some_test(each_ip))
ip_addr=each_ip
socket=connect_to(ip_addr)
On Windows, this would likely cause a catchable error. On Linux (at
least), the socket connection may succeed. I think someone said C&C3
is affected by this inconsistency between Linux and Windows INADDR_ANY
handling; this is probably why :P
Until someone demonstrates a real need for this (with appropriate test
cases) ...
More information about the wine-devel
mailing list