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

Reply via email to