Hello,

Thomas Huth, on Mon 07 Mar 2016 16:37:59 +0100, wrote:
> Is that "#include <netinet/in.h>" required in ip6.h at all? It also seems
> to compile if I omit that include completely here...

Well, it makes sense to put it in ip6.h.  That said, since ip6.h is only
included through slirp.h which includes netinet/in.h appropriately, we
can indeed drop it from ip6.h

> Anyway, I just tried with my mingw32 cross-compiler, and once this is fixed,
> compilation succeeds, but there are some warnings:
> 
> net/slirp.c: In function 'net_slirp_init':
> net/slirp.c:249:5: warning: implicit declaration of function 'inet_pton' 
> [-Wimplicit-function-declaration]
>      if (!inet_pton(AF_INET6, vprefix6, &ip6_prefix)) {
>      ^
> slirp/ip6_icmp.c: In function 'icmp6_send_error':
> slirp/ip6_icmp.c:84:5: warning: implicit declaration of function 'inet_ntop' 
> [-Wimplicit-function-declaration]
>      inet_ntop(AF_INET6, &rip->ip_dst, addrstr, INET6_ADDRSTRLEN);
>      ^
> qemu/slirp/ndp_table.c: In function 'ndp_table_add':
> qemu/slirp/ndp_table.c:16:5: warning: implicit declaration of function 
> 'inet_ntop' [-Wimplicit-function-declaration]
>      inet_ntop(AF_INET6, &(ip_addr), addrstr, INET6_ADDRSTRLEN);
> 
> The warnings go away when I use this piece of code in the beginning of the 
> affected files:
> 
> #ifdef _WIN32
> #define _WIN32_WINNT _WIN32_WINNT_WIN6 
> #include <ws2tcpip.h>
> #endif

Eeeww, so windows only provides inet_pton since Vista?!  Ok, for now
I'll just disable using inet_ntop/pton when built with compatibility
before vista, i.e. notably

#if defined(_WIN32) && (_WIN32_WINNT < 0x0600)
hardcode fec0::
#endif

and refuse to configure the prefix, host and dns.

Samuel

Reply via email to