Hi!
On 2016-02-22 20:08, Stuart Henderson wrote:
>On 2016-02-21, Imre Oolberg <i...@auul.pri.ee> wrote:
>>Hi!
>>
>>I am in the middle of implementing
https://www.dns-oarc.net/tools/dsc/
>>while on OpenBSD is running nameserver process i.e. there needs to
be
>>also collector part of DSC and I am not succeeding compiling it.
>>Platform is OpenBSD v 5.8 amd64 and source is
dsc-201502251630.tar.gz.
>>After unpacking i get
>>
>>imre-obsd-58-rec:~/dsc/l/dsc-201502251630/collector# make
>>...
>>cc -g -Wall -DUSE_IPV6=1 -g -O2 -g -Wall -DUSE_IPV6=1 -g -O2
-c
>>base64.c
>>cc -g -Wall -DUSE_IPV6=1 -g -O2 -g -Wall -DUSE_IPV6=1 -g -O2
-c
>>generic_counter.c
>>cc -g -Wall -DUSE_IPV6=1 -g -O2 -g -Wall -DUSE_IPV6=1 -g -O2
-c
>>pcap.c
>>cc -g -Wall -DUSE_IPV6=1 -g -O2 -g -Wall -DUSE_IPV6=1 -g -O2
-c
>>ncap.c
>>cc -g -Wall -DUSE_IPV6=1 -g -O2 -g -Wall -DUSE_IPV6=1 -g -O2
-c
>>dns_protocol.c
>>dns_protocol.c:9:33: error: arpa/nameser_compat.h: No such file or
>>directory
>>*** Error 1 in dsc (<sys.mk>:87 'dns_protocol.o')
>>*** Error 1 in /root/dsc/l/dsc-201502251630/collector (Makefile:2
>>'all')
>>
>>So i found that probably i need libbind package and continuing in
>>collector/dsc directory like this
>>
>>imre-obsd-58-rec:~/dsc/l/dsc-201502251630/collector/dsc#
./configure
>>CFLAGS="-I/usr/local/include/bind"
LDFLAGS="-L/usr/local/lib/libbind"
>>
>>i get further (it think almost to the end on compilation)
>>
>>imre-obsd-58-rec:~/dsc/l/dsc-201502251630/collector/dsc# make
>>...
>>cc -g -Wall -DUSE_IPV6=1 -I/usr/local/include/bind -g -Wall
>>-DUSE_IPV6=1 -I/usr/local/include/bind -c config_hooks.c
>>cc -g -Wall -DUSE_IPV6=1 -I/usr/local/include/bind -g -Wall
>>-DUSE_IPV6=1 -I/usr/local/include/bind -c hashtbl.c
>>cc -g -Wall -DUSE_IPV6=1 -I/usr/local/include/bind -g -Wall
>>-DUSE_IPV6=1 -I/usr/local/include/bind -c lookup3.c
>>cc -g -Wall -DUSE_IPV6=1 -I/usr/local/include/bind -g -Wall
>>-DUSE_IPV6=1 -I/usr/local/include/bind -c xmalloc.c
>>cc -g -Wall -DUSE_IPV6=1 -I/usr/local/include/bind -g -Wall
>>-DUSE_IPV6=1 -I/usr/local/include/bind -c inX_addr.c
>>c++ -o dsc base64.o generic_counter.o pcap.o ncap.o
dns_protocol.o
>>dns_message.o ip_message.o daemon.o md_array.o null_index.o
>>qtype_index.o qclass_index.o tld_index.o country_index.o
>>rcode_index.o qnamelen_index.o qname_index.o msglen_index.o
>>client_ipv4_addr_index.o client_ipv4_net_index.o
>>md_array_xml_printer.o ip_direction_index.o ip_proto_index.o
>>ip_version_index.o certain_qnames_index.o
query_classification_index.o
>>idn_qname_index.o edns_version_index.o edns_bufsiz_index.o
>>do_bit_index.o rd_bit_index.o tc_bit_index.o qr_aa_bits_index.o
>>opcode_index.o transport_index.o dns_ip_version_index.o
>>dns_source_port_index.o ParseConfig.o config_hooks.o hashtbl.o
>>lookup3.o xmalloc.o inX_addr.o -L/usr/local/lib/libbind
-lpcap
>> ../TmfBase/Hapy/src/.libs/libHapy.a
>>dns_protocol.o: In function `grok_question':
>>/root/dsc/l/dsc-201502251630/collector/dsc/dns_protocol.c:93:
warning:
>>warning: strcpy() is almost always misused, please use strlcpy()
>>pcap.o: In function `handle_tcp':
>>/root/dsc/l/dsc-201502251630/collector/dsc/pcap.c:552: warning:
>>warning: sprintf() is often misused, please use snprintf()
>>query_classification_index.o: In function `a_for_a':
>>
>>/root/dsc/l/dsc-201502251630/collector/dsc/query_classification_index.c:71:
>>undefined reference to `__inet_aton'
>>inX_addr.o: In function `inXaddr_ntop':
>>/root/dsc/l/dsc-201502251630/collector/dsc/inX_addr.c:28:
undefined
>>reference to `__inet_ntop'
>>/root/dsc/l/dsc-201502251630/collector/dsc/inX_addr.c:31:
undefined
>>reference to `__inet_ntop'
>>inX_addr.o: In function `inXaddr_pton':
>>/root/dsc/l/dsc-201502251630/collector/dsc/inX_addr.c:41:
undefined
>>reference to `__inet_pton'
>>/root/dsc/l/dsc-201502251630/collector/dsc/inX_addr.c:45:
undefined
>>reference to `__inet_pton'
>>collect2: ld returned 1 exit status
>>*** Error 1 in /root/dsc/l/dsc-201502251630/collector/dsc
(Makefile:65
>>'dsc')
>>
>>For example text around query_classification_index.c:71 reads like
this
>>
>>static int
>>a_for_a(const dns_message * m)
>>{
>> struct in_addr a;
>> if (m->qtype != T_A)
>> return 0;
>> if (inet_aton(m->qname, &a))
>> return CLASS_A_FOR_A;
>> return 0;
>>}
>>
>>I would be very thankful if you could point to me how to solve it
and
>>progress from here to ./dsc binary.
>>
>>
>>Imre
>>
>>PS I searched ports collection for similarities and actually found
file
>>
>>/usr/ports/pobj/dnstop-20140915/dnstop-20140915/inX_addr.c
>>
>>which is very similar to
>>
>>/root/dsc/l/dsc-201502251630/collector/dsc/inX_addr.c
>>
>>and has some inet_* funtsions in it. dnstop from ports compiles
and
>>runs fine. So i think i must be missing something obvious here.
Needless
>>to say i cant compile and read source but still i try to be
attentive to
>>your answer! :)
>>
>>
>
>You're going to need some things like
>
>(cflags/cxxflags)
>-nostdinc -I/usr/local/include/bind -I/usr/include
-I/usr/local/include
>
>(ldflags)
>-L/usr/local/lib/libbind -Wl,-rpath,/usr/local/lib/libbind
>
>It may still not work, the BIND resolver and the system resolver
have
>conflicts in some areas. Some programs work like this, but it's
more
>luck than anything else.
>
>Alternatively try looking at old versions, they have some code to
>support OpenBSD's resolver, but it's not clear whether it was
>unfinished, or whether it used to work and got broken with updates.
Thank you for the answer, i tried like this and with every dsc .tgz
listed
# ./configure CFLAGS="-nostdinc -I/usr/local/include/bind
-I/usr/include
-I/usr/local/include" LDFLAGS="-L/usr/local/lib/libbind
-Wl,-rpath,/usr/local/lib/libbind"
but got same result. I decided to write to dsc-users list and
referred to
here, and good people there reacted and said they will soon look at
it and
most probably can sort it out
https://lists.dns-oarc.net/pipermail/dsc-users/2016-February/000005.html
I am in no position to expect a solution but of course i would be
glad if
one comes along. I will let know how it goes.