Greetings. After the recent u_intXX_t type elimination in tcpdump I did a test build on an OpenIndiana x86_64 VM (which identifies itself as SunOS 5.11) and suddenly it failed on the NFLOG test case. Interestingly, that test case not just used to fail on OpenCSW Solaris 10 build servers during automatic builds (linked from www.tcpdump.org), but on one of the servers it sometimes recovered on itself and then failed again. All that said, it never failed in a live shell on the same server. But now it did:
Failed test: nflog-e 1,4d0 < version 0, resource ID 20, family IPv4 (2), length 180: 74.82.42.42.53 > 10.0.0.20.42585: 17265 1/0/0 A 93.184.216.119 (45) < version 0, resource ID 20, family IPv4 (2), length 192: 74.82.42.42.53 > 10.0.0.20.45190: 52954 1/0/0 AAAA 2606:2800:220:6d:26bf:1447:1097:aa7 (57) < version 0, resource ID 20, family IPv4 (2), length 184: 74.82.42.42.53 > 10.0.0.20.44031: 8279 1/0/0 A 93.184.216.119 (49) < version 0, resource ID 20, family IPv4 (2), length 196: 74.82.42.42.53 > 10.0.0.20.48736: 2122 1/0/0 AAAA 2606:2800:220:6d:26bf:1447:1097:aa7 (61) So, finally it had reproduced at hand and the reason for tcpdump not decoding DLT_NFLOG was that HAVE_PCAP_NFLOG_H was not defined at compile time and the following was in config.log: configure:7341: checking for pcap/nflog.h configure:7341: /usr/gcc/4.3/bin/gcc -c -DINET6 -I/usr/inet6/include -g -O2 -I./../libpcap conftest.c >&5 In file included from conftest.c:71: ./../libpcap/pcap/nflog.h:43: error: expected specifier-qualifier-list before 'u_int8_t' ./../libpcap/pcap/nflog.h:49: error: expected specifier-qualifier-list before 'u_int16_t' ./../libpcap/pcap/nflog.h:55: error: expected specifier-qualifier-list before 'u_int16_t' ./../libpcap/pcap/nflog.h:61: error: expected specifier-qualifier-list before 'u_int16_t' ./../libpcap/pcap/nflog.h:67: error: expected specifier-qualifier-list before 'u_int64_t' configure:7341: $? = 1 The checks for other libpcap headers also failed due to the same error: checking for pcap/bluetooth.h... no checking for pcap/nflog.h... no checking for pcap/usb.h... no Updating these headers to use uint_XX_t instead of u_intXX_t fixes respective detection and the NFLOG test case in particular but it seems tcpdump should tolerate the u_intXX_t types from libpcap for indefinitely longer time as there are many old libpcap installations around. Other opinions are welcome. -- Denis Ovsienko _______________________________________________ tcpdump-workers mailing list tcpdump-workers@lists.tcpdump.org https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers