On May 22, 2016, at 6:19 PM, jungle Boogie <jungleboogie0@xxxxxxxxx> wrote:
> Trying to build wireshark on my dragonflyBSD laptop with this dragonfly:
> DragonFly 4.5-DEVELOPMENT DragonFly v4.5.0.972.g240f0-DEVELOPMENT
> I'm on this commit:
> http://gitweb.dragonflybsd.org/dragonfly.git/commit/240f0ad6e4174ffec8892758ad94f744ef8a4970
>
> In other words, very recent.
...
> CC interface.lo
> interface.c: In function 'local_interfaces_to_list':
> interface.c:57:24: error: dereferencing pointer to incomplete type
> 'struct sockaddr'
> family = ifa->ifa_addr->sa_family;
> ^
> interface.c:62:11: error: 'AF_INET' undeclared (first use in this function)
> case AF_INET:
> ^
> interface.c:62:11: note: each undeclared identifier is reported only
> once for each function it appears in
> interface.c:65:27: error: dereferencing pointer to incomplete type
> 'struct sockaddr_in'
> ws_inet_ntop4(&addr4->sin_addr, ip, sizeof(ip));
> ^
> interface.c:69:11: error: 'AF_INET6' undeclared (first use in this function)
> case AF_INET6:
> ^
> interface.c:72:27: error: dereferencing pointer to incomplete type
> 'struct sockaddr_in6'
> ws_inet_ntop6(&addr6->sin6_addr, ip, sizeof(ip));
...
> What's causing this
DragonFly BSD's <arpa/inet.h> not including <netinet/in.h>.
> and what can I do correct it?
Do a "git pull" in your Wireshark tree and rebuild.
It looks as if OS X's <arpa/inet.h> include <netinet/in.h>, but DragonFly BSD's <arpa/inet.h> doesn't. Presumably the Linuxes on which we build also have <arpa/inet.h> including something that eventually causes <netinet/in.h> to be included, and whatever is necessary happens on Windows with MSVC's header files as well.
But it's a bug to rely on that, so I've checked in a change to explicitly include <netinet/in.h>.