On Dec 16, 2004, at 1:23 PM, Paul Thomas wrote:


Is the "getifaddrs()" you're using part of QNX4, or is it
from some add-on library, e.g. taking the eCos implementation
and porting it to QNX4?

"getifaddrs()" is not part of QNX4. There is no connection whatsoever.

It is utilized in the libpcap file, 'fad-getad.c'.

This source file is called out explicity in libpcap 0.8.3's
configure-generated Makefile as:
FSRC = fad-getad.c

Then either

        1) your system somehow has a "getifaddrs()"

or

2) the test for "getifaddrs()" somehow succeeded without it being present.

We'd have to see the "config.log" file from your system to see how that happened.

I checked in a change to

1) use the "stub" version of "pcap_findalldevs()" on platforms on which we don't support packet capture

and

2) have the configure script fail on platforms with "getifaddrs()" but no usable <ifaddrs.h>.

Change 1) will probably make the current CVS version configure, at least, on QNX4, unless, somehow, the configure script manages to find a packet capture mechanism it supports.

I am absolutely dumb-founded that the maintainers of libpcap would
have this code, and thereby _assume_ that the supporting file(s) would
already exist on the developer's computer!

The configure script does *NOT* assume that "getifaddrs()" exists on the developer's computer.


Until my recent checkin, however, it *did* assume that if "getifaddrs()" existed in any of whatever libraries the AC_CHECK_FUNC() autoconf macro tested, <ifaddrs.h> would exist on the developer's computer, because in all systems we'd seen, "getifaddrs()" was explicitly documented as using <ifaddrs.h>. It now checks whether it exists, and fails if it doesn't, because that either means that

1) "getifaddrs()" is a system API and, when the system was installed, not all of the header files necessary for development were installed;

2) "getifaddrs()" is in a third-party library and, when that library was installed, not all of the header files necessary for development were installed;

3) <ifaddrs.h> was installed, but the configure script needs to search in some additional directory for it - which means it would need to set up the Makefile to search in that directory as well;

4) whoever provided the implementation of "getifaddrs()" made it incompatibly use a header file other than <ifaddrs.h>;

        5) the "getifaddrs()" is not a BSD-style "getifaddrs()";

and in all of those cases either the user needs to figure out what needs to be done and do it (in cases 1) and 2)) or we need to figure out, with information supplied by the user, what needs to be done and do it (in cases 3), 4), and 5)).

-
This is the tcpdump-workers list.
Visit https://lists.sandelman.ca/ to unsubscribe.

Reply via email to