I am indeed somewhat unsure with the IPv6 code for Linux - my Linux test system is different than a typical desktop linux. As far as I know Linux can always do inet_ntop (WindowsXP cannot), so go back to inet_ntoa if IPV6 is not used. 
Ok, I see - the union element is not defined then. I will have a look at it.