v6 mapped v4 wildcard address fails with EADDRNOTAVAIL

From: Dirk Engling
Date: Thu Mar 26 2009 - 20:10:41 EST



Hello,

after implementing an ipv6 mode in my bittorrent tracker software opentracker I got lot of complaints from linux users (unfortunally thepiratebay being one of them) telling me that using the software in v4-mode stopped working when they specified the ip address 0.0.0.0

This seems to be due to the linux kernel handling some v6-mapped v4 addresses differently, with 0.0.0.0 being one of them.

Now - developing under FreeBSD and OSX - I loved the fact that I would not need to worry about what kind of socket I've created, if I could just make all sockets bind to v4 addresses by using the v6-mapped v4 address in v4 mode. In other words: I could use the same API in both modes and just expand v4 addresses by prefixing them.

So it came to me as a surprise that it wouldn't work under linux. Is this behaviour intentional? What would I need to do to get my software runnnig as expected?

Regards and thanks in advance,

erdgeist
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html