[dns-operations] Porting dnscap to NetBSD (Was: announcement of new tool -- dnscap

Stephane Bortzmeyer bortzmeyer at nic.fr
Wed May 2 21:31:01 UTC 2007


On Wed, May 02, 2007 at 09:04:47PM +0000,
 Paul Vixie <paul at vix.com> wrote 
 a message of 5 lines which said:

> http://public.oarci.net/tools/dnscap

Some rough parts, it seems. I suggest to adapt it to a portability
framework like GNU autoconf because, currently, it does not compile
out of the box on NetBSD 3.1. Here is the patch I had to do:

--- dnscap.c.orig       2007-05-02 23:17:17.000000000 +0200
+++ dnscap.c    2007-05-02 23:20:32.000000000 +0200
@@ -38,7 +38,10 @@
 # define _GNU_SOURCE
 #endif
 
-#include <net/ethernet.h>
+/* #include <net/ethernet.h> */
+#include <net/ethertypes.h>
+#include <net/if.h>
+#include <net/if_ether.h>
 #include <netinet/in_systm.h>
 #include <netinet/in.h>
 #include <netinet/ip.h>

After that, it starts but crashes at the first DNS packet. No time to
debug it yet:

(gdb) run
Starting program: /home/stephane/tmp/dnscap/dnscap 

Program received signal SIGBUS, Bus error.
live_packet (user=0x2060c0 "", hdr=0x20e000, opkt=0xfffffffffffec364 "\b")
    at dnscap.c:935
935             if (dns->qr == 0 && dport == dns_port) {
(gdb) where
#0  live_packet (user=0x2060c0 "", hdr=0x20e000, opkt=0xfffffffffffec364 "\b")
    at dnscap.c:935
#1  0x0000000040515ca0 in install_bpf_program () from /usr/lib/libpcap.so.1
#2  0x00000000405164fc in pcap_dispatch () from /usr/lib/libpcap.so.1
#3  0x0000000000102bf8 in poll_pcaps () at dnscap.c:689
#4  0x00000000001017f0 in main (argc=1, argv=0x1) at dnscap.c:226
#5  0x00000000001014f8 in ___start ()
(gdb) print dns
$1 = (const HEADER *) 0xfffffffffffec38e
(gdb) print *dns
$2 = {id = 24530, qr = 0, opcode = 0, aa = 0, tc = 0, rd = 1, ra = 0, 
  unused = 0, ad = 0, cd = 0, rcode = 0, qdcount = 1, ancount = 0, 
  nscount = 0, arcount = 0}



More information about the dns-operations mailing list