adns-1.5.0~rc1/0000775000175000017500000000000012423173323011350 5ustar ianianadns-1.5.0~rc1/README0000664000175000017500000001621612423007730012234 0ustar ianian GNU adns Advanced, easy to use, asynchronous-capable DNS client library and utilities. adns is a resolver library for C (and C++) programs, and a collection of useful DNS resolver utilities. C library In contrast with the standard interfaces, gethostbyname et al and libresolv, it has the following features: * It is reasonably easy to use for simple programs which just want to translate names to addresses, look up MX records, etc. * It can be used in an asynchronous, non-blocking, manner. Many queries can be handled simultaneously. * Responses are decoded automatically into a natural representation for a C program - there is no need to deal with DNS packet and RRDATA formats. * Sanity checking (eg, name syntax checking, reverse/forward correspondence, CNAME pointing to CNAME) is performed automatically by default. * Time-to-live, CNAME and other similar information is returned in an easy-to-use form, without getting in the way. * There is no global state in the library; resolver state is an opaque data structure which the client creates explicitly. A program can have several instances of the resolver. * Errors are reported to the application in a way that distinguishes the various causes of failure properly. * adns understands conventional resolv.conf, but this can overridden by environment variables. * Flexibility. For example, the application can tell adns to: ignore environment variables (for setuid programs), disable hostname syntax sanity checks to return arbitrary data, override or ignore resolv.conf in favour of supplied configuration, etc. * Believed to be correct ! For example, will correctly back off to TCP in case of long replies or queries, or to other nameservers if several are available. It has sensible handling of bad responses etc. DNS utility programs adns also comes with a number of utility programs for use from the command line and in scripts: * adnslogres is a much faster version of Apache's logresolv program. * adnsresfilter is a filter which copies its input to its output, replacing IP addresses by the corresponding names, without unduly delaying the output. For example, you can usefully pipe the output of netstat -n, tcpdump -ln, and the like, into it. * adnshost is a general-purpose DNS lookup utility which can be used easily in from the command line and from shell scripts to do simple lookups. In a more advanced mode it can be used as a general-purpose DNS helper program for scripting languages which can invoke and communicate with subprocesses. See the [1]adnshost usage message for a summary of its capabilities. Documentation I'm afraid there is no manual yet. However, competent C programmers should be able to use the library based on the [2]commented adns.h header file, and the usage messages for the programs should be sufficient. Feedback I'd be pleased if you would let me know if you're using my library in your project, and what you think of it. Bug reports should be reported to the [3]GNU Debbugs. Send an email to submit@debbugs.gnu.org and at the top of your email, in a paragraph of its own, write the single line Package: adns Your bug report will be published via to the adns-discuss list. Feedback and discussion takes place on the adns-discuss list. You can mail me privately at ijackson@chiark.greenend.org.uk. Mailinglists I have set up mailinglists adns-announce and adns-discuss. The announcements list is moderated and will contain only announcements of important bugs, new versions, etc. There are [4]archives and subscription web pages, or you can subscribe by sending mail containing the word `subscribe' to adns-announce-REQUEST@chiark.greenend.org.uk or adns-discuss-REQUEST@chiark.greenend.org.uk. Documentation * [5]adns.h API header file with documentation comments * [6]usage message for adnshost Download and source code * The [7]current release as a gzipped tarfile. * [8]Previous versions and other files (including OpenPGP signatures). * [9]master git (version control) repository browser. adns is also available from the [10]GNU Project FTP servers and their [11]mirrors. Installation note adns requires a real nameserver like BIND running on the same system or a nearby one, which must be willing to provide `recursive service'. I.e., adns is a `stub resolver'. adns requires that your real nameserver is on the same machine, or connected via a secure network, so that an attacker cannot fake the replies to adns's queries. References and related projects * [12]Python bindings by Andy Dustman. * [13]liboop event loop library has a built-in binding for adns. * [14]port to MS Visual Studio 6 C++ by Jarle Aase. Copyright and licensing adns is Copyright 1997-2000,2003,2006,2014 Ian Jackson, Copyright 2014 Mark Wooding, Copyright 1999-2000,2003,2006 Tony Finch, and Copyright (C) 1991 Massachusetts Institute of Technology. adns is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program and documentation is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the [15]GNU General Public License for more details. You should have received a copy of the GNU General Public License along with adns, or one should be available above; if not, write to the [16]Free Software Foundation or email ijackson@chiark.greenend.org.uk. __________________________________________________________________ Ian Jackson / ijackson@chiark.greenend.org.uk. [17]GNU home page; [18]chiark home page; [19]site or mirror home page This web page is Copyright (C)1996-2005,2014 Ian Jackson. See the [20]Copyright/acknowledgements. References 1. http://www.chiark.greenend.org.uk/~ian/adns/docs/adnshost.txt 2. http://www.chiark.greenend.org.uk/~ian/adns/docs/adns.h.txt 3. http://debbugs.gnu.org/ 4. http://www.chiark.greenend.org.uk/mailman/listinfo 5. http://www.chiark.greenend.org.uk/~ian/adns/docs/adns.h.txt 6. http://www.chiark.greenend.org.uk/~ian/adns/docs/adnshost.txt 7. http://www.chiark.greenend.org.uk/~ian/adns/adns.tar.gz 8. http://www.chiark.greenend.org.uk/~ian/adns/ftp/ 9. http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git/adns.git/ 10. http://www.gnu.org/ 11. http://www.gnu.org/order/ftp.html 12. http://code.google.com/p/adns-python 13. http://www.lysator.liu.se/liboop/ 14. http://adns.jgaa.com/ 15. http://www.chiark.greenend.org.uk/~ian/adns/docs/COPYING.txt 16. http://www.fsf.org/ 17. http://www.gnu.org/ 18. http://www.chiark.greenend.org.uk/ 19. file://localhost/ 20. http://www.chiark.greenend.org.uk/~ian/sw-www-copy.html adns-1.5.0~rc1/GPL-vs-LGPL0000664000175000017500000001077612421042303013101 0ustar ianian GPL vs LGPL, in the context of adns ----------------------------------- Several people have asked me to release GNU adns under the GNU Lesser General Public Licence (LGPL, formerly the Library GPL) instead of the `stronger' GPL. This file is intended to answer most of these questions. If you still have questions or comments, please mail me at . Typically there are two or three kinds of situation where people make this request: the first is where another free software project currently using a GPL-incompatible licence, wishes to use adns. The second case, which often overlaps with the first, is where a free software project is currently using an MIT-like licence or the LGPL and fear `GPL infection'. The third case is where someone is developing a proprietary program and wishes to make use of adns but doesn't wish to make their program free software 1. GPL-incompatible free software licences ------------------------------------------ Regrettably, there are a number of free software licences (and semi-free licences) in existence which are not compatible with the GPL. That is, they impose restrictions which are not present in the GPL, and therefore distributing a whole work which contains both such a program and a GPL'd program is not possible: either the combination would have to be distributed under the GPL (violating the restrictions made by the original author), or under the GPL-incompatible licence (violating the GPL). I may be prepared to make exceptions for such a licence. Please contact me at with the full text of the GPL-incompatible licence. However, I would usually prefer it if you could use a GPL-compatible licence for your project instead. 2. GPL-avoiding projects (MIT licence, et al) --------------------------------------------- Some free software projects prefer to avoid the GPL and other licences which force the software always to be free. Instead they use something like the MIT X licence, which allows proprietary versions of their software, or the in the case of some free libraries, the LGPL, which allows proprietary applications. I have to say that I think these people are misguided, but that doesn't mean that they don't have a perfect right to do that. Some of these people think that merely writing to an interface provided by GPL'd software will cause their program to become GPL'd too, even if they don't distribute the GPL'd software. I don't think this is the case. I'm perfectly happy for non-GPL'd but GPL-compatible software to refer to adns in its source code. However, I think that exectuables (or compiled libraries) which contain or are dynamically linked against adns must be GPL'd; likewise executable programs (whether compiled or in an interpreted language) which require utilities from adns to function properly must be GPL'd. So, you can distribute your non-GPL'd program source which needs adns to compile (provided it's under a GPL-compatible licence), but people who wish to distribute binaries must do so under the terms of the GNU GPL. This may make sense for some GPL-avoiding free software projects; people can still make proprietary programs from your code, provided that they make some provision to replace adns with something whose copyright allows proprietary versions. However, this doesn't make much sense for the authors of LGPL'd libraries. All I can say to them is to ask which is more important: that their library be well-constructed and use all the best technology available as free software, or whether it is worth degrading quality of their library in order to allow proprietary programs to use it ! To help the case of LGPL'd libraries for which adns is not a vital component - for example, a library which provides access to other libraries so that programs which use it need only use certain parts, I have released adns.h (just the public header file) under the LGPL as well as the GPL. See the copyright notice in adns.h for details. Note that this will not help you if it adns is essential to the functioning of your library, because all programs using your library must link against both your library and adns and so must be GPL'd. For some information and views from the Free Software Foundation on free software licensing, visit: Various licenses and comments about them at http://www.fsf.org/philosophy/license-list.html Why you shouldn't use the Library GPL for your next library at http://www.fsf.org/philosophy/why-not-lgpl.html Local variables: mode: text End: adns-1.5.0~rc1/acconfig.h0000664000175000017500000000566312421042025013274 0ustar ianian/* * acconfig.h * input file for autoheader/autoconf/configure: extra stuff for config.h */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ /* Define if inline functions a la GCC are available. */ #undef HAVE_INLINE /* Define if function attributes a la GCC 2.5 and higher are available. */ #undef HAVE_GNUC25_ATTRIB /* Define if constant functions a la GCC 2.5 and higher are available. */ #undef HAVE_GNUC25_CONST /* Define if nonreturning functions a la GCC 2.5 and higher are available. */ #undef HAVE_GNUC25_NORETURN /* Define if printf-format argument lists a la GCC are available. */ #undef HAVE_GNUC25_PRINTFFORMAT /* Define if we want to include rpc/types.h. Crap BSDs put INADDR_LOOPBACK there. */ #undef HAVEUSE_RPCTYPES_H @BOTTOM@ /* Use the definitions: */ #ifndef HAVE_INLINE #define inline #endif #ifdef HAVE_POLL #include #else /* kludge it up */ struct pollfd { int fd; short events; short revents; }; #define POLLIN 1 #define POLLPRI 2 #define POLLOUT 4 #endif /* GNU C attributes. */ #ifndef FUNCATTR #ifdef HAVE_GNUC25_ATTRIB #define FUNCATTR(x) __attribute__(x) #else #define FUNCATTR(x) #endif #endif /* GNU C printf formats, or null. */ #ifndef ATTRPRINTF #ifdef HAVE_GNUC25_PRINTFFORMAT #define ATTRPRINTF(si,tc) format(printf,si,tc) #else #define ATTRPRINTF(si,tc) #endif #endif #ifndef PRINTFFORMAT #define PRINTFFORMAT(si,tc) FUNCATTR((ATTRPRINTF(si,tc))) #endif /* GNU C nonreturning functions, or null. */ #ifndef ATTRNORETURN #ifdef HAVE_GNUC25_NORETURN #define ATTRNORETURN noreturn #else #define ATTRNORETURN #endif #endif #ifndef NONRETURNING #define NONRETURNING FUNCATTR((ATTRNORETURN)) #endif /* Combination of both the above. */ #ifndef NONRETURNPRINTFFORMAT #define NONRETURNPRINTFFORMAT(si,tc) FUNCATTR((ATTRPRINTF(si,tc),ATTRNORETURN)) #endif /* GNU C constant functions, or null. */ #ifndef ATTRCONST #ifdef HAVE_GNUC25_CONST #define ATTRCONST const #else #define ATTRCONST #endif #endif #ifndef CONSTANT #define CONSTANT FUNCATTR((ATTRCONST)) #endif #ifdef HAVEUSE_RPCTYPES_H #include #endif adns-1.5.0~rc1/install-sh0000775000175000017500000001272112421042025013347 0ustar ianian#! /bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 adns-1.5.0~rc1/.gitignore0000664000175000017500000000107112422540543013340 0ustar ianianMakefile config.log config.cache config.status autom4te.cache dist_tmp adns-*.tar.gz adns-*.tar.gz.sig common.make settings.make *.tmp* *.o *.so *.a *~ adnshost.txt x.gdb client/Makefile client/adnstest_s client/fanftest_s client/addrtext_s client/adnslogres client/adnslogres_s client/adnsheloex client/adnsheloex_s client/adnshost client/adnshost_s client/adnsresfilter client/adnsresfilter_s dynamic/Makefile dynamic/libadns.so.* regress/Makefile regress/*_record regress/*_playback regress/output-*.* regress/pipe.out regress/pipe.err src/Makefile src/config.h web adns-1.5.0~rc1/README.html0000664000175000017500000001774312422540543013210 0ustar ianianadns - advanced, alternative, asynchronous resolver

GNU adns

Advanced, easy to use, asynchronous-capable DNS client library and utilities.

adns is a resolver library for C (and C++) programs, and a collection of useful DNS resolver utilities.

C library

In contrast with the standard interfaces, gethostbyname et al and libresolv, it has the following features:
  • It is reasonably easy to use for simple programs which just want to translate names to addresses, look up MX records, etc.
  • It can be used in an asynchronous, non-blocking, manner. Many queries can be handled simultaneously.
  • Responses are decoded automatically into a natural representation for a C program - there is no need to deal with DNS packet and RRDATA formats.
  • Sanity checking (eg, name syntax checking, reverse/forward correspondence, CNAME pointing to CNAME) is performed automatically by default.
  • Time-to-live, CNAME and other similar information is returned in an easy-to-use form, without getting in the way.
  • There is no global state in the library; resolver state is an opaque data structure which the client creates explicitly. A program can have several instances of the resolver.
  • Errors are reported to the application in a way that distinguishes the various causes of failure properly.
  • adns understands conventional resolv.conf, but this can overridden by environment variables.
  • Flexibility. For example, the application can tell adns to: ignore environment variables (for setuid programs), disable hostname syntax sanity checks to return arbitrary data, override or ignore resolv.conf in favour of supplied configuration, etc.
  • Believed to be correct ! For example, will correctly back off to TCP in case of long replies or queries, or to other nameservers if several are available. It has sensible handling of bad responses etc.

DNS utility programs

adns also comes with a number of utility programs for use from the command line and in scripts:
  • adnslogres is a much faster version of Apache's logresolv program.
  • adnsresfilter is a filter which copies its input to its output, replacing IP addresses by the corresponding names, without unduly delaying the output. For example, you can usefully pipe the output of netstat -n, tcpdump -ln, and the like, into it.
  • adnshost is a general-purpose DNS lookup utility which can be used easily in from the command line and from shell scripts to do simple lookups. In a more advanced mode it can be used as a general-purpose DNS helper program for scripting languages which can invoke and communicate with subprocesses. See the adnshost usage message for a summary of its capabilities.

Documentation

I'm afraid there is no manual yet. However, competent C programmers should be able to use the library based on the commented adns.h header file, and the usage messages for the programs should be sufficient.

Feedback

I'd be pleased if you would let me know if you're using my library in your project, and what you think of it.

Bug reports should be reported to the GNU Debbugs. Send an email to submit@debbugs.gnu.org and at the top of your email, in a paragraph of its own, write the single line

Package: adns
Your bug report will be published via to the adns-discuss list.

Feedback and discussion takes place on the adns-discuss list. You can mail me privately at ijackson@chiark.greenend.org.uk.

Mailinglists

I have set up mailinglists adns-announce and adns-discuss. The announcements list is moderated and will contain only announcements of important bugs, new versions, etc.

There are archives and subscription web pages, or you can subscribe by sending mail containing the word `subscribe' to adns-announce-REQUEST@chiark.greenend.org.uk or adns-discuss-REQUEST@chiark.greenend.org.uk.

Documentation

Download and source code

adns is also available from the GNU Project FTP servers and their mirrors.

Installation note

adns requires a real nameserver like BIND running on the same system or a nearby one, which must be willing to provide `recursive service'. I.e., adns is a `stub resolver'.

adns requires that your real nameserver is on the same machine, or connected via a secure network, so that an attacker cannot fake the replies to adns's queries.

References and related projects

Copyright and licensing

adns is Copyright 1997-2000,2003,2006,2014 Ian Jackson, Copyright 2014 Mark Wooding, Copyright 1999-2000,2003,2006 Tony Finch, and Copyright (C) 1991 Massachusetts Institute of Technology.

adns is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program and documentation is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with adns, or one should be available above; if not, write to the Free Software Foundation or email ijackson@chiark.greenend.org.uk.


Ian Jackson / ijackson@chiark.greenend.org.uk.

GNU home page; chiark home page; site or mirror home page

This web page is Copyright (C)1996-2005,2014 Ian Jackson. See the Copyright/acknowledgements. adns-1.5.0~rc1/TODO0000664000175000017500000000117412421042027012035 0ustar ianianWISHLIST: * Make timeouts configurable. * `fake' reverse queries (give nnn.nnn.nnn.nnn either always or on error) * `fake' forward queries (allow nnn.nnn.nnn.nnn -> A) * DNSSEC compatibility - be able to retreive KEY and SIG RRs * DNSSEC minimum functionality - ignore Additional when AD set. * IPv6 name<->address translation - but which version ?? * IPv6 transport. * Threadsafe version/mode. * Caching in the library. * Make port configurable in config file. * `Nameserver sent bad response' should produce a hexdump in the log (see eg mail to ian@davenant Mon, 25 Oct 2004 14:19:46 +0100 re `compressed datagram contains loop') adns-1.5.0~rc1/configure0000775000175000017500000045376612423172576013315 0ustar ianian#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= ac_unique_file="src/adns.h" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LIBOBJS SHLIBSONAME SHLIBFILE SHLIBFORLINK MKSHLIB_3 MKSHLIB_2 MKSHLIB_1 SHLIBCC WARNS EGREP GREP PROGS_HAVE_TSEARCH INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM RANLIB CPP OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC ENABLE_DYNAMIC target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dynamic ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dynamic use static linking --enable-dynamic=elf create and use ELF dynamic library (default) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers src/config.h" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether you requested dynamic linking" >&5 $as_echo_n "checking whether you requested dynamic linking... " >&6; } # Check whether --enable-dynamic was given. if test "${enable_dynamic+set}" = set; then : enableval=$enable_dynamic; case "$enableval" in elf|yes) ENABLE_DYNAMIC=elf { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (ELF)" >&5 $as_echo "yes (ELF)" >&6; } ;; no) ENABLE_DYNAMIC=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; *) as_fn_error $? "\"invalid value $enableval for --enable-dynamic, try yes or elf\"" "$LINENO" 5 ;; esac else ENABLE_DYNAMIC=elf { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, by default" >&5 $as_echo "yes, by default" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' for ac_func in poll do : ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll" if test "x$ac_cv_func_poll" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_POLL 1 _ACEOF fi done ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket" if test "x$ac_cv_func_socket" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 $as_echo_n "checking for socket in -lsocket... " >&6; } if ${ac_cv_lib_socket_socket+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char socket (); int main () { return socket (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_socket_socket=yes else ac_cv_lib_socket_socket=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5 $as_echo "$ac_cv_lib_socket_socket" >&6; } if test "x$ac_cv_lib_socket_socket" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSOCKET 1 _ACEOF LIBS="-lsocket $LIBS" else as_fn_error $? "cannot find library function socket" "$LINENO" 5 fi fi ac_fn_c_check_func "$LINENO" "inet_ntoa" "ac_cv_func_inet_ntoa" if test "x$ac_cv_func_inet_ntoa" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_ntoa in -lnsl" >&5 $as_echo_n "checking for inet_ntoa in -lnsl... " >&6; } if ${ac_cv_lib_nsl_inet_ntoa+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char inet_ntoa (); int main () { return inet_ntoa (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nsl_inet_ntoa=yes else ac_cv_lib_nsl_inet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_inet_ntoa" >&5 $as_echo "$ac_cv_lib_nsl_inet_ntoa" >&6; } if test "x$ac_cv_lib_nsl_inet_ntoa" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBNSL 1 _ACEOF LIBS="-lnsl $LIBS" else as_fn_error $? "cannot find library function inet_ntoa" "$LINENO" 5 fi fi PROGS_IF_TSEARCH=adnsresfilter ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch" if test "x$ac_cv_func_tsearch" = xyes; then : PROGS_HAVE_TSEARCH=$PROGS_IF_TSEARCH else PROGS_HAVE_TSEARCH=''; { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: tsearch missing - not building client program(s) $PROGS_IF_TSEARCH" >&5 $as_echo "$as_me: WARNING: tsearch missing - not building client program(s) $PROGS_IF_TSEARCH" >&2;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for INADDR_LOOPBACK" >&5 $as_echo_n "checking for INADDR_LOOPBACK... " >&6; } if ${adns_cv_decl_inaddrloopback+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { INADDR_LOOPBACK; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : adns_cv_decl_inaddrloopback=yes else adns_cv_decl_inaddrloopback=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "$adns_cv_decl_inaddrloopback" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not in standard headers, urgh..." >&5 $as_echo "not in standard headers, urgh..." >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "rpc/types.h" "ac_cv_header_rpc_types_h" "$ac_includes_default" if test "x$ac_cv_header_rpc_types_h" = xyes; then : $as_echo "#define HAVEUSE_RPCTYPES_H 1" >>confdefs.h else as_fn_error $? "cannot find INADDR_LOOPBACK or rpc/types.h" "$LINENO" 5 fi fi ac_fn_c_check_func "$LINENO" "inet_aton" "ac_cv_func_inet_aton" if test "x$ac_cv_func_inet_aton" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lresolv" >&5 $as_echo_n "checking for inet_aton in -lresolv... " >&6; } if ${ac_cv_lib_resolv_inet_aton+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char inet_aton (); int main () { return inet_aton (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_resolv_inet_aton=yes else ac_cv_lib_resolv_inet_aton=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_inet_aton" >&5 $as_echo "$ac_cv_lib_resolv_inet_aton" >&6; } if test "x$ac_cv_lib_resolv_inet_aton" = xyes; then : LIBS="-lresolv $LIBS"; { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: inet_aton is in libresolv, urgh. Must use -lresolv." >&5 $as_echo "$as_me: WARNING: inet_aton is in libresolv, urgh. Must use -lresolv." >&2;} else as_fn_error $? "cannot find library function inet_aton" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking inlines" >&5 $as_echo_n "checking inlines... " >&6; } if ${dpkg_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { } inline int foo (int x) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : dpkg_cv_c_inline=yes else dpkg_cv_c_inline=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "x$dpkg_cv_c_inline" = xyes; then true { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_INLINE 1" >>confdefs.h else true { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "${GCC-no}" = yes; then WARNS="-Wall -Wmissing-prototypes -Wwrite-strings -Wstrict-prototypes -Wcast-qual -Wpointer-arith" saved_cflags="$CFLAGS" CFLAGS="$CFLAGS -Wno-pointer-sign" { $as_echo "$as_me:${as_lineno-$LINENO}: checking -Wno-pointer-sign" >&5 $as_echo_n "checking -Wno-pointer-sign... " >&6; } if ${adns_cv_c_wnoptrsign+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : adns_cv_c_wnoptrsign=yes else adns_cv_c_wnoptrsign=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "x$adns_cv_c_wnoptrsign" = xyes; then true { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } WARNS="$WARNS -Wno-pointer-sign" else true { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi CFLAGS="$saved_cflags" else WARNS= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking __attribute__((,,))" >&5 $as_echo_n "checking __attribute__((,,))... " >&6; } if ${adns_cv_c_attribute_supported+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int testfunction(int x) __attribute__((,,)) ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : adns_cv_c_attribute_supported=yes else adns_cv_c_attribute_supported=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "x$adns_cv_c_attribute_supported" = xyes; then true { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_GNUC25_ATTRIB 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking __attribute__((noreturn))" >&5 $as_echo_n "checking __attribute__((noreturn))... " >&6; } if ${adns_cv_c_attribute_noreturn+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int testfunction(int x) __attribute__((noreturn)) ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : adns_cv_c_attribute_noreturn=yes else adns_cv_c_attribute_noreturn=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "x$adns_cv_c_attribute_noreturn" = xyes; then true { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_GNUC25_NORETURN 1" >>confdefs.h else true { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking __attribute__((const))" >&5 $as_echo_n "checking __attribute__((const))... " >&6; } if ${adns_cv_c_attribute_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int testfunction(int x) __attribute__((const)) ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : adns_cv_c_attribute_const=yes else adns_cv_c_attribute_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "x$adns_cv_c_attribute_const" = xyes; then true { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_GNUC25_CONST 1" >>confdefs.h else true { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking __attribute__((format...))" >&5 $as_echo_n "checking __attribute__((format...))... " >&6; } if ${adns_cv_attribute_format+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int testfunction(char *y, ...) __attribute__((format(printf,1,2))) ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : adns_cv_attribute_format=yes else adns_cv_attribute_format=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "x$adns_cv_attribute_format" = xyes; then true { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_GNUC25_PRINTFFORMAT 1" >>confdefs.h else true { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else true { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi SHLIBFORLINK='libadns.so' SHLIBSONAME='$(SHLIBFORLINK).$(MAJOR)' SHLIBFILE='$(SHLIBSONAME).$(MINOR)' SHLIBCC='$(CC) $(CFLAGS) -fpic' MKSHLIB_1='$(CC) $(LDFLAGS) -shared -Wl,-soname=$(SHLIBSONAME) -o' MKSHLIB_2='' MKSHLIB_3='-lc' ac_config_files="$ac_config_files common.make settings.make Makefile src/Makefile client/Makefile dynamic/Makefile regress/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h" ;; "common.make") CONFIG_FILES="$CONFIG_FILES common.make" ;; "settings.make") CONFIG_FILES="$CONFIG_FILES settings.make" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "client/Makefile") CONFIG_FILES="$CONFIG_FILES client/Makefile" ;; "dynamic/Makefile") CONFIG_FILES="$CONFIG_FILES dynamic/Makefile" ;; "regress/Makefile") CONFIG_FILES="$CONFIG_FILES regress/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi adns-1.5.0~rc1/changelog0000664000175000017500000004767312423172760013247 0ustar ianianadns (1.5.0~rc1) UPSTREAM; urgency=low ABI/API changes: * Provide adns_qf_cname_strict flag, currently ignored because it's the default. This will allow us to make this not the default in the future while retaining forward and backward API and ABI compatibility. * Add `sizeforce' enum member value to force enum types in the APIs to be big (which will avoids theoretical future ABI-incompatibility). * Reject unknown flags passed by our caller. This will make it ABI-safe (although not ABI-backward-compatible) to add new flags in the future, as newer clients running against this old library will get ENOSYS. resolv.conf parsing: * Support `adns_ignoreunkcfg' resolv.conf option to ignore unknown options and keywords in resolv.conf. * Ignore various BIND9 resolv.conf keywords and options. * Fix resolv.conf option word splitting. Tests, build system, coding style, etc.: * Test cases show rrtype flag values in hex. * Parallelise `make check'. * Make vbuf__append_quoted1035 no longer extern (there are no out-of-file callers). * Remove all RCSids. * When releasing, check that the `make dist' tarball is identical to git. And provide a test mode for the RELEASE-CHECKLIST doc/script. * Add `make dist' tarball signature to .gitignore. * More correctly and effectively work around bugs in make (Debian #4073, #756123) affecting regress. -- Ian Jackson Sun, 26 Oct 2014 13:24:00 +0000 adns (1.5.0~rc0) UPSTREAM; urgency=low New features: * Support for queries about IPv6 data in all applicable adns query types (including AAAA, PTR, and adns_r_addr queries). (Thanks very much to Mark Wooding.) * Support for transport over IPv6. (Thanks to Mark Wooding again.) * adns_addr2text and adns_text2addr: Convenient functions for converting between addresses and address literals. Bugfixes: * Fix a crashing bug in adnslogres. (Debian#392102.) * Do all checks of checked PTR owner name before actually sending the query, and reject IPv4 PTR owner names whose labels have leading zero digits or values >255. Build system fixes and improvements: * `make clean' removes the pipes. * Work around bugs in make (Debian #4073, #756123) affecting regress. * Do not include Makefile and src/config.h in distribution tarball. Regression test debugging improvements: * Provide gdbwrap convenience script. * Honour ADNS_TEST_DEBUG env. var. (Mark Wooding.) Other improvements: * Licence changed to GPLv3 (still LGPLv2 for adns.h). * Source code cleanups. (Some from Mark Wooding.) * Now in git. * Documentation and webpage updates. -- Ian Jackson Mon, 20 Oct 2014 01:29:50 +0100 adns (1.4); urgency=low Improvements for multithreaded programs: * New documentation comment in adns.h explaining thread guarantees (or lack of them), replaces `single-threaded' note at the top. * Fix string conversion of adns_r_addr not to use a static buffer (function csp_addr) so as to make thread promise true. * Make an internal variable const-correct (expectdomain in pa_ptr). -- Ian Jackson Tue, 17 Oct 2006 17:05:08 +0100 adns (1.3); urgency=low Portability fixes: * Cast ptrdiff_t to int for %.*s length in adnsheloex and adnslogres, as is required. (Report from Jim Meyering.) * In configure.in, quote macro name argument to define() to suppress spurious autoconf error. (Report from Mihai Ibanescu.) * Use autoconf's values for {bin,lib,include}dir rather than inventing our own from @exec_prefix@, making configure --libdir work. (Patch from Mihai Ibanescu.) * Remove spurious `_' from {bin,lib,include}dir Makefile variables. (Report from Mihai Ibanescu.) * Do away with `mismatch' variable in parse.c:adns__findrr_anychk so that overzealous GCC cannot complain about members of eo_fls being uninitialised. (Report from Jim Meyering.) -- Ian Jackson Tue, 6 Jun 2006 20:22:30 +0100 adns (1.2); urgency=medium New features: * Support for SRV RRs. * Support for unknown RR types (according to RFC3597) via adns_r_unknown. * Allow `;'-comments in resolv.conf (report from Colin Charles). * New adnsheloex client courtesy of Tony Finch. * New adns_init_logfn etc. for having logging use a callback function. Bugfixes: * Fix error in prototype in definition of adns__parse_domain. * Add missing ENOTSOCK to hcommon.c.m4 (was already in hcommon.c!) Portability fixes prompted by Bernd Eckenfels, the Debian maintainer: * Correct type of various printf arguments: ptrdiff_t != int. * Do not print size of leaked blocks of memory (this causes a spurious regression test failure on some platforms). * Provide adns_if_none and adns_qf_none (which will help with compilers which complain about plain `0' being passed where an enum is wanted). * adnstest converts some errno values to EFOOBAR: all of the ones mentioned in adns.h, at least. This makes the regression test more portable (fixes problem noticed by Bernd Eckenfels). * Add -Wno-pointer-sign if GCC has that option. Documentation improvements: * Add documentation comment by definition of adns_r_ptr_raw type enum. * Document in adns.h EINVAL from adns_init meaning bad configuration. * Include several new references to related programs to README.html. * Redacted the TODO list. * New LICENCE.WAIVERS file for GPL-incompatility workarounds. * Clarified GPL-vs-LGPL: a bit less hostile and a bit more mercenary. * Copyright notices updated. Packaging changes: * Update MINOR to 2 and DISTVERSION and ADNS_VERSION_STRING to 1.2. * Reran autoconf/autoheader (autoconf Debian 2.13-54). * Create $(bin_dir) and $(lib_dir) on `make install', and also make a libadns.so.1 -> libadns.so.1. link. (Suggestions and patch from Nix of esperi.org.uk.) * Add .PHONY: install to Makefile, to help people with demented fs's. * Darwin listed in INSTALL. Minor test harness improvements: * Hgettimeofday calls Tensurerecordfile (was Tensureinput/outputfile). * Add bind(2) and listen(2) wrappers (for epithet, but harmless in adns). -- Ian Jackson Sat, 8 Apr 2006 15:41:28 +0100 adns (1.1); urgency=medium Major bugfixes: * Do not spin if connect() fails immediately (!) * Stop searching on a CNAME (even if it's broken). * When search list runs out, _qf_owner sets owner to query domain. * Fix bogus multiple updates to p in transmit.c (!) Portability improvements: * Fix up spurious #undef's in hredirect.h. * Don't use any more, it was a mistake made in pre-1.0 (and there doesn't seem to be much explanation why). * Understand and sort of check OpenBSD `lookup' resolv.conf directive. * #include in internal.h (for abort etc). * Always #include before (for FreeBSD 4.6). Cosmetic and documentation improvements: * Added wishlist entry re configurable port no. * Problem with SERVFAIL in TODO. * README.html: mentioned Jarle Aase's Windows port, and other fixes. * Some better source code formatting/wrapping. -- Ian Jackson Tue, 1 Jul 2003 22:55:29 +0100 adns (1.0); urgency=medium Bugfixes: * Treat 8-bit characters in email addrs as RFC822 `special' (=> quote). * Fix incorrect `compressed datagram contains loop' error. * Actually compile shared libraries by default ! * Fix adnsresfilter usage message to include correct default timeout. General improvements: * adnshost, adnslogres, adnsresfilter have options for config override. * adnsresfilter has --debug option. * Improvements to adnslogres (incl. new -c option) from Tony Finch. * adnslogres has --help option, all utilities support --version. * Documentation improved somewhat, including new GPL-vs-LGPL file. Changes for non-BETA release: * Change shared library soname to 1.0. * Do not install adnstest test utility. Regression test improvements: * Tests now include adnshost, adnslogres and adnsresfilter. * Test cancellation both before and after query completion. Portability fixes and cleanups: * adnstest: setvbuf(stdout,...) before we do first output. * Cope with compilers that don't do `inline'. * Add and fix various missing system #includes. * Find install-sh properly when we need to use it, and chmod it +x. * Do not use variadic macro, use stdarg instead (adnslogres.c). * Regression tests work even if some syscalls are already macros. * #include "config.h" before "adns.h". * Cast a sizeof(...) in src/event.c to unsigned long before printing. * Add pre-generated versions of m4-generated files in regress/. * Kill bogus warning, adh-main.c: `arg2' might be used uninitialized ... * Add extra {...} near adnslogres.c:167 to kill spurious warning. * Use `printf' instead of `echo -n'. * Add list of tested platforms in INSTALL file. -- Ian Jackson Sun, 17 Sep 2000 15:15:58 +0100 adns (0.9) BETA; urgency=high Bug fixes: * Don't make _processany always kill the TCP connection with the message `TCP connection failed: poll/select: exceptional condition detected'. * Call MEM_ROUND in __transfer_interim (avoids assert fail `qu->interim_allocd>=0' on some platforms eg 64 bit). * adnsresfilter doesn't resolve textual prefixes of addresses (eg, 10.0.0.1 out of 10.0.0.123) if input happens to block at that point. * Do not spin if TCP connection blocks for writing (and add test case). * Fail queries if TCP dies repeatedly, rather than retrying many times. * Do not abort in a couple of places if TCP unexpectedly broken. * Do not free something twice if query fails and is then cancelled. Portability/compilation fixes: * Move `extern "C" {' to after #include <...>'s. * Pass LDFLAGS from configure on to ld via settings.make.in. * make clean deletes *.so and *.so.* files. * New --disable-dynamic configure option for non-ELF systems. * Use AC_PROG_INSTALL (=> perhaps install-sh), to avoid bad `install'. Minor improvements: * Do not print warning if sendto() gives EAGAIN. * adnsresfilter default timeout changed to 1000ms. * m1test script can invoke `hrecord' differently. * regress/output-.report file contains more useful info. * TODO list and other docs updated slightly. * Referrals with RD+RA set, or RCODE=Refused, don't generate warnings, just debug messages. BIND does this kind of thing all the time. -- Ian Jackson Wed, 9 Aug 2000 16:59:28 +0100 adns (0.8) BETA; urgency=medium Bugfixes: * Race near adns_beforeselect which could cause infinite timeout fixed (it's now less agressive, and will more often return a zero timeout.) * Fixed infrequent race causing assertion failure in adns__tcp_broken `ads->tcpstate == server_connecting || ads->tcpstate == server_ok'. * Spurious `server failure on unidentifiable query' warning suppressed. * If we get a referral, don't also always complain falsely about RD==0. * adnslogres: cast chars to unsigned char before using ctype.h macros. * In _beforeselect, global failure now means zero timeout, and in tcp_events, really never try to do anything with the TCP connection if act is zero. This might possibly cause an infinite delay (ie, lockup) if things go badly wrong *and* a really unlikely race happens. * Test suite `lines of syscall left' value is correct; !0 is failure. Portability fixes: * install-sh (from autoconf 2.12 Debian r13) included. * adnslogres: do not call equivalent of printf("%.*s",0,(char*)0). Documentation improvements: * Security/performance note added, about local nameservers and DNSSEC. * Documented that adns_rr_info _rr_hostaddr ( ) for address list means permanent failure, and ? means temporary failure. * Typo (*now for now in _beforeselect description) in adns.h fixed. * Copyright notices updated. Changes to produce more defensive code: * In adns_wait, assert that the timeout is not infinite. * Make qu->id start out as -2 when initially allocated. -- Ian Jackson Sun, 7 May 2000 23:37:13 +0100 adns (0.7) BETA; urgency=medium * New adns_submit_reverse_any for eg RBL lookups, and corresponding option to adnshost. * README updated (from www home page). * In answers, quote all except alphanums and - _ / + (and document). * Don't reject specials in cnames even without adns_qf_quotefail_cname. * Better checking of long domain names and labels in queries. * answer->owner may be null on error. Documented, and adnshost copes. * Better reporting of unexpected or weird replies from nameserver. * Add test case for recursion (infinite loop) domain compression. -- Ian Jackson Thu, 2 Mar 2000 01:55:53 +0000 adns (0.6) BETA; urgency=high Core library bugfixes: * Avoid infinite timeouts, causing lockup, when they should be zero ! * TCP handling revamped (avoids undefined behaviour due to reentrancy). * Do not fail assertion if _qf_owner, _qf_search, domain ends in `.'. * Many memory leaks fixed. Cool new utility: * adnsresfilter is like `cat' but converts addresses to names without delaying the output. Pipe `netstat -n', `tcpdump -ln', etc. into it. Test and client program bug and portability fixes: * Dynamic library building works properly. * adnshost prints somewhat better messages about some wrong usages. * Include and in adnshost.h. * adnslogres: parsing and error checking improved (Tony Finch). * Regression tests can cope with zero-length reads. * Regression tests check for memory leaks. * adnstest copes with empty query type list. * adnstest uninitialised memory bug fixed. General improvements * Better control of adnshost output and error messages (new -F options). * New adns_if_logpid option (functionality suggested by Tony Finch). * New fanftest test program from Tony Finch (ignored by `make install'). * Reads /etc/resolv-adns.conf if it exists. * Declare flags parameters as enums again, not ints. -- Ian Jackson Wed, 24 Nov 1999 17:13:03 +0000 adns (0.5) unstable; urgency=high New features: * adnslogres, ~100x faster replacement for Apache logresolve; Thanks to Tony Finch for the program and the performance figure. * Internal consistency checking with assert if right options set. * adns_wait_poll function like adns_wait but uses poll, not select. * adns_reverse_submit function for easy in-addr queries. * adns_errtypeabbrev funcion for getting eg "permfail" from _s_nodata. * adnshost utility for scripts and the like (rather alpha). Incompatible changes: * RRs with mailboxes never rejected due to strange chars if _raw. * Lack of a mailbox produces `.' not `<>'. * Better usage messages (and no default query domain) for adnstest. * Return EAGAIN from _check instead of EWOULDBLOCK. * adns_rr_info on _r_mx etc. shows status type abbrev and status number. Bugfixes: * Do not invoke __autosys indirectly from __procdgram (result: coredump usually in memmove, unless adns_if_noautosys was used). * Do not scramble innards when a query on the output queue is cancelled. * Do not close tcp socket twice. * Mailboxes containing spaces in their names are quoted. * Give ESRCH, not EAGAIN, if _check called with no queries outstanding. * adns_rr_hostaddr naddrs is -1 on temporary failure (as documented). * Reject TXT RRs with no strings. * Correct error messages for qname CNAME foo, foo CNAME bar. * adns_processany actually does something. * Fixed typos in adns.h. General improvements: * Promise not to change fds in adns_beforepoll (if now is specified). * Improved textual error string for _s_prohibitedcname. * New comment in adns_processany and return 0 (not r which is 0). * Documentation of resolv.conf directives and options, and of environment variables understood, in adns.h * Regression test scripts set EF_DISABLE_BANNER (for Electric Fence). Portability and build improvements: * Give install the '-c' flag (otherwise some delete the original !). * Do not remove top-level Makefile on `make clean'. * Don't complain so much about poll(2) tests if not available. * Do not give -u 0 -g 0 options to install. * Remove trailing , from some enums in adns.h. * Dynamically linked clients now made with -l, so as to avoid rpath. * Do not use $^ in make rules (should help with non-GNU make). * Declare flags parameters as ints not enums because C++ is crap. -- Ian Jackson Wed, 13 Oct 1999 02:24:35 +0100 adns (0.4) unstable; urgency=high General important bugfixes: * make _qf_owner work if _qf_search not specified, and test it (oops!) * ads->configerrno now initialised (in setup.c). * timercmp(,,<=) doesn't work - use !timercmp(,,>). * Changed memory semantics of internal queries to fix bugs. * Restarting a TCP-using query (eg due to CNAME) doesn't abort. Fixes for handling of broken kinds of reply: * Only accept a reply from the subset of servers we sent the query. * Ignore CNAME(s) in answer after RR(s) (and test). Other bugfixes and improvements: * adns_s_systemfail is in table of errors (for eg adns_strerror). * Do not ship config.cache, Makefile, etc. * Improvements to install instructions, TODO, etc. * Regression tests compile on systems without poll(2). * Do not install adnstest_s. * _submit returns ENOSYS, not adns_s_unknownquery; documented, tested. * includes , , . -- Ian Jackson Thu, 5 Aug 1999 01:17:38 +0100 adns (0.3) unstable; urgency=low Incompatible changes: * Low adns_status values (below adns_s_max_tempfail) renumbered to make room for future locally-induced and locally-detected errors. * Event loop functions for use by select(2) renamed and tidied up. Features / improvements: * New adns_errabbrev() for getting status abbreviation strings. * regress/checkall prints summary list of failed tests, if any. * Event loop functions for poll(2), and some raw variants. * adnstest has ability to use poll(2), and user can set initflags. * checkall prints passed list as well as failed list, if any failed. * You can iterate over outstanding queries (but only once at a time). Bugfixes: * Non-RFC822 mailbox `domain' formatting now works, and clarified. * Rejection of bad characters in domains (without quoteok) works. * Clean up parents from adns->childw (otherwise would abort/segfault). * In adnstest, allocate enough space for, and terminate, query types. * In adnstest, don't print errno values as adns_status values. * Added TODO file. * Made adnstest.c test context pointers. -- Ian Jackson Thu, 15 Jul 1999 00:23:12 +0100 adns (0.2) experimental; urgency=low Portability fixes for compilation on various platforms: * Include and in files with . * Don't use GCC union assignment feature (.rrs=0 => .rrs.untyped=0). * Explictly cast things to [const] struct sockaddr* in syscall args. * Check whether we need -lsocket. * Include in a few more files. * Include and for select. * Look for inet_aton and inet_ntoa (in -lnsl and -lsocket). * LDLIBS removed from dependency lists (some makes don't support this). * An `ambiguous else' warning from some compilers in types.c is removed. Other changes: * Added COPYING (copy of the GPL). * Regression test failure output improved. * Missing targets in regress/Makefile.in added. * Regression test doesn't rely on value of fcntl flags eg O_NONBLOCK. -- Ian Jackson Thu, 20 May 1999 00:27:32 +0100 adns (0.1) experimental; urgency=low * Initial public alpha release. -- Ian Jackson Sat, 17 April 1999 17:42:19 Local variables: mode: debian-changelog fill-column: 75 End: adns-1.5.0~rc1/src/0000775000175000017500000000000012423173322012136 5ustar ianianadns-1.5.0~rc1/src/setup.c0000664000175000017500000005437012423161434013454 0ustar ianian/* * setup.c * - configuration file parsing * - management of global state */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include #include #include #include #include #include #include #include #include #include #include "internal.h" static void readconfig(adns_state ads, const char *filename, int warnmissing); static void addserver(adns_state ads, const struct sockaddr *sa, int salen) { int i; adns_rr_addr *ss; char buf[ADNS_ADDR2TEXT_BUFLEN]; for (i=0; inservers; i++) { if (adns__sockaddrs_equal(sa, &ads->servers[i].addr.sa)) { adns__debug(ads,-1,0,"duplicate nameserver %s ignored", adns__sockaddr_ntoa(sa, buf)); return; } } if (ads->nservers>=MAXSERVERS) { adns__diag(ads,-1,0,"too many nameservers, ignoring %s", adns__sockaddr_ntoa(sa, buf)); return; } ss= ads->servers+ads->nservers; assert(salen <= sizeof(ss->addr)); ss->len = salen; memcpy(&ss->addr, sa, salen); ads->nservers++; } static void freesearchlist(adns_state ads) { if (ads->nsearchlist) free(*ads->searchlist); free(ads->searchlist); } static void saveerr(adns_state ads, int en) { if (!ads->configerrno) ads->configerrno= en; } static void configparseerr(adns_state ads, const char *fn, int lno, const char *fmt, ...) { va_list al; saveerr(ads,EINVAL); if (!ads->logfn || (ads->iflags & adns_if_noerrprint)) return; if (lno==-1) adns__lprintf(ads,"adns: %s: ",fn); else adns__lprintf(ads,"adns: %s:%d: ",fn,lno); va_start(al,fmt); adns__vlprintf(ads,fmt,al); va_end(al); adns__lprintf(ads,"\n"); } static int nextword(const char **bufp_io, const char **word_r, int *l_r) { const char *p, *q; p= *bufp_io; while (ctype_whitespace(*p)) p++; if (!*p) return 0; q= p; while (*q && !ctype_whitespace(*q)) q++; *l_r= q-p; *word_r= p; *bufp_io= q; return 1; } static void ccf_nameserver(adns_state ads, const char *fn, int lno, const char *buf) { adns_rr_addr a; char addrbuf[ADNS_ADDR2TEXT_BUFLEN]; int err; a.len= sizeof(a.addr); err= adns_text2addr(buf,DNS_PORT, 0, &a.addr.sa,&a.len); switch (err) { case 0: break; case EINVAL: configparseerr(ads,fn,lno,"invalid nameserver address `%s'",buf); return; default: configparseerr(ads,fn,lno,"failed to parse nameserver address `%s': %s", buf,strerror(err)); return; } adns__debug(ads,-1,0,"using nameserver %s", adns__sockaddr_ntoa(&a.addr.sa, addrbuf)); addserver(ads,&a.addr.sa,a.len); } static void ccf_search(adns_state ads, const char *fn, int lno, const char *buf) { const char *bufp, *word; char *newchars, **newptrs, **pp; int count, tl, l; if (!buf) return; bufp= buf; count= 0; tl= 0; while (nextword(&bufp,&word,&l)) { count++; tl += l+1; } newptrs= malloc(sizeof(char*)*count); if (!newptrs) { saveerr(ads,errno); return; } newchars= malloc(tl); if (!newchars) { saveerr(ads,errno); free(newptrs); return; } bufp= buf; pp= newptrs; while (nextword(&bufp,&word,&l)) { *pp++= newchars; memcpy(newchars,word,l); newchars += l; *newchars++ = 0; } freesearchlist(ads); ads->nsearchlist= count; ads->searchlist= newptrs; } static int gen_pton(const char *text, int want_af, adns_sockaddr *a) { int err; int len; len= sizeof(*a); err= adns_text2addr(text,0, adns_qf_addrlit_scope_forbid, &a->sa, &len); if (err) { assert(err == EINVAL); return 0; } if (want_af != AF_UNSPEC && a->sa.sa_family != want_af) return 0; return 1; } static void ccf_sortlist(adns_state ads, const char *fn, int lno, const char *buf) { const char *word; char tbuf[200], *slash, *ep; const char *maskwhat; struct sortlist *sl; int l; int initial= -1; if (!buf) return; ads->nsortlist= 0; while (nextword(&buf,&word,&l)) { if (ads->nsortlist >= MAXSORTLIST) { adns__diag(ads,-1,0,"too many sortlist entries," " ignoring %.*s onwards",l,word); return; } if (l >= sizeof(tbuf)) { configparseerr(ads,fn,lno,"sortlist entry `%.*s' too long",l,word); continue; } memcpy(tbuf,word,l); tbuf[l]= 0; slash= strchr(tbuf,'/'); if (slash) *slash++= 0; sl= &ads->sortlist[ads->nsortlist]; if (!gen_pton(tbuf, AF_UNSPEC, &sl->base)) { configparseerr(ads,fn,lno,"invalid address `%s' in sortlist",tbuf); continue; } if (slash) { if (slash[strspn(slash, "0123456789")]) { maskwhat = "mask"; if (!gen_pton(slash, sl->base.sa.sa_family, &sl->mask)) { configparseerr(ads,fn,lno,"invalid mask `%s' in sortlist",slash); continue; } } else { maskwhat = "prefix length"; initial= strtoul(slash,&ep,10); if (*ep || initial>adns__addr_width(sl->base.sa.sa_family)) { configparseerr(ads,fn,lno,"mask length `%s' invalid",slash); continue; } sl->mask.sa.sa_family= sl->base.sa.sa_family; adns__prefix_mask(&sl->mask, initial); } } else { maskwhat = "implied prefix length"; initial= adns__guess_prefix_length(&sl->base); if (initial < 0) { configparseerr(ads,fn,lno, "network address `%s'" " in sortlist is not in classed ranges," " must specify mask explicitly", tbuf); continue; } sl->mask.sa.sa_family= sl->base.sa.sa_family; adns__prefix_mask(&sl->mask, initial); } if (!adns__addr_matches(sl->base.sa.sa_family, adns__sockaddr_addr(&sl->base.sa), &sl->base,&sl->mask)) { if (initial >= 0) { configparseerr(ads,fn,lno, "%s %d in sortlist" " overlaps address `%s'",maskwhat,initial,tbuf); } else { configparseerr(ads,fn,lno, "%s `%s' in sortlist" " overlaps address `%s'",maskwhat,slash,tbuf); } continue; } ads->nsortlist++; } } static void ccf_options(adns_state ads, const char *fn, int lno, const char *buf) { const char *opt, *word, *endword, *endopt; char *ep; unsigned long v; int l; if (!buf) return; #define WORD__IS(s,op) ((endword-word) op (sizeof(s)-1) && \ !memcmp(word,s,(sizeof(s)-1))) #define WORD_IS(s) (WORD__IS(s,==)) #define WORD_STARTS(s) (WORD__IS(s,>=) ? ((word+=sizeof(s)-1)) : 0) while (nextword(&buf,&word,&l)) { opt=word; endopt=endword=word+l; if (WORD_IS("debug")) { ads->iflags |= adns_if_debug; continue; } if (WORD_STARTS("ndots:")) { v= strtoul(word,&ep,10); if (ep==word || ep != endword || v > INT_MAX) { configparseerr(ads,fn,lno,"option `%.*s' malformed" " or has bad value",l,opt); continue; } ads->searchndots= v; continue; } if (WORD_STARTS("adns_checkc:")) { if (WORD_IS("none")) { ads->iflags &= ~adns_if_checkc_freq; ads->iflags |= adns_if_checkc_entex; } else if (WORD_IS("entex")) { ads->iflags &= ~adns_if_checkc_freq; ads->iflags |= adns_if_checkc_entex; } else if (WORD_IS("freq")) { ads->iflags |= adns_if_checkc_freq; } else { configparseerr(ads,fn,lno, "option adns_checkc has bad value `%s' " "(must be none, entex or freq", word); } continue; } if (WORD_STARTS("adns_af:")) { ads->iflags &= ~adns_if_afmask; if (!WORD_IS("any")) for (;;) { const char *comma= memchr(word,',',endopt-word); endword=comma?comma:endopt; if (WORD_IS("ipv4")) ads->iflags |= adns_if_permit_ipv4; else if (WORD_IS("ipv6")) ads->iflags |= adns_if_permit_ipv6; else { if (ads->config_report_unknown) adns__diag(ads,-1,0,"%s:%d: " "option adns_af has bad value or entry `%.*s' " "(option must be `any', or list of `ipv4',`ipv6')", fn,lno, (int)(endword-word),word); break; } if (!comma) break; word= comma+1; } continue; } if (WORD_IS("adns_ignoreunkcfg")) { ads->config_report_unknown=0; continue; } if (/* adns's query strategy is not configurable */ WORD_STARTS("timeout:") || WORD_STARTS("attempts:") || WORD_IS("rotate") || /* adns provides the application with knob for this */ WORD_IS("no-check-names") || /* adns normally does IPv6 if the application wants it; control * this with the adns_af: option if you like */ WORD_IS("inet6") || /* adns does not do edns0 and this is not a problem */ WORD_IS("edns0")) continue; if (ads->config_report_unknown) adns__diag(ads,-1,0,"%s:%d: unknown option `%.*s'", fn,lno, l,opt); } #undef WORD__IS #undef WORD_IS #undef WORD_STARTS } static void ccf_clearnss(adns_state ads, const char *fn, int lno, const char *buf) { ads->nservers= 0; } static void ccf_include(adns_state ads, const char *fn, int lno, const char *buf) { if (!*buf) { configparseerr(ads,fn,lno,"`include' directive with no filename"); return; } readconfig(ads,buf,1); } static void ccf_lookup(adns_state ads, const char *fn, int lno, const char *buf) { int found_bind=0; const char *word; int l; if (!*buf) { configparseerr(ads,fn,lno,"`lookup' directive with no databases"); return; } while (nextword(&buf,&word,&l)) { if (l==4 && !memcmp(word,"bind",4)) { found_bind=1; } else if (l==4 && !memcmp(word,"file",4)) { /* ignore this and hope /etc/hosts is not essential */ } else if (l==2 && !memcmp(word,"yp",2)) { adns__diag(ads,-1,0,"%s:%d: yp lookups not supported by adns", fn,lno); found_bind=-1; } else { if (ads->config_report_unknown) adns__diag(ads,-1,0,"%s:%d: unknown `lookup' database `%.*s'", fn,lno, l,word); found_bind=-1; } } if (!found_bind) adns__diag(ads,-1,0,"%s:%d: `lookup' specified, but not `bind'", fn,lno); } static void ccf_ignore(adns_state ads, const char *fn, int lno, const char *buf) { } static const struct configcommandinfo { const char *name; void (*fn)(adns_state ads, const char *fn, int lno, const char *buf); } configcommandinfos[]= { { "nameserver", ccf_nameserver }, { "domain", ccf_search }, { "search", ccf_search }, { "sortlist", ccf_sortlist }, { "options", ccf_options }, { "clearnameservers", ccf_clearnss }, { "include", ccf_include }, { "lookup", ccf_lookup }, /* OpenBSD */ { "lwserver", ccf_ignore }, /* BIND9 lwresd */ { 0 } }; typedef union { FILE *file; const char *text; } getline_ctx; static int gl_file(adns_state ads, getline_ctx *src_io, const char *filename, int lno, char *buf, int buflen) { FILE *file= src_io->file; int c, i; char *p; p= buf; buflen--; i= 0; for (;;) { /* loop over chars */ if (i == buflen) { adns__diag(ads,-1,0,"%s:%d: line too long, ignored",filename,lno); goto x_badline; } c= getc(file); if (!c) { adns__diag(ads,-1,0,"%s:%d: line contains nul, ignored",filename,lno); goto x_badline; } else if (c == '\n') { break; } else if (c == EOF) { if (ferror(file)) { saveerr(ads,errno); adns__diag(ads,-1,0,"%s:%d: read error: %s", filename,lno,strerror(errno)); return -1; } if (!i) return -1; break; } else { *p++= c; i++; } } *p++= 0; return i; x_badline: saveerr(ads,EINVAL); while ((c= getc(file)) != EOF && c != '\n'); return -2; } static int gl_text(adns_state ads, getline_ctx *src_io, const char *filename, int lno, char *buf, int buflen) { const char *cp= src_io->text; int l; if (!cp || !*cp) return -1; if (*cp == ';' || *cp == '\n') cp++; l= strcspn(cp,";\n"); src_io->text = cp+l; if (l >= buflen) { adns__diag(ads,-1,0,"%s:%d: line too long, ignored",filename,lno); saveerr(ads,EINVAL); return -2; } memcpy(buf,cp,l); buf[l]= 0; return l; } static void readconfiggeneric(adns_state ads, const char *filename, int (*getline)(adns_state ads, getline_ctx*, const char *filename, int lno, char *buf, int buflen), /* Returns >=0 for success, -1 for EOF or error * (error will have been reported), or -2 for * bad line was encountered, try again. */ getline_ctx gl_ctx) { char linebuf[2000], *p, *q; int lno, l, dirl; const struct configcommandinfo *ccip; for (lno=1; (l= getline(ads,&gl_ctx, filename,lno, linebuf,sizeof(linebuf))) != -1; lno++) { if (l == -2) continue; while (l>0 && ctype_whitespace(linebuf[l-1])) l--; linebuf[l]= 0; p= linebuf; while (ctype_whitespace(*p)) p++; if (*p == '#' || *p == ';' || !*p) continue; q= p; while (*q && !ctype_whitespace(*q)) q++; dirl= q-p; for (ccip=configcommandinfos; ccip->name && !(strlen(ccip->name)==dirl && !memcmp(ccip->name,p,q-p)); ccip++); if (!ccip->name) { if (ads->config_report_unknown) adns__diag(ads,-1,0,"%s:%d: unknown configuration directive `%.*s'", filename,lno,(int)(q-p),p); continue; } while (ctype_whitespace(*q)) q++; ccip->fn(ads,filename,lno,q); } } static const char *instrum_getenv(adns_state ads, const char *envvar) { const char *value; value= getenv(envvar); if (!value) adns__debug(ads,-1,0,"environment variable %s not set",envvar); else adns__debug(ads,-1,0,"environment variable %s" " set to `%s'",envvar,value); return value; } static void readconfig(adns_state ads, const char *filename, int warnmissing) { getline_ctx gl_ctx; gl_ctx.file= fopen(filename,"r"); if (!gl_ctx.file) { if (errno == ENOENT) { if (warnmissing) adns__debug(ads,-1,0, "configuration file" " `%s' does not exist",filename); return; } saveerr(ads,errno); adns__diag(ads,-1,0,"cannot open configuration file `%s': %s", filename,strerror(errno)); return; } readconfiggeneric(ads,filename,gl_file,gl_ctx); fclose(gl_ctx.file); } static void readconfigtext(adns_state ads, const char *text, const char *showname) { getline_ctx gl_ctx; gl_ctx.text= text; readconfiggeneric(ads,showname,gl_text,gl_ctx); } static void readconfigenv(adns_state ads, const char *envvar) { const char *filename; if (ads->iflags & adns_if_noenv) { adns__debug(ads,-1,0,"not checking environment variable `%s'",envvar); return; } filename= instrum_getenv(ads,envvar); if (filename) readconfig(ads,filename,1); } static void readconfigenvtext(adns_state ads, const char *envvar) { const char *textdata; if (ads->iflags & adns_if_noenv) { adns__debug(ads,-1,0,"not checking environment variable `%s'",envvar); return; } textdata= instrum_getenv(ads,envvar); if (textdata) readconfigtext(ads,textdata,envvar); } int adns__setnonblock(adns_state ads, int fd) { int r; r= fcntl(fd,F_GETFL,0); if (r<0) return errno; r |= O_NONBLOCK; r= fcntl(fd,F_SETFL,r); if (r<0) return errno; return 0; } static int init_begin(adns_state *ads_r, adns_initflags flags, adns_logcallbackfn *logfn, void *logfndata) { adns_state ads; pid_t pid; if (flags & ~(adns_initflags)(0x4fff)) /* 0x4000 is reserved for `harmless' future expansion */ return ENOSYS; ads= malloc(sizeof(*ads)); if (!ads) return errno; ads->iflags= flags; ads->logfn= logfn; ads->logfndata= logfndata; ads->configerrno= 0; LIST_INIT(ads->udpw); LIST_INIT(ads->tcpw); LIST_INIT(ads->childw); LIST_INIT(ads->output); LIST_INIT(ads->intdone); ads->forallnext= 0; ads->nextid= 0x311f; ads->nudpsockets= 0; ads->tcpsocket= -1; adns__vbuf_init(&ads->tcpsend); adns__vbuf_init(&ads->tcprecv); ads->tcprecv_skip= 0; ads->nservers= ads->nsortlist= ads->nsearchlist= ads->tcpserver= 0; ads->searchndots= 1; ads->tcpstate= server_disconnected; timerclear(&ads->tcptimeout); ads->searchlist= 0; ads->config_report_unknown=1; pid= getpid(); ads->rand48xsubi[0]= pid; ads->rand48xsubi[1]= (unsigned long)pid >> 16; ads->rand48xsubi[2]= pid ^ ((unsigned long)pid >> 16); *ads_r= ads; return 0; } static int init_finish(adns_state ads) { struct sockaddr_in sin; struct protoent *proto; struct udpsocket *udp; int i; int r; if (!ads->nservers) { if (ads->logfn && ads->iflags & adns_if_debug) adns__lprintf(ads,"adns: no nameservers, using IPv4 localhost\n"); memset(&sin, 0, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_port = htons(DNS_PORT); sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); addserver(ads,(struct sockaddr *)&sin, sizeof(sin)); } proto= getprotobyname("udp"); if (!proto) { r= ENOPROTOOPT; goto x_free; } ads->nudpsockets= 0; for (i=0; inservers; i++) { if (adns__udpsocket_by_af(ads, ads->servers[i].addr.sa.sa_family)) continue; assert(ads->nudpsockets < MAXUDP); udp= &ads->udpsockets[ads->nudpsockets]; udp->af= ads->servers[i].addr.sa.sa_family; udp->fd= socket(udp->af,SOCK_DGRAM,proto->p_proto); if (udp->fd < 0) { r= errno; goto x_free; } ads->nudpsockets++; r= adns__setnonblock(ads,udp->fd); if (r) { r= errno; goto x_closeudp; } } return 0; x_closeudp: for (i=0; inudpsockets; i++) close(ads->udpsockets[i].fd); x_free: free(ads); return r; } static void init_abort(adns_state ads) { if (ads->nsearchlist) { free(ads->searchlist[0]); free(ads->searchlist); } free(ads); } static void logfn_file(adns_state ads, void *logfndata, const char *fmt, va_list al) { vfprintf(logfndata,fmt,al); } static int init_files(adns_state *ads_r, adns_initflags flags, adns_logcallbackfn *logfn, void *logfndata) { adns_state ads; const char *res_options, *adns_res_options; int r; r= init_begin(&ads, flags, logfn, logfndata); if (r) return r; res_options= instrum_getenv(ads,"RES_OPTIONS"); adns_res_options= instrum_getenv(ads,"ADNS_RES_OPTIONS"); ccf_options(ads,"RES_OPTIONS",-1,res_options); ccf_options(ads,"ADNS_RES_OPTIONS",-1,adns_res_options); readconfig(ads,"/etc/resolv.conf",1); readconfig(ads,"/etc/resolv-adns.conf",0); readconfigenv(ads,"RES_CONF"); readconfigenv(ads,"ADNS_RES_CONF"); readconfigenvtext(ads,"RES_CONF_TEXT"); readconfigenvtext(ads,"ADNS_RES_CONF_TEXT"); ccf_options(ads,"RES_OPTIONS",-1,res_options); ccf_options(ads,"ADNS_RES_OPTIONS",-1,adns_res_options); ccf_search(ads,"LOCALDOMAIN",-1,instrum_getenv(ads,"LOCALDOMAIN")); ccf_search(ads,"ADNS_LOCALDOMAIN",-1,instrum_getenv(ads,"ADNS_LOCALDOMAIN")); if (ads->configerrno && ads->configerrno != EINVAL) { r= ads->configerrno; init_abort(ads); return r; } r= init_finish(ads); if (r) return r; adns__consistency(ads,0,cc_entex); *ads_r= ads; return 0; } int adns_init(adns_state *ads_r, adns_initflags flags, FILE *diagfile) { return init_files(ads_r, flags, logfn_file, diagfile ? diagfile : stderr); } static int init_strcfg(adns_state *ads_r, adns_initflags flags, adns_logcallbackfn *logfn, void *logfndata, const char *configtext) { adns_state ads; int r; r= init_begin(&ads, flags, logfn, logfndata); if (r) return r; readconfigtext(ads,configtext,""); if (ads->configerrno) { r= ads->configerrno; init_abort(ads); return r; } r= init_finish(ads); if (r) return r; adns__consistency(ads,0,cc_entex); *ads_r= ads; return 0; } int adns_init_strcfg(adns_state *ads_r, adns_initflags flags, FILE *diagfile, const char *configtext) { return init_strcfg(ads_r, flags, diagfile ? logfn_file : 0, diagfile, configtext); } int adns_init_logfn(adns_state *newstate_r, adns_initflags flags, const char *configtext /*0=>use default config files*/, adns_logcallbackfn *logfn /*0=>logfndata is a FILE* */, void *logfndata /*0 with logfn==0 => discard*/) { if (!logfn && logfndata) logfn= logfn_file; if (configtext) return init_strcfg(newstate_r, flags, logfn, logfndata, configtext); else return init_files(newstate_r, flags, logfn, logfndata); } void adns_finish(adns_state ads) { int i; adns__consistency(ads,0,cc_entex); for (;;) { if (ads->udpw.head) adns__cancel(ads->udpw.head); else if (ads->tcpw.head) adns__cancel(ads->tcpw.head); else if (ads->childw.head) adns__cancel(ads->childw.head); else if (ads->output.head) adns__cancel(ads->output.head); else if (ads->intdone.head) adns__cancel(ads->output.head); else break; } for (i=0; inudpsockets; i++) close(ads->udpsockets[i].fd); if (ads->tcpsocket >= 0) close(ads->tcpsocket); adns__vbuf_free(&ads->tcpsend); adns__vbuf_free(&ads->tcprecv); freesearchlist(ads); free(ads); } void adns_forallqueries_begin(adns_state ads) { adns__consistency(ads,0,cc_entex); ads->forallnext= ads->udpw.head ? ads->udpw.head : ads->tcpw.head ? ads->tcpw.head : ads->childw.head ? ads->childw.head : ads->output.head; } adns_query adns_forallqueries_next(adns_state ads, void **context_r) { adns_query qu, nqu; adns__consistency(ads,0,cc_entex); nqu= ads->forallnext; for (;;) { qu= nqu; if (!qu) return 0; if (qu->next) { nqu= qu->next; } else if (qu == ads->udpw.tail) { nqu= ads->tcpw.head ? ads->tcpw.head : ads->childw.head ? ads->childw.head : ads->output.head; } else if (qu == ads->tcpw.tail) { nqu= ads->childw.head ? ads->childw.head : ads->output.head; } else if (qu == ads->childw.tail) { nqu= ads->output.head; } else { nqu= 0; } if (!qu->parent) break; } ads->forallnext= nqu; if (context_r) *context_r= qu->ctx.ext; return qu; } adns-1.5.0~rc1/src/dlist.h0000664000175000017500000000370412421042027013425 0ustar ianian/* * dlist.h * - macros for handling doubly linked lists */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #ifndef ADNS_DLIST_H_INCLUDED #define ADNS_DLIST_H_INCLUDED #define LIST_INIT(list) ((list).head= (list).tail= 0) #define LINK_INIT(link) ((link).next= (link).back= 0) #define LIST_UNLINK_PART(list,node,part) \ do { \ if ((node)->part back) (node)->part back->part next= (node)->part next; \ else (list).head= (node)->part next; \ if ((node)->part next) (node)->part next->part back= (node)->part back; \ else (list).tail= (node)->part back; \ } while(0) #define LIST_LINK_TAIL_PART(list,node,part) \ do { \ (node)->part next= 0; \ (node)->part back= (list).tail; \ if ((list).tail) (list).tail->part next= (node); \ else (list).head= (node); \ (list).tail= (node); \ } while(0) #define LIST_UNLINK(list,node) LIST_UNLINK_PART(list,node,) #define LIST_LINK_TAIL(list,node) LIST_LINK_TAIL_PART(list,node,) #endif adns-1.5.0~rc1/src/tvarith.h0000664000175000017500000000253312421042027013766 0ustar ianian/* * tvarith.h * - static inline functions for doing arithmetic on timevals */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #ifndef ADNS_TVARITH_H_INCLUDED #define ADNS_TVARITH_H_INCLUDED static inline void timevaladd(struct timeval *tv_io, long ms) { struct timeval tmp; assert(ms>=0); tmp= *tv_io; tmp.tv_usec += (ms%1000)*1000; tmp.tv_sec += ms/1000; if (tmp.tv_usec >= 1000000) { tmp.tv_sec++; tmp.tv_usec -= 1000000; } *tv_io= tmp; } #endif adns-1.5.0~rc1/src/parse.c0000664000175000017500000001651312423157013013421 0ustar ianian/* * parse.c * - parsing assistance functions (mainly for domains inside datagrams) */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include "internal.h" static int vbuf_append_quoted1035(vbuf *vb, const byte *buf, int len) { char qbuf[10]; int i, ch; while (len) { qbuf[0]= 0; for (i=0; i= 127) { sprintf(qbuf,"\\%03o",ch); break; } else if (!ctype_domainunquoted(ch)) { sprintf(qbuf,"\\%c",ch); break; } } if (!adns__vbuf_append(vb,buf,i) || !adns__vbuf_append(vb,qbuf,strlen(qbuf))) return 0; if (iads= ads; fls->qu= qu; fls->serv= serv; fls->dgram= dgram; fls->dglen= dglen; fls->max= max; fls->cbyte= dmbegin; fls->namelen= 0; fls->dmend_r= dmend_rlater; } adns_status adns__findlabel_next(findlabel_state *fls, int *lablen_r, int *labstart_r) { int lablen, jumpto; const char *dgram; dgram= fls->dgram; for (;;) { if (fls->cbyte >= fls->dglen) goto x_truncated; if (fls->cbyte >= fls->max) goto x_badresponse; GET_B(fls->cbyte,lablen); if (!(lablen & 0x0c0)) break; if ((lablen & 0x0c0) != 0x0c0) return adns_s_unknownformat; if (fls->cbyte >= fls->dglen) goto x_truncated; if (fls->cbyte >= fls->max) goto x_badresponse; GET_B(fls->cbyte,jumpto); jumpto |= (lablen&0x3f)<<8; if (fls->dmend_r) *(fls->dmend_r)= fls->cbyte; fls->cbyte= jumpto; fls->dmend_r= 0; fls->max= fls->dglen+1; } if (labstart_r) *labstart_r= fls->cbyte; if (lablen) { if (fls->namelen) fls->namelen++; fls->namelen+= lablen; if (fls->namelen > DNS_MAXDOMAIN) return adns_s_answerdomaintoolong; fls->cbyte+= lablen; if (fls->cbyte > fls->dglen) goto x_truncated; if (fls->cbyte > fls->max) goto x_badresponse; } else { if (fls->dmend_r) *(fls->dmend_r)= fls->cbyte; } *lablen_r= lablen; return adns_s_ok; x_truncated: *lablen_r= -1; return adns_s_ok; x_badresponse: adns__diag(fls->ads,fls->serv,fls->qu, "label in domain runs beyond end of domain"); return adns_s_invalidresponse; } adns_status adns__parse_domain(adns_state ads, int serv, adns_query qu, vbuf *vb, parsedomain_flags flags, const byte *dgram, int dglen, int *cbyte_io, int max) { findlabel_state fls; adns__findlabel_start(&fls,ads, serv,qu, dgram,dglen,max, *cbyte_io,cbyte_io); vb->used= 0; return adns__parse_domain_more(&fls,ads,qu, vb,flags,dgram); } adns_status adns__parse_domain_more(findlabel_state *fls, adns_state ads, adns_query qu, vbuf *vb, parsedomain_flags flags, const byte *dgram) { int lablen, labstart, i, ch, first; adns_status st; first= 1; for (;;) { st= adns__findlabel_next(fls,&lablen,&labstart); if (st) return st; if (lablen<0) { vb->used=0; return adns_s_ok; } if (!lablen) break; if (first) { first= 0; } else { if (!adns__vbuf_append(vb,".",1)) return adns_s_nomemory; } if (flags & pdf_quoteok) { if (!vbuf_append_quoted1035(vb,dgram+labstart,lablen)) return adns_s_nomemory; } else { ch= dgram[labstart]; if (!ctype_alpha(ch) && !ctype_digit(ch)) return adns_s_answerdomaininvalid; for (i= labstart+1; i 0) { int ac= ctype_toupper(*a++); int bc= ctype_toupper(*b++); if (ac != bc) return 0; } return 1; } adns_status adns__findrr_anychk(adns_query qu, int serv, const byte *dgram, int dglen, int *cbyte_io, int *type_r, int *class_r, unsigned long *ttl_r, int *rdlen_r, int *rdstart_r, const byte *eo_dgram, int eo_dglen, int eo_cbyte, int *eo_matched_r) { findlabel_state fls, eo_fls_buf; findlabel_state *eo_fls; /* 0 iff we know it's not matching eo_... */ int cbyte; int tmp, rdlen; unsigned long ttl; int lablen, labstart; int eo_lablen, eo_labstart; adns_status st; cbyte= *cbyte_io; adns__findlabel_start(&fls,qu->ads, serv,qu, dgram,dglen,dglen,cbyte,&cbyte); if (eo_dgram) { eo_fls= &eo_fls_buf; adns__findlabel_start(eo_fls,qu->ads, -1,0, eo_dgram,eo_dglen,eo_dglen,eo_cbyte,0); } else { eo_fls= 0; } for (;;) { st= adns__findlabel_next(&fls,&lablen,&labstart); if (st) return st; if (lablen<0) goto x_truncated; if (eo_fls) { st= adns__findlabel_next(eo_fls,&eo_lablen,&eo_labstart); assert(!st); assert(eo_lablen>=0); if (!adns__labels_equal(dgram+labstart, lablen, eo_dgram+eo_labstart, eo_lablen)) eo_fls= 0; } if (!lablen) break; } if (eo_matched_r) *eo_matched_r= !!eo_fls; if (cbyte+10>dglen) goto x_truncated; GET_W(cbyte,tmp); *type_r= tmp; GET_W(cbyte,tmp); *class_r= tmp; GET_L(cbyte,ttl); if (ttl > MAXTTLBELIEVE) ttl= MAXTTLBELIEVE; *ttl_r= ttl; GET_W(cbyte,rdlen); if (rdlen_r) *rdlen_r= rdlen; if (rdstart_r) *rdstart_r= cbyte; cbyte+= rdlen; if (cbyte>dglen) goto x_truncated; *cbyte_io= cbyte; return adns_s_ok; x_truncated: *type_r= -1; return 0; } adns_status adns__findrr(adns_query qu, int serv, const byte *dgram, int dglen, int *cbyte_io, int *type_r, int *class_r, unsigned long *ttl_r, int *rdlen_r, int *rdstart_r, int *ownermatchedquery_r) { if (!ownermatchedquery_r) { return adns__findrr_anychk(qu,serv, dgram,dglen,cbyte_io, type_r,class_r,ttl_r,rdlen_r,rdstart_r, 0,0,0, 0); } else if (!qu->cname_dgram) { return adns__findrr_anychk(qu,serv, dgram,dglen,cbyte_io, type_r,class_r,ttl_r,rdlen_r,rdstart_r, qu->query_dgram,qu->query_dglen,DNS_HDRSIZE, ownermatchedquery_r); } else { return adns__findrr_anychk(qu,serv, dgram,dglen,cbyte_io, type_r,class_r,ttl_r,rdlen_r,rdstart_r, qu->cname_dgram,qu->cname_dglen,qu->cname_begin, ownermatchedquery_r); } } adns-1.5.0~rc1/src/internal.h0000664000175000017500000010423212423157366014137 0ustar ianian/* * internal.h * - declarations of private objects with external linkage (adns__*) * - definitons of internal macros * - comments regarding library data structures */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #ifndef ADNS_INTERNAL_H_INCLUDED #define ADNS_INTERNAL_H_INCLUDED #include "config.h" typedef unsigned char byte; #include #include #include #include #include #include #include #include #include #define ADNS_FEATURE_MANYAF #include "adns.h" #include "dlist.h" #ifdef ADNS_REGRESS_TEST # include "hredirect.h" #endif /* Configuration and constants */ #define MAXSERVERS 5 #define MAXSORTLIST 15 #define UDPMAXRETRIES 15 #define UDPRETRYMS 2000 #define TCPWAITMS 30000 #define TCPCONNMS 14000 #define TCPIDLEMS 30000 #define MAXTTLBELIEVE (7*86400) /* any TTL > 7 days is capped */ #define DNS_PORT 53 #define DNS_MAXUDP 512 #define DNS_MAXLABEL 63 #define DNS_MAXDOMAIN 255 #define DNS_HDRSIZE 12 #define DNS_IDOFFSET 0 #define DNS_CLASS_IN 1 #define MAX_POLLFDS ADNS_POLLFDS_RECOMMENDED /* Some preprocessor hackery */ #define GLUE(x, y) GLUE_(x, y) #define GLUE_(x, y) x##y /* C99 macro `...' must match at least one argument, so the naive definition * `#define CAR(car, ...) car' won't work. But it's easy to arrange for the * tail to be nonempty if we're just going to discard it anyway. */ #define CAR(...) CAR_(__VA_ARGS__, _) #define CAR_(car, ...) car /* Extracting the tail of an argument list is rather more difficult. The * following trick is based on one by Laurent Deniau to count the number of * arguments to a macro, simplified in two ways: (a) it only handles up to * eight arguments, and (b) it only needs to distinguish the one-argument * case from many arguments. */ #define CDR(...) CDR_(__VA_ARGS__, m, m, m, m, m, m, m, 1, _)(__VA_ARGS__) #define CDR_(_1, _2, _3, _4, _5, _6, _7, _8, n, ...) CDR_##n #define CDR_1(_) #define CDR_m(_, ...) __VA_ARGS__ typedef enum { cc_user, cc_entex, cc_freq } consistency_checks; typedef enum { rcode_noerror, rcode_formaterror, rcode_servfail, rcode_nxdomain, rcode_notimp, rcode_refused } dns_rcode; enum { adns__qf_addr_answer= 0x01000000,/* addr query received an answer */ adns__qf_addr_cname = 0x02000000 /* addr subquery performed on cname */ }; /* Shared data structures */ typedef struct { int used, avail; byte *buf; } vbuf; typedef struct { adns_state ads; adns_query qu; int serv; const byte *dgram; int dglen, nsstart, nscount, arcount; struct timeval now; } parseinfo; #define MAXREVLABELS 34 /* keep in sync with addrfam! */ struct revparse_state { uint16_t labstart[MAXREVLABELS]; uint8_t lablen[MAXREVLABELS]; }; union checklabel_state { struct revparse_state ptr; }; typedef struct { void *ext; void (*callback)(adns_query parent, adns_query child); union { struct { adns_rrtype rev_rrtype; adns_sockaddr addr; } ptr; struct { unsigned want, have; } addr; } tinfo; /* type-specific state for the query itself: zero-init if you * don't know better. */ union { adns_rr_hostaddr *hostaddr; } pinfo; /* state for use by parent's callback function */ } qcontext; typedef struct typeinfo { adns_rrtype typekey; const char *rrtname; const char *fmtname; int fixed_rrsz; void (*makefinal)(adns_query qu, void *data); /* Change memory management of *data. * Previously, used alloc_interim, now use alloc_final. */ adns_status (*convstring)(vbuf *vb, const void *data); /* Converts the RR data to a string representation in vbuf. * vbuf will be appended to (it must have been initialised), * and will not be null-terminated by convstring. */ adns_status (*parse)(const parseinfo *pai, int cbyte, int max, void *store_r); /* Parse one RR, in dgram of length dglen, starting at cbyte and * extending until at most max. * * The RR should be stored at *store_r, of length qu->typei->getrrsz(). * * If there is an overrun which might indicate truncation, it should set * *rdstart to -1; otherwise it may set it to anything else positive. * * nsstart is the offset of the authority section. */ int (*diff_needswap)(adns_state ads,const void *datap_a,const void *datap_b); /* Returns !0 if RR a should be strictly after RR b in the sort order, * 0 otherwise. Must not fail. */ adns_status (*checklabel)(adns_state ads, adns_queryflags flags, union checklabel_state *cls, qcontext *ctx, int labnum, const char *dgram, int labstart, int lablen); /* Check a label from the query domain string. The label is not * necessarily null-terminated. The hook can refuse the query's submission * by returning a nonzero status. State can be stored in *cls between * calls, and useful information can be stashed in ctx->tinfo, to be stored * with the query (e.g., it will be available to the parse hook). This * hook can detect a first call because labnum is zero, and a final call * because lablen is zero. */ void (*postsort)(adns_state ads, void *array, int nrrs, int rrsz, const struct typeinfo *typei); /* Called immediately after the RRs have been sorted, and may rearrange * them. (This is really for the benefit of SRV's bizarre weighting * stuff.) May be 0 to mean nothing needs to be done. */ int (*getrrsz)(const struct typeinfo *typei, adns_rrtype type); /* Return the output resource-record element size; if this is null, then * the rrsz member can be used. */ void (*query_send)(adns_query qu, struct timeval now); /* Send the query to nameservers, and hook it into the appropriate queue. * Normal behaviour is to call adns__query_send, but this can be overridden * for special effects. */ } typeinfo; adns_status adns__ckl_hostname(adns_state ads, adns_queryflags flags, union checklabel_state *cls, qcontext *ctx, int labnum, const char *dgram, int labstart, int lablen); /* implemented in query.c, used by types.c as default * and as part of implementation for some fancier types * doesn't require any state */ typedef struct allocnode { struct allocnode *next, *back; size_t sz; } allocnode; union maxalign { byte d[1]; struct in_addr ia; long l; void *p; void (*fp)(void); union maxalign *up; } data; struct adns__query { adns_state ads; enum { query_tosend, query_tcpw, query_childw, query_done } state; adns_query back, next, parent; struct { adns_query head, tail; } children; struct { adns_query back, next; } siblings; struct { allocnode *head, *tail; } allocations; int interim_allocd, preserved_allocd; void *final_allocspace; const typeinfo *typei; byte *query_dgram; int query_dglen; vbuf vb; /* General-purpose messing-about buffer. * Wherever a `big' interface is crossed, this may be corrupted/changed * unless otherwise specified. */ adns_answer *answer; /* This is allocated when a query is submitted, to avoid being unable * to relate errors to queries if we run out of memory. During * query processing status, rrs is 0. cname is set if * we found a cname (this corresponds to cname_dgram in the query * structure). type is set from the word go. nrrs and rrs * are set together, when we find how many rrs there are. * owner is set during querying unless we're doing searchlist, * in which case it is set only when we find an answer. */ byte *cname_dgram; int cname_dglen, cname_begin; /* If non-0, has been allocated using . */ vbuf search_vb; int search_origlen, search_pos, search_doneabs; /* Used by the searching algorithm. The query domain in textual form * is copied into the vbuf, and _origlen set to its length. Then * we walk the searchlist, if we want to. _pos says where we are * (next entry to try), and _doneabs says whether we've done the * absolute query yet (0=not yet, 1=done, -1=must do straight away, * but not done yet). If flags doesn't have adns_qf_search then * the vbuf is initialised but empty and everything else is zero. */ int id, flags, retries; int udpnextserver; unsigned long udpsent; /* bitmap indexed by server */ struct timeval timeout; time_t expires; /* Earliest expiry time of any record we used. */ qcontext ctx; /* Possible states: * * state Queue child id nextudpserver udpsent tcpfailed * * tosend NONE null >=0 0 zero zero * tosend udpw null >=0 any nonzero zero * tosend NONE null >=0 any nonzero zero * * tcpw tcpw null >=0 irrelevant any any * * child childw set >=0 irrelevant irrelevant irrelevant * child NONE null >=0 irrelevant irrelevant irrelevant * done output null -1 irrelevant irrelevant irrelevant * * Queries are only not on a queue when they are actually being processed. * Queries in state tcpw/tcpw have been sent (or are in the to-send buffer) * iff the tcp connection is in state server_ok. * * Internal queries (from adns__submit_internal) end up on intdone * instead of output, and the callbacks are made on the way out of * adns, to avoid reentrancy hazards. * * +------------------------+ * START -----> | tosend/NONE | * +------------------------+ * / |\ \ * too big for UDP / UDP timeout \ \ send via UDP * send via TCP / more retries \ \ * when conn'd / desired \ \ * | | | * v | v * +-----------+ +-------------+ * | tcpw/tcpw | ________ | tosend/udpw | * +-----------+ \ +-------------+ * | | | UDP timeout | | * | | | no more | | * | | | retries | | * \ | TCP died | desired | | * \ \ no more | | | * \ \ servers | TCP / | * \ \ to try | timeout / | * got \ \ v |_ | got * reply \ _| +------------------+ / reply * \ | done/output FAIL | / * \ +------------------+ / * \ / * _| |_ * (..... got reply ....) * / \ * need child query/ies / \ no child query * / \ * |_ _| * +---------------+ +----------------+ * | childw/childw | ----------------> | done/output OK | * +---------------+ children done +----------------+ */ }; struct query_queue { adns_query head, tail; }; #define MAXUDP 2 struct adns__state { adns_initflags iflags; adns_logcallbackfn *logfn; void *logfndata; int configerrno; struct query_queue udpw, tcpw, childw, output, intdone; adns_query forallnext; int nextid, tcpsocket; struct udpsocket { int af; int fd; } udpsockets[MAXUDP]; int nudpsockets; vbuf tcpsend, tcprecv; int nservers, nsortlist, nsearchlist, searchndots, tcpserver, tcprecv_skip; enum adns__tcpstate { server_disconnected, server_connecting, server_ok, server_broken } tcpstate; struct timeval tcptimeout; /* This will have tv_sec==0 if it is not valid. It will always be * valid if tcpstate _connecting. When _ok, it will be nonzero if * we are idle (ie, tcpw queue is empty), in which case it is the * absolute time when we will close the connection. */ struct sigaction stdsigpipe; sigset_t stdsigmask; struct pollfd pollfds_buf[MAX_POLLFDS]; adns_rr_addr servers[MAXSERVERS]; struct sortlist { adns_sockaddr base, mask; } sortlist[MAXSORTLIST]; char **searchlist; unsigned config_report_unknown:1; unsigned short rand48xsubi[3]; }; /* From addrfam.c: */ extern int adns__addrs_equal_raw(const struct sockaddr *a, int bf, const void *b); /* Returns nonzero a's family is bf and a's protocol address field * refers to the same protocol address as that stored at ba. */ extern int adns__addrs_equal(const adns_sockaddr *a, const adns_sockaddr *b); /* Returns nonzero if the two refer to the same protocol address * (disregarding port, IPv6 scope, etc). */ extern int adns__sockaddrs_equal(const struct sockaddr *sa, const struct sockaddr *sb); /* Return nonzero if the two socket addresses are equal (in all significant * respects). */ extern int adns__addr_width(int af); /* Return the width of addresses of family af, in bits. */ extern void adns__prefix_mask(adns_sockaddr *sa, int len); /* Stores in sa's protocol address field an address mask for address * family af, whose first len bits are set and the remainder are * clear. On entry, sa's af field must be set. This is what you want * for converting a prefix length into a netmask. */ extern int adns__guess_prefix_length(const adns_sockaddr *addr); /* Given a network base address, guess the appropriate prefix length based on * the appropriate rules for the address family (e.g., for IPv4, this uses * the old address classes). */ extern int adns__addr_matches(int af, const void *addr, const adns_sockaddr *base, const adns_sockaddr *mask); /* Return nonzero if the protocol address specified by af and addr * lies within the network specified by base and mask. */ extern void adns__addr_inject(const void *a, adns_sockaddr *sa); /* Injects the protocol address *a into the socket adress sa. Assumes * that sa->sa_family is already set correctly. */ extern const void *adns__sockaddr_addr(const struct sockaddr *sa); /* Returns the address of the protocol address field in sa. */ char *adns__sockaddr_ntoa(const struct sockaddr *sa, char *buf); /* Converts sa to a string, and writes it to buf, which must be at * least ADNS_ADDR2TEXT_BUFLEN bytes long (unchecked). Returns buf; * can't fail. */ extern int adns__make_reverse_domain(const struct sockaddr *sa, const char *zone, char **buf_io, size_t bufsz, char **buf_free_r); /* Construct a reverse domain string, given a socket address and a parent * zone. If zone is null, then use the standard reverse-lookup zone for the * address family. If the length of the resulting string is no larger than * bufsz, then the result is stored starting at *buf_io; otherwise a new * buffer is allocated is used, and a pointer to it is stored in both *buf_io * and *buf_free_r (the latter of which should be null on entry). If * something goes wrong, then an errno value is returned: ENOSYS if the * address family of sa isn't recognized, or ENOMEM if the attempt to * allocate an output buffer failed. */ extern bool adns__revparse_label(struct revparse_state *rps, int labnum, const char *dgram, int labstart, int lablen); /* Parse a label in a reverse-domain name, given its index labnum (starting * from zero), a pointer to its contents (which need not be null-terminated), * and its length. The state in *rps is initialized implicitly when labnum * is zero. * * Returns 1 if the parse is proceeding successfully, 0 if the domain * name is definitely invalid and the parse must be abandoned. */ extern bool adns__revparse_done(struct revparse_state *rps, const char *dgram, int nlabels, adns_rrtype *rrtype_r, adns_sockaddr *addr_r); /* Finishes parsing a reverse-domain name, given the total number of * labels in the name. On success, fills in the af and protocol * address in *addr_r, and the forward query type in *rrtype_r * (because that turns out to be useful). Returns 1 if the parse * was successful. */ /* From setup.c: */ int adns__setnonblock(adns_state ads, int fd); /* => errno value */ /* From general.c: */ void adns__vlprintf(adns_state ads, const char *fmt, va_list al); void adns__lprintf(adns_state ads, const char *fmt, ...) PRINTFFORMAT(2,3); void adns__vdiag(adns_state ads, const char *pfx, adns_initflags prevent, int serv, adns_query qu, const char *fmt, va_list al); void adns__debug(adns_state ads, int serv, adns_query qu, const char *fmt, ...) PRINTFFORMAT(4,5); void adns__warn(adns_state ads, int serv, adns_query qu, const char *fmt, ...) PRINTFFORMAT(4,5); void adns__diag(adns_state ads, int serv, adns_query qu, const char *fmt, ...) PRINTFFORMAT(4,5); int adns__vbuf_ensure(vbuf *vb, int want); int adns__vbuf_appendstr(vbuf *vb, const char *data); /* doesn't include nul */ int adns__vbuf_append(vbuf *vb, const byte *data, int len); /* 1=>success, 0=>realloc failed */ void adns__vbuf_appendq(vbuf *vb, const byte *data, int len); void adns__vbuf_init(vbuf *vb); void adns__vbuf_free(vbuf *vb); const char *adns__diag_domain(adns_state ads, int serv, adns_query qu, vbuf *vb, const byte *dgram, int dglen, int cbyte); /* Unpicks a domain in a datagram and returns a string suitable for * printing it as. Never fails - if an error occurs, it will * return some kind of string describing the error. * * serv may be -1 and qu may be 0. vb must have been initialised, * and will be left in an arbitrary consistent state. * * Returns either vb->buf, or a pointer to a string literal. Do not modify * vb before using the return value. */ int adns__getrrsz_default(const typeinfo *typei, adns_rrtype type); /* Default function for the `getrrsz' type hook; returns the `fixed_rrsz' * value from the typeinfo entry. */ void adns__isort(void *array, int nobjs, int sz, void *tempbuf, int (*needswap)(void *context, const void *a, const void *b), void *context); /* Does an insertion sort of array which must contain nobjs objects * each sz bytes long. tempbuf must point to a buffer at least * sz bytes long. needswap should return !0 if a>b (strictly, ie * wrong order) 0 if a<=b (ie, order is fine). */ void adns__sigpipe_protect(adns_state); void adns__sigpipe_unprotect(adns_state); /* If SIGPIPE protection is not disabled, will block all signals except * SIGPIPE, and set SIGPIPE's disposition to SIG_IGN. (And then restore.) * Each call to _protect must be followed by a call to _unprotect before * any significant amount of code gets to run, since the old signal mask * is stored in the adns structure. */ /* From transmit.c: */ adns_status adns__mkquery(adns_state ads, vbuf *vb, int *id_r, const char *owner, int ol, const typeinfo *typei, adns_rrtype type, adns_queryflags flags); /* Assembles a query packet in vb. A new id is allocated and returned. */ adns_status adns__mkquery_frdgram(adns_state ads, vbuf *vb, int *id_r, const byte *qd_dgram, int qd_dglen, int qd_begin, adns_rrtype type, adns_queryflags flags); /* Same as adns__mkquery, but takes the owner domain from an existing datagram. * That domain must be correct and untruncated. */ void adns__querysend_tcp(adns_query qu, struct timeval now); /* Query must be in state tcpw/tcpw; it will be sent if possible and * no further processing can be done on it for now. The connection * might be broken, but no reconnect will be attempted. */ struct udpsocket *adns__udpsocket_by_af(adns_state ads, int af); /* Find the UDP socket structure in ads which has the given address family. * Return null if there isn't one. * * This is used during initialization, so ads is only partially filled in. * The requirements are that nudp is set, and that udpsocket[i].af are * defined for 0<=ivb). * * *ctx is copied byte-for-byte into the query. Before doing this, its tinfo * field may be modified by type hooks. * * When the child query is done, ctx->callback will be called. The * child will already have been taken off both the global list of * queries in ads and the list of children in the parent. The child * will be freed when the callback returns. The parent will have been * taken off the global childw queue. * * The callback should either call adns__query_done, if it is * complete, or adns__query_fail, if an error has occurred, in which * case the other children (if any) will be cancelled. If the parent * has more unfinished children (or has just submitted more) then the * callback may choose to wait for them - it must then put the parent * back on the childw queue. */ void adns__search_next(adns_state ads, adns_query qu, struct timeval now); /* Walks down the searchlist for a query with adns_qf_search. * The query should have just had a negative response, or not had * any queries sent yet, and should not be on any queue. * The query_dgram if any will be freed and forgotten and a new * one constructed from the search_* members of the query. * * Cannot fail (in case of error, calls adns__query_fail). */ void *adns__alloc_interim(adns_query qu, size_t sz); void *adns__alloc_preserved(adns_query qu, size_t sz); /* Allocates some memory, and records which query it came from * and how much there was. * * If an error occurs in the query, all the memory from _interim is * simply freed. If the query succeeds, one large buffer will be made * which is big enough for all these allocations, and then * adns__alloc_final will get memory from this buffer. * * _alloc_interim can fail (and return 0). * The caller must ensure that the query is failed. * * The memory from _preserved is is kept and transferred into the * larger buffer - unless we run out of memory, in which case it too * is freed. When you use _preserved you have to add code to the * x_nomem error exit case in adns__makefinal_query to clear out the * pointers you made to those allocations, because that's when they're * thrown away; you should also make a note in the declaration of * those pointer variables, to note that they are _preserved rather * than _interim. If they're in the answer, note it here: * answer->cname and answer->owner are _preserved. */ void adns__transfer_interim(adns_query from, adns_query to, void *block); /* Transfers an interim allocation from one query to another, so that * the `to' query will have room for the data when we get to makefinal * and so that the free will happen when the `to' query is freed * rather than the `from' query. * * It is legal to call adns__transfer_interim with a null pointer; this * has no effect. * * _transfer_interim also ensures that the expiry time of the `to' query * is no later than that of the `from' query, so that child queries' * TTLs get inherited by their parents. */ void adns__free_interim(adns_query qu, void *p); /* Forget about a block allocated by adns__alloc_interim. */ void *adns__alloc_mine(adns_query qu, size_t sz); /* Like _interim, but does not record the length for later * copying into the answer. This just ensures that the memory * will be freed when we're done with the query. */ void *adns__alloc_final(adns_query qu, size_t sz); /* Cannot fail, and cannot return 0. */ void adns__makefinal_block(adns_query qu, void **blpp, size_t sz); void adns__makefinal_str(adns_query qu, char **strp); void adns__reset_preserved(adns_query qu); /* Resets all of the memory management stuff etc. to take account of * only the _preserved stuff from _alloc_preserved. Used when we find * an error somewhere and want to just report the error (with perhaps * CNAME, owner, etc. info), and also when we're halfway through RRs * in a datagram and discover that we need to retry the query. */ void adns__cancel(adns_query qu); void adns__query_done(adns_query qu); void adns__query_fail(adns_query qu, adns_status st); void adns__cancel_children(adns_query qu); void adns__returning(adns_state ads, adns_query qu); /* Must be called before returning from adns any time that we have * progressed (including made, finished or destroyed) queries. * * Might reenter adns via internal query callbacks, so * external-faciing functions which call adns__returning should * normally be avoided in internal code. */ /* From reply.c: */ void adns__procdgram(adns_state ads, const byte *dgram, int len, int serv, int viatcp, struct timeval now); /* This function is allowed to cause new datagrams to be constructed * and sent, or even new queries to be started. However, * query-sending functions are not allowed to call any general event * loop functions in case they accidentally call this. * * Ie, receiving functions may call sending functions. * Sending functions may NOT call receiving functions. */ /* From types.c: */ const typeinfo *adns__findtype(adns_rrtype type); /* From parse.c: */ typedef struct { adns_state ads; adns_query qu; int serv; const byte *dgram; int dglen, max, cbyte, namelen; int *dmend_r; } findlabel_state; void adns__findlabel_start(findlabel_state *fls, adns_state ads, int serv, adns_query qu, const byte *dgram, int dglen, int max, int dmbegin, int *dmend_rlater); /* Finds labels in a domain in a datagram. * * Call this routine first. * dmend_rlater may be null. ads (and of course fls) may not be. * serv may be -1, qu may be null - they are for error reporting. */ adns_status adns__findlabel_next(findlabel_state *fls, int *lablen_r, int *labstart_r); /* Then, call this one repeatedly. * * It will return adns_s_ok if all is well, and tell you the length * and start of successive labels. labstart_r may be null, but * lablen_r must not be. * * After the last label, it will return with *lablen_r zero. * Do not then call it again; instead, just throw away the findlabel_state. * * *dmend_rlater will have been set to point to the next part of * the datagram after the label (or after the uncompressed part, * if compression was used). *namelen_rlater will have been set * to the length of the domain name (total length of labels plus * 1 for each intervening dot). * * If the datagram appears to be truncated, *lablen_r will be -1. * *dmend_rlater, *labstart_r and *namelen_r may contain garbage. * Do not call _next again. * * There may also be errors, in which case *dmend_rlater, * *namelen_rlater, *lablen_r and *labstart_r may contain garbage. * Do not then call findlabel_next again. */ typedef enum { pdf_quoteok= 0x001 } parsedomain_flags; adns_status adns__parse_domain(adns_state ads, int serv, adns_query qu, vbuf *vb, parsedomain_flags flags, const byte *dgram, int dglen, int *cbyte_io, int max); /* vb must already have been initialised; it will be reset if necessary. * If there is truncation, vb->used will be set to 0; otherwise * (if there is no error) vb will be null-terminated. * If there is an error vb and *cbyte_io may be left indeterminate. * * serv may be -1 and qu may be 0 - they are used for error reporting only. */ adns_status adns__parse_domain_more(findlabel_state *fls, adns_state ads, adns_query qu, vbuf *vb, parsedomain_flags flags, const byte *dgram); /* Like adns__parse_domain, but you pass it a pre-initialised findlabel_state, * for continuing an existing domain or some such of some kind. Also, unlike * _parse_domain, the domain data will be appended to vb, rather than replacing * the existing contents. */ adns_status adns__findrr(adns_query qu, int serv, const byte *dgram, int dglen, int *cbyte_io, int *type_r, int *class_r, unsigned long *ttl_r, int *rdlen_r, int *rdstart_r, int *ownermatchedquery_r); /* Finds the extent and some of the contents of an RR in a datagram * and does some checks. The datagram is *dgram, length dglen, and * the RR starts at *cbyte_io (which is updated afterwards to point * to the end of the RR). * * The type, class, TTL and RRdata length and start are returned iff * the corresponding pointer variables are not null. type_r, class_r * and ttl_r may not be null. The TTL will be capped. * * If ownermatchedquery_r != 0 then the owner domain of this * RR will be compared with that in the query (or, if the query * has gone to a CNAME lookup, with the canonical name). * In this case, *ownermatchedquery_r will be set to 0 or 1. * The query datagram (or CNAME datagram) MUST be valid and not truncated. * * If there is truncation then *type_r will be set to -1 and * *cbyte_io, *class_r, *rdlen_r, *rdstart_r and *eo_matched_r will be * undefined. * * qu must obviously be non-null. * * If an error is returned then *type_r will be undefined too. */ adns_status adns__findrr_anychk(adns_query qu, int serv, const byte *dgram, int dglen, int *cbyte_io, int *type_r, int *class_r, unsigned long *ttl_r, int *rdlen_r, int *rdstart_r, const byte *eo_dgram, int eo_dglen, int eo_cbyte, int *eo_matched_r); /* Like adns__findrr_checked, except that the datagram and * owner to compare with can be specified explicitly. * * If the caller thinks they know what the owner of the RR ought to * be they can pass in details in eo_*: this is another (or perhaps * the same datagram), and a pointer to where the putative owner * starts in that datagram. In this case *eo_matched_r will be set * to 1 if the datagram matched or 0 if it did not. Either * both eo_dgram and eo_matched_r must both be non-null, or they * must both be null (in which case eo_dglen and eo_cbyte will be ignored). * The eo datagram and contained owner domain MUST be valid and * untruncated. */ void adns__update_expires(adns_query qu, unsigned long ttl, struct timeval now); /* Updates the `expires' field in the query, so that it doesn't exceed * now + ttl. */ bool adns__labels_equal(const byte *a, int al, const byte *b, int bl); /* From event.c: */ void adns__tcp_broken(adns_state ads, const char *what, const char *why); /* what and why may be both 0, or both non-0. */ void adns__tcp_tryconnect(adns_state ads, struct timeval now); void adns__autosys(adns_state ads, struct timeval now); /* Make all the system calls we want to if the application wants us to. * Must not be called from within adns internal processing functions, * lest we end up in recursive descent ! */ void adns__must_gettimeofday(adns_state ads, const struct timeval **now_io, struct timeval *tv_buf); /* Call with care - might reentrantly cause queries to be completed! */ int adns__pollfds(adns_state ads, struct pollfd pollfds_buf[MAX_POLLFDS]); void adns__fdevents(adns_state ads, const struct pollfd *pollfds, int npollfds, int maxfd, const fd_set *readfds, const fd_set *writefds, const fd_set *exceptfds, struct timeval now, int *r_r); int adns__internal_check(adns_state ads, adns_query *query_io, adns_answer **answer, void **context_r); void adns__timeouts(adns_state ads, int act, struct timeval **tv_io, struct timeval *tvbuf, struct timeval now); /* If act is !0, then this will also deal with the TCP connection * if previous events broke it or require it to be connected. */ /* From check.c: */ void adns__consistency(adns_state ads, adns_query qu, consistency_checks cc); /* Useful static inline functions: */ static inline int ctype_whitespace(int c) { return c==' ' || c=='\n' || c=='\t'; } static inline int ctype_digit(int c) { return c>='0' && c<='9'; } static inline int ctype_alpha(int c) { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); } static inline int ctype_toupper(int c) { return ctype_alpha(c) ? (c & ~32) : c; } static inline int ctype_822special(int c) { return strchr("()<>@,;:\\\".[]",c) != 0; } static inline int ctype_domainunquoted(int c) { return ctype_alpha(c) || ctype_digit(c) || (strchr("-_/+",c) != 0); } static inline int errno_resources(int e) { return e==ENOMEM || e==ENOBUFS; } /* Useful macros */ #define MEM_ROUND(sz) \ (( ((sz)+sizeof(union maxalign)-1) / sizeof(union maxalign) ) \ * sizeof(union maxalign) ) #define GETIL_B(cb) (((dgram)[(cb)++]) & 0x0ff) #define GET_B(cb,tv) ((tv)= GETIL_B((cb))) #define GET_W(cb,tv) ((tv)=0,(tv)|=(GETIL_B((cb))<<8), (tv)|=GETIL_B(cb), (tv)) #define GET_L(cb,tv) ( (tv)=0, \ (tv)|=(GETIL_B((cb))<<24), \ (tv)|=(GETIL_B((cb))<<16), \ (tv)|=(GETIL_B((cb))<<8), \ (tv)|=GETIL_B(cb), \ (tv) ) #endif adns-1.5.0~rc1/src/event.c0000664000175000017500000004736012421042027013430 0ustar ianian/* * event.c * - event loop core * - TCP connection management * - user-visible check/wait and event-loop-related functions */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include #include #include #include #include #include #include #include #include #include "internal.h" #include "tvarith.h" /* TCP connection management. */ static void tcp_close(adns_state ads) { close(ads->tcpsocket); ads->tcpsocket= -1; ads->tcprecv.used= ads->tcprecv_skip= ads->tcpsend.used= 0; } void adns__tcp_broken(adns_state ads, const char *what, const char *why) { int serv; adns_query qu; assert(ads->tcpstate == server_connecting || ads->tcpstate == server_ok); serv= ads->tcpserver; if (what) adns__warn(ads,serv,0,"TCP connection failed: %s: %s",what,why); if (ads->tcpstate == server_connecting) { /* Counts as a retry for all the queries waiting for TCP. */ for (qu= ads->tcpw.head; qu; qu= qu->next) qu->retries++; } tcp_close(ads); ads->tcpstate= server_broken; ads->tcpserver= (serv+1)%ads->nservers; } static void tcp_connected(adns_state ads, struct timeval now) { adns_query qu, nqu; adns__debug(ads,ads->tcpserver,0,"TCP connected"); ads->tcpstate= server_ok; for (qu= ads->tcpw.head; qu && ads->tcpstate == server_ok; qu= nqu) { nqu= qu->next; assert(qu->state == query_tcpw); adns__querysend_tcp(qu,now); } } static void tcp_broken_events(adns_state ads) { adns_query qu, nqu; assert(ads->tcpstate == server_broken); for (qu= ads->tcpw.head; qu; qu= nqu) { nqu= qu->next; assert(qu->state == query_tcpw); if (qu->retries > ads->nservers) { LIST_UNLINK(ads->tcpw,qu); adns__query_fail(qu,adns_s_allservfail); } } ads->tcpstate= server_disconnected; } void adns__tcp_tryconnect(adns_state ads, struct timeval now) { int r, fd, tries; adns_rr_addr *addr; struct protoent *proto; for (tries=0; triesnservers; tries++) { switch (ads->tcpstate) { case server_connecting: case server_ok: case server_broken: return; case server_disconnected: break; default: abort(); } assert(!ads->tcpsend.used); assert(!ads->tcprecv.used); assert(!ads->tcprecv_skip); proto= getprotobyname("tcp"); if (!proto) { adns__diag(ads,-1,0,"unable to find protocol no. for TCP !"); return; } addr = &ads->servers[ads->tcpserver]; fd= socket(addr->addr.sa.sa_family, SOCK_STREAM, proto->p_proto); if (fd<0) { adns__diag(ads,-1,0,"cannot create TCP socket: %s",strerror(errno)); return; } r= adns__setnonblock(ads,fd); if (r) { adns__diag(ads,-1,0,"cannot make TCP socket nonblocking:" " %s",strerror(r)); close(fd); return; } r= connect(fd,&addr->addr.sa,addr->len); ads->tcpsocket= fd; ads->tcpstate= server_connecting; if (r==0) { tcp_connected(ads,now); return; } if (errno == EWOULDBLOCK || errno == EINPROGRESS) { ads->tcptimeout= now; timevaladd(&ads->tcptimeout,TCPCONNMS); return; } adns__tcp_broken(ads,"connect",strerror(errno)); tcp_broken_events(ads); } } /* Timeout handling functions. */ void adns__must_gettimeofday(adns_state ads, const struct timeval **now_io, struct timeval *tv_buf) { const struct timeval *now; int r; now= *now_io; if (now) return; r= gettimeofday(tv_buf,0); if (!r) { *now_io= tv_buf; return; } adns__diag(ads,-1,0,"gettimeofday failed: %s",strerror(errno)); adns_globalsystemfailure(ads); return; } static void inter_immed(struct timeval **tv_io, struct timeval *tvbuf) { struct timeval *rbuf; if (!tv_io) return; rbuf= *tv_io; if (!rbuf) { *tv_io= rbuf= tvbuf; } timerclear(rbuf); } static void inter_maxto(struct timeval **tv_io, struct timeval *tvbuf, struct timeval maxto) { struct timeval *rbuf; if (!tv_io) return; rbuf= *tv_io; if (!rbuf) { *tvbuf= maxto; *tv_io= tvbuf; } else { if (timercmp(rbuf,&maxto,>)) *rbuf= maxto; } /*fprintf(stderr,"inter_maxto maxto=%ld.%06ld result=%ld.%06ld\n", maxto.tv_sec,maxto.tv_usec,(**tv_io).tv_sec,(**tv_io).tv_usec);*/ } static void inter_maxtoabs(struct timeval **tv_io, struct timeval *tvbuf, struct timeval now, struct timeval maxtime) { /* tv_io may be 0 */ ldiv_t dr; /*fprintf(stderr,"inter_maxtoabs now=%ld.%06ld maxtime=%ld.%06ld\n", now.tv_sec,now.tv_usec,maxtime.tv_sec,maxtime.tv_usec);*/ if (!tv_io) return; maxtime.tv_sec -= (now.tv_sec+2); maxtime.tv_usec -= (now.tv_usec-2000000); dr= ldiv(maxtime.tv_usec,1000000); maxtime.tv_sec += dr.quot; maxtime.tv_usec -= dr.quot*1000000; if (maxtime.tv_sec<0) timerclear(&maxtime); inter_maxto(tv_io,tvbuf,maxtime); } static void timeouts_queue(adns_state ads, int act, struct timeval **tv_io, struct timeval *tvbuf, struct timeval now, struct query_queue *queue) { adns_query qu, nqu; for (qu= queue->head; qu; qu= nqu) { nqu= qu->next; if (!timercmp(&now,&qu->timeout,>)) { inter_maxtoabs(tv_io,tvbuf,now,qu->timeout); } else { if (!act) { inter_immed(tv_io,tvbuf); return; } LIST_UNLINK(*queue,qu); if (qu->state != query_tosend) { adns__query_fail(qu,adns_s_timeout); } else { adns__query_send(qu,now); } nqu= queue->head; } } } static void tcp_events(adns_state ads, int act, struct timeval **tv_io, struct timeval *tvbuf, struct timeval now) { for (;;) { switch (ads->tcpstate) { case server_broken: if (!act) { inter_immed(tv_io,tvbuf); return; } tcp_broken_events(ads); case server_disconnected: /* fall through */ if (!ads->tcpw.head) return; if (!act) { inter_immed(tv_io,tvbuf); return; } adns__tcp_tryconnect(ads,now); break; case server_ok: if (ads->tcpw.head) return; if (!ads->tcptimeout.tv_sec) { assert(!ads->tcptimeout.tv_usec); ads->tcptimeout= now; timevaladd(&ads->tcptimeout,TCPIDLEMS); } case server_connecting: /* fall through */ if (!act || !timercmp(&now,&ads->tcptimeout,>)) { inter_maxtoabs(tv_io,tvbuf,now,ads->tcptimeout); return; } { /* TCP timeout has happened */ switch (ads->tcpstate) { case server_connecting: /* failed to connect */ adns__tcp_broken(ads,"unable to make connection","timed out"); break; case server_ok: /* idle timeout */ tcp_close(ads); ads->tcpstate= server_disconnected; return; default: abort(); } } break; default: abort(); } } return; } void adns__timeouts(adns_state ads, int act, struct timeval **tv_io, struct timeval *tvbuf, struct timeval now) { timeouts_queue(ads,act,tv_io,tvbuf,now, &ads->udpw); timeouts_queue(ads,act,tv_io,tvbuf,now, &ads->tcpw); tcp_events(ads,act,tv_io,tvbuf,now); } void adns_firsttimeout(adns_state ads, struct timeval **tv_io, struct timeval *tvbuf, struct timeval now) { adns__consistency(ads,0,cc_entex); adns__timeouts(ads, 0, tv_io,tvbuf, now); adns__returning(ads,0); } void adns_processtimeouts(adns_state ads, const struct timeval *now) { struct timeval tv_buf; adns__consistency(ads,0,cc_entex); adns__must_gettimeofday(ads,&now,&tv_buf); if (now) adns__timeouts(ads, 1, 0,0, *now); adns__returning(ads,0); } /* fd handling functions. These are the top-level of the real work of * reception and often transmission. */ int adns__pollfds(adns_state ads, struct pollfd pollfds_buf[MAX_POLLFDS]) { /* Returns the number of entries filled in. Always zeroes revents. */ int nwanted=0; #define ADD_POLLFD(wantfd, wantevents) do{ \ pollfds_buf[nwanted].fd= (wantfd); \ pollfds_buf[nwanted].events= (wantevents); \ pollfds_buf[nwanted].revents= 0; \ nwanted++; \ }while(0) int i; assert(MAX_POLLFDS == MAXUDP + 1); for (i=0; inudpsockets; i++) ADD_POLLFD(ads->udpsockets[i].fd, POLLIN); switch (ads->tcpstate) { case server_disconnected: case server_broken: break; case server_connecting: ADD_POLLFD(ads->tcpsocket, POLLOUT); break; case server_ok: ADD_POLLFD(ads->tcpsocket, ads->tcpsend.used ? POLLIN|POLLOUT|POLLPRI : POLLIN|POLLPRI); break; default: abort(); } assert(nwanted<=MAX_POLLFDS); #undef ADD_POLLFD return nwanted; } int adns_processreadable(adns_state ads, int fd, const struct timeval *now) { int want, dgramlen, r, i, udpaddrlen, serv, old_skip; byte udpbuf[DNS_MAXUDP]; char addrbuf[ADNS_ADDR2TEXT_BUFLEN]; struct udpsocket *udp; adns_sockaddr udpaddr; adns__consistency(ads,0,cc_entex); switch (ads->tcpstate) { case server_disconnected: case server_broken: case server_connecting: break; case server_ok: if (fd != ads->tcpsocket) break; assert(!ads->tcprecv_skip); do { if (ads->tcprecv.used >= ads->tcprecv_skip+2) { dgramlen= ((ads->tcprecv.buf[ads->tcprecv_skip]<<8) | ads->tcprecv.buf[ads->tcprecv_skip+1]); if (ads->tcprecv.used >= ads->tcprecv_skip+2+dgramlen) { old_skip= ads->tcprecv_skip; ads->tcprecv_skip += 2+dgramlen; adns__procdgram(ads, ads->tcprecv.buf+old_skip+2, dgramlen, ads->tcpserver, 1,*now); continue; } else { want= 2+dgramlen; } } else { want= 2; } ads->tcprecv.used -= ads->tcprecv_skip; memmove(ads->tcprecv.buf, ads->tcprecv.buf+ads->tcprecv_skip, ads->tcprecv.used); ads->tcprecv_skip= 0; if (!adns__vbuf_ensure(&ads->tcprecv,want)) { r= ENOMEM; goto xit; } assert(ads->tcprecv.used <= ads->tcprecv.avail); if (ads->tcprecv.used == ads->tcprecv.avail) continue; r= read(ads->tcpsocket, ads->tcprecv.buf+ads->tcprecv.used, ads->tcprecv.avail-ads->tcprecv.used); if (r>0) { ads->tcprecv.used+= r; } else { if (r) { if (errno==EAGAIN || errno==EWOULDBLOCK) { r= 0; goto xit; } if (errno==EINTR) continue; if (errno_resources(errno)) { r= errno; goto xit; } } adns__tcp_broken(ads,"read",r?strerror(errno):"closed"); } } while (ads->tcpstate == server_ok); r= 0; goto xit; default: abort(); } for (i=0; inudpsockets; i++) { udp= &ads->udpsockets[i]; if (fd != udp->fd) continue; for (;;) { udpaddrlen= sizeof(udpaddr); r= recvfrom(fd,udpbuf,sizeof(udpbuf),0, &udpaddr.sa,&udpaddrlen); if (r<0) { if (errno == EAGAIN || errno == EWOULDBLOCK) { r= 0; goto xit; } if (errno == EINTR) continue; if (errno_resources(errno)) { r= errno; goto xit; } adns__warn(ads,-1,0,"datagram receive error: %s",strerror(errno)); r= 0; goto xit; } for (serv= 0; serv < ads->nservers && !adns__sockaddrs_equal(&udpaddr.sa, &ads->servers[serv].addr.sa); serv++); if (serv >= ads->nservers) { adns__warn(ads,-1,0,"datagram received from unknown nameserver %s", adns__sockaddr_ntoa(&udpaddr.sa, addrbuf)); continue; } adns__procdgram(ads,udpbuf,r,serv,0,*now); } break; } r= 0; xit: adns__returning(ads,0); return r; } int adns_processwriteable(adns_state ads, int fd, const struct timeval *now) { int r; adns__consistency(ads,0,cc_entex); switch (ads->tcpstate) { case server_disconnected: case server_broken: break; case server_connecting: if (fd != ads->tcpsocket) break; assert(ads->tcprecv.used==0); assert(ads->tcprecv_skip==0); for (;;) { if (!adns__vbuf_ensure(&ads->tcprecv,1)) { r= ENOMEM; goto xit; } r= read(ads->tcpsocket,&ads->tcprecv.buf,1); if (r==0 || (r<0 && (errno==EAGAIN || errno==EWOULDBLOCK))) { tcp_connected(ads,*now); r= 0; goto xit; } if (r>0) { adns__tcp_broken(ads,"connect/read","sent data before first request"); r= 0; goto xit; } if (errno==EINTR) continue; if (errno_resources(errno)) { r= errno; goto xit; } adns__tcp_broken(ads,"connect/read",strerror(errno)); r= 0; goto xit; } /* not reached */ case server_ok: if (fd != ads->tcpsocket) break; while (ads->tcpsend.used) { adns__sigpipe_protect(ads); r= write(ads->tcpsocket,ads->tcpsend.buf,ads->tcpsend.used); adns__sigpipe_unprotect(ads); if (r<0) { if (errno==EINTR) continue; if (errno==EAGAIN || errno==EWOULDBLOCK) { r= 0; goto xit; } if (errno_resources(errno)) { r= errno; goto xit; } adns__tcp_broken(ads,"write",strerror(errno)); r= 0; goto xit; } else if (r>0) { ads->tcpsend.used -= r; memmove(ads->tcpsend.buf,ads->tcpsend.buf+r,ads->tcpsend.used); } } r= 0; goto xit; default: abort(); } r= 0; xit: adns__returning(ads,0); return r; } int adns_processexceptional(adns_state ads, int fd, const struct timeval *now) { adns__consistency(ads,0,cc_entex); switch (ads->tcpstate) { case server_disconnected: case server_broken: break; case server_connecting: case server_ok: if (fd != ads->tcpsocket) break; adns__tcp_broken(ads,"poll/select","exceptional condition detected"); break; default: abort(); } adns__returning(ads,0); return 0; } static void fd_event(adns_state ads, int fd, int revent, int pollflag, int maxfd, const fd_set *fds, int (*func)(adns_state, int fd, const struct timeval *now), struct timeval now, int *r_r) { int r; if (!(revent & pollflag)) return; if (fds && !(fd= maxfd) maxfd= fd+1; revents= pollfds[i].revents; #define EV(pollfl,fds,how) \ fd_event(ads,fd, revents,pollfl, maxfd,fds, adns_process##how,now,r_r) EV( POLLIN, readfds, readable ); EV( POLLOUT, writefds, writeable ); EV( POLLPRI, exceptfds, exceptional ); #undef EV } } /* Wrappers for select(2). */ void adns_beforeselect(adns_state ads, int *maxfd_io, fd_set *readfds_io, fd_set *writefds_io, fd_set *exceptfds_io, struct timeval **tv_mod, struct timeval *tv_tobuf, const struct timeval *now) { struct timeval tv_nowbuf; struct pollfd pollfds[MAX_POLLFDS]; int i, fd, maxfd, npollfds; adns__consistency(ads,0,cc_entex); if (tv_mod && (!*tv_mod || (*tv_mod)->tv_sec || (*tv_mod)->tv_usec)) { /* The caller is planning to sleep. */ adns__must_gettimeofday(ads,&now,&tv_nowbuf); if (!now) { inter_immed(tv_mod,tv_tobuf); goto xit; } adns__timeouts(ads, 0, tv_mod,tv_tobuf, *now); } npollfds= adns__pollfds(ads,pollfds); maxfd= *maxfd_io; for (i=0; i= maxfd) maxfd= fd+1; if (pollfds[i].events & POLLIN) FD_SET(fd,readfds_io); if (pollfds[i].events & POLLOUT) FD_SET(fd,writefds_io); if (pollfds[i].events & POLLPRI) FD_SET(fd,exceptfds_io); } *maxfd_io= maxfd; xit: adns__returning(ads,0); } void adns_afterselect(adns_state ads, int maxfd, const fd_set *readfds, const fd_set *writefds, const fd_set *exceptfds, const struct timeval *now) { struct timeval tv_buf; struct pollfd pollfds[MAX_POLLFDS]; int npollfds, i; adns__consistency(ads,0,cc_entex); adns__must_gettimeofday(ads,&now,&tv_buf); if (!now) goto xit; adns_processtimeouts(ads,now); npollfds= adns__pollfds(ads,pollfds); for (i=0; iudpw.head) adns__query_fail(ads->udpw.head, adns_s_systemfail); while (ads->tcpw.head) adns__query_fail(ads->tcpw.head, adns_s_systemfail); switch (ads->tcpstate) { case server_connecting: case server_ok: adns__tcp_broken(ads,0,0); break; case server_disconnected: case server_broken: break; default: abort(); } adns__returning(ads,0); } int adns_processany(adns_state ads) { int r, i; struct timeval now; struct pollfd pollfds[MAX_POLLFDS]; int npollfds; adns__consistency(ads,0,cc_entex); r= gettimeofday(&now,0); if (!r) adns_processtimeouts(ads,&now); /* We just use adns__fdevents to loop over the fd's trying them. * This seems more sensible than calling select, since we're most * likely just to want to do a read on one or two fds anyway. */ npollfds= adns__pollfds(ads,pollfds); for (i=0; iiflags & adns_if_noautosys) return; adns_processany(ads); } int adns__internal_check(adns_state ads, adns_query *query_io, adns_answer **answer, void **context_r) { adns_query qu; qu= *query_io; if (!qu) { if (ads->output.head) { qu= ads->output.head; } else if (ads->udpw.head || ads->tcpw.head) { return EAGAIN; } else { return ESRCH; } } else { if (qu->id>=0) return EAGAIN; } LIST_UNLINK(ads->output,qu); *answer= qu->answer; if (context_r) *context_r= qu->ctx.ext; *query_io= qu; free(qu); return 0; } int adns_wait(adns_state ads, adns_query *query_io, adns_answer **answer_r, void **context_r) { int r, maxfd, rsel; fd_set readfds, writefds, exceptfds; struct timeval tvbuf, *tvp; adns__consistency(ads,*query_io,cc_entex); for (;;) { r= adns__internal_check(ads,query_io,answer_r,context_r); if (r != EAGAIN) break; maxfd= 0; tvp= 0; FD_ZERO(&readfds); FD_ZERO(&writefds); FD_ZERO(&exceptfds); adns_beforeselect(ads,&maxfd,&readfds,&writefds,&exceptfds,&tvp,&tvbuf,0); assert(tvp); rsel= select(maxfd,&readfds,&writefds,&exceptfds,tvp); if (rsel==-1) { if (errno == EINTR) { if (ads->iflags & adns_if_eintr) { r= EINTR; break; } } else { adns__diag(ads,-1,0,"select failed in wait: %s",strerror(errno)); adns_globalsystemfailure(ads); } } else { assert(rsel >= 0); adns_afterselect(ads,maxfd,&readfds,&writefds,&exceptfds,0); } } adns__returning(ads,0); return r; } int adns_check(adns_state ads, adns_query *query_io, adns_answer **answer_r, void **context_r) { struct timeval now; int r; adns__consistency(ads,*query_io,cc_entex); r= gettimeofday(&now,0); if (!r) adns__autosys(ads,now); r= adns__internal_check(ads,query_io,answer_r,context_r); adns__returning(ads,0); return r; } adns-1.5.0~rc1/src/config.h.in0000664000175000017500000000427312421042027014162 0ustar ianian/* src/config.h.in. Generated automatically from configure.in by autoheader 2.13. */ /* Define if inline functions a la GCC are available. */ #undef HAVE_INLINE /* Define if function attributes a la GCC 2.5 and higher are available. */ #undef HAVE_GNUC25_ATTRIB /* Define if constant functions a la GCC 2.5 and higher are available. */ #undef HAVE_GNUC25_CONST /* Define if nonreturning functions a la GCC 2.5 and higher are available. */ #undef HAVE_GNUC25_NORETURN /* Define if printf-format argument lists a la GCC are available. */ #undef HAVE_GNUC25_PRINTFFORMAT /* Define if we want to include rpc/types.h. Crap BSDs put INADDR_LOOPBACK there. */ #undef HAVEUSE_RPCTYPES_H /* Define if you have the poll function. */ #undef HAVE_POLL /* Define if you have the nsl library (-lnsl). */ #undef HAVE_LIBNSL /* Define if you have the socket library (-lsocket). */ #undef HAVE_LIBSOCKET /* Use the definitions: */ #ifndef HAVE_INLINE #define inline #endif #ifdef HAVE_POLL #include #else /* kludge it up */ struct pollfd { int fd; short events; short revents; }; #define POLLIN 1 #define POLLPRI 2 #define POLLOUT 4 #endif /* GNU C attributes. */ #ifndef FUNCATTR #ifdef HAVE_GNUC25_ATTRIB #define FUNCATTR(x) __attribute__(x) #else #define FUNCATTR(x) #endif #endif /* GNU C printf formats, or null. */ #ifndef ATTRPRINTF #ifdef HAVE_GNUC25_PRINTFFORMAT #define ATTRPRINTF(si,tc) format(printf,si,tc) #else #define ATTRPRINTF(si,tc) #endif #endif #ifndef PRINTFFORMAT #define PRINTFFORMAT(si,tc) FUNCATTR((ATTRPRINTF(si,tc))) #endif /* GNU C nonreturning functions, or null. */ #ifndef ATTRNORETURN #ifdef HAVE_GNUC25_NORETURN #define ATTRNORETURN noreturn #else #define ATTRNORETURN #endif #endif #ifndef NONRETURNING #define NONRETURNING FUNCATTR((ATTRNORETURN)) #endif /* Combination of both the above. */ #ifndef NONRETURNPRINTFFORMAT #define NONRETURNPRINTFFORMAT(si,tc) FUNCATTR((ATTRPRINTF(si,tc),ATTRNORETURN)) #endif /* GNU C constant functions, or null. */ #ifndef ATTRCONST #ifdef HAVE_GNUC25_CONST #define ATTRCONST const #else #define ATTRCONST #endif #endif #ifndef CONSTANT #define CONSTANT FUNCATTR((ATTRCONST)) #endif #ifdef HAVEUSE_RPCTYPES_H #include #endif adns-1.5.0~rc1/src/adns.make0000664000175000017500000000212712421042027013717 0ustar ianian# src/adns.make - library definitions, including list of object files # # This file is part of adns, which is # Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson # Copyright (C) 2014 Mark Wooding # Copyright (C) 1999-2000,2003,2006 Tony Finch # Copyright (C) 1991 Massachusetts Institute of Technology # (See the file INSTALL for full details.) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation. LIBOBJS= types.o event.o query.o reply.o general.o setup.o transmit.o \ parse.o poll.o check.o addrfam.o adns-1.5.0~rc1/src/transmit.c0000664000175000017500000001635712421042027014152 0ustar ianian/* * transmit.c * - construct queries * - send queries */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include #include #include #include "internal.h" #include "tvarith.h" #define MKQUERY_START(vb) (rqp= (vb)->buf+(vb)->used) #define MKQUERY_ADDB(b) *rqp++= (b) #define MKQUERY_ADDW(w) (MKQUERY_ADDB(((w)>>8)&0x0ff), MKQUERY_ADDB((w)&0x0ff)) #define MKQUERY_STOP(vb) ((vb)->used= rqp-(vb)->buf) static adns_status mkquery_header(adns_state ads, vbuf *vb, int *id_r, int qdlen) { int id; byte *rqp; if (!adns__vbuf_ensure(vb,DNS_HDRSIZE+qdlen+4)) return adns_s_nomemory; vb->used= 0; MKQUERY_START(vb); *id_r= id= (ads->nextid++) & 0x0ffff; MKQUERY_ADDW(id); MKQUERY_ADDB(0x01); /* QR=Q(0), OPCODE=QUERY(0000), !AA, !TC, RD */ MKQUERY_ADDB(0x00); /* !RA, Z=000, RCODE=NOERROR(0000) */ MKQUERY_ADDW(1); /* QDCOUNT=1 */ MKQUERY_ADDW(0); /* ANCOUNT=0 */ MKQUERY_ADDW(0); /* NSCOUNT=0 */ MKQUERY_ADDW(0); /* ARCOUNT=0 */ MKQUERY_STOP(vb); return adns_s_ok; } static adns_status mkquery_footer(vbuf *vb, adns_rrtype type) { byte *rqp; MKQUERY_START(vb); MKQUERY_ADDW(type & adns_rrt_typemask); /* QTYPE */ MKQUERY_ADDW(DNS_CLASS_IN); /* QCLASS=IN */ MKQUERY_STOP(vb); assert(vb->used <= vb->avail); return adns_s_ok; } static adns_status qdparselabel(adns_state ads, const char **p_io, const char *pe, char label_r[], int *ll_io, adns_queryflags flags) { int ll, c; const char *p; ll= 0; p= *p_io; while (p!=pe && (c= *p++)!='.') { if (c=='\\') { if (!(flags & adns_qf_quoteok_query)) return adns_s_querydomaininvalid; if (ctype_digit(p[0])) { if (p+1==pe || p+2==pe) return adns_s_querydomaininvalid; if (ctype_digit(p[1]) && ctype_digit(p[2])) { c= (*p++ - '0')*100; c += (*p++ - '0')*10; c += (*p++ - '0'); if (c >= 256) return adns_s_querydomaininvalid; } else { return adns_s_querydomaininvalid; } } else if (!(c= *p++)) { return adns_s_querydomaininvalid; } } if (ll == *ll_io) return adns_s_querydomaininvalid; label_r[ll++]= c; } *p_io= p; *ll_io= ll; return adns_s_ok; } adns_status adns__mkquery(adns_state ads, vbuf *vb, int *id_r, const char *owner, int ol, const typeinfo *typei, adns_rrtype type, adns_queryflags flags) { int ll, nbytes; byte label[255]; byte *rqp; const char *p, *pe; adns_status st; st= mkquery_header(ads,vb,id_r,ol+2); if (st) return st; MKQUERY_START(vb); p= owner; pe= owner+ol; nbytes= 0; while (p!=pe) { ll= sizeof(label); st= qdparselabel(ads, &p,pe, label, &ll, flags); if (st) return st; if (!ll) return adns_s_querydomaininvalid; if (ll > DNS_MAXLABEL) return adns_s_querydomaintoolong; nbytes+= ll+1; if (nbytes >= DNS_MAXDOMAIN) return adns_s_querydomaintoolong; MKQUERY_ADDB(ll); memcpy(rqp,label,ll); rqp+= ll; } MKQUERY_ADDB(0); MKQUERY_STOP(vb); st= mkquery_footer(vb,type); return adns_s_ok; } adns_status adns__mkquery_frdgram(adns_state ads, vbuf *vb, int *id_r, const byte *qd_dgram, int qd_dglen, int qd_begin, adns_rrtype type, adns_queryflags flags) { byte *rqp; findlabel_state fls; int lablen, labstart; adns_status st; st= mkquery_header(ads,vb,id_r,qd_dglen); if (st) return st; MKQUERY_START(vb); adns__findlabel_start(&fls,ads,-1,0,qd_dgram,qd_dglen,qd_dglen,qd_begin,0); for (;;) { st= adns__findlabel_next(&fls,&lablen,&labstart); assert(!st); if (!lablen) break; assert(lablen<255); MKQUERY_ADDB(lablen); memcpy(rqp,qd_dgram+labstart,lablen); rqp+= lablen; } MKQUERY_ADDB(0); MKQUERY_STOP(vb); st= mkquery_footer(vb,type); return adns_s_ok; } void adns__querysend_tcp(adns_query qu, struct timeval now) { byte length[2]; struct iovec iov[2]; int wr, r; adns_state ads; if (qu->ads->tcpstate != server_ok) return; assert(qu->state == query_tcpw); length[0]= (qu->query_dglen&0x0ff00U) >>8; length[1]= (qu->query_dglen&0x0ff); ads= qu->ads; if (!adns__vbuf_ensure(&ads->tcpsend,ads->tcpsend.used+qu->query_dglen+2)) return; qu->retries++; /* Reset idle timeout. */ ads->tcptimeout.tv_sec= ads->tcptimeout.tv_usec= 0; if (ads->tcpsend.used) { wr= 0; } else { iov[0].iov_base= length; iov[0].iov_len= 2; iov[1].iov_base= qu->query_dgram; iov[1].iov_len= qu->query_dglen; adns__sigpipe_protect(qu->ads); wr= writev(qu->ads->tcpsocket,iov,2); adns__sigpipe_unprotect(qu->ads); if (wr < 0) { if (!(errno == EAGAIN || errno == EINTR || errno == ENOSPC || errno == ENOBUFS || errno == ENOMEM)) { adns__tcp_broken(ads,"write",strerror(errno)); return; } wr= 0; } } if (wr<2) { r= adns__vbuf_append(&ads->tcpsend,length,2-wr); assert(r); wr= 0; } else { wr-= 2; } if (wrquery_dglen) { r= adns__vbuf_append(&ads->tcpsend,qu->query_dgram+wr,qu->query_dglen-wr); assert(r); } } static void query_usetcp(adns_query qu, struct timeval now) { qu->state= query_tcpw; qu->timeout= now; timevaladd(&qu->timeout,TCPWAITMS); LIST_LINK_TAIL(qu->ads->tcpw,qu); adns__querysend_tcp(qu,now); adns__tcp_tryconnect(qu->ads,now); } struct udpsocket *adns__udpsocket_by_af(adns_state ads, int af) { int i; for (i=0; inudpsockets; i++) if (ads->udpsockets[i].af == af) return &ads->udpsockets[i]; return 0; } void adns__query_send(adns_query qu, struct timeval now) { int serv, r; adns_state ads; struct udpsocket *udp; adns_rr_addr *addr; assert(qu->state == query_tosend); if ((qu->flags & adns_qf_usevc) || (qu->query_dglen > DNS_MAXUDP)) { query_usetcp(qu,now); return; } if (qu->retries >= UDPMAXRETRIES) { adns__query_fail(qu,adns_s_timeout); return; } ads= qu->ads; serv= qu->udpnextserver; addr= &ads->servers[serv]; udp= adns__udpsocket_by_af(ads, addr->addr.sa.sa_family); assert(udp); r= sendto(udp->fd,qu->query_dgram,qu->query_dglen,0, &addr->addr.sa,addr->len); if (r<0 && errno == EMSGSIZE) { qu->retries= 0; query_usetcp(qu,now); return; } if (r<0 && errno != EAGAIN) adns__warn(ads,serv,0,"sendto failed: %s",strerror(errno)); qu->timeout= now; timevaladd(&qu->timeout,UDPRETRYMS); qu->udpsent |= (1<udpnextserver= (serv+1)%ads->nservers; qu->retries++; LIST_LINK_TAIL(ads->udpw,qu); } adns-1.5.0~rc1/src/types.c0000664000175000017500000013446212423157063013464 0ustar ianian/* * types.c * - RR-type-specific code, and the machinery to call it */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include #include #include #include #include #include #include "internal.h" #define R_NOMEM return adns_s_nomemory #define CSP_ADDSTR(s) do { \ if (!adns__vbuf_appendstr(vb,(s))) R_NOMEM; \ } while (0) /* * order of sections: * * _string (pap) * _textdata, _qstring (csp) * _str (mf,cs) * _intstr (mf,csp,cs) * _manyistr (mf,cs) * _txt (pa) * _inaddr (pa,di,cs * +search_sortlist, dip_genaddr, csp_genaddr) * _in6addr (pa,di,cs) * _addr (pap,pa,di,div,csp,cs,gsz,qs * +search_sortlist_sa, dip_sockaddr, * addr_rrtypes, addr_submit, icb_addr) * _domain (pap,csp,cs) * _dom_raw (pa) * _host_raw (pa) * _hostaddr (pap,pa,dip,di,mfp,mf,csp,cs * +pap_findaddrs, icb_hostaddr) * _mx_raw (pa,di) * _mx (pa,di) * _inthostaddr (mf,cs) * _inthost (cs) * _ptr (ckl,pa +icb_ptr) * _strpair (mf) * _intstrpair (mf) * _hinfo (pa) * _mailbox (pap,csp +pap_mailbox822) * _rp (pa,cs) * _soa (pa,mf,cs) * _srv* (ckl,(pap),pa*2,mf*2,di,(csp),cs*2,postsort) * _byteblock (mf) * _opaque (pa,cs) * _flat (mf) * * within each section: * ckl_* * pap_* * pa_* * dip_* * di_* * mfp_* * mf_* * csp_* * cs_* * gsz_* * postsort_* * qs_* */ /* * _qstring (pap,csp) */ static adns_status pap_qstring(const parseinfo *pai, int *cbyte_io, int max, int *len_r, char **str_r) { /* Neither len_r nor str_r may be null. * End of datagram (overrun) is indicated by returning adns_s_invaliddata; */ const byte *dgram= pai->dgram; int l, cbyte; char *str; cbyte= *cbyte_io; if (cbyte >= max) return adns_s_invaliddata; GET_B(cbyte,l); if (cbyte+l > max) return adns_s_invaliddata; str= adns__alloc_interim(pai->qu, l+1); if (!str) R_NOMEM; str[l]= 0; memcpy(str,dgram+cbyte,l); *len_r= l; *str_r= str; *cbyte_io= cbyte+l; return adns_s_ok; } static adns_status csp_qstring(vbuf *vb, const char *dp, int len) { unsigned char ch; char buf[10]; int cn; CSP_ADDSTR("\""); for (cn=0; cn= 32 && ch <= 126) { if (!adns__vbuf_append(vb,&ch,1)) R_NOMEM; } else { sprintf(buf,"\\x%02x",ch); CSP_ADDSTR(buf); } } CSP_ADDSTR("\""); return adns_s_ok; } /* * _str (mf) */ static void mf_str(adns_query qu, void *datap) { char **rrp= datap; adns__makefinal_str(qu,rrp); } /* * _intstr (mf) */ static void mf_intstr(adns_query qu, void *datap) { adns_rr_intstr *rrp= datap; adns__makefinal_str(qu,&rrp->str); } /* * _manyistr (mf) */ static void mf_manyistr(adns_query qu, void *datap) { adns_rr_intstr **rrp= datap; adns_rr_intstr *te, *table; void *tablev; int tc; for (tc=0, te= *rrp; te->i >= 0; te++, tc++); tablev= *rrp; adns__makefinal_block(qu,&tablev,sizeof(*te)*(tc+1)); *rrp= table= tablev; for (te= *rrp; te->i >= 0; te++) adns__makefinal_str(qu,&te->str); } /* * _txt (pa,cs) */ static adns_status pa_txt(const parseinfo *pai, int cbyte, int max, void *datap) { adns_rr_intstr **rrp= datap, *table, *te; const byte *dgram= pai->dgram; int ti, tc, l, startbyte; adns_status st; startbyte= cbyte; if (cbyte >= max) return adns_s_invaliddata; tc= 0; while (cbyte < max) { GET_B(cbyte,l); cbyte+= l; tc++; } if (cbyte != max || !tc) return adns_s_invaliddata; table= adns__alloc_interim(pai->qu,sizeof(*table)*(tc+1)); if (!table) R_NOMEM; for (cbyte=startbyte, ti=0, te=table; tii, &te->str); if (st) return st; } assert(cbyte == max); te->i= -1; te->str= 0; *rrp= table; return adns_s_ok; } static adns_status cs_txt(vbuf *vb, const void *datap) { const adns_rr_intstr *const *rrp= datap; const adns_rr_intstr *current; adns_status st; int spc; for (current= *rrp, spc=0; current->i >= 0; current++, spc=1) { if (spc) CSP_ADDSTR(" "); st= csp_qstring(vb,current->str,current->i); if (st) return st; } return adns_s_ok; } /* * _hinfo (cs) */ static adns_status cs_hinfo(vbuf *vb, const void *datap) { const adns_rr_intstrpair *rrp= datap; adns_status st; st= csp_qstring(vb,rrp->array[0].str,rrp->array[0].i); if (st) return st; CSP_ADDSTR(" "); st= csp_qstring(vb,rrp->array[1].str,rrp->array[1].i); if (st) return st; return adns_s_ok; } /* * _inaddr (pa,di,cs +search_sortlist, dip_genaddr, csp_genaddr) */ static adns_status pa_inaddr(const parseinfo *pai, int cbyte, int max, void *datap) { struct in_addr *storeto= datap; if (max-cbyte != 4) return adns_s_invaliddata; memcpy(storeto, pai->dgram + cbyte, 4); return adns_s_ok; } static int search_sortlist(adns_state ads, int af, const void *ad) { const struct sortlist *slp; struct in_addr a4; int i; int v6mappedp= 0; if (af == AF_INET6) { const struct in6_addr *a6= ad; if (IN6_IS_ADDR_V4MAPPED(a6)) { a4.s_addr= htonl(((unsigned long)a6->s6_addr[12] << 24) | ((unsigned long)a6->s6_addr[13] << 16) | ((unsigned long)a6->s6_addr[14] << 8) | ((unsigned long)a6->s6_addr[15] << 0)); v6mappedp= 1; } } for (i=0, slp=ads->sortlist; insortlist && !adns__addr_matches(af,ad, &slp->base,&slp->mask) && !(v6mappedp && adns__addr_matches(AF_INET,&a4, &slp->base,&slp->mask)); i++, slp++); return i; } static int dip_genaddr(adns_state ads, int af, const void *a, const void *b) { int ai, bi; if (!ads->nsortlist) return 0; ai= search_sortlist(ads,af,a); bi= search_sortlist(ads,af,b); return bis6_addr, pai->dgram + cbyte, 16); return adns_s_ok; } static int di_in6addr(adns_state ads, const void *datap_a, const void *datap_b) { return dip_genaddr(ads,AF_INET6,datap_a,datap_b); } static adns_status cs_in6addr(vbuf *vb, const void *datap) { return csp_genaddr(vb,AF_INET6,datap); } /* * _addr (pap,pa,di,div,csp,cs,gsz,qs * +search_sortlist_sa, dip_sockaddr, addr_rrtypes, * addr_submit, icb_addr) */ static const typeinfo tinfo_addrsub; #define ADDR_RRTYPES(_) _(a) _(aaaa) static const adns_rrtype addr_all_rrtypes[] = { #define RRTY_CODE(ty) adns_r_##ty, ADDR_RRTYPES(RRTY_CODE) #undef RRTY_CODE }; enum { #define RRTY_INDEX(ty) addr__ri_##ty, ADDR_RRTYPES(RRTY_INDEX) #undef RRTY_INDEX addr_nrrtypes, #define RRTY_FLAG(ty) addr_rf_##ty = 1 << addr__ri_##ty, ADDR_RRTYPES(RRTY_FLAG) addr__rrty_eat_final_comma #undef RRTY_FLAG }; static unsigned addr_rrtypeflag(adns_rrtype type) { int i; type &= adns_rrt_typemask; for (i=0; icname slot. We discard address records from the * wrong name. And finally we cancel the outstanding child queries, and * resubmit address queries for the address families we don't yet have, with * adns__qf_addr_cname set so that we know that we're in the fixup state. */ static adns_status pap_addr(const parseinfo *pai, int in_rrty, size_t out_rrsz, int *cbyte_io, int cbyte_max, adns_rr_addr *out) { int in_addrlen; int out_af, out_salen; struct in6_addr v6map; const void *use_addr= pai->dgram + *cbyte_io; switch (in_rrty) { case adns_r_a: in_addrlen= 4; out_af= AF_INET; break; case adns_r_aaaa: in_addrlen= 16; out_af= AF_INET6; break; default: abort(); } if ((*cbyte_io + in_addrlen) != cbyte_max) return adns_s_invaliddata; if (out_af==AF_INET && (pai->qu->flags & adns_qf_ipv6_mapv4) && (pai->qu->answer->type & adns__qtf_bigaddr)) { memset(v6map.s6_addr + 0, 0x00, 10); memset(v6map.s6_addr + 10, 0xff, 2); memcpy(v6map.s6_addr + 12, use_addr, 4); use_addr= v6map.s6_addr; out_af= AF_INET6; } switch (out_af) { case AF_INET: out_salen= sizeof(out->addr.inet); break; case AF_INET6: out_salen= sizeof(out->addr.inet6); break; default: abort(); } assert(offsetof(adns_rr_addr, addr) + out_salen <= out_rrsz); memset(&out->addr, 0, out_salen); out->len= out_salen; out->addr.sa.sa_family= out_af; adns__addr_inject(use_addr, &out->addr); *cbyte_io += in_addrlen; return adns_s_ok; } static adns_status pa_addr(const parseinfo *pai, int cbyte, int max, void *datap) { int err= pap_addr(pai, pai->qu->answer->type & adns_rrt_typemask, pai->qu->answer->rrsz, &cbyte, max, datap); if (err) return err; if (cbyte != max) return adns_s_invaliddata; return adns_s_ok; } static int search_sortlist_sa(adns_state ads, const struct sockaddr *sa) { const void *pa = adns__sockaddr_addr(sa); return search_sortlist(ads, sa->sa_family, pa); } static int dip_sockaddr(adns_state ads, const struct sockaddr *sa, const struct sockaddr *sb) { if (!ads->sortlist) return 0; return search_sortlist_sa(ads, sa) > search_sortlist_sa(ads, sb); } static int di_addr(adns_state ads, const void *datap_a, const void *datap_b) { const adns_rr_addr *ap= datap_a, *bp= datap_b; return dip_sockaddr(ads, &ap->addr.sa, &bp->addr.sa); } static int div_addr(void *context, const void *datap_a, const void *datap_b) { const adns_state ads= context; return di_addr(ads, datap_a, datap_b); } static adns_status csp_addr(vbuf *vb, const adns_rr_addr *rrp) { char buf[ADNS_ADDR2TEXT_BUFLEN]; int len= sizeof(buf); int err; switch (rrp->addr.inet.sin_family) { case AF_INET: CSP_ADDSTR("INET "); goto a2t; case AF_INET6: CSP_ADDSTR("INET6 "); goto a2t; a2t: err= adns_addr2text(&rrp->addr.sa,0, buf,&len, 0); assert(!err); CSP_ADDSTR(buf); break; default: sprintf(buf,"AF=%u",rrp->addr.sa.sa_family); CSP_ADDSTR(buf); break; } return adns_s_ok; } static adns_status cs_addr(vbuf *vb, const void *datap) { const adns_rr_addr *rrp= datap; return csp_addr(vb,rrp); } static int gsz_addr(const typeinfo *typei, adns_rrtype type) { return type & adns__qtf_bigaddr ? sizeof(adns_rr_addr) : sizeof(adns_rr_addr_v4only); } static unsigned addr_rrtypes(adns_state ads, adns_rrtype type, adns_queryflags qf) { /* Return a mask of addr_rf_... flags indicating which address families are * wanted, given a query type and flags. */ adns_queryflags permitaf= 0; unsigned want= 0; if (!(type & adns__qtf_bigaddr)) qf= (qf & ~adns_qf_want_allaf) | adns_qf_want_ipv4; else { if (!(qf & adns_qf_want_allaf)) { qf |= (type & adns__qtf_manyaf) ? adns_qf_want_allaf : adns_qf_want_ipv4; } if (ads->iflags & adns_if_permit_ipv4) permitaf |= adns_qf_want_ipv4; if (ads->iflags & adns_if_permit_ipv6) permitaf |= adns_qf_want_ipv6; if (qf & permitaf) qf &= permitaf | ~adns_qf_want_allaf; } if (qf & adns_qf_want_ipv4) want |= addr_rf_a; if (qf & adns_qf_want_ipv6) want |= addr_rf_aaaa; return want; } static void icb_addr(adns_query parent, adns_query child); static void addr_subqueries(adns_query qu, struct timeval now, adns_queryflags qf_extra, const byte *qd_dgram, int qd_dglen) { int i, err, id; adns_query cqu; adns_queryflags qf= (qu->flags & ~adns_qf_search) | qf_extra; adns_rrtype qtf= qu->answer->type & adns__qtf_deref; unsigned which= qu->ctx.tinfo.addr.want & ~qu->ctx.tinfo.addr.have; qcontext ctx; memset(&ctx, 0, sizeof(ctx)); ctx.callback= icb_addr; for (i=0; iads, &qu->vb, &id, qd_dgram,qd_dglen, DNS_HDRSIZE, addr_all_rrtypes[i], qf); if (err) goto x_error; err= adns__internal_submit(qu->ads, &cqu, qu, &tinfo_addrsub, addr_all_rrtypes[i] | qtf, &qu->vb, id, qf, now, &ctx); if (err) goto x_error; cqu->answer->rrsz= qu->answer->rrsz; } qu->state= query_childw; LIST_LINK_TAIL(qu->ads->childw, qu); return; x_error: adns__query_fail(qu, err); } static adns_status addr_submit(adns_query parent, adns_query *query_r, vbuf *qumsg_vb, int id, unsigned want, adns_queryflags flags, struct timeval now, qcontext *ctx) { /* This is effectively a substitute for adns__internal_submit, intended for * the case where the caller (possibly) only wants a subset of the * available record types. The memory management and callback rules are * the same as for adns__internal_submit. * * Some differences: the query is linked onto the parent's children * list before exit (though the parent's state is not changed, and * it is not linked into the childw list queue); and we set the * `tinfo' portion of the context structure (yes, modifying *ctx), * since this is, in fact, the main purpose of this function. */ adns_state ads= parent->ads; adns_query qu; adns_status err; adns_rrtype type= ((adns_r_addr & adns_rrt_reprmask) | (parent->answer->type & ~adns_rrt_reprmask)); ctx->tinfo.addr.want= want; ctx->tinfo.addr.have= 0; err= adns__internal_submit(ads, &qu, parent, adns__findtype(adns_r_addr), type, qumsg_vb, id, flags, now, ctx); if (err) return err; *query_r= qu; return adns_s_ok; } static adns_status append_addrs(adns_query qu, size_t rrsz, adns_rr_addr **dp, int *dlen, const adns_rr_addr *sp, int slen) { /* Append a vector of slen addr records, each of size rrsz, starting at ap, * to a vector starting at *dp, of length *dlen. On successful completion, * *dp and *dlen are updated. */ size_t drrsz= *dlen*rrsz, srrsz= slen*rrsz; byte *p; if (!slen) return adns_s_ok; p= adns__alloc_interim(qu, drrsz + srrsz); if (!p) R_NOMEM; if (*dlen) { memcpy(p, *dp, drrsz); adns__free_interim(qu, *dp); } memcpy(p + drrsz, sp, srrsz); *dlen += slen; *dp= (adns_rr_addr *)p; return adns_s_ok; } static void propagate_ttl(adns_query to, adns_query from) { if (to->expires > from->expires) to->expires= from->expires; } static adns_status copy_cname_from_child(adns_query parent, adns_query child) { adns_answer *pans= parent->answer, *cans= child->answer; size_t n= strlen(cans->cname) + 1; pans->cname= adns__alloc_preserved(parent, n); if (!pans->cname) R_NOMEM; memcpy(pans->cname, cans->cname, n); return adns_s_ok; } static void done_addr_type(adns_query qu, adns_rrtype type) { unsigned f= addr_rrtypeflag(type); assert(f); qu->ctx.tinfo.addr.have |= f; } static void icb_addr(adns_query parent, adns_query child) { adns_state ads= parent->ads; adns_answer *pans= parent->answer, *cans= child->answer; struct timeval now; adns_status err; adns_queryflags qf; int id, r; propagate_ttl(parent, child); if (!(child->flags & adns__qf_addr_cname) && (parent->flags & adns__qf_addr_answer) && (!!pans->cname != !!cans->cname || (pans->cname && strcmp(pans->cname, cans->cname)))) { /* We've detected an inconsistency in CNAME records, and must deploy * countermeasures. */ if (!pans->cname) { /* The child has a CNAME record, but the parent doesn't. We must * discard all of the parent's addresses, and substitute the child's. */ assert(pans->rrsz == cans->rrsz); adns__free_interim(parent, pans->rrs.bytes); adns__transfer_interim(child, parent, cans->rrs.bytes); pans->rrs.bytes= cans->rrs.bytes; pans->nrrs= cans->nrrs; parent->ctx.tinfo.addr.have= 0; done_addr_type(parent, cans->type); err= copy_cname_from_child(parent, child); if (err) goto x_err; } /* We've settled on the CNAME (now) associated with the parent, which * already has appropriate address records. Build a query datagram for * this name so that we can issue child queries for the missing address * families. The child's vbuf looks handy for this. */ err= adns__mkquery(ads, &child->vb, &id, pans->cname, strlen(pans->cname), &tinfo_addrsub, adns_r_addr, parent->flags); if (err) goto x_err; /* Now cancel the remaining children, and try again with the CNAME we've * settled on. */ adns__cancel_children(parent); r= gettimeofday(&now, 0); if (r) goto x_gtod; qf= adns__qf_addr_cname; if (!(parent->flags & adns_qf_cname_loose)) qf |= adns_qf_cname_forbid; addr_subqueries(parent, now, qf, child->vb.buf, child->vb.used); return; } if (cans->cname && !pans->cname) { err= copy_cname_from_child(parent, child); if (err) goto x_err; } if ((parent->flags & adns_qf_search) && !pans->cname && cans->status == adns_s_nxdomain) { /* We're searching a list of suffixes, and the name doesn't exist. Try * the next one. */ adns__cancel_children(parent); adns__free_interim(parent, pans->rrs.bytes); pans->rrs.bytes= 0; pans->nrrs= 0; r= gettimeofday(&now, 0); if (r) goto x_gtod; adns__search_next(ads, parent, now); return; } if (cans->status && cans->status != adns_s_nodata) { err= cans->status; goto x_err; } assert(pans->rrsz == cans->rrsz); err= append_addrs(parent, pans->rrsz, &pans->rrs.addr, &pans->nrrs, cans->rrs.addr, cans->nrrs); if (err) goto x_err; done_addr_type(parent, cans->type); if (parent->children.head) LIST_LINK_TAIL(ads->childw, parent); else if (!pans->nrrs) adns__query_fail(parent, adns_s_nodata); else adns__query_done(parent); parent->flags |= adns__qf_addr_answer; return; x_gtod: /* We have our own error handling, because adns__must_gettimeofday * handles errors by calling adns_globalsystemfailure, which would * reenter the query processing logic. */ adns__diag(ads, -1, parent, "gettimeofday failed: %s", strerror(errno)); err= adns_s_systemfail; goto x_err; x_err: adns__query_fail(parent, err); } static void qs_addr(adns_query qu, struct timeval now) { if (!qu->ctx.tinfo.addr.want) { qu->ctx.tinfo.addr.want= addr_rrtypes(qu->ads, qu->answer->type, qu->flags); qu->ctx.tinfo.addr.have= 0; } addr_subqueries(qu, now, 0, qu->query_dgram, qu->query_dglen); } /* * _domain (pap,csp,cs) * _dom_raw (pa) */ static adns_status pap_domain(const parseinfo *pai, int *cbyte_io, int max, char **domain_r, parsedomain_flags flags) { adns_status st; char *dm; st= adns__parse_domain(pai->qu->ads, pai->serv, pai->qu, &pai->qu->vb, flags, pai->dgram,pai->dglen, cbyte_io, max); if (st) return st; if (!pai->qu->vb.used) return adns_s_invaliddata; dm= adns__alloc_interim(pai->qu, pai->qu->vb.used+1); if (!dm) R_NOMEM; dm[pai->qu->vb.used]= 0; memcpy(dm,pai->qu->vb.buf,pai->qu->vb.used); *domain_r= dm; return adns_s_ok; } static adns_status csp_domain(vbuf *vb, const char *domain) { CSP_ADDSTR(domain); if (!*domain) CSP_ADDSTR("."); return adns_s_ok; } static adns_status cs_domain(vbuf *vb, const void *datap) { const char *const *domainp= datap; return csp_domain(vb,*domainp); } static adns_status pa_dom_raw(const parseinfo *pai, int cbyte, int max, void *datap) { char **rrp= datap; adns_status st; st= pap_domain(pai, &cbyte, max, rrp, pdf_quoteok); if (st) return st; if (cbyte != max) return adns_s_invaliddata; return adns_s_ok; } /* * _host_raw (pa) */ static adns_status pa_host_raw(const parseinfo *pai, int cbyte, int max, void *datap) { char **rrp= datap; adns_status st; st= pap_domain(pai, &cbyte, max, rrp, pai->qu->flags & adns_qf_quoteok_anshost ? pdf_quoteok : 0); if (st) return st; if (cbyte != max) return adns_s_invaliddata; return adns_s_ok; } /* * _hostaddr (pap,pa,dip,di,mfp,mf,csp,cs +pap_findaddrs, icb_hostaddr) */ static adns_status pap_findaddrs(const parseinfo *pai, adns_rr_hostaddr *ha, unsigned *want_io, size_t addrsz, int *cbyte_io, int count, int dmstart) { int rri, naddrs; unsigned typef, want= *want_io, need= want; int type, class, rdlen, rdend, rdstart, ownermatched; unsigned long ttl; adns_status st; for (rri=0, naddrs=0; rriqu, pai->serv, pai->dgram, pai->dglen, cbyte_io, &type, &class, &ttl, &rdlen, &rdstart, pai->dgram, pai->dglen, dmstart, &ownermatched); if (st) return st; if (!ownermatched || class != DNS_CLASS_IN) continue; typef= addr_rrtypeflag(type); if (!(want & typef)) continue; need &= ~typef; if (!adns__vbuf_ensure(&pai->qu->vb, (naddrs+1)*addrsz)) R_NOMEM; adns__update_expires(pai->qu,ttl,pai->now); rdend= rdstart + rdlen; st= pap_addr(pai, type, addrsz, &rdstart, rdend, (adns_rr_addr *)(pai->qu->vb.buf + naddrs*addrsz)); if (st) return st; if (rdstart != rdend) return adns_s_invaliddata; naddrs++; } if (naddrs > 0) { st= append_addrs(pai->qu, addrsz, &ha->addrs, &ha->naddrs, (const adns_rr_addr *)pai->qu->vb.buf, naddrs); if (st) return st; ha->astatus= adns_s_ok; if (!need) { adns__isort(ha->addrs, naddrs, addrsz, pai->qu->vb.buf, div_addr, pai->ads); } } *want_io= need; return adns_s_ok; } static void icb_hostaddr(adns_query parent, adns_query child) { adns_answer *cans= child->answer; adns_rr_hostaddr *rrp= child->ctx.pinfo.hostaddr; adns_state ads= parent->ads; adns_status st; size_t addrsz= gsz_addr(0, parent->answer->type); st= cans->status == adns_s_nodata ? adns_s_ok : cans->status; if (st) goto done; propagate_ttl(parent, child); assert(addrsz == cans->rrsz); st= append_addrs(parent, addrsz, &rrp->addrs, &rrp->naddrs, cans->rrs.addr, cans->nrrs); if (st) goto done; if (!rrp->naddrs) { st= adns_s_nodata; goto done; } if (!adns__vbuf_ensure(&parent->vb, addrsz)) { st= adns_s_nomemory; goto done; } adns__isort(rrp->addrs, rrp->naddrs, addrsz, parent->vb.buf, div_addr, ads); done: if (st) { adns__free_interim(parent, rrp->addrs); rrp->naddrs= (st>0 && st<=adns_s_max_tempfail) ? -1 : 0; } rrp->astatus= st; if (parent->children.head) { LIST_LINK_TAIL(ads->childw,parent); } else { adns__query_done(parent); } } static adns_status pap_hostaddr(const parseinfo *pai, int *cbyte_io, int max, adns_rr_hostaddr *rrp) { adns_status st; int dmstart, cbyte; qcontext ctx; int id; adns_query nqu; adns_queryflags nflags; unsigned want; size_t addrsz= gsz_addr(0, pai->qu->answer->type); dmstart= cbyte= *cbyte_io; st= pap_domain(pai, &cbyte, max, &rrp->host, pai->qu->flags & adns_qf_quoteok_anshost ? pdf_quoteok : 0); if (st) return st; *cbyte_io= cbyte; rrp->astatus= adns_s_ok; rrp->naddrs= 0; rrp->addrs= 0; cbyte= pai->nsstart; want= addr_rrtypes(pai->ads, pai->qu->answer->type, pai->qu->flags); st= pap_findaddrs(pai, rrp, &want, addrsz, &cbyte, pai->nscount, dmstart); if (st) return st; if (!want) return adns_s_ok; st= pap_findaddrs(pai, rrp, &want, addrsz, &cbyte, pai->arcount, dmstart); if (st) return st; if (!want) return adns_s_ok; st= adns__mkquery_frdgram(pai->ads, &pai->qu->vb, &id, pai->dgram, pai->dglen, dmstart, adns_r_addr, adns_qf_quoteok_query); if (st) return st; ctx.ext= 0; ctx.callback= icb_hostaddr; ctx.pinfo.hostaddr= rrp; nflags= adns_qf_quoteok_query | (pai->qu->flags & (adns_qf_want_allaf | adns_qf_ipv6_mapv4)); if (!(pai->qu->flags & adns_qf_cname_loose)) nflags |= adns_qf_cname_forbid; st= addr_submit(pai->qu, &nqu, &pai->qu->vb, id, want, nflags, pai->now, &ctx); if (st) return st; return adns_s_ok; } static adns_status pa_hostaddr(const parseinfo *pai, int cbyte, int max, void *datap) { adns_rr_hostaddr *rrp= datap; adns_status st; st= pap_hostaddr(pai, &cbyte, max, rrp); if (st) return st; if (cbyte != max) return adns_s_invaliddata; return adns_s_ok; } static int dip_hostaddr(adns_state ads, const adns_rr_hostaddr *ap, const adns_rr_hostaddr *bp) { if (ap->astatus != bp->astatus) return ap->astatus; if (ap->astatus) return 0; return dip_sockaddr(ads, &ap->addrs[0].addr.sa, &bp->addrs[0].addr.sa); } static int di_hostaddr(adns_state ads, const void *datap_a, const void *datap_b) { const adns_rr_hostaddr *ap= datap_a, *bp= datap_b; return dip_hostaddr(ads, ap,bp); } static void mfp_hostaddr(adns_query qu, adns_rr_hostaddr *rrp) { void *tablev; size_t addrsz= gsz_addr(0, qu->answer->type); adns__makefinal_str(qu,&rrp->host); tablev= rrp->addrs; adns__makefinal_block(qu, &tablev, rrp->naddrs*addrsz); rrp->addrs= tablev; } static void mf_hostaddr(adns_query qu, void *datap) { adns_rr_hostaddr *rrp= datap; mfp_hostaddr(qu,rrp); } static adns_status csp_hostaddr(vbuf *vb, const adns_rr_hostaddr *rrp) { const char *errstr; adns_status st; char buf[20]; int i; st= csp_domain(vb,rrp->host); if (st) return st; CSP_ADDSTR(" "); CSP_ADDSTR(adns_errtypeabbrev(rrp->astatus)); sprintf(buf," %d ",rrp->astatus); CSP_ADDSTR(buf); CSP_ADDSTR(adns_errabbrev(rrp->astatus)); CSP_ADDSTR(" "); errstr= adns_strerror(rrp->astatus); st= csp_qstring(vb,errstr,strlen(errstr)); if (st) return st; if (rrp->naddrs >= 0) { CSP_ADDSTR(" ("); for (i=0; inaddrs; i++) { CSP_ADDSTR(" "); st= csp_addr(vb,&rrp->addrs[i]); } CSP_ADDSTR(" )"); } else { CSP_ADDSTR(" ?"); } return adns_s_ok; } static adns_status cs_hostaddr(vbuf *vb, const void *datap) { const adns_rr_hostaddr *rrp= datap; return csp_hostaddr(vb,rrp); } /* * _mx_raw (pa,di) */ static adns_status pa_mx_raw(const parseinfo *pai, int cbyte, int max, void *datap) { const byte *dgram= pai->dgram; adns_rr_intstr *rrp= datap; adns_status st; int pref; if (cbyte+2 > max) return adns_s_invaliddata; GET_W(cbyte,pref); rrp->i= pref; st= pap_domain(pai, &cbyte, max, &rrp->str, pai->qu->flags & adns_qf_quoteok_anshost ? pdf_quoteok : 0); if (st) return st; if (cbyte != max) return adns_s_invaliddata; return adns_s_ok; } static int di_mx_raw(adns_state ads, const void *datap_a, const void *datap_b) { const adns_rr_intstr *ap= datap_a, *bp= datap_b; if (ap->i < bp->i) return 0; if (ap->i > bp->i) return 1; return 0; } /* * _mx (pa,di) */ static adns_status pa_mx(const parseinfo *pai, int cbyte, int max, void *datap) { const byte *dgram= pai->dgram; adns_rr_inthostaddr *rrp= datap; adns_status st; int pref; if (cbyte+2 > max) return adns_s_invaliddata; GET_W(cbyte,pref); rrp->i= pref; st= pap_hostaddr(pai, &cbyte, max, &rrp->ha); if (st) return st; if (cbyte != max) return adns_s_invaliddata; return adns_s_ok; } static int di_mx(adns_state ads, const void *datap_a, const void *datap_b) { const adns_rr_inthostaddr *ap= datap_a, *bp= datap_b; if (ap->i < bp->i) return 0; if (ap->i > bp->i) return 1; return dip_hostaddr(ads, &ap->ha, &bp->ha); } /* * _inthostaddr (mf,cs) */ static void mf_inthostaddr(adns_query qu, void *datap) { adns_rr_inthostaddr *rrp= datap; mfp_hostaddr(qu,&rrp->ha); } static adns_status cs_inthostaddr(vbuf *vb, const void *datap) { const adns_rr_inthostaddr *rrp= datap; char buf[10]; sprintf(buf,"%u ",rrp->i); CSP_ADDSTR(buf); return csp_hostaddr(vb,&rrp->ha); } /* * _inthost (cs) */ static adns_status cs_inthost(vbuf *vb, const void *datap) { const adns_rr_intstr *rrp= datap; char buf[10]; sprintf(buf,"%u ",rrp->i); CSP_ADDSTR(buf); return csp_domain(vb,rrp->str); } /* * _ptr (ckl,pa +icb_ptr) */ static adns_status ckl_ptr(adns_state ads, adns_queryflags flags, union checklabel_state *cls, qcontext *ctx, int labnum, const char *dgram, int labstart, int lablen) { if (lablen) { if (!adns__revparse_label(&cls->ptr, labnum, dgram,labstart,lablen)) return adns_s_querydomainwrong; } else { if (!adns__revparse_done(&cls->ptr, dgram, labnum, &ctx->tinfo.ptr.rev_rrtype, &ctx->tinfo.ptr.addr)) return adns_s_querydomainwrong; } return adns_s_ok; } static void icb_ptr(adns_query parent, adns_query child) { adns_answer *cans= child->answer; const adns_sockaddr *queried; const unsigned char *found; adns_state ads= parent->ads; int i; if (cans->status == adns_s_nxdomain || cans->status == adns_s_nodata) { adns__query_fail(parent,adns_s_inconsistent); return; } else if (cans->status) { adns__query_fail(parent,cans->status); return; } queried= &parent->ctx.tinfo.ptr.addr; for (i=0, found=cans->rrs.bytes; inrrs; i++, found+=cans->rrsz) { if (adns__addrs_equal_raw(&queried->sa, parent->ctx.tinfo.ptr.addr.sa.sa_family,found)) { if (!parent->children.head) { adns__query_done(parent); return; } else { LIST_LINK_TAIL(ads->childw,parent); return; } } } adns__query_fail(parent,adns_s_inconsistent); } static adns_status pa_ptr(const parseinfo *pai, int dmstart, int max, void *datap) { char **rrp= datap; adns_status st; adns_rrtype rrtype= pai->qu->ctx.tinfo.ptr.rev_rrtype; int cbyte, id; adns_query nqu; qcontext ctx; cbyte= dmstart; st= pap_domain(pai, &cbyte, max, rrp, pai->qu->flags & adns_qf_quoteok_anshost ? pdf_quoteok : 0); if (st) return st; if (cbyte != max) return adns_s_invaliddata; st= adns__mkquery_frdgram(pai->ads, &pai->qu->vb, &id, pai->dgram, pai->dglen, dmstart, rrtype, adns_qf_quoteok_query); if (st) return st; ctx.ext= 0; ctx.callback= icb_ptr; memset(&ctx.pinfo,0,sizeof(ctx.pinfo)); memset(&ctx.tinfo,0,sizeof(ctx.tinfo)); st= adns__internal_submit(pai->ads, &nqu, pai->qu, adns__findtype(rrtype), rrtype, &pai->qu->vb, id, adns_qf_quoteok_query, pai->now, &ctx); if (st) return st; return adns_s_ok; } /* * _strpair (mf) */ static void mf_strpair(adns_query qu, void *datap) { adns_rr_strpair *rrp= datap; adns__makefinal_str(qu,&rrp->array[0]); adns__makefinal_str(qu,&rrp->array[1]); } /* * _intstrpair (mf) */ static void mf_intstrpair(adns_query qu, void *datap) { adns_rr_intstrpair *rrp= datap; adns__makefinal_str(qu,&rrp->array[0].str); adns__makefinal_str(qu,&rrp->array[1].str); } /* * _hinfo (pa) */ static adns_status pa_hinfo(const parseinfo *pai, int cbyte, int max, void *datap) { adns_rr_intstrpair *rrp= datap; adns_status st; int i; for (i=0; i<2; i++) { st= pap_qstring(pai, &cbyte, max, &rrp->array[i].i, &rrp->array[i].str); if (st) return st; } if (cbyte != max) return adns_s_invaliddata; return adns_s_ok; } /* * _mailbox (pap,cs +pap_mailbox822) */ static adns_status pap_mailbox822(const parseinfo *pai, int *cbyte_io, int max, char **mb_r) { int lablen, labstart, i, needquote, c, r, neednorm; const unsigned char *p; char *str; findlabel_state fls; adns_status st; vbuf *vb; vb= &pai->qu->vb; vb->used= 0; adns__findlabel_start(&fls, pai->ads, -1, pai->qu, pai->dgram, pai->dglen, max, *cbyte_io, cbyte_io); st= adns__findlabel_next(&fls,&lablen,&labstart); if (!lablen) { adns__vbuf_appendstr(vb,"."); goto x_ok; } neednorm= 1; for (i=0, needquote=0, p= pai->dgram+labstart; i=127 || ctype_822special(c)) needquote++; else neednorm= 0; } if (needquote || neednorm) { r= adns__vbuf_ensure(vb, lablen+needquote+4); if (!r) R_NOMEM; adns__vbuf_appendq(vb,"\"",1); for (i=0, needquote=0, p= pai->dgram+labstart; idgram+labstart, lablen); if (!r) R_NOMEM; } r= adns__vbuf_appendstr(vb,"@"); if (!r) R_NOMEM; st= adns__parse_domain_more(&fls,pai->ads, pai->qu,vb,0, pai->dgram); if (st) return st; x_ok: str= adns__alloc_interim(pai->qu, vb->used+1); if (!str) R_NOMEM; memcpy(str,vb->buf,vb->used); str[vb->used]= 0; *mb_r= str; return adns_s_ok; } static adns_status pap_mailbox(const parseinfo *pai, int *cbyte_io, int max, char **mb_r) { if (pai->qu->typei->typekey & adns__qtf_mail822) { return pap_mailbox822(pai, cbyte_io, max, mb_r); } else { return pap_domain(pai, cbyte_io, max, mb_r, pdf_quoteok); } } static adns_status csp_mailbox(vbuf *vb, const char *mailbox) { return csp_domain(vb,mailbox); } /* * _rp (pa,cs) */ static adns_status pa_rp(const parseinfo *pai, int cbyte, int max, void *datap) { adns_rr_strpair *rrp= datap; adns_status st; st= pap_mailbox(pai, &cbyte, max, &rrp->array[0]); if (st) return st; st= pap_domain(pai, &cbyte, max, &rrp->array[1], pdf_quoteok); if (st) return st; if (cbyte != max) return adns_s_invaliddata; return adns_s_ok; } static adns_status cs_rp(vbuf *vb, const void *datap) { const adns_rr_strpair *rrp= datap; adns_status st; st= csp_mailbox(vb,rrp->array[0]); if (st) return st; CSP_ADDSTR(" "); st= csp_domain(vb,rrp->array[1]); if (st) return st; return adns_s_ok; } /* * _soa (pa,mf,cs) */ static adns_status pa_soa(const parseinfo *pai, int cbyte, int max, void *datap) { adns_rr_soa *rrp= datap; const byte *dgram= pai->dgram; adns_status st; int msw, lsw, i; st= pap_domain(pai, &cbyte, max, &rrp->mname, pai->qu->flags & adns_qf_quoteok_anshost ? pdf_quoteok : 0); if (st) return st; st= pap_mailbox(pai, &cbyte, max, &rrp->rname); if (st) return st; if (cbyte+20 != max) return adns_s_invaliddata; for (i=0; i<5; i++) { GET_W(cbyte,msw); GET_W(cbyte,lsw); (&rrp->serial)[i]= (msw<<16) | lsw; } return adns_s_ok; } static void mf_soa(adns_query qu, void *datap) { adns_rr_soa *rrp= datap; adns__makefinal_str(qu,&rrp->mname); adns__makefinal_str(qu,&rrp->rname); } static adns_status cs_soa(vbuf *vb, const void *datap) { const adns_rr_soa *rrp= datap; char buf[20]; int i; adns_status st; st= csp_domain(vb,rrp->mname); if (st) return st; CSP_ADDSTR(" "); st= csp_mailbox(vb,rrp->rname); if (st) return st; for (i=0; i<5; i++) { sprintf(buf," %lu",(&rrp->serial)[i]); CSP_ADDSTR(buf); } return adns_s_ok; } /* * _srv* (ckl,(pap),pa*2,mf*2,di,(csp),cs*2,postsort) */ static adns_status ckl_srv(adns_state ads, adns_queryflags flags, union checklabel_state *cls, qcontext *ctx, int labnum, const char *dgram, int labstart, int lablen) { const char *label = dgram+labstart; if (labnum < 2) { if (flags & adns_qf_quoteok_query) return adns_s_ok; if (!lablen || label[0] != '_') return adns_s_querydomaininvalid; return adns_s_ok; } return adns__ckl_hostname(ads,flags, cls,ctx, labnum, dgram,labstart,lablen); } static adns_status pap_srv_begin(const parseinfo *pai, int *cbyte_io, int max, adns_rr_srvha *rrp /* might be adns_rr_srvraw* */) { const byte *dgram= pai->dgram; int ti, cbyte; cbyte= *cbyte_io; if ((*cbyte_io += 6) > max) return adns_s_invaliddata; rrp->priority= GET_W(cbyte, ti); rrp->weight= GET_W(cbyte, ti); rrp->port= GET_W(cbyte, ti); return adns_s_ok; } static adns_status pa_srvraw(const parseinfo *pai, int cbyte, int max, void *datap) { adns_rr_srvraw *rrp= datap; adns_status st; st= pap_srv_begin(pai,&cbyte,max,datap); if (st) return st; st= pap_domain(pai, &cbyte, max, &rrp->host, pai->qu->flags & adns_qf_quoteok_anshost ? pdf_quoteok : 0); if (st) return st; if (cbyte != max) return adns_s_invaliddata; return adns_s_ok; } static adns_status pa_srvha(const parseinfo *pai, int cbyte, int max, void *datap) { adns_rr_srvha *rrp= datap; adns_status st; st= pap_srv_begin(pai,&cbyte,max,datap); if (st) return st; st= pap_hostaddr(pai, &cbyte, max, &rrp->ha); if (st) return st; if (cbyte != max) return adns_s_invaliddata; return adns_s_ok; } static void mf_srvraw(adns_query qu, void *datap) { adns_rr_srvraw *rrp= datap; adns__makefinal_str(qu, &rrp->host); } static void mf_srvha(adns_query qu, void *datap) { adns_rr_srvha *rrp= datap; mfp_hostaddr(qu,&rrp->ha); } static int di_srv(adns_state ads, const void *datap_a, const void *datap_b) { const adns_rr_srvraw *ap= datap_a, *bp= datap_b; /* might be const adns_rr_svhostaddr* */ if (ap->priority < bp->priority) return 0; if (ap->priority > bp->priority) return 1; return 0; } static adns_status csp_srv_begin(vbuf *vb, const adns_rr_srvha *rrp /* might be adns_rr_srvraw* */) { char buf[30]; sprintf(buf,"%u %u %u ", rrp->priority, rrp->weight, rrp->port); CSP_ADDSTR(buf); return adns_s_ok; } static adns_status cs_srvraw(vbuf *vb, const void *datap) { const adns_rr_srvraw *rrp= datap; adns_status st; st= csp_srv_begin(vb,(const void*)rrp); if (st) return st; return csp_domain(vb,rrp->host); } static adns_status cs_srvha(vbuf *vb, const void *datap) { const adns_rr_srvha *rrp= datap; adns_status st; st= csp_srv_begin(vb,(const void*)datap); if (st) return st; return csp_hostaddr(vb,&rrp->ha); } static void postsort_srv(adns_state ads, void *array, int nrrs,int rrsz, const struct typeinfo *typei) { /* we treat everything in the array as if it were an adns_rr_srvha * even though the array might be of adns_rr_srvraw. That's OK * because they have the same prefix, which is all we access. * We use rrsz, too, rather than naive array indexing, of course. */ char *workbegin, *workend, *search, *arrayend; const adns_rr_srvha *rr; union { adns_rr_srvha ha; adns_rr_srvraw raw; } rrtmp; int cpriority, totalweight, runtotal; long randval; assert(rrsz <= sizeof(rrtmp)); for (workbegin= array, arrayend= workbegin + rrsz * nrrs; workbegin < arrayend; workbegin= workend) { cpriority= (rr=(void*)workbegin)->priority; for (workend= workbegin, totalweight= 0; workend < arrayend && (rr=(void*)workend)->priority == cpriority; workend += rrsz) { totalweight += rr->weight; } /* Now workbegin..(workend-1) incl. are exactly all of the RRs of * cpriority. From now on, workbegin points to the `remaining' * records: we select one record at a time (RFC2782 `Usage rules' * and `Format of the SRV RR' subsection `Weight') to place at * workbegin (swapping with the one that was there, and then * advance workbegin. */ for (; workbegin + rrsz < workend; /* don't bother if just one */ workbegin += rrsz) { randval= nrand48(ads->rand48xsubi); randval %= (totalweight + 1); /* makes it into 0..totalweight inclusive; with 2^10 RRs, * totalweight must be <= 2^26 so probability nonuniformity is * no worse than 1 in 2^(31-26) ie 1 in 2^5, ie * abs(log(P_intended(RR_i) / P_actual(RR_i)) <= log(2^-5). */ for (search=workbegin, runtotal=0; (runtotal += (rr=(void*)search)->weight) < randval; search += rrsz); assert(search < arrayend); totalweight -= rr->weight; if (search != workbegin) { memcpy(&rrtmp, workbegin, rrsz); memcpy(workbegin, search, rrsz); memcpy(search, &rrtmp, rrsz); } } } /* tests: * dig -t srv _srv._tcp.test.iwj.relativity.greenend.org.uk. * ./adnshost_s -t srv- _sip._udp.voip.net.cam.ac.uk. * ./adnshost_s -t srv- _jabber._tcp.jabber.org */ } /* * _byteblock (mf) */ static void mf_byteblock(adns_query qu, void *datap) { adns_rr_byteblock *rrp= datap; void *bytes= rrp->data; adns__makefinal_block(qu,&bytes,rrp->len); rrp->data= bytes; } /* * _opaque (pa,cs) */ static adns_status pa_opaque(const parseinfo *pai, int cbyte, int max, void *datap) { adns_rr_byteblock *rrp= datap; rrp->len= max - cbyte; rrp->data= adns__alloc_interim(pai->qu, rrp->len); if (!rrp->data) R_NOMEM; memcpy(rrp->data, pai->dgram + cbyte, rrp->len); return adns_s_ok; } static adns_status cs_opaque(vbuf *vb, const void *datap) { const adns_rr_byteblock *rrp= datap; char buf[10]; int l; unsigned char *p; sprintf(buf,"\\# %d",rrp->len); CSP_ADDSTR(buf); for (l= rrp->len, p= rrp->data; l>=4; l -= 4, p += 4) { sprintf(buf," %02x%02x%02x%02x",p[0],p[1],p[2],p[3]); CSP_ADDSTR(buf); } for (; l>0; l--, p++) { sprintf(buf," %02x",*p); CSP_ADDSTR(buf); } return adns_s_ok; } /* * _flat (mf) */ static void mf_flat(adns_query qu, void *data) { } /* * Now the table. */ #define TYPESZ_M(member) (sizeof(*((adns_answer*)0)->rrs.member)) #define DEEP_TYPE(code,rrt,fmt,memb,parser,comparer,/*printer*/...) \ { adns_r_##code&adns_rrt_reprmask, rrt,fmt,TYPESZ_M(memb), mf_##memb, \ GLUE(cs_, CAR(__VA_ARGS__)),pa_##parser,di_##comparer, \ adns__ckl_hostname, 0, adns__getrrsz_default, adns__query_send, \ CDR(__VA_ARGS__) } #define FLAT_TYPE(code,rrt,fmt,memb,parser,comparer,/*printer*/...) \ { adns_r_##code&adns_rrt_reprmask, rrt,fmt,TYPESZ_M(memb), mf_flat, \ GLUE(cs_, CAR(__VA_ARGS__)),pa_##parser,di_##comparer, \ adns__ckl_hostname, 0, adns__getrrsz_default, adns__query_send, \ CDR(__VA_ARGS__) } #define di_0 0 static const typeinfo typeinfos[] = { /* Must be in ascending order of rrtype ! */ /* mem-mgmt code rrt fmt member parser comparer printer */ FLAT_TYPE(a, "A", 0, inaddr, inaddr, inaddr,inaddr ), DEEP_TYPE(ns_raw, "NS", "raw",str, host_raw,0, domain ), DEEP_TYPE(cname, "CNAME", 0, str, dom_raw, 0, domain ), DEEP_TYPE(soa_raw,"SOA", "raw",soa, soa, 0, soa ), DEEP_TYPE(ptr_raw,"PTR", "raw",str, host_raw,0, domain ), DEEP_TYPE(hinfo, "HINFO", 0, intstrpair,hinfo, 0, hinfo ), DEEP_TYPE(mx_raw, "MX", "raw",intstr, mx_raw, mx_raw,inthost ), DEEP_TYPE(txt, "TXT", 0, manyistr, txt, 0, txt ), DEEP_TYPE(rp_raw, "RP", "raw",strpair, rp, 0, rp ), FLAT_TYPE(aaaa, "AAAA", 0, in6addr, in6addr, in6addr,in6addr ), DEEP_TYPE(srv_raw,"SRV", "raw",srvraw , srvraw, srv, srvraw, .checklabel= ckl_srv, .postsort= postsort_srv), FLAT_TYPE(addr, "A", "addr", addr, addr, addr, addr, .getrrsz= gsz_addr, .query_send= qs_addr), DEEP_TYPE(ns, "NS", "+addr",hostaddr, hostaddr,hostaddr,hostaddr ), DEEP_TYPE(ptr, "PTR","checked",str, ptr, 0, domain, .checklabel= ckl_ptr), DEEP_TYPE(mx, "MX", "+addr",inthostaddr,mx, mx, inthostaddr, ), DEEP_TYPE(srv, "SRV","+addr",srvha, srvha, srv, srvha, .checklabel= ckl_srv, .postsort= postsort_srv), DEEP_TYPE(soa, "SOA","822", soa, soa, 0, soa ), DEEP_TYPE(rp, "RP", "822", strpair, rp, 0, rp ), }; static const typeinfo tinfo_addrsub = FLAT_TYPE(none, "","sub",addr, addr, 0, addr, .getrrsz= gsz_addr); static const typeinfo typeinfo_unknown= DEEP_TYPE(unknown,0, "unknown",byteblock,opaque, 0, opaque ); const typeinfo *adns__findtype(adns_rrtype type) { const typeinfo *begin, *end, *mid; if (type & ~(adns_rrtype)0x63ffffff) /* 0x60000000 is reserved for `harmless' future expansion */ return 0; if (type & adns_r_unknown) return &typeinfo_unknown; type &= adns_rrt_reprmask; begin= typeinfos; end= typeinfos+(sizeof(typeinfos)/sizeof(typeinfo)); while (begin < end) { mid= begin + ((end-begin)>>1); if (mid->typekey == type) return mid; if (type > mid->typekey) begin= mid+1; else end= mid; } return 0; } adns-1.5.0~rc1/src/poll.c0000664000175000017500000000663312421042027013253 0ustar ianian/* * poll.c * - wrappers for poll(2) */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include #include #include "internal.h" #ifdef HAVE_POLL int adns_beforepoll(adns_state ads, struct pollfd *fds, int *nfds_io, int *timeout_io, const struct timeval *now) { struct timeval tv_nowbuf, tv_tobuf, *tv_to; int space, found, timeout_ms, r; struct pollfd fds_tmp[MAX_POLLFDS]; adns__consistency(ads,0,cc_entex); if (timeout_io) { adns__must_gettimeofday(ads,&now,&tv_nowbuf); if (!now) { *nfds_io= 0; r= 0; goto xit; } timeout_ms= *timeout_io; if (timeout_ms == -1) { tv_to= 0; } else { tv_tobuf.tv_sec= timeout_ms / 1000; tv_tobuf.tv_usec= (timeout_ms % 1000)*1000; tv_to= &tv_tobuf; } adns__timeouts(ads, 0, &tv_to,&tv_tobuf, *now); if (tv_to) { assert(tv_to == &tv_tobuf); timeout_ms= (tv_tobuf.tv_usec+999)/1000; assert(tv_tobuf.tv_sec < (INT_MAX-timeout_ms)/1000); timeout_ms += tv_tobuf.tv_sec*1000; } else { timeout_ms= -1; } *timeout_io= timeout_ms; } space= *nfds_io; if (space >= MAX_POLLFDS) { found= adns__pollfds(ads,fds); *nfds_io= found; } else { found= adns__pollfds(ads,fds_tmp); *nfds_io= found; if (space < found) { r= ERANGE; goto xit; } memcpy(fds,fds_tmp,sizeof(struct pollfd)*found); } r= 0; xit: adns__returning(ads,0); return r; } void adns_afterpoll(adns_state ads, const struct pollfd *fds, int nfds, const struct timeval *now) { struct timeval tv_buf; adns__consistency(ads,0,cc_entex); adns__must_gettimeofday(ads,&now,&tv_buf); if (now) { adns__timeouts(ads, 1, 0,0, *now); adns__fdevents(ads, fds,nfds, 0,0,0,0, *now,0); } adns__returning(ads,0); } int adns_wait_poll(adns_state ads, adns_query *query_io, adns_answer **answer_r, void **context_r) { int r, nfds, to; struct pollfd fds[MAX_POLLFDS]; adns__consistency(ads,0,cc_entex); for (;;) { r= adns__internal_check(ads,query_io,answer_r,context_r); if (r != EAGAIN) goto xit; nfds= MAX_POLLFDS; to= -1; adns_beforepoll(ads,fds,&nfds,&to,0); r= poll(fds,nfds,to); if (r == -1) { if (errno == EINTR) { if (ads->iflags & adns_if_eintr) { r= EINTR; goto xit; } } else { adns__diag(ads,-1,0,"poll failed in wait: %s",strerror(errno)); adns_globalsystemfailure(ads); } } else { assert(r >= 0); adns_afterpoll(ads,fds,nfds,0); } } xit: adns__returning(ads,0); return r; } #endif adns-1.5.0~rc1/src/general.c0000664000175000017500000002452412421042027013721 0ustar ianian/* * general.c * - diagnostic functions * - vbuf handling */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include #include #include #include #include #include #include "internal.h" /* Core diagnostic functions */ void adns__vlprintf(adns_state ads, const char *fmt, va_list al) { ads->logfn(ads,ads->logfndata,fmt,al); } void adns__lprintf(adns_state ads, const char *fmt, ...) { va_list al; va_start(al,fmt); adns__vlprintf(ads,fmt,al); va_end(al); } void adns__vdiag(adns_state ads, const char *pfx, adns_initflags prevent, int serv, adns_query qu, const char *fmt, va_list al) { char buf[ADNS_ADDR2TEXT_BUFLEN]; const char *bef, *aft; vbuf vb; if (!ads->logfn || (!(ads->iflags & adns_if_debug) && (!prevent || (ads->iflags & prevent)))) return; if (ads->iflags & adns_if_logpid) { adns__lprintf(ads,"adns%s [%ld]: ",pfx,(long)getpid()); } else { adns__lprintf(ads,"adns%s: ",pfx); } adns__vlprintf(ads,fmt,al); bef= " ("; aft= "\n"; if (qu && qu->query_dgram) { adns__vbuf_init(&vb); adns__lprintf(ads,"%sQNAME=%s, QTYPE=%s", bef, adns__diag_domain(qu->ads,-1,0, &vb, qu->query_dgram,qu->query_dglen,DNS_HDRSIZE), qu->typei ? qu->typei->rrtname : ""); if (qu->typei && qu->typei->fmtname) adns__lprintf(ads,"(%s)",qu->typei->fmtname); bef=", "; aft=")\n"; adns__vbuf_free(&vb); } if (serv>=0) { adns__lprintf(ads,"%sNS=%s",bef, adns__sockaddr_ntoa(&ads->servers[serv].addr.sa, buf)); bef=", "; aft=")\n"; } adns__lprintf(ads,"%s",aft); } void adns__debug(adns_state ads, int serv, adns_query qu, const char *fmt, ...) { va_list al; va_start(al,fmt); adns__vdiag(ads," debug",0,serv,qu,fmt,al); va_end(al); } void adns__warn(adns_state ads, int serv, adns_query qu, const char *fmt, ...) { va_list al; va_start(al,fmt); adns__vdiag(ads," warning", adns_if_noerrprint|adns_if_noserverwarn, serv,qu,fmt,al); va_end(al); } void adns__diag(adns_state ads, int serv, adns_query qu, const char *fmt, ...) { va_list al; va_start(al,fmt); adns__vdiag(ads,"",adns_if_noerrprint,serv,qu,fmt,al); va_end(al); } /* vbuf functions */ void adns__vbuf_init(vbuf *vb) { vb->used= vb->avail= 0; vb->buf= 0; } int adns__vbuf_ensure(vbuf *vb, int want) { void *nb; if (vb->avail >= want) return 1; nb= realloc(vb->buf,want); if (!nb) return 0; vb->buf= nb; vb->avail= want; return 1; } void adns__vbuf_appendq(vbuf *vb, const byte *data, int len) { memcpy(vb->buf+vb->used,data,len); vb->used+= len; } int adns__vbuf_append(vbuf *vb, const byte *data, int len) { int newlen; void *nb; newlen= vb->used+len; if (vb->avail < newlen) { if (newlen<20) newlen= 20; newlen <<= 1; nb= realloc(vb->buf,newlen); if (!nb) { newlen= vb->used+len; nb= realloc(vb->buf,newlen); } if (!nb) return 0; vb->buf= nb; vb->avail= newlen; } adns__vbuf_appendq(vb,data,len); return 1; } int adns__vbuf_appendstr(vbuf *vb, const char *data) { int l; l= strlen(data); return adns__vbuf_append(vb,data,l); } void adns__vbuf_free(vbuf *vb) { free(vb->buf); adns__vbuf_init(vb); } /* Additional diagnostic functions */ const char *adns__diag_domain(adns_state ads, int serv, adns_query qu, vbuf *vb, const byte *dgram, int dglen, int cbyte) { adns_status st; st= adns__parse_domain(ads,serv,qu,vb, pdf_quoteok, dgram,dglen,&cbyte,dglen); if (st == adns_s_nomemory) { return ""; } if (st) { vb->used= 0; if (!(adns__vbuf_appendstr(vb,"") && adns__vbuf_append(vb,"",1))) { return ""; } } if (!vb->used) { adns__vbuf_appendstr(vb,""); adns__vbuf_append(vb,"",1); } return vb->buf; } int adns__getrrsz_default(const typeinfo *typei, adns_rrtype type) { return typei->fixed_rrsz; } adns_status adns_rr_info(adns_rrtype type, const char **rrtname_r, const char **fmtname_r, int *len_r, const void *datap, char **data_r) { const typeinfo *typei; vbuf vb; adns_status st; typei= adns__findtype(type); if (!typei) return adns_s_unknownrrtype; if (rrtname_r) *rrtname_r= typei->rrtname; if (fmtname_r) *fmtname_r= typei->fmtname; if (len_r) *len_r= typei->getrrsz(typei, type); if (!datap) return adns_s_ok; adns__vbuf_init(&vb); st= typei->convstring(&vb,datap); if (st) goto x_freevb; if (!adns__vbuf_append(&vb,"",1)) { st= adns_s_nomemory; goto x_freevb; } assert(strlen(vb.buf) == vb.used-1); *data_r= realloc(vb.buf,vb.used); if (!*data_r) *data_r= vb.buf; return adns_s_ok; x_freevb: adns__vbuf_free(&vb); return st; } #define SINFO(n,s) { adns_s_##n, #n, s } static const struct sinfo { adns_status st; const char *abbrev; const char *string; } sinfos[]= { SINFO( ok, "OK" ), SINFO( nomemory, "Out of memory" ), SINFO( unknownrrtype, "Query not implemented in DNS library" ), SINFO( systemfail, "General resolver or system failure" ), SINFO( timeout, "DNS query timed out" ), SINFO( allservfail, "All nameservers failed" ), SINFO( norecurse, "Recursion denied by nameserver" ), SINFO( invalidresponse, "Nameserver sent bad response" ), SINFO( unknownformat, "Nameserver used unknown format" ), SINFO( rcodeservfail, "Nameserver reports failure" ), SINFO( rcodeformaterror, "Query not understood by nameserver" ), SINFO( rcodenotimplemented, "Query not implemented by nameserver" ), SINFO( rcoderefused, "Query refused by nameserver" ), SINFO( rcodeunknown, "Nameserver sent unknown response code" ), SINFO( inconsistent, "Inconsistent resource records in DNS" ), SINFO( prohibitedcname, "DNS alias found where canonical name wanted" ), SINFO( answerdomaininvalid, "Found syntactically invalid domain name" ), SINFO( answerdomaintoolong, "Found overly-long domain name" ), SINFO( invaliddata, "Found invalid DNS data" ), SINFO( querydomainwrong, "Domain invalid for particular DNS query type" ), SINFO( querydomaininvalid, "Domain name is syntactically invalid" ), SINFO( querydomaintoolong, "Domain name or component is too long" ), SINFO( nxdomain, "No such domain" ), SINFO( nodata, "No such data" ) }; static int si_compar(const void *key, const void *elem) { const adns_status *st= key; const struct sinfo *si= elem; return *st < si->st ? -1 : *st > si->st ? 1 : 0; } static const struct sinfo *findsinfo(adns_status st) { return bsearch(&st,sinfos, sizeof(sinfos)/sizeof(*sinfos), sizeof(*sinfos), si_compar); } const char *adns_strerror(adns_status st) { const struct sinfo *si; si= findsinfo(st); return si->string; } const char *adns_errabbrev(adns_status st) { const struct sinfo *si; si= findsinfo(st); return si->abbrev; } #define STINFO(max) { adns_s_max_##max, #max } static const struct stinfo { adns_status stmax; const char *abbrev; } stinfos[]= { { adns_s_ok, "ok" }, STINFO( localfail ), STINFO( remotefail ), STINFO( tempfail ), STINFO( misconfig ), STINFO( misquery ), STINFO( permfail ) }; static int sti_compar(const void *key, const void *elem) { const adns_status *st= key; const struct stinfo *sti= elem; adns_status here, min, max; here= *st; min= (sti==stinfos) ? 0 : sti[-1].stmax+1; max= sti->stmax; return here < min ? -1 : here > max ? 1 : 0; } const char *adns_errtypeabbrev(adns_status st) { const struct stinfo *sti; sti= bsearch(&st,stinfos, sizeof(stinfos)/sizeof(*stinfos), sizeof(*stinfos), sti_compar); return sti->abbrev; } void adns__isort(void *array, int nobjs, int sz, void *tempbuf, int (*needswap)(void *context, const void *a, const void *b), void *context) { byte *data= array; int i, place; for (i=0; i0 && needswap(context, data + (place-1)*sz, data + i*sz); place--); if (place != i) { memcpy(tempbuf, data + i*sz, sz); memmove(data + (place+1)*sz, data + place*sz, (i-place)*sz); memcpy(data + place*sz, tempbuf, sz); } } } /* SIGPIPE protection. */ void adns__sigpipe_protect(adns_state ads) { sigset_t toblock; struct sigaction sa; int r; if (ads->iflags & adns_if_nosigpipe) return; sigfillset(&toblock); sigdelset(&toblock,SIGPIPE); sa.sa_handler= SIG_IGN; sigfillset(&sa.sa_mask); sa.sa_flags= 0; r= sigprocmask(SIG_SETMASK,&toblock,&ads->stdsigmask); assert(!r); r= sigaction(SIGPIPE,&sa,&ads->stdsigpipe); assert(!r); } void adns__sigpipe_unprotect(adns_state ads) { int r; if (ads->iflags & adns_if_nosigpipe) return; r= sigaction(SIGPIPE,&ads->stdsigpipe,0); assert(!r); r= sigprocmask(SIG_SETMASK,&ads->stdsigmask,0); assert(!r); } adns-1.5.0~rc1/src/reply.c0000664000175000017500000002727512421042027013445 0ustar ianian/* * reply.c * - main handling and parsing routine for received datagrams */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include #include "internal.h" void adns__procdgram(adns_state ads, const byte *dgram, int dglen, int serv, int viatcp, struct timeval now) { int cbyte, rrstart, wantedrrs, rri, foundsoa, foundns, cname_here; int id, f1, f2, qdcount, ancount, nscount, arcount; int flg_ra, flg_rd, flg_tc, flg_qr, opcode; int rrtype, rrclass, rdlength, rdstart; int anstart, nsstart; int ownermatched, l, nrrs; unsigned long ttl, soattl; const typeinfo *typei; adns_query qu, nqu; dns_rcode rcode; adns_status st; vbuf tempvb; byte *newquery, *rrsdata; parseinfo pai; if (dglen>3; flg_tc= f1&0x02; flg_rd= f1&0x01; flg_ra= f2&0x80; rcode= (f2&0x0f); cname_here= 0; if (!flg_qr) { adns__diag(ads,serv,0,"server sent us a query, not a response"); return; } if (opcode) { adns__diag(ads,serv,0,"server sent us unknown opcode" " %d (wanted 0=QUERY)",opcode); return; } qu= 0; /* See if we can find the relevant query, or leave qu=0 otherwise ... */ if (qdcount == 1) { for (qu= viatcp ? ads->tcpw.head : ads->udpw.head; qu; qu= nqu) { nqu= qu->next; if (qu->id != id) continue; if (dglen < qu->query_dglen) continue; if (memcmp(qu->query_dgram+DNS_HDRSIZE, dgram+DNS_HDRSIZE, qu->query_dglen-DNS_HDRSIZE)) continue; if (viatcp) { assert(qu->state == query_tcpw); } else { assert(qu->state == query_tosend); if (!(qu->udpsent & (1<tcpw,qu); else LIST_UNLINK(ads->udpw,qu); } } /* If we're going to ignore the packet, we return as soon as we have * failed the query (if any) and printed the warning message (if * any). */ switch (rcode) { case rcode_noerror: case rcode_nxdomain: break; case rcode_formaterror: adns__warn(ads,serv,qu,"server cannot understand our query" " (Format Error)"); if (qu) adns__query_fail(qu,adns_s_rcodeformaterror); return; case rcode_servfail: if (qu) adns__query_fail(qu,adns_s_rcodeservfail); else adns__debug(ads,serv,qu,"server failure on unidentifiable query"); return; case rcode_notimp: adns__warn(ads,serv,qu,"server claims not to implement our query"); if (qu) adns__query_fail(qu,adns_s_rcodenotimplemented); return; case rcode_refused: adns__debug(ads,serv,qu,"server refused our query"); if (qu) adns__query_fail(qu,adns_s_rcoderefused); return; default: adns__warn(ads,serv,qu,"server gave unknown response code %d",rcode); if (qu) adns__query_fail(qu,adns_s_rcodeunknown); return; } if (!qu) { if (!qdcount) { adns__diag(ads,serv,0,"server sent reply without quoting our question"); } else if (qdcount>1) { adns__diag(ads,serv,0,"server claimed to answer %d" " questions with one message", qdcount); } else if (ads->iflags & adns_if_debug) { adns__vbuf_init(&tempvb); adns__debug(ads,serv,0,"reply not found, id %02x, query owner %s", id, adns__diag_domain(ads,serv,0,&tempvb, dgram,dglen,DNS_HDRSIZE)); adns__vbuf_free(&tempvb); } return; } /* We're definitely going to do something with this packet and this * query now. */ anstart= qu->query_dglen; /* Now, take a look at the answer section, and see if it is complete. * If it has any CNAMEs we stuff them in the answer. */ wantedrrs= 0; cbyte= anstart; for (rri= 0; rriiflags & adns_if_debug) { adns__debug(ads,serv,qu,"ignoring RR with an unexpected owner %s", adns__diag_domain(ads,serv,qu, &qu->vb, dgram,dglen,rrstart)); } continue; } if (rrtype == adns_r_cname && (qu->answer->type & adns_rrt_typemask) != adns_r_cname) { if (qu->flags & adns_qf_cname_forbid) { adns__query_fail(qu,adns_s_prohibitedcname); return; } else if (qu->cname_dgram) { /* Ignore second and subsequent CNAME(s) */ adns__debug(ads,serv,qu,"allegedly canonical name %s" " is actually alias for %s", qu->answer->cname, adns__diag_domain(ads,serv,qu, &qu->vb, dgram,dglen,rdstart)); adns__query_fail(qu,adns_s_prohibitedcname); return; } else if (wantedrrs) { /* Ignore CNAME(s) after RR(s). */ adns__debug(ads,serv,qu,"ignoring CNAME (to %s) coexisting with RR", adns__diag_domain(ads,serv,qu, &qu->vb, dgram,dglen,rdstart)); } else { qu->cname_begin= rdstart; qu->cname_dglen= dglen; st= adns__parse_domain(ads,serv,qu, &qu->vb, qu->flags & adns_qf_quotefail_cname ? 0 : pdf_quoteok, dgram,dglen, &rdstart,rdstart+rdlength); if (!qu->vb.used) goto x_truncated; if (st) { adns__query_fail(qu,st); return; } l= strlen(qu->vb.buf)+1; qu->answer->cname= adns__alloc_preserved(qu,l); if (!qu->answer->cname) { adns__query_fail(qu,adns_s_nomemory); return; } qu->cname_dgram= adns__alloc_mine(qu,dglen); memcpy(qu->cname_dgram,dgram,dglen); memcpy(qu->answer->cname,qu->vb.buf,l); cname_here= 1; adns__update_expires(qu,ttl,now); /* If we find the answer section truncated after this point we restart * the query at the CNAME; if beforehand then we obviously have to use * TCP. If there is no truncation we can use the whole answer if * it contains the relevant info. */ } } else if (rrtype == (qu->answer->type & adns_rrt_typemask)) { wantedrrs++; } else { adns__debug(ads,serv,qu,"ignoring answer RR" " with irrelevant type %d",rrtype); } } /* We defer handling truncated responses here, in case there was a CNAME * which we could use. */ if (flg_tc) goto x_truncated; nsstart= cbyte; if (!wantedrrs) { /* Oops, NODATA or NXDOMAIN or perhaps a referral * (which would be a problem) */ /* RFC2308: NODATA has _either_ a SOA _or_ _no_ NS records * in authority section */ foundsoa= 0; soattl= 0; foundns= 0; for (rri= 0; rriflags & adns_qf_search && !qu->cname_dgram) { adns__search_next(ads,qu,now); } else { adns__query_fail(qu,adns_s_nxdomain); } return; } if (foundsoa || !foundns) { /* Aha ! A NODATA response, good. */ adns__update_expires(qu,soattl,now); adns__query_fail(qu,adns_s_nodata); return; } /* Now what ? No relevant answers, no SOA, and at least some NS's. * Looks like a referral. Just one last chance ... if we came across * a CNAME in this datagram then we should probably do our own CNAME * lookup now in the hope that we won't get a referral again. */ if (cname_here) goto x_restartquery; /* Bloody hell, I thought we asked for recursion ? */ if (!flg_ra) { adns__diag(ads,serv,qu,"server is not willing" " to do recursive lookups for us"); adns__query_fail(qu,adns_s_norecurse); } else { if (!flg_rd) adns__diag(ads,serv,qu,"server thinks" " we didn't ask for recursive lookup"); else adns__debug(ads,serv,qu,"server claims to do recursion," " but gave us a referral"); adns__query_fail(qu,adns_s_invalidresponse); } return; } /* Now, we have some RRs which we wanted. */ qu->answer->rrs.untyped= adns__alloc_interim(qu,qu->answer->rrsz*wantedrrs); if (!qu->answer->rrs.untyped) { adns__query_fail(qu,adns_s_nomemory); return; } typei= qu->typei; cbyte= anstart; rrsdata= qu->answer->rrs.bytes; pai.ads= qu->ads; pai.qu= qu; pai.serv= serv; pai.dgram= dgram; pai.dglen= dglen; pai.nsstart= nsstart; pai.nscount= nscount; pai.arcount= arcount; pai.now= now; for (rri=0, nrrs=0; rrianswer->type & adns_rrt_typemask) || !ownermatched) continue; adns__update_expires(qu,ttl,now); st= typei->parse(&pai, rdstart,rdstart+rdlength, rrsdata+nrrs*qu->answer->rrsz); if (st) { adns__query_fail(qu,st); return; } if (rdstart==-1) goto x_truncated; nrrs++; } assert(nrrs==wantedrrs); qu->answer->nrrs= nrrs; /* This may have generated some child queries ... */ if (qu->children.head) { qu->state= query_childw; LIST_LINK_TAIL(ads->childw,qu); return; } adns__query_done(qu); return; x_truncated: if (!flg_tc) { adns__diag(ads,serv,qu,"server sent datagram which points outside itself"); adns__query_fail(qu,adns_s_invalidresponse); return; } qu->flags |= adns_qf_usevc; x_restartquery: if (qu->cname_dgram) { st= adns__mkquery_frdgram(qu->ads,&qu->vb,&qu->id, qu->cname_dgram,qu->cname_dglen,qu->cname_begin, qu->answer->type, qu->flags); if (st) { adns__query_fail(qu,st); return; } newquery= realloc(qu->query_dgram,qu->vb.used); if (!newquery) { adns__query_fail(qu,adns_s_nomemory); return; } qu->query_dgram= newquery; qu->query_dglen= qu->vb.used; memcpy(newquery,qu->vb.buf,qu->vb.used); } if (qu->state == query_tcpw) qu->state= query_tosend; qu->retries= 0; adns__reset_preserved(qu); adns__query_send(qu,now); } adns-1.5.0~rc1/src/check.c0000664000175000017500000001335612421042027013362 0ustar ianian/* * check.c * - consistency checks */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include "internal.h" void adns_checkconsistency(adns_state ads, adns_query qu) { adns__consistency(ads,qu,cc_user); } #define DLIST_CHECK(list, nodevar, part, body) \ if ((list).head) { \ assert(! (list).head->part back); \ for ((nodevar)= (list).head; \ (nodevar); \ (nodevar)= (nodevar)->part next) { \ assert((nodevar)->part next \ ? (nodevar) == (nodevar)->part next->part back \ : (nodevar) == (list).tail); \ body \ } \ } #define DLIST_ASSERTON(node, nodevar, list, part) \ do { \ for ((nodevar)= (list).head; \ (nodevar) != (node); \ (nodevar)= (nodevar)->part next) { \ assert((nodevar)); \ } \ } while(0) static void checkc_query_alloc(adns_state ads, adns_query qu) { allocnode *an; DLIST_CHECK(qu->allocations, an, , { }); } static void checkc_query(adns_state ads, adns_query qu) { adns_query child; assert(qu->udpnextserver < ads->nservers); assert(!(qu->udpsent & (~0UL << ads->nservers))); assert(qu->search_pos <= ads->nsearchlist); if (qu->parent) DLIST_ASSERTON(qu, child, qu->parent->children, siblings.); } static void checkc_notcpbuf(adns_state ads) { assert(!ads->tcpsend.used); assert(!ads->tcprecv.used); assert(!ads->tcprecv_skip); } static void checkc_global(adns_state ads) { const struct sortlist *sl; int i; assert(ads->udpsockets >= 0); for (i=0; insortlist; i++) { sl= &ads->sortlist[i]; assert(adns__addr_matches(sl->base.sa.sa_family, adns__sockaddr_addr(&sl->base.sa), &sl->base,&sl->mask)); } assert(ads->tcpserver >= 0 && ads->tcpserver < ads->nservers); switch (ads->tcpstate) { case server_connecting: assert(ads->tcpsocket >= 0); checkc_notcpbuf(ads); break; case server_disconnected: case server_broken: assert(ads->tcpsocket == -1); checkc_notcpbuf(ads); break; case server_ok: assert(ads->tcpsocket >= 0); assert(ads->tcprecv_skip <= ads->tcprecv.used); break; default: assert(!"ads->tcpstate value"); } assert(ads->searchlist || !ads->nsearchlist); } static void checkc_queue_udpw(adns_state ads) { adns_query qu; DLIST_CHECK(ads->udpw, qu, , { assert(qu->state==query_tosend); assert(qu->retries <= UDPMAXRETRIES); assert(qu->udpsent); assert(!qu->children.head && !qu->children.tail); checkc_query(ads,qu); checkc_query_alloc(ads,qu); }); } static void checkc_queue_tcpw(adns_state ads) { adns_query qu; DLIST_CHECK(ads->tcpw, qu, , { assert(qu->state==query_tcpw); assert(!qu->children.head && !qu->children.tail); assert(qu->retries <= ads->nservers+1); checkc_query(ads,qu); checkc_query_alloc(ads,qu); }); } static void checkc_queue_childw(adns_state ads) { adns_query parent, child; DLIST_CHECK(ads->childw, parent, , { assert(parent->state == query_childw); assert(parent->children.head); DLIST_CHECK(parent->children, child, siblings., { assert(child->parent == parent); assert(child->state != query_done); }); checkc_query(ads,parent); checkc_query_alloc(ads,parent); }); } static void checkc_query_done(adns_state ads, adns_query qu) { assert(qu->state == query_done); assert(!qu->children.head && !qu->children.tail); checkc_query(ads,qu); } static void checkc_queue_output(adns_state ads) { adns_query qu; DLIST_CHECK(ads->output, qu, , { assert(!qu->parent); assert(!qu->allocations.head && !qu->allocations.tail); checkc_query_done(ads,qu); }); } static void checkc_queue_intdone(adns_state ads) { adns_query qu; DLIST_CHECK(ads->intdone, qu, , { assert(qu->parent); assert(qu->ctx.callback); checkc_query_done(ads,qu); }); } void adns__consistency(adns_state ads, adns_query qu, consistency_checks cc) { adns_query search; switch (cc) { case cc_user: break; case cc_entex: if (!(ads->iflags & adns_if_checkc_entex)) return; assert(!ads->intdone.head); break; case cc_freq: if ((ads->iflags & adns_if_checkc_freq) != adns_if_checkc_freq) return; break; default: abort(); } checkc_global(ads); checkc_queue_udpw(ads); checkc_queue_tcpw(ads); checkc_queue_childw(ads); checkc_queue_output(ads); checkc_queue_intdone(ads); if (qu) { switch (qu->state) { case query_tosend: DLIST_ASSERTON(qu, search, ads->udpw, ); break; case query_tcpw: DLIST_ASSERTON(qu, search, ads->tcpw, ); break; case query_childw: DLIST_ASSERTON(qu, search, ads->childw, ); break; case query_done: if (qu->parent) DLIST_ASSERTON(qu, search, ads->intdone, ); else DLIST_ASSERTON(qu, search, ads->output, ); break; default: assert(!"specific query state"); } } } adns-1.5.0~rc1/src/Makefile.in0000664000175000017500000000302712421042027014200 0ustar ianian# src/Makefile[.in] - library main Makefile # # This file is part of adns, which is # Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson # Copyright (C) 2014 Mark Wooding # Copyright (C) 1999-2000,2003,2006 Tony Finch # Copyright (C) 1991 Massachusetts Institute of Technology # (See the file INSTALL for full details.) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation. srcdir= @srcdir@ VPATH= @srcdir@ TARGETS= libadns.a include ../settings.make include $(srcdir)/adns.make DIRCFLAGS= -I. -I$(srcdir) install: mkdir -p $(libdir) $(includedir) set -xe; for f in $(TARGETS); \ do $(INSTALL_DATA) $$f $(libdir)/$$f; done $(INSTALL_DATA) $(srcdir)/../src/adns.h $(includedir)/adns.h uninstall: for f in $(TARGETS); do rm -f $(libdir)/$$f; done rm -f $(includedir)/adns.h ALLOBJS= $(LIBOBJS) libadns.a: $(LIBOBJS) rm -f $@ $(AR) cqv $@.new $(LIBOBJS) $(RANLIB) $@.new mv -f $@.new $@ $(LIBOBJS): adns.h internal.h config.h adns-1.5.0~rc1/src/query.c0000664000175000017500000004117512423157063013463 0ustar ianian/* * query.c * - overall query management (allocation, completion) * - per-query memory management * - query submission and cancellation (user-visible and internal) */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include "internal.h" #include #include #include #include #include "internal.h" static adns_query query_alloc(adns_state ads, const typeinfo *typei, adns_rrtype type, adns_queryflags flags, struct timeval now) { /* Allocate a virgin query and return it. */ adns_query qu; qu= malloc(sizeof(*qu)); if (!qu) return 0; qu->answer= malloc(sizeof(*qu->answer)); if (!qu->answer) { free(qu); return 0; } qu->ads= ads; qu->state= query_tosend; qu->back= qu->next= qu->parent= 0; LIST_INIT(qu->children); LINK_INIT(qu->siblings); LIST_INIT(qu->allocations); qu->interim_allocd= 0; qu->preserved_allocd= 0; qu->final_allocspace= 0; qu->typei= typei; qu->query_dgram= 0; qu->query_dglen= 0; adns__vbuf_init(&qu->vb); qu->cname_dgram= 0; qu->cname_dglen= qu->cname_begin= 0; adns__vbuf_init(&qu->search_vb); qu->search_origlen= qu->search_pos= qu->search_doneabs= 0; qu->id= -2; /* will be overwritten with real id before we leave adns */ qu->flags= flags; qu->retries= 0; qu->udpnextserver= 0; qu->udpsent= 0; timerclear(&qu->timeout); qu->expires= now.tv_sec + MAXTTLBELIEVE; memset(&qu->ctx,0,sizeof(qu->ctx)); qu->answer->status= adns_s_ok; qu->answer->cname= qu->answer->owner= 0; qu->answer->type= type; qu->answer->expires= -1; qu->answer->nrrs= 0; qu->answer->rrs.untyped= 0; qu->answer->rrsz= typei->getrrsz(typei,type); return qu; } static void query_submit(adns_state ads, adns_query qu, const typeinfo *typei, vbuf *qumsg_vb, int id, adns_queryflags flags, struct timeval now) { /* Fills in the query message in for a previously-allocated query, * and submits it. Cannot fail. Takes over the memory for qumsg_vb. */ qu->vb= *qumsg_vb; adns__vbuf_init(qumsg_vb); qu->query_dgram= malloc(qu->vb.used); if (!qu->query_dgram) { adns__query_fail(qu,adns_s_nomemory); return; } qu->id= id; qu->query_dglen= qu->vb.used; memcpy(qu->query_dgram,qu->vb.buf,qu->vb.used); typei->query_send(qu,now); } adns_status adns__ckl_hostname(adns_state ads, adns_queryflags flags, union checklabel_state *cls, qcontext *ctx, int labnum, const char *dgram, int labstart, int lablen) { int i, c; const char *label = dgram+labstart; if (flags & adns_qf_quoteok_query) return adns_s_ok; for (i=0; i= 0); st= typei->checklabel(ads,flags, &cls,ctx, labnum++, dgram,labstart,lablen); if (st) return st; } while (lablen); return adns_s_ok; } adns_status adns__internal_submit(adns_state ads, adns_query *query_r, adns_query parent, const typeinfo *typei, adns_rrtype type, vbuf *qumsg_vb, int id, adns_queryflags flags, struct timeval now, qcontext *ctx) { adns_query qu; adns_status st; st= check_domain_name(ads, flags,ctx,typei, qumsg_vb->buf,qumsg_vb->used); if (st) goto x_err; qu= query_alloc(ads,typei,type,flags,now); if (!qu) { st = adns_s_nomemory; goto x_err; } *query_r= qu; qu->parent= parent; LIST_LINK_TAIL_PART(parent->children,qu,siblings.); memcpy(&qu->ctx,ctx,sizeof(qu->ctx)); query_submit(ads,qu, typei,qumsg_vb,id,flags,now); return adns_s_ok; x_err: adns__vbuf_free(qumsg_vb); return st; } static void query_simple(adns_state ads, adns_query qu, const char *owner, int ol, const typeinfo *typei, adns_queryflags flags, struct timeval now) { vbuf vb_new; int id; adns_status st; st= adns__mkquery(ads,&qu->vb,&id, owner,ol, typei,qu->answer->type, flags); if (st) { if (st == adns_s_querydomaintoolong && (flags & adns_qf_search)) { adns__search_next(ads,qu,now); return; } else { adns__query_fail(qu,st); return; } } st= check_domain_name(ads, flags,&qu->ctx,typei, qu->vb.buf,qu->vb.used); if (st) { adns__query_fail(qu,st); return; } vb_new= qu->vb; adns__vbuf_init(&qu->vb); query_submit(ads,qu, typei,&vb_new,id, flags,now); } void adns__search_next(adns_state ads, adns_query qu, struct timeval now) { const char *nextentry; adns_status st; if (qu->search_doneabs<0) { nextentry= 0; qu->search_doneabs= 1; } else { if (qu->search_pos >= ads->nsearchlist) { if (qu->search_doneabs) { qu->search_vb.used= qu->search_origlen; st= adns_s_nxdomain; goto x_fail; } else { nextentry= 0; qu->search_doneabs= 1; } } else { nextentry= ads->searchlist[qu->search_pos++]; } } qu->search_vb.used= qu->search_origlen; if (nextentry) { if (!adns__vbuf_append(&qu->search_vb,".",1) || !adns__vbuf_appendstr(&qu->search_vb,nextentry)) goto x_nomemory; } free(qu->query_dgram); qu->query_dgram= 0; qu->query_dglen= 0; query_simple(ads,qu, qu->search_vb.buf, qu->search_vb.used, qu->typei, qu->flags, now); return; x_nomemory: st= adns_s_nomemory; x_fail: adns__query_fail(qu,st); } static int save_owner(adns_query qu, const char *owner, int ol) { /* Returns 1 if OK, otherwise there was no memory. */ adns_answer *ans; if (!(qu->flags & adns_qf_owner)) return 1; ans= qu->answer; assert(!ans->owner); ans->owner= adns__alloc_preserved(qu,ol+1); if (!ans->owner) return 0; memcpy(ans->owner,owner,ol); ans->owner[ol]= 0; return 1; } int adns_submit(adns_state ads, const char *owner, adns_rrtype type, adns_queryflags flags, void *context, adns_query *query_r) { int r, ol, ndots; adns_status st; const typeinfo *typei; struct timeval now; adns_query qu; const char *p; adns__consistency(ads,0,cc_entex); if (flags & ~(adns_queryflags)0x4009ffff) /* 0x40080000 are reserved for `harmless' future expansion * 0x00000020 used to be adns_qf_quoteok_cname, now the default; * see also addrfam.c:textaddr_check_qf */ return ENOSYS; typei= adns__findtype(type); if (!typei) return ENOSYS; r= gettimeofday(&now,0); if (r) goto x_errno; qu= query_alloc(ads,typei,type,flags,now); if (!qu) goto x_errno; qu->ctx.ext= context; qu->ctx.callback= 0; memset(&qu->ctx.pinfo,0,sizeof(qu->ctx.pinfo)); memset(&qu->ctx.tinfo,0,sizeof(qu->ctx.tinfo)); *query_r= qu; ol= strlen(owner); if (!ol) { st= adns_s_querydomaininvalid; goto x_adnsfail; } if (ol>DNS_MAXDOMAIN+1) { st= adns_s_querydomaintoolong; goto x_adnsfail; } if (ol>=1 && owner[ol-1]=='.' && (ol<2 || owner[ol-2]!='\\')) { flags &= ~adns_qf_search; qu->flags= flags; ol--; } if (flags & adns_qf_search) { r= adns__vbuf_append(&qu->search_vb,owner,ol); if (!r) { st= adns_s_nomemory; goto x_adnsfail; } for (ndots=0, p=owner; (p= strchr(p,'.')); p++, ndots++); qu->search_doneabs= (ndots >= ads->searchndots) ? -1 : 0; qu->search_origlen= ol; adns__search_next(ads,qu,now); } else { if (flags & adns_qf_owner) { if (!save_owner(qu,owner,ol)) { st= adns_s_nomemory; goto x_adnsfail; } } query_simple(ads,qu, owner,ol, typei,flags, now); } adns__autosys(ads,now); adns__returning(ads,qu); return 0; x_adnsfail: adns__query_fail(qu,st); adns__returning(ads,qu); return 0; x_errno: r= errno; assert(r); adns__returning(ads,0); return r; } int adns_submit_reverse_any(adns_state ads, const struct sockaddr *addr, const char *zone, adns_rrtype type, adns_queryflags flags, void *context, adns_query *query_r) { char *buf, *buf_free = 0; char shortbuf[100]; int r; flags &= ~adns_qf_search; buf = shortbuf; r= adns__make_reverse_domain(addr,zone, &buf,sizeof(shortbuf),&buf_free); if (r) return r; r= adns_submit(ads,buf,type,flags,context,query_r); free(buf_free); return r; } int adns_submit_reverse(adns_state ads, const struct sockaddr *addr, adns_rrtype type, adns_queryflags flags, void *context, adns_query *query_r) { if (((type^adns_r_ptr) & adns_rrt_reprmask) && ((type^adns_r_ptr_raw) & adns_rrt_reprmask)) return EINVAL; return adns_submit_reverse_any(ads,addr,0,type,flags,context,query_r); } int adns_synchronous(adns_state ads, const char *owner, adns_rrtype type, adns_queryflags flags, adns_answer **answer_r) { adns_query qu; int r; r= adns_submit(ads,owner,type,flags,0,&qu); if (r) return r; r= adns_wait(ads,&qu,answer_r,0); if (r) adns_cancel(qu); return r; } static void *alloc_common(adns_query qu, size_t sz) { allocnode *an; if (!sz) return qu; /* Any old pointer will do */ assert(!qu->final_allocspace); an= malloc(MEM_ROUND(MEM_ROUND(sizeof(*an)) + sz)); if (!an) return 0; LIST_LINK_TAIL(qu->allocations,an); an->sz= sz; return (byte*)an + MEM_ROUND(sizeof(*an)); } void *adns__alloc_interim(adns_query qu, size_t sz) { void *rv; sz= MEM_ROUND(sz); rv= alloc_common(qu,sz); if (!rv) return 0; qu->interim_allocd += sz; return rv; } void *adns__alloc_preserved(adns_query qu, size_t sz) { void *rv; sz= MEM_ROUND(sz); rv= adns__alloc_interim(qu,sz); if (!rv) return 0; qu->preserved_allocd += sz; return rv; } static allocnode *alloc__info(adns_query qu, void *p, size_t *sz_r) { allocnode *an; if (!p || p == qu) { *sz_r= 0; return 0; } an= (allocnode *)((byte *)p - MEM_ROUND(sizeof(allocnode))); *sz_r= MEM_ROUND(an->sz); return an; } void adns__free_interim(adns_query qu, void *p) { size_t sz; allocnode *an= alloc__info(qu, p, &sz); if (!an) return; assert(!qu->final_allocspace); LIST_UNLINK(qu->allocations, an); free(an); qu->interim_allocd -= sz; assert(!qu->interim_allocd >= 0); } void *adns__alloc_mine(adns_query qu, size_t sz) { return alloc_common(qu,MEM_ROUND(sz)); } void adns__transfer_interim(adns_query from, adns_query to, void *block) { size_t sz; allocnode *an= alloc__info(from, block, &sz); if (!an) return; assert(!to->final_allocspace); assert(!from->final_allocspace); LIST_UNLINK(from->allocations,an); LIST_LINK_TAIL(to->allocations,an); from->interim_allocd -= sz; to->interim_allocd += sz; if (to->expires > from->expires) to->expires= from->expires; } void *adns__alloc_final(adns_query qu, size_t sz) { /* When we're in the _final stage, we _subtract_ from interim_alloc'd * each allocation, and use final_allocspace to point to the next free * bit. */ void *rp; sz= MEM_ROUND(sz); rp= qu->final_allocspace; assert(rp); qu->interim_allocd -= sz; assert(qu->interim_allocd>=0); qu->final_allocspace= (byte*)rp + sz; return rp; } void adns__cancel_children(adns_query qu) { adns_query cqu, ncqu; for (cqu= qu->children.head; cqu; cqu= ncqu) { ncqu= cqu->siblings.next; adns__cancel(cqu); } } void adns__reset_preserved(adns_query qu) { assert(!qu->final_allocspace); adns__cancel_children(qu); qu->answer->nrrs= 0; qu->answer->rrs.untyped= 0; qu->interim_allocd= qu->preserved_allocd; } static void free_query_allocs(adns_query qu) { allocnode *an, *ann; adns__cancel_children(qu); for (an= qu->allocations.head; an; an= ann) { ann= an->next; free(an); } LIST_INIT(qu->allocations); adns__vbuf_free(&qu->vb); adns__vbuf_free(&qu->search_vb); free(qu->query_dgram); qu->query_dgram= 0; } void adns__returning(adns_state ads, adns_query qu_for_caller) { while (ads->intdone.head) { adns_query iq= ads->intdone.head; adns_query parent= iq->parent; LIST_UNLINK_PART(parent->children,iq,siblings.); LIST_UNLINK(iq->ads->childw,parent); LIST_UNLINK(ads->intdone,iq); iq->ctx.callback(parent,iq); free_query_allocs(iq); free(iq->answer); free(iq); } adns__consistency(ads,qu_for_caller,cc_entex); } void adns__cancel(adns_query qu) { adns_state ads; ads= qu->ads; adns__consistency(ads,qu,cc_freq); if (qu->parent) LIST_UNLINK_PART(qu->parent->children,qu,siblings.); switch (qu->state) { case query_tosend: LIST_UNLINK(ads->udpw,qu); break; case query_tcpw: LIST_UNLINK(ads->tcpw,qu); break; case query_childw: LIST_UNLINK(ads->childw,qu); break; case query_done: if (qu->parent) LIST_UNLINK(ads->intdone,qu); else LIST_UNLINK(ads->output,qu); break; default: abort(); } free_query_allocs(qu); free(qu->answer); free(qu); } void adns_cancel(adns_query qu) { adns_state ads; assert(!qu->parent); ads= qu->ads; adns__consistency(ads,qu,cc_entex); adns__cancel(qu); adns__returning(ads,0); } void adns__update_expires(adns_query qu, unsigned long ttl, struct timeval now) { time_t max; assert(ttl <= MAXTTLBELIEVE); max= now.tv_sec + ttl; if (qu->expires < max) return; qu->expires= max; } static void makefinal_query(adns_query qu) { adns_answer *ans; int rrn; ans= qu->answer; if (qu->interim_allocd) { ans= realloc(qu->answer, MEM_ROUND(MEM_ROUND(sizeof(*ans)) + qu->interim_allocd)); if (!ans) goto x_nomem; qu->answer= ans; } qu->final_allocspace= (byte*)ans + MEM_ROUND(sizeof(*ans)); adns__makefinal_str(qu,&ans->cname); adns__makefinal_str(qu,&ans->owner); if (ans->nrrs) { adns__makefinal_block(qu, &ans->rrs.untyped, ans->nrrs*ans->rrsz); for (rrn=0; rrnnrrs; rrn++) qu->typei->makefinal(qu, ans->rrs.bytes + rrn*ans->rrsz); } free_query_allocs(qu); return; x_nomem: qu->preserved_allocd= 0; qu->answer->cname= 0; qu->answer->owner= 0; adns__reset_preserved(qu); /* (but we just threw away the preserved stuff) */ qu->answer->status= adns_s_nomemory; free_query_allocs(qu); } void adns__query_done(adns_query qu) { adns_state ads=qu->ads; adns_answer *ans; adns__cancel_children(qu); qu->id= -1; ans= qu->answer; if (qu->flags & adns_qf_search && ans->status != adns_s_nomemory) { if (!save_owner(qu, qu->search_vb.buf, qu->search_vb.used)) { adns__query_fail(qu,adns_s_nomemory); return; } } if (ans->nrrs && qu->typei->diff_needswap) { if (!adns__vbuf_ensure(&qu->vb,qu->answer->rrsz)) { adns__query_fail(qu,adns_s_nomemory); return; } adns__isort(ans->rrs.bytes, ans->nrrs, ans->rrsz, qu->vb.buf, (int(*)(void*, const void*, const void*)) qu->typei->diff_needswap, qu->ads); } if (ans->nrrs && qu->typei->postsort) { qu->typei->postsort(qu->ads, ans->rrs.bytes, ans->nrrs,ans->rrsz, qu->typei); } ans->expires= qu->expires; qu->state= query_done; if (qu->parent) { LIST_LINK_TAIL(ads->intdone,qu); } else { makefinal_query(qu); LIST_LINK_TAIL(qu->ads->output,qu); } } void adns__query_fail(adns_query qu, adns_status st) { adns__reset_preserved(qu); qu->answer->status= st; adns__query_done(qu); } void adns__makefinal_str(adns_query qu, char **strp) { int l; char *before, *after; before= *strp; if (!before) return; l= strlen(before)+1; after= adns__alloc_final(qu,l); memcpy(after,before,l); *strp= after; } void adns__makefinal_block(adns_query qu, void **blpp, size_t sz) { void *before, *after; before= *blpp; if (!before) return; after= adns__alloc_final(qu,sz); memcpy(after,before,sz); *blpp= after; } adns-1.5.0~rc1/src/adns.h0000664000175000017500000012252112423157366013251 0ustar ianian/* * adns.h * - adns user-visible API */ /* * * This file is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * * It is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * * For the benefit of certain LGPL'd `omnibus' software which * provides a uniform interface to various things including adns, I * make the following additional licence. I do this because the GPL * would otherwise force either the omnibus software to be GPL'd or * the adns-using part to be distributed separately. * * So: you may also redistribute and/or modify adns.h (but only the * public header file adns.h and not any other part of adns) under the * terms of the GNU Library General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at * your option) any later version. * * Note that adns itself is GPL'd. Authors of adns-using applications * with GPL-incompatible licences, and people who distribute adns with * applications where the whole distribution is not GPL'd, are still * likely to be in violation of the GPL. Anyone who wants to do this * should contact Ian Jackson. Please note that to avoid encouraging * people to infringe the GPL as it applies to the body of adns, Ian * thinks that if you take advantage of the special exception to * redistribute just adns.h under the LGPL, you should retain this * paragraph in its place in the appropriate copyright statements. * * * You should have received a copy of the GNU General Public License, * or the GNU Library General Public License, as appropriate, along * with this program; if not, write to the Free Software Foundation. * */ #ifndef ADNS_H_INCLUDED #define ADNS_H_INCLUDED #include #include #include #include #include #include #include #include #ifdef __cplusplus extern "C" { /* I really dislike this - iwj. */ #endif /* Whether to support address families other than IPv4 in responses which use * the `adns_rr_addr' structure. This is a source-compatibility issue: old * clients may not expect to find address families other than AF_INET in * their query results. There's a separate binary compatibility issue to do * with the size of the `adns_rr_addr' structure, but we'll assume you can * cope with that because you have this header file. Define * `ADNS_FEATURE_IPV4ONLY' if you only want to see AF_INET addresses by * default, or `ADNS_FEATURE_MANYAF' to allow multiple address families; the * default is currently to stick with AF_INET only, but this is likely to * change in a later release of ADNS. Note that any adns_qf_want_... flags * in your query are observed: this setting affects only the default address * families. */ #if !defined(ADNS_FEATURE_IPV4ONLY) && !defined(ADNS_FEATURE_MANYAF) # define ADNS_FEATURE_IPV4ONLY #elif defined(ADNS_FEATURE_IPV4ONLY) && defined(ADNS_FEATURE_MANYAF) # error "Feature flags ADNS_FEATURE_IPV4ONLY and ..._MANYAF are incompatible" #endif /* All struct in_addr anywhere in adns are in NETWORK byte order. */ typedef struct adns__state *adns_state; typedef struct adns__query *adns_query; typedef enum { /* In general, or together the desired flags: */ adns_if_none= 0x0000,/* no flags. nicer than 0 for some compilers */ adns_if_noenv= 0x0001,/* do not look at environment */ adns_if_noerrprint= 0x0002,/* never print to stderr (_debug overrides) */ adns_if_noserverwarn=0x0004,/* do not warn to stderr about duff servers etc */ adns_if_debug= 0x0008,/* enable all output to stderr plus debug msgs */ adns_if_logpid= 0x0080,/* include pid in diagnostic output */ adns_if_noautosys= 0x0010,/* do not make syscalls at every opportunity */ adns_if_eintr= 0x0020,/* allow _wait and _synchronous to return EINTR */ adns_if_nosigpipe= 0x0040,/* applic has SIGPIPE ignored, do not protect */ adns_if_checkc_entex=0x0100,/* consistency checks on entry/exit to adns fns */ adns_if_checkc_freq= 0x0300,/* consistency checks very frequently (slow!) */ adns_if_permit_ipv4= 0x0400,/* allow _addr queries to return IPv4 addresses */ adns_if_permit_ipv6= 0x0800,/* allow _addr queries to return IPv6 addresses */ adns_if_afmask= 0x0c00, /* These are policy flags, and overridden by the adns_af:... option in * resolv.conf. If the adns_qf_want_... query flags are incompatible with * these settings (in the sense that no address families are permitted at * all) then the query flags take precedence; otherwise only records which * satisfy all of the stated requirements are allowed. */ adns__if_sizeforce= 0x7fff, } adns_initflags; typedef enum { /* In general, or together the desired flags: */ adns_qf_none= 0x00000000,/* no flags */ adns_qf_search= 0x00000001,/* use the searchlist */ adns_qf_usevc= 0x00000002,/* use a virtual circuit (TCP conn) */ adns_qf_owner= 0x00000004,/* fill in the owner field in the answer */ adns_qf_quoteok_query= 0x00000010,/* allow special chars in query domain */ adns_qf_quoteok_cname= 0x00000000,/* ... in CNAME we go via (now default) */ adns_qf_quoteok_anshost=0x00000040,/* ... in things supposedly hostnames */ adns_qf_quotefail_cname=0x00000080,/* refuse if quote-req chars in CNAME we go via */ adns_qf_cname_loose= 0x00000100,/* allow refs to CNAMEs - without, get _s_cname */ adns_qf_cname_strict= 0x00010000,/* forbid CNAME refs (default, currently) */ adns_qf_cname_forbid= 0x00000200,/* don't follow CNAMEs, instead give _s_cname */ adns_qf_want_ipv4= 0x00000400,/* try to return IPv4 addresses */ adns_qf_want_ipv6= 0x00000800,/* try to return IPv6 addresses */ adns_qf_want_allaf= 0x00000c00,/* all the above flag bits */ /* Without any of the _qf_want_... flags, _qtf_deref queries try to return * all address families permitted by _if_permit_... (as overridden by the * `adns_af:...' configuration option). Set flags to restrict the * returned address families to the ones selected. */ adns_qf_ipv6_mapv4= 0x00001000,/* ... return IPv4 addresses as v6-mapped */ adns_qf_addrlit_scope_forbid=0x00002000,/* forbid % in IPv6 literals */ adns_qf_addrlit_scope_numeric=0x00004000,/* % may only be numeric */ adns_qf_addrlit_ipv4_quadonly=0x00008000,/* reject non-dotted-quad ipv4 */ adns__qf_internalmask= 0x0ff00000, adns__qf_sizeforce= 0x7fffffff } adns_queryflags; typedef enum { adns_rrt_typemask= 0x0ffff, adns_rrt_reprmask= 0xffffff, adns__qtf_deref_bit=0x10000,/* internal version of ..._deref below */ adns__qtf_mail822= 0x20000,/* return mailboxes in RFC822 rcpt field fmt */ adns__qtf_bigaddr=0x1000000,/* use the new larger sockaddr union */ adns__qtf_manyaf= 0x2000000,/* permitted to return multiple address families */ adns__qtf_deref= adns__qtf_deref_bit|adns__qtf_bigaddr #ifdef ADNS_FEATURE_MANYAF |adns__qtf_manyaf #endif ,/* dereference domains; perhaps get extra data */ adns_r_unknown= 0x40000, /* To use this, ask for records of type |adns_r_unknown. * adns will not process the RDATA - you'll get adns_rr_byteblocks, * where the int is the length and the unsigned char* points to the * data. String representation of the RR data (by adns_rrinfo) is as in * RFC3597. adns_rr_info will not return the type name in *rrtname_r * (due to memory management problems); *fmtname_r will be set to * "unknown". * * Do not specify adns_r_unknown along with a known RR type which * requires domain name uncompression (see RFC3597 s4); domain names * will not be uncompressed and the resulting data would be useless. * Asking for meta-RR types via adns_r_unknown will not work properly * either and may make adns complain about server misbehaviour, so don't * do that. * * Don't forget adns_qf_quoteok if that's what you want. */ adns_r_none= 0, adns_r_a= 1, adns_r_ns_raw= 2, adns_r_ns= adns_r_ns_raw|adns__qtf_deref, adns_r_cname= 5, adns_r_soa_raw= 6, adns_r_soa= adns_r_soa_raw|adns__qtf_mail822, adns_r_ptr_raw= 12, /* do not mind PTR with wrong or missing addr */ adns_r_ptr= adns_r_ptr_raw|adns__qtf_deref, adns_r_hinfo= 13, adns_r_mx_raw= 15, adns_r_mx= adns_r_mx_raw|adns__qtf_deref, adns_r_txt= 16, adns_r_rp_raw= 17, adns_r_rp= adns_r_rp_raw|adns__qtf_mail822, adns_r_aaaa= 28, /* For SRV records, query domain without _qf_quoteok_query must look * as expected from SRV RFC with hostname-like Name. _With_ * _quoteok_query, any query domain is allowed. */ adns_r_srv_raw= 33, adns_r_srv= adns_r_srv_raw|adns__qtf_deref, adns_r_addr= adns_r_a|adns__qtf_deref, adns__rrt_sizeforce= 0x7fffffff, } adns_rrtype; /* * In queries without qf_quoteok_*, all domains must have standard * legal syntax, or you get adns_s_querydomainvalid (if the query * domain contains bad characters) or adns_s_answerdomaininvalid (if * the answer contains bad characters). * * In queries _with_ qf_quoteok_*, domains in the query or response * may contain any characters, quoted according to RFC1035 5.1. On * input to adns, the char* is a pointer to the interior of a " * delimited string, except that " may appear in it unquoted. On * output, the char* is a pointer to a string which would be legal * either inside or outside " delimiters; any character which isn't * legal in a hostname (ie alphanumeric or hyphen) or one of _ / + * (the three other punctuation characters commonly abused in domain * names) will be quoted, as \X if it is a printing ASCII character or * \DDD otherwise. * * If the query goes via a CNAME then the canonical name (ie, the * thing that the CNAME record refers to) is usually allowed to * contain any characters, which will be quoted as above. With * adns_qf_quotefail_cname you get adns_s_answerdomaininvalid when * this happens. (This is a change from version 0.4 and earlier, in * which failing the query was the default, and you had to say * adns_qf_quoteok_cname to avoid this; that flag is now deprecated.) * * In version 0.4 and earlier, asking for _raw records containing * mailboxes without specifying _qf_quoteok_anshost was silly. This * is no longer the case. In this version only parts of responses * that are actually supposed to be hostnames will be refused by * default if quote-requiring characters are found. */ /* * If you ask for an RR which contains domains which are actually * encoded mailboxes, and don't ask for the _raw version, then adns * returns the mailbox formatted suitably for an RFC822 recipient * header field. The particular format used is that if the mailbox * requires quoting according to the rules in RFC822 then the * local-part is quoted in double quotes, which end at the next * unescaped double quote (\ is the escape char, and is doubled, and * is used to escape only \ and "). If the local-part is legal * without quoting according to RFC822, it is presented as-is. In any * case the local-part is followed by an @ and the domain. The domain * will not contain any characters not legal in hostnames. * * Unquoted local-parts may contain any printing 7-bit ASCII * except the punctuation characters ( ) < > @ , ; : \ " [ ] * I.e. they may contain alphanumerics, and the following * punctuation characters: ! # % ^ & * - _ = + { } . * * adns will reject local parts containing control characters (byte * values 0-31, 127-159, and 255) - these appear to be legal according * to RFC822 (at least 0-127) but are clearly a bad idea. RFC1035 * syntax does not make any distinction between a single RFC822 * quoted-string containing full stops, and a series of quoted-strings * separated by full stops; adns will return anything that isn't all * valid atoms as a single quoted-string. RFC822 does not allow * high-bit-set characters at all, but adns does allow them in * local-parts, treating them as needing quoting. * * If you ask for the domain with _raw then _no_ checking is done * (even on the host part, regardless of adns_qf_quoteok_anshost), and * you just get the domain name in master file format. * * If no mailbox is supplied the returned string will be `.' in either * case. */ typedef enum { adns_s_ok, /* locally induced errors */ adns_s_nomemory, adns_s_unknownrrtype, adns_s_systemfail, adns_s_max_localfail= 29, /* remotely induced errors, detected locally */ adns_s_timeout, adns_s_allservfail, adns_s_norecurse, adns_s_invalidresponse, adns_s_unknownformat, adns_s_max_remotefail= 59, /* remotely induced errors, reported by remote server to us */ adns_s_rcodeservfail, adns_s_rcodeformaterror, adns_s_rcodenotimplemented, adns_s_rcoderefused, adns_s_rcodeunknown, adns_s_max_tempfail= 99, /* remote configuration errors */ adns_s_inconsistent, /* PTR gives domain whose addr is missing or mismatch */ adns_s_prohibitedcname, /* CNAME, but eg A expected (not if _qf_cname_loose) */ adns_s_answerdomaininvalid, adns_s_answerdomaintoolong, adns_s_invaliddata, adns_s_max_misconfig= 199, /* permanent problems with the query */ adns_s_querydomainwrong, adns_s_querydomaininvalid, adns_s_querydomaintoolong, adns_s_max_misquery= 299, /* permanent errors */ adns_s_nxdomain, adns_s_nodata, adns_s_max_permfail= 499 } adns_status; typedef union { struct sockaddr sa; struct sockaddr_in inet; } adns_sockaddr_v4only; typedef union { struct sockaddr sa; struct sockaddr_in inet; struct sockaddr_in6 inet6; } adns_sockaddr; typedef struct { int len; adns_sockaddr addr; } adns_rr_addr; typedef struct { /* the old v4-only structure; handy if you have complicated binary * compatibility problems. */ int len; adns_sockaddr_v4only addr; } adns_rr_addr_v4only; typedef struct { char *host; adns_status astatus; int naddrs; /* temp fail => -1, perm fail => 0, s_ok => >0 */ adns_rr_addr *addrs; } adns_rr_hostaddr; typedef struct { char *(array[2]); } adns_rr_strpair; typedef struct { int i; adns_rr_hostaddr ha; } adns_rr_inthostaddr; typedef struct { /* Used both for mx_raw, in which case i is the preference and str * the domain, and for txt, in which case each entry has i for the * `text' length, and str for the data (which will have had an extra * nul appended so that if it was plain text it is now a * null-terminated string). */ int i; char *str; } adns_rr_intstr; typedef struct { adns_rr_intstr array[2]; } adns_rr_intstrpair; typedef struct { char *mname, *rname; unsigned long serial, refresh, retry, expire, minimum; } adns_rr_soa; typedef struct { int priority, weight, port; char *host; } adns_rr_srvraw; typedef struct { int priority, weight, port; adns_rr_hostaddr ha; } adns_rr_srvha; typedef struct { int len; unsigned char *data; } adns_rr_byteblock; typedef struct { adns_status status; char *cname; /* always NULL if query was for CNAME records */ char *owner; /* only set if req'd in query flags; maybe 0 on error anyway */ adns_rrtype type; /* guaranteed to be same as in query */ time_t expires;/*abs time. def only if _s_ok, nxdomain or nodata. NOT TTL!*/ int nrrs, rrsz; /* nrrs is 0 if an error occurs */ union { void *untyped; unsigned char *bytes; char *(*str); /* ns_raw, cname, ptr, ptr_raw */ adns_rr_intstr *(*manyistr); /* txt (list strs ends with i=-1, str=0)*/ adns_rr_addr *addr; /* addr */ struct in_addr *inaddr; /* a */ struct in6_addr *in6addr; /* aaaa */ adns_rr_hostaddr *hostaddr; /* ns */ adns_rr_intstrpair *intstrpair; /* hinfo */ adns_rr_strpair *strpair; /* rp, rp_raw */ adns_rr_inthostaddr *inthostaddr;/* mx */ adns_rr_intstr *intstr; /* mx_raw */ adns_rr_soa *soa; /* soa, soa_raw */ adns_rr_srvraw *srvraw; /* srv_raw */ adns_rr_srvha *srvha;/* srv */ adns_rr_byteblock *byteblock; /* ...|unknown */ } rrs; } adns_answer; /* Memory management: * adns_state and adns_query are actually pointers to malloc'd state; * On submission questions are copied, including the owner domain; * Answers are malloc'd as a single piece of memory; pointers in the * answer struct point into further memory in the answer. * query_io: * Must always be non-null pointer; * If *query_io is 0 to start with then any query may be returned; * If *query_io is !0 adns_query then only that query may be returned. * If the call is successful, *query_io, *answer_r, and *context_r * will all be set. * Errors: * Return values are 0 or an errno value. * * For _init, _init_strcfg, _submit and _synchronous, system errors * (eg, failure to create sockets, malloc failure, etc.) return errno * values. EINVAL from _init et al means the configuration file * is erroneous and cannot be parsed. * * For _wait and _check failures are reported in the answer * structure, and only 0, ESRCH or (for _check) EAGAIN is * returned: if no (appropriate) requests are done adns_check returns * EAGAIN; if no (appropriate) requests are outstanding both * adns_query and adns_wait return ESRCH. * * Additionally, _wait can return EINTR if you set adns_if_eintr. * * All other errors (nameserver failure, timed out connections, &c) * are returned in the status field of the answer. After a * successful _wait or _check, if status is nonzero then nrrs will be * 0, otherwise it will be >0. type will always be the type * requested. */ /* Threads: * adns does not use any static modifiable state, so it * is safe to call adns_init several times and then use the * resulting adns_states concurrently. * However, it is NOT safe to make simultaneous calls into * adns using the same adns_state; a single adns_state must be used * only by one thread at a time. You can solve this problem by * having one adns_state per thread, or if that isn't feasible, you * could maintain a pool of adns_states. Unfortunately neither of * these approaches has optimal performance. */ int adns_init(adns_state *newstate_r, adns_initflags flags, FILE *diagfile /*0=>stderr*/); int adns_init_strcfg(adns_state *newstate_r, adns_initflags flags, FILE *diagfile /*0=>discard*/, const char *configtext); typedef void adns_logcallbackfn(adns_state ads, void *logfndata, const char *fmt, va_list al); /* Will be called perhaps several times for each message; when the * message is complete, the string implied by fmt and al will end in * a newline. Log messages start with `adns debug:' or `adns * warning:' or `adns:' (for errors), or `adns debug [PID]:' * etc. if adns_if_logpid is set. */ int adns_init_logfn(adns_state *newstate_r, adns_initflags flags, const char *configtext /*0=>use default config files*/, adns_logcallbackfn *logfn /*0=>logfndata is a FILE* */, void *logfndata /*0 with logfn==0 => discard*/); /* Configuration: * adns_init reads /etc/resolv.conf, which is expected to be (broadly * speaking) in the format expected by libresolv, and then * /etc/resolv-adns.conf if it exists. adns_init_strcfg is instead * passed a string which is interpreted as if it were the contents of * resolv.conf or resolv-adns.conf. In general, configuration which * is set later overrides any that is set earlier. * * Standard directives understood in resolv[-adns].conf: * * nameserver

* Must be followed by the IP address of a nameserver. Several * nameservers may be specified, and they will be tried in the order * found. There is a compiled in limit, currently 5, on the number * of nameservers. (libresolv supports only 3 nameservers.) * * search ... * Specifies the search list for queries which specify * adns_qf_search. This is a list of domains to append to the query * domain. The query domain will be tried as-is either before all * of these or after them, depending on the ndots option setting * (see below). * * domain * This is present only for backward compatibility with obsolete * versions of libresolv. It should not be used, and is interpreted * by adns as if it were `search' - note that this is subtly * different to libresolv's interpretation of this directive. * * sortlist / ... * Should be followed by a sequence of IP-address and netmask pairs, * separated by spaces. They may be specified as * eg. 172.30.206.0/24 or 172.30.206.0/255.255.255.0. Currently up * to 15 pairs may be specified (but note that libresolv only * supports up to 10). * * options * Should followed by one or more options, separated by spaces. * Each option consists of an option name, followed by optionally * a colon and a value. Options are listed below. * * Non-standard directives understood in resolv[-adns].conf: * * clearnameservers * Clears the list of nameservers, so that further nameserver lines * start again from the beginning. * * include * The specified file will be read. * * Additionally, adns will ignore lines in resolv[-adns].conf which * start with a #. * * Standard options understood: * * debug * Enables debugging output from the resolver, which will be written * to stderr. * * ndots: * Affects whether queries with adns_qf_search will be tried first * without adding domains from the searchlist, or whether the bare * query domain will be tried last. Queries which contain at least * dots will be tried bare first. The default is 1. * * Non-standard options understood: * * adns_checkc:none * adns_checkc:entex * adns_checkc:freq * Changes the consistency checking frequency; this overrides the * setting of adns_if_check_entex, adns_if_check_freq, or neither, * in the flags passed to adns_init. * * adns_af:{ipv4,ipv6},... adns_af:any * Determines which address families ADNS looks up (either as an * adns_r_addr query, or when dereferencing an answer yielding hostnames * (e.g., adns_r_mx). The argument is a comma-separated list: only the * address families listed will be looked up. The default is `any'. * Lookups occur (logically) concurrently; use the `sortlist' directive to * control the relative order of addresses in answers. This option * overrides the corresponding init flags (covered by adns_if_afmask). * * adns_ignoreunkcfg * Ignore unknown options and configuration directives, rather than * logging them. To be effective, appear in the configuration * before the unknown options. ADNS_RES_OPTIONS is generally early * enough. * * There are a number of environment variables which can modify the * behaviour of adns. They take effect only if adns_init is used, and * the caller of adns_init can disable them using adns_if_noenv. In * each case there is both a FOO and an ADNS_FOO; the latter is * interpreted later so that it can override the former. Unless * otherwise stated, environment variables are interpreted after * resolv[-adns].conf are read, in the order they are listed here. * * RES_CONF, ADNS_RES_CONF * A filename, whose contets are in the format of resolv.conf. * * RES_CONF_TEXT, ADNS_RES_CONF_TEXT * A string in the format of resolv.conf. * * RES_OPTIONS, ADNS_RES_OPTIONS * These are parsed as if they appeared in the `options' line of a * resolv.conf. In addition to being parsed at this point in the * sequence, they are also parsed at the very beginning before * resolv.conf or any other environment variables are read, so that * any debug option can affect the processing of the configuration. * * LOCALDOMAIN, ADNS_LOCALDOMAIN * These are interpreted as if their contents appeared in a `search' * line in resolv.conf. */ int adns_synchronous(adns_state ads, const char *owner, adns_rrtype type, adns_queryflags flags, adns_answer **answer_r); /* NB: if you set adns_if_noautosys then _submit and _check do not * make any system calls; you must use some of the asynch-io event * processing functions to actually get things to happen. */ int adns_submit(adns_state ads, const char *owner, adns_rrtype type, adns_queryflags flags, void *context, adns_query *query_r); /* The owner should be quoted in master file format. */ int adns_check(adns_state ads, adns_query *query_io, adns_answer **answer_r, void **context_r); int adns_wait(adns_state ads, adns_query *query_io, adns_answer **answer_r, void **context_r); /* same as adns_wait but uses poll(2) internally */ int adns_wait_poll(adns_state ads, adns_query *query_io, adns_answer **answer_r, void **context_r); void adns_cancel(adns_query query); /* The adns_query you get back from _submit is valid (ie, can be * legitimately passed into adns functions) until it is returned by * adns_check or adns_wait, or passed to adns_cancel. After that it * must not be used. You can rely on it not being reused until the * first adns_submit or _transact call using the same adns_state after * it became invalid, so you may compare it for equality with other * query handles until you next call _query or _transact. * * _submit and _synchronous return ENOSYS if they don't understand the * query type. */ int adns_submit_reverse(adns_state ads, const struct sockaddr *addr, adns_rrtype type, adns_queryflags flags, void *context, adns_query *query_r); /* type must be _r_ptr or _r_ptr_raw. _qf_search is ignored. * addr->sa_family must be AF_INET or you get ENOSYS. */ int adns_submit_reverse_any(adns_state ads, const struct sockaddr *addr, const char *rzone, adns_rrtype type, adns_queryflags flags, void *context, adns_query *query_r); /* For RBL-style reverse `zone's; look up * . * Any type is allowed. _qf_search is ignored. * addr->sa_family must be AF_INET or you get ENOSYS. */ void adns_finish(adns_state ads); /* You may call this even if you have queries outstanding; * they will be cancelled. */ #define ADNS_ADDR2TEXT_BUFLEN \ (INET6_ADDRSTRLEN + 1/*%*/ \ + ((IF_NAMESIZE-1) > 9 ? (IF_NAMESIZE-1) : 9/*uint32*/) \ + 1/* nul; included in IF_NAMESIZE */) int adns_text2addr(const char *text, uint16_t port, adns_queryflags flags, struct sockaddr *sa_r, socklen_t *salen_io /* updated iff OK or ENOSPC */); int adns_addr2text(const struct sockaddr *sa, adns_queryflags flags, char *buffer, int *buflen_io /* updated ONLY on ENOSPC */, int *port_r /* may be 0 */); /* * port is always in host byte order and is simply copied to and * from the appropriate sockaddr field (byteswapped as necessary). * * The only flags supported are adns_qf_addrlit_... * * Error return values are: * * ENOSPC Output buffer is too small. Can only happen if * *buflen_io < ADNS_ADDR2TEXT_BUFLEN or * *salen_io < sizeof(adns_sockaddr). On return, * *buflen_io or *salen_io has been updated by adns. * * EINVAL text has invalid syntax. * * text represents an address family not supported by * this version of adns. * * Scoped address supplied (text contained "%" or * sin6_scope_id nonzero) but caller specified * adns_qf_addrlit_scope_forbid. * * Scope name (rather than number) supplied in text but * caller specified adns_qf_addrlit_scope_numeric. * * EAFNOSUPPORT sa->sa_family is not supported (addr2text only). * * ENOSYS Unsupported flags set. * * Only if neither adns_qf_addrlit_scope_forbid nor * adns_qf_addrlit_scope_numeric are set: * * ENOSYS Scope name supplied in text but IPv6 address part of * sockaddr is not a link local address. * * ENXIO Scope name supplied in text but if_nametoindex * said it wasn't a valid local interface name. * * EIO Scoped address supplied but if_nametoindex failed * in an unexpected way; adns has printed a message to * stderr. * * any other if_nametoindex failed in a more-or-less expected way. */ void adns_forallqueries_begin(adns_state ads); adns_query adns_forallqueries_next(adns_state ads, void **context_r); /* Iterator functions, which you can use to loop over the outstanding * (submitted but not yet successfuly checked/waited) queries. * * You can only have one iteration going at once. You may call _begin * at any time; after that, an iteration will be in progress. You may * only call _next when an iteration is in progress - anything else * may coredump. The iteration remains in progress until _next * returns 0, indicating that all the queries have been walked over, * or ANY other adns function is called with the same adns_state (or a * query in the same adns_state). There is no need to explicitly * finish an iteration. * * context_r may be 0. *context_r may not be set when _next returns 0. */ void adns_checkconsistency(adns_state ads, adns_query qu); /* Checks the consistency of adns's internal data structures. * If any error is found, the program will abort(). * You may pass 0 for qu; if you pass non-null then additional checks * are done to make sure that qu is a valid query. */ /* * Example expected/legal calling sequence for submit/check/wait: * adns_init * adns_submit 1 * adns_submit 2 * adns_submit 3 * adns_wait 1 * adns_check 3 -> EAGAIN * adns_wait 2 * adns_wait 3 * .... * adns_finish */ /* * Entrypoints for generic asynch io: * (these entrypoints are not very useful except in combination with * * some of the other I/O model calls which can tell you which fds to * be interested in): * * Note that any adns call may cause adns to open and close fds, so * you must call beforeselect or beforepoll again just before * blocking, or you may not have an up-to-date list of it's fds. */ int adns_processany(adns_state ads); /* Gives adns flow-of-control for a bit. This will never block, and * can be used with any threading/asynch-io model. If some error * occurred which might cause an event loop to spin then the errno * value is returned. */ int adns_processreadable(adns_state ads, int fd, const struct timeval *now); int adns_processwriteable(adns_state ads, int fd, const struct timeval *now); int adns_processexceptional(adns_state ads, int fd, const struct timeval *now); /* Gives adns flow-of-control so that it can process incoming data * from, or send outgoing data via, fd. Very like _processany. If it * returns zero then fd will no longer be readable or writeable * (unless of course more data has arrived since). adns will _only_ * use that fd and only in the manner specified, regardless of whether * adns_if_noautosys was specified. * * adns_processexceptional should be called when select(2) reports an * exceptional condition, or poll(2) reports POLLPRI. * * It is fine to call _processreabable or _processwriteable when the * fd is not ready, or with an fd that doesn't belong to adns; it will * then just return 0. * * If some error occurred which might prevent an event loop to spin * then the errno value is returned. */ void adns_processtimeouts(adns_state ads, const struct timeval *now); /* Gives adns flow-of-control so that it can process any timeouts * which might have happened. Very like _processreadable/writeable. * * now may be 0; if it isn't, *now must be the current time, recently * obtained from gettimeofday. */ void adns_firsttimeout(adns_state ads, struct timeval **tv_mod, struct timeval *tv_buf, struct timeval now); /* Asks adns when it would first like the opportunity to time * something out. now must be the current time, from gettimeofday. * * If tv_mod points to 0 then tv_buf must be non-null, and * _firsttimeout will fill in *tv_buf with the time until the first * timeout, and make *tv_mod point to tv_buf. If adns doesn't have * anything that might need timing out it will leave *tv_mod as 0. * * If *tv_mod is not 0 then tv_buf is not used. adns will update * *tv_mod if it has any earlier timeout, and leave it alone if it * doesn't. * * This call will not actually do any I/O, or change the fds that adns * is using. It always succeeds and never blocks. */ void adns_globalsystemfailure(adns_state ads); /* If serious problem(s) happen which globally affect your ability to * interact properly with adns, or adns's ability to function * properly, you or adns can call this function. * * All currently outstanding queries will be made to fail with * adns_s_systemfail, and adns will close any stream sockets it has * open. * * This is used by adns, for example, if gettimeofday() fails. * Without this the program's event loop might start to spin ! * * This call will never block. */ /* * Entrypoints for select-loop based asynch io: */ void adns_beforeselect(adns_state ads, int *maxfd, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval **tv_mod, struct timeval *tv_buf, const struct timeval *now); /* Find out file descriptors adns is interested in, and when it would * like the opportunity to time something out. If you do not plan to * block then tv_mod may be 0. Otherwise, tv_mod and tv_buf are as * for adns_firsttimeout. readfds, writefds, exceptfds and maxfd_io may * not be 0. * * If tv_mod is 0 on entry then this will never actually do any I/O, * or change the fds that adns is using or the timeouts it wants. In * any case it won't block, and it will set the timeout to zero if a * query finishes in _beforeselect. */ void adns_afterselect(adns_state ads, int maxfd, const fd_set *readfds, const fd_set *writefds, const fd_set *exceptfds, const struct timeval *now); /* Gives adns flow-of-control for a bit; intended for use after * select. This is just a fancy way of calling adns_processreadable/ * writeable/timeouts as appropriate, as if select had returned the * data being passed. Always succeeds. */ /* * Example calling sequence: * * adns_init _noautosys * loop { * adns_beforeselect * select * adns_afterselect * ... * adns_submit / adns_check * ... * } */ /* * Entrypoints for poll-loop based asynch io: */ struct pollfd; /* In case your system doesn't have it or you forgot to include * , to stop the following declarations from causing * problems. If your system doesn't have poll then the following * entrypoints will not be defined in libadns. Sorry ! */ int adns_beforepoll(adns_state ads, struct pollfd *fds, int *nfds_io, int *timeout_io, const struct timeval *now); /* Finds out which fd's adns is interested in, and when it would like * to be able to time things out. This is in a form suitable for use * with poll(2). * * On entry, usually fds should point to at least *nfds_io structs. * adns will fill up to that many structs will information for poll, * and record in *nfds_io how many structs it filled. If it wants to * listen for more structs then *nfds_io will be set to the number * required and _beforepoll will return ERANGE. * * You may call _beforepoll with fds==0 and *nfds_io 0, in which case * adns will fill in the number of fds that it might be interested in * in *nfds_io, and always return either 0 (if it is not interested in * any fds) or ERANGE (if it is). * * NOTE that (unless now is 0) adns may acquire additional fds * from one call to the next, so you must put adns_beforepoll in a * loop, rather than assuming that the second call (with the buffer * size requested by the first) will not return ERANGE. * * adns only ever sets POLLIN, POLLOUT and POLLPRI in its pollfd * structs, and only ever looks at those bits. POLLPRI is required to * detect TCP Urgent Data (which should not be used by a DNS server) * so that adns can know that the TCP stream is now useless. * * In any case, *timeout_io should be a timeout value as for poll(2), * which adns will modify downwards as required. If the caller does * not plan to block then *timeout_io should be 0 on entry, or * alternatively, timeout_io may be 0. (Alternatively, the caller may * use _beforeselect with timeout_io==0 to find out about file * descriptors, and use _firsttimeout is used to find out when adns * might want to time something out.) * * adns_beforepoll will return 0 on success, and will not fail for any * reason other than the fds buffer being too small (ERANGE). * * This call will never actually do any I/O. If you supply the * current time it will not change the fds that adns is using or the * timeouts it wants. * * In any case this call won't block. */ #define ADNS_POLLFDS_RECOMMENDED 3 /* If you allocate an fds buf with at least RECOMMENDED entries then * you are unlikely to need to enlarge it. You are recommended to do * so if it's convenient. However, you must be prepared for adns to * require more space than this. */ void adns_afterpoll(adns_state ads, const struct pollfd *fds, int nfds, const struct timeval *now); /* Gives adns flow-of-control for a bit; intended for use after * poll(2). fds and nfds should be the results from poll(). pollfd * structs mentioning fds not belonging to adns will be ignored. */ adns_status adns_rr_info(adns_rrtype type, const char **rrtname_r, const char **fmtname_r, int *len_r, const void *datap, char **data_r); /* * Get information about a query type, or convert reply data to a * textual form. type must be specified, and the official name of the * corresponding RR type will be returned in *rrtname_r, and * information about the processing style in *fmtname_r. The length * of the table entry in an answer for that type will be returned in * in *len_r. Any or all of rrtname_r, fmtname_r and len_r may be 0. * If fmtname_r is non-null then *fmtname_r may be null on return, * indicating that no special processing is involved. * * data_r be must be non-null iff datap is. In this case *data_r will * be set to point to a string pointing to a representation of the RR * data in master file format. (The owner name, timeout, class and * type will not be present - only the data part of the RR.) The * memory will have been obtained from malloc() and must be freed by * the caller. * * Usually this routine will succeed. Possible errors include: * adns_s_nomemory * adns_s_rrtypeunknown * adns_s_invaliddata (*datap contained garbage) * If an error occurs then no memory has been allocated, * and *rrtname_r, *fmtname_r, *len_r and *data_r are undefined. * * There are some adns-invented data formats which are not official * master file formats. These include: * * Mailboxes if __qtf_mail822: these are just included as-is. * * Addresses (adns_rr_addr): these may be of pretty much any type. * The representation is in two parts: first, a word for the address * family (ie, in AF_XXX, the XXX), and then one or more items for the * address itself, depending on the format. For an IPv4 address the * syntax is INET followed by the dotted quad (from inet_ntoa). * Currently only IPv4 is supported. * * Text strings (as in adns_rr_txt) appear inside double quotes, and * use \" and \\ to represent " and \, and \xHH to represent * characters not in the range 32-126. * * Hostname with addresses (adns_rr_hostaddr): this consists of the * hostname, as usual, followed by the adns_status value, as an * abbreviation, and then a descriptive string (encoded as if it were * a piece of text), for the address lookup, followed by zero or more * addresses enclosed in ( and ). If the result was a temporary * failure, then a single ? appears instead of the ( ). If the * result was a permanent failure then an empty pair of parentheses * appears (which a space in between). For example, one of the NS * records for greenend.org.uk comes out like * ns.chiark.greenend.org.uk ok "OK" ( INET 195.224.76.132 ) * an MX referring to a nonexistent host might come out like: * 50 sun2.nsfnet-relay.ac.uk nxdomain "No such domain" ( ) * and if nameserver information is not available you might get: * dns2.spong.dyn.ml.org timeout "DNS query timed out" ? */ const char *adns_strerror(adns_status st); const char *adns_errabbrev(adns_status st); const char *adns_errtypeabbrev(adns_status st); /* Like strerror but for adns_status values. adns_errabbrev returns * the abbreviation of the error - eg, for adns_s_timeout it returns * "timeout". adns_errtypeabbrev returns the abbreviation of the * error class: ie, for values up to adns_s_max_XXX it will return the * string XXX. You MUST NOT call these functions with status values * not returned by the same adns library. */ #ifdef __cplusplus } /* end of extern "C" */ #endif #endif adns-1.5.0~rc1/src/addrfam.c0000664000175000017500000004205512423157063013712 0ustar ianian/* * addrfam.c * - address-family specific code */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "internal.h" /* * General address-family operations. */ #define SIN(cnst, sa) ((void)(sa)->sa_family, (cnst struct sockaddr_in *)(sa)) #define SIN6(cnst, sa) ((void)(sa)->sa_family, (cnst struct sockaddr_in6 *)(sa)) static void unknown_af(int af) NONRETURNING; static void unknown_af(int af) { fprintf(stderr, "ADNS INTERNAL: unknown address family %d\n", af); abort(); } /* * SOCKADDR_IN_IN6(CNST, struct sockaddr *sa, SIN, { * // struct sockaddr_in *const SIN; // implicitly * code for inet; * }, { * // struct sockaddr_in6 *const SIN6; // implicitly * code for inet6; * }) * * SOCKADDR_IN_IN6_PAIR(CNST, struct sockaddr *sa, SINA, * struct sockaddr *sb, SINB, { * // struct sockaddr_in *const SINA; // implicitly * // struct sockaddr_in *const SINB; // implicitly * code for inet; * },{ * // struct sockaddr_in6 *const SINA6; // implicitly * // struct sockaddr_in6 *const SINB6; // implicitly * code for inet6; * }); * * SOCKADDR_IN_IN6_OTHER(CNST, struct sockaddr *sa, SIN, { in }, { in6 }, { * code for other address family * }) * * AF_IN_IN6_OTHER(af, { in }, { in6 }, { other }) * * Executes the first or second block according to the AF in sa. CNST * may be `const' or empty. For _PAIR, sa and sb must be same AF. * * All except _OTHER handle unknown AFs with unknown_af. * * Code blocks may not contain , outside parens. */ #define AF_IN_IN6_OTHER(af, for_inet, for_inet6, other) \ if ((af) == AF_INET) { \ for_inet \ } else if ((af) == AF_INET6) { \ for_inet6 \ } else { \ other \ } #define SOCKADDR_IN_IN6_OTHER(cnst, sa, sin, for_inet, for_inet6, other) \ AF_IN_IN6_OTHER((sa)->sa_family, { \ cnst struct sockaddr_in *const sin = SIN(cnst,(sa)); \ for_inet \ }, { \ cnst struct sockaddr_in6 *const sin##6 = SIN6(cnst,(sa)); \ for_inet6 \ }, \ other \ ) #define SOCKADDR_IN_IN6(cnst, sa, sin, for_inet, for_inet6) \ SOCKADDR_IN_IN6_OTHER(cnst, sa, sin, for_inet, for_inet6, { \ unknown_af((sa)->sa_family); \ }) #define SOCKADDR_IN_IN6_PAIR(cnst, sa, sina, sb, sinb, for_inet, for_inet6) \ do{ \ assert((sa)->sa_family == (sb)->sa_family); \ SOCKADDR_IN_IN6(cnst, sa, sina, { \ cnst struct sockaddr_in *const sinb = SIN(cnst,(sb)); \ for_inet \ }, { \ cnst struct sockaddr_in6 *const sinb##6 = SIN6(cnst,(sb)); \ for_inet6 \ }); \ }while(0) int adns__addrs_equal_raw(const struct sockaddr *a, int bf, const void *b) { if (a->sa_family != bf) return 0; SOCKADDR_IN_IN6(const, a, sin, { return sin->sin_addr.s_addr == ((const struct in_addr*)b)->s_addr; }, { return !memcmp(&sin6->sin6_addr, b, sizeof(struct in6_addr)); }); } int adns__addrs_equal(const adns_sockaddr *a, const adns_sockaddr *b) { return adns__addrs_equal_raw(&a->sa, b->sa.sa_family, adns__sockaddr_addr(&b->sa)); } int adns__sockaddrs_equal(const struct sockaddr *sa, const struct sockaddr *sb) { if (!adns__addrs_equal_raw(sa, sb->sa_family, adns__sockaddr_addr(sb))) return 0; SOCKADDR_IN_IN6_PAIR(const, sa, sina, sb, sinb, { return sina->sin_port == sinb->sin_port; }, { return sina6->sin6_port == sinb6->sin6_port && sina6->sin6_scope_id == sinb6->sin6_scope_id; }); } int adns__addr_width(int af) { AF_IN_IN6_OTHER(af, { return 32; }, { return 128; }, { unknown_af(af); }); } void adns__prefix_mask(adns_sockaddr *sa, int len) { SOCKADDR_IN_IN6(, &sa->sa, sin, { assert(len <= 32); sin->sin_addr.s_addr= htonl(!len ? 0 : 0xffffffff << (32-len)); }, { int i= len/8; int j= len%8; unsigned char *m= sin6->sin6_addr.s6_addr; assert(len <= 128); memset(m, 0xff, i); if (j) m[i++]= (0xff << (8-j)) & 0xff; memset(m+i, 0, 16-i); }); } int adns__guess_prefix_length(const adns_sockaddr *sa) { SOCKADDR_IN_IN6(const, &sa->sa, sin, { unsigned a= (ntohl(sin->sin_addr.s_addr) >> 24) & 0xff; if (a < 128) return 8; else if (a < 192) return 16; else if (a < 224) return 24; else return -1; }, { (void)sin6; return 64; }); } int adns__addr_matches(int af, const void *addr, const adns_sockaddr *base, const adns_sockaddr *mask) { if (af != base->sa.sa_family) return 0; SOCKADDR_IN_IN6_PAIR(const, &base->sa, sbase, &mask->sa, smask, { const struct in_addr *v4 = addr; return (v4->s_addr & smask->sin_addr.s_addr) == sbase->sin_addr.s_addr; }, { int i; const char *a= addr; const char *b= sbase6->sin6_addr.s6_addr; const char *m= smask6->sin6_addr.s6_addr; for (i = 0; i < 16; i++) if ((a[i] & m[i]) != b[i]) return 0; return 1; }); } const void *adns__sockaddr_addr(const struct sockaddr *sa) { SOCKADDR_IN_IN6(const, sa, sin, { return &sin->sin_addr; }, { return &sin6->sin6_addr; }); } void adns__addr_inject(const void *a, adns_sockaddr *sa) { SOCKADDR_IN_IN6( , &sa->sa, sin, { memcpy(&sin->sin_addr, a, sizeof(sin->sin_addr)); }, { memcpy(&sin6->sin6_addr, a, sizeof(sin6->sin6_addr)); }); } /* * addr2text and text2addr */ #define ADDRFAM_DEBUG #ifdef ADDRFAM_DEBUG static void af_debug_func(const char *fmt, ...) { int esave= errno; va_list al; va_start(al,fmt); vfprintf(stderr,fmt,al); va_end(al); errno= esave; } # define af_debug(fmt,...) \ (af_debug_func("%s: " fmt "\n", __func__, __VA_ARGS__)) #else # define af_debug(fmt,...) ((void)("" fmt "", __VA_ARGS__)) #endif static bool addrtext_our_errno(int e) { return e==EAFNOSUPPORT || e==EINVAL || e==ENOSPC || e==ENOSYS; } static bool addrtext_scope_use_ifname(const struct sockaddr *sa) { const struct in6_addr *in6= &SIN6(const,sa)->sin6_addr; return IN6_IS_ADDR_LINKLOCAL(in6) || IN6_IS_ADDR_MC_LINKLOCAL(in6); } static int textaddr_check_qf(adns_queryflags flags) { if (flags & ~(adns_queryflags)(adns_qf_addrlit_scope_forbid| adns_qf_addrlit_scope_numeric| adns_qf_addrlit_ipv4_quadonly| 0x40000000)) return ENOSYS; return 0; } int adns_text2addr(const char *text, uint16_t port, adns_queryflags flags, struct sockaddr *sa, socklen_t *salen_io) { int r, af; char copybuf[INET6_ADDRSTRLEN]; const char *parse=text; const char *scopestr=0; socklen_t needlen; void *dst; uint16_t *portp; r= textaddr_check_qf(flags); if (r) return r; #define INVAL(how) do{ \ af_debug("invalid: %s: `%s'", how, text); \ return EINVAL; \ }while(0) #define AFCORE(INETx,SINx,sinx) \ af= AF_##INETx; \ dst = &SINx(,sa)->sinx##_addr; \ portp = &SINx(,sa)->sinx##_port; \ needlen= sizeof(*SINx(,sa)); if (!strchr(text, ':')) { /* INET */ AFCORE(INET,SIN,sin); } else { /* INET6 */ AFCORE(INET6,SIN6,sin6); const char *percent= strchr(text, '%'); if (percent) { ptrdiff_t lhslen = percent - text; if (lhslen >= INET6_ADDRSTRLEN) INVAL("scoped addr lhs too long"); memcpy(copybuf, text, lhslen); copybuf[lhslen]= 0; parse= copybuf; scopestr= percent+1; af_debug("will parse scoped addr `%s' %% `%s'", parse, scopestr); } } #undef AFCORE if (scopestr && (flags & adns_qf_addrlit_scope_forbid)) INVAL("scoped addr but _scope_forbid"); if (*salen_io < needlen) { *salen_io = needlen; return ENOSPC; } memset(sa, 0, needlen); sa->sa_family= af; *portp = htons(port); if (af == AF_INET && !(flags & adns_qf_addrlit_ipv4_quadonly)) { /* we have to use inet_aton to deal with non-dotted-quad literals */ int r= inet_aton(parse,&SIN(,sa)->sin_addr); if (!r) INVAL("inet_aton rejected"); } else { int r= inet_pton(af,parse,dst); if (!r) INVAL("inet_pton rejected"); assert(r>0); } if (scopestr) { errno=0; char *ep; unsigned long scope= strtoul(scopestr,&ep,10); if (errno==ERANGE) INVAL("numeric scope id too large for unsigned long"); assert(!errno); if (!*ep) { if (scope > ~(uint32_t)0) INVAL("numeric scope id too large for uint32_t"); } else { /* !!*ep */ if (flags & adns_qf_addrlit_scope_numeric) INVAL("non-numeric scope but _scope_numeric"); if (!addrtext_scope_use_ifname(sa)) { af_debug("cannot convert non-numeric scope" " in non-link-local addr `%s'", text); return ENOSYS; } errno= 0; scope= if_nametoindex(scopestr); if (!scope) { /* RFC3493 says "No errors are defined". It's not clear * whether that is supposed to mean if_nametoindex "can't * fail" (other than by the supplied name not being that of an * interface) which seems unrealistic, or that it conflates * all its errors together by failing to set errno, or simply * that they didn't bother to document the errors. * * glibc, FreeBSD and OpenBSD all set errno (to ENXIO when * appropriate). See Debian bug #749349. * * We attempt to deal with this by clearing errno to start * with, and then perhaps mapping the results. */ af_debug("if_nametoindex rejected scope name (errno=%s)", strerror(errno)); if (errno==0) { return ENXIO; } else if (addrtext_our_errno(errno)) { /* we use these for other purposes, urgh. */ perror("adns: adns_text2addr: if_nametoindex" " failed with unexpected error"); return EIO; } else { return errno; } } else { /* ix>0 */ if (scope > ~(uint32_t)0) { fprintf(stderr,"adns: adns_text2addr: if_nametoindex" " returned an interface index >=2^32 which will not fit" " in sockaddr_in6.sin6_scope_id"); return EIO; } } } /* else; !!*ep */ SIN6(,sa)->sin6_scope_id= scope; } /* if (scopestr) */ *salen_io = needlen; return 0; } int adns_addr2text(const struct sockaddr *sa, adns_queryflags flags, char *buffer, int *buflen_io, int *port_r) { const void *src; int r, port; r= textaddr_check_qf(flags); if (r) return r; if (*buflen_io < ADNS_ADDR2TEXT_BUFLEN) { *buflen_io = ADNS_ADDR2TEXT_BUFLEN; return ENOSPC; } SOCKADDR_IN_IN6_OTHER(const, sa, sin, { src= &sin->sin_addr; port= sin->sin_port; }, { src= &sin6->sin6_addr; port= sin6->sin6_port; }, { return EAFNOSUPPORT; }); const char *ok= inet_ntop(sa->sa_family, src, buffer, *buflen_io); assert(ok); if (sa->sa_family == AF_INET6) { uint32_t scope = SIN6(const,sa)->sin6_scope_id; if (scope) { if (flags & adns_qf_addrlit_scope_forbid) return EINVAL; int scopeoffset = strlen(buffer); int remain = *buflen_io - scopeoffset; char *scopeptr = buffer + scopeoffset; assert(remain >= IF_NAMESIZE+1/*%*/); *scopeptr++= '%'; remain--; bool parsedname = 0; af_debug("will print scoped addr `%.*s' %% %"PRIu32"", scopeoffset,buffer, scope); if (scope <= UINT_MAX /* so we can pass it to if_indextoname */ && !(flags & adns_qf_addrlit_scope_numeric) && addrtext_scope_use_ifname(sa)) { parsedname = if_indextoname(scope, scopeptr); if (!parsedname) { af_debug("if_indextoname rejected scope (errno=%s)", strerror(errno)); if (errno==ENXIO) { /* fair enough, show it as a number then */ } else if (addrtext_our_errno(errno)) { /* we use these for other purposes, urgh. */ perror("adns: adns_addr2text: if_indextoname" " failed with unexpected error"); return EIO; } else { return errno; } } } if (!parsedname) { int r = snprintf(scopeptr, remain, "%"PRIu32"", scope); assert(r < *buflen_io - scopeoffset); } af_debug("printed scoped addr `%s'", buffer); } } if (port_r) *port_r= ntohs(port); return 0; } char *adns__sockaddr_ntoa(const struct sockaddr *sa, char *buf) { int err; int len= ADNS_ADDR2TEXT_BUFLEN; err= adns_addr2text(sa, 0, buf, &len, 0); if (err == EIO) err= adns_addr2text(sa, adns_qf_addrlit_scope_numeric, buf, &len, 0); assert(!err); return buf; } /* * Reverse-domain parsing and construction. */ int adns__make_reverse_domain(const struct sockaddr *sa, const char *zone, char **buf_io, size_t bufsz, char **buf_free_r) { size_t req; char *p; unsigned c, y; unsigned long aa; const unsigned char *ap; int i, j; AF_IN_IN6_OTHER(sa->sa_family, { req= 4 * 4; if (!zone) zone= "in-addr.arpa"; }, { req = 2 * 32; if (!zone) zone= "ip6.arpa"; }, { return ENOSYS; }); req += strlen(zone) + 1; if (req <= bufsz) p= *buf_io; else { p= malloc(req); if (!p) return errno; *buf_free_r = p; } *buf_io= p; SOCKADDR_IN_IN6(const, sa, sin, { aa= ntohl(sin->sin_addr.s_addr); for (i=0; i<4; i++) { p += sprintf(p, "%d", (int)(aa & 0xff)); *p++= '.'; aa >>= 8; } }, { ap= sin6->sin6_addr.s6_addr + 16; for (i=0; i<16; i++) { c= *--ap; for (j=0; j<2; j++) { y= c & 0xf; *p++= (y < 10) ? y + '0' : y - 10 + 'a'; c >>= 4; *p++= '.'; } } }); strcpy(p, zone); return 0; } #define REVPARSE_P_L(labnum) \ const char *p= dgram + rps->labstart[labnum]; \ int l= rps->lablen[labnum] /* * REVPARSE_P_L(int labnum); * expects: * const char *dgram; * const struct revparse_state *rps; * produces: * const char *p; // start of label labnum in dgram * int l; // length of label in dgram */ static bool revparse_check_tail(struct revparse_state *rps, const char *dgram, int nlabels, int bodylen, const char *inarpa) { int i; if (nlabels != bodylen+2) return 0; for (i=0; i<2; i++) { REVPARSE_P_L(bodylen+i); const char *want= !i ? inarpa : "arpa"; if (!adns__labels_equal(p,l, want,strlen(want))) return 0; } return 1; } static bool revparse_atoi(const char *p, int l, int base, unsigned max, unsigned *v_r) { if (l>3) return 0; if (l>1 && p[0]=='0') return 0; unsigned v=0; while (l-- > 0) { int tv; int c= ctype_toupper(*p++); if ('0'<=c && c<='9') tv = c-'0'; else if ('A'<=c && c<='Z') tv = c-'A'+10; else return 0; if (tv >= base) return 0; v *= base; v += tv; } if (v>max) return 0; *v_r= v; return 1; } static bool revparse_inet(struct revparse_state *rps, const char *dgram, int nlabels, adns_rrtype *rrtype_r, adns_sockaddr *addr_r) { if (!revparse_check_tail(rps,dgram,nlabels,4,"in-addr")) return 0; uint32_t a=0; int i; for (i=3; i>=0; i--) { REVPARSE_P_L(i); unsigned v; if (!revparse_atoi(p,l,10,255,&v)) return 0; a <<= 8; a |= v; } *rrtype_r= adns_r_a; addr_r->inet.sin_family= AF_INET; addr_r->inet.sin_addr.s_addr= htonl(a); return 1; } static bool revparse_inet6(struct revparse_state *rps, const char *dgram, int nlabels, adns_rrtype *rrtype_r, adns_sockaddr *addr_r) { if (!revparse_check_tail(rps,dgram,nlabels,32,"ip6")) return 0; int i, j; memset(addr_r,0,sizeof(*addr_r)); unsigned char *a= addr_r->inet6.sin6_addr.s6_addr+16; for (i=0; i<32; ) { /* i incremented in inner loop */ unsigned b=0; for (j=0; j<2; j++, i++) { REVPARSE_P_L(i); unsigned v; if (!revparse_atoi(p,l,16,15,&v)) return 0; b >>= 4; b |= v << 4; } *--a= b; } *rrtype_r= adns_r_aaaa; addr_r->inet.sin_family= AF_INET6; return 1; } bool adns__revparse_label(struct revparse_state *rps, int labnum, const char *dgram, int labstart, int lablen) { if (labnum >= MAXREVLABELS) return 0; assert(labstart <= 65535); assert(lablen <= 255); rps->labstart[labnum] = labstart; rps->lablen[labnum] = lablen; return 1; } bool adns__revparse_done(struct revparse_state *rps, const char *dgram, int nlabels, adns_rrtype *rrtype_r, adns_sockaddr *addr_r) { return revparse_inet(rps,dgram,nlabels,rrtype_r,addr_r) || revparse_inet6(rps,dgram,nlabels,rrtype_r,addr_r); } adns-1.5.0~rc1/client/0000775000175000017500000000000012423173322012625 5ustar ianianadns-1.5.0~rc1/client/adnstest.c0000664000175000017500000002210112422540543014614 0ustar ianian/* * adnstest.c * - simple test program, not part of the library */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include #include #include #include #include #include #include #define ADNS_FEATURE_MANYAF #include "config.h" #include "adns.h" #ifdef ADNS_REGRESS_TEST # include "hredirect.h" #endif struct myctx { adns_query qu; int doneyet, found; const char *fdom; }; static struct myctx *mcs; static adns_state ads; static adns_rrtype *types_a; static void quitnow(int rc) NONRETURNING; static void quitnow(int rc) { free(mcs); free(types_a); if (ads) adns_finish(ads); exit(rc); } #ifndef HAVE_POLL #undef poll int poll(struct pollfd *ufds, int nfds, int timeout) { fputs("poll(2) not supported on this system\n",stderr); quitnow(5); } #define adns_beforepoll(a,b,c,d,e) 0 #define adns_afterpoll(a,b,c,d) 0 #endif static void failure_status(const char *what, adns_status st) NONRETURNING; static void failure_status(const char *what, adns_status st) { fprintf(stderr,"adns failure: %s: %s\n",what,adns_strerror(st)); quitnow(2); } static void failure_errno(const char *what, int errnoval) NONRETURNING; static void failure_errno(const char *what, int errnoval) { switch (errnoval) { #define CE(e) \ case e: fprintf(stderr,"adns failure: %s: errno=" #e "\n",what); break CE(EINVAL); CE(EINTR); CE(ESRCH); CE(EAGAIN); CE(ENOSYS); CE(ERANGE); #undef CE default: fprintf(stderr,"adns failure: %s: errno=%d\n",what,errnoval); break; } quitnow(2); } static void usageerr(const char *why) NONRETURNING; static void usageerr(const char *why) { fprintf(stderr, "bad usage: %s\n" "usage: adnstest [-[,]] [/]\n" " [ :,... ]\n" " [ [[,]/] ... ]\n" "initflags: p use poll(2) instead of select(2)\n" " s use adns_wait with specified query, instead of 0\n" "queryflags: a print status abbrevs instead of strings\n" "typenum: may be 0x|, or 0x or \n" "exit status: 0 ok (though some queries may have failed)\n" " 1 used by test harness to indicate test failed\n" " 2 unable to submit or init or some such\n" " 3 unexpected failure\n" " 4 usage error\n" " 5 operation not supported on this system\n", why); quitnow(4); } static const adns_rrtype defaulttypes[]= { adns_r_a, adns_r_ns_raw, adns_r_cname, adns_r_soa_raw, adns_r_ptr_raw, adns_r_hinfo, adns_r_mx_raw, adns_r_txt, adns_r_rp_raw, adns_r_addr, adns_r_ns, adns_r_ptr, adns_r_mx, adns_r_soa, adns_r_rp, adns_r_none }; static void dumptype(adns_status ri, const char *rrtn, const char *fmtn) { fprintf(stdout, "%s(%s)%s%s", (!ri && rrtn) ? rrtn : "?", ri ? "?" : fmtn ? fmtn : "-", ri ? " " : "", ri ? adns_strerror(ri) : ""); } static void fdom_split(const char *fdom, const char **dom_r, int *qf_r, char *ownflags, int ownflags_l) { int qf; char *ep; qf= strtoul(fdom,&ep,0); if (*ep == ',' && strchr(ep,'/')) { ep++; while (*ep != '/') { if (--ownflags_l <= 0) { fputs("too many flags\n",stderr); quitnow(3); } *ownflags++= *ep++; } } if (*ep != '/') { *dom_r= fdom; *qf_r= 0; } else { *dom_r= ep+1; *qf_r= qf; } *ownflags= 0; } static int consistsof(const char *string, const char *accept) { return strspn(string,accept) == strlen(string); } int main(int argc, char *const *argv) { adns_query qu; struct myctx *mc, *mcw; void *mcr; adns_answer *ans; const char *initstring, *rrtn, *fmtn; const char *const *fdomlist, *domain; char *show, *cp; int len, i, qc, qi, tc, ti, ch, qflags, initflagsnum; adns_status ri; int r; const adns_rrtype *types; struct timeval now; char ownflags[10]; char *ep; const char *initflags, *owninitflags; if (argv[0] && argv[1] && argv[1][0] == '-') { initflags= argv[1]+1; argv++; } else { initflags= ""; } if (argv[0] && argv[1] && argv[1][0] == '/') { initstring= argv[1]+1; argv++; } else { initstring= 0; } initflagsnum= strtoul(initflags,&ep,0); if (*ep == ',') { owninitflags= ep+1; if (!consistsof(owninitflags,"ps")) usageerr("unknown owninitflag"); } else if (!*ep) { owninitflags= ""; } else { usageerr("bad [,]"); } if (argv[0] && argv[1] && argv[1][0] == ':') { for (cp= argv[1]+1, tc=1; (ch= *cp); cp++) if (ch==',') tc++; types_a= malloc(sizeof(*types_a)*(tc+1)); if (!types_a) { perror("malloc types"); quitnow(3); } for (cp= argv[1]+1, ti=0; tidoneyet= 0; mc->fdom= fdomlist[qi]; fprintf(stdout,"%s flags %d type %d", domain,qflags,types[ti]&adns_rrt_reprmask); r= adns_submit(ads,domain,types[ti],qflags,mc,&mc->qu); if (r == ENOSYS) { fprintf(stdout," not implemented\n"); mc->qu= 0; mc->doneyet= 1; } else if (r) { failure_errno("submit",r); } else { ri= adns_rr_info(types[ti], &rrtn,&fmtn,0, 0,0); putc(' ',stdout); dumptype(ri,rrtn,fmtn); fprintf(stdout," submitted\n"); } } } for (;;) { for (qi=0; qifound= 0; } } for (adns_forallqueries_begin(ads); (qu= adns_forallqueries_next(ads,&mcr)); ) { mc= mcr; assert(qu == mc->qu); assert(!mc->doneyet); mc->found= 1; } mcw= 0; for (qi=0; qidoneyet) continue; assert(mc->found); if (!mcw) mcw= mc; } } if (!mcw) break; if (strchr(owninitflags,'s')) { qu= mcw->qu; mc= mcw; } else { qu= 0; mc= 0; } if (strchr(owninitflags,'p')) { r= adns_wait_poll(ads,&qu,&ans,&mcr); } else { r= adns_wait(ads,&qu,&ans,&mcr); } if (r) failure_errno("wait/check",r); if (mc) assert(mcr==mc); else mc= mcr; assert(qu==mc->qu); assert(!mc->doneyet); fdom_split(mc->fdom,&domain,&qflags,ownflags,sizeof(ownflags)); if (gettimeofday(&now,0)) { perror("gettimeofday"); quitnow(3); } ri= adns_rr_info(ans->type, &rrtn,&fmtn,&len, 0,0); fprintf(stdout, "%s flags %d type ",domain,qflags); dumptype(ri,rrtn,fmtn); fprintf(stdout, "%s%s: %s; nrrs=%d; cname=%s; owner=%s; ttl=%ld\n", ownflags[0] ? " ownflags=" : "", ownflags, strchr(ownflags,'a') ? adns_errabbrev(ans->status) : adns_strerror(ans->status), ans->nrrs, ans->cname ? ans->cname : "$", ans->owner ? ans->owner : "$", (long)ans->expires - (long)now.tv_sec); if (ans->nrrs) { assert(!ri); for (i=0; inrrs; i++) { ri= adns_rr_info(ans->type, 0,0,0, ans->rrs.bytes + i*len, &show); if (ri) failure_status("info",ri); fprintf(stdout," %s\n",show); free(show); } } free(ans); mc->doneyet= 1; } quitnow(0); } adns-1.5.0~rc1/client/adh-opts.c0000664000175000017500000003245712421042025014514 0ustar ianian/* * adh-opts.c * - useful general-purpose resolver client program * option handling tables etc. */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include "adnshost.h" int ov_env=1, ov_pipe=0, ov_asynch=0; int ov_verbose= 0; adns_rrtype ov_type= adns_r_none; int ov_search=0, ov_qc_query=0, ov_qc_anshost=0, ov_qc_cname=1; int ov_tcp=0, ov_cname=0, ov_afflags=0, ov_v6map=0, ov_format=fmt_default; char *ov_id= 0; struct perqueryflags_remember ov_pqfr = { 1,1,1, tm_none }; static const struct optioninfo global_options[]= { { ot_desconly, "global binary options:" }, { ot_flag, "Do not look at environment variables at all", "e", "env", &ov_env, 0 }, { ot_flag, "Read queries on stdin instead of using args", "f", "pipe", &ov_pipe, 1 }, { ot_flag, "Allow answers to be reordered", "a", "asynch", &ov_asynch, 1 }, { ot_desconly, "answer/error output format and destination (see below):" }, { ot_value, "Answers to stdout, errors as messages to stderr (default)", "Fs", "fmt-simple", &ov_format, fmt_simple }, { ot_value, "Answers and errors both to stdout in parseable format", "Fi", "fmt-inline", &ov_format, fmt_inline }, { ot_value, "Fully-parseable output format (default for --asynch)", "Fa", "fmt-asynch", &ov_format, fmt_asynch }, { ot_desconly, "global verbosity level:" }, { ot_value, "Do not print anything to stderr", "Vq", "quiet", &ov_verbose, adns_if_noerrprint }, { ot_value, "Report unexpected kinds of problem only (default)", "Vn", "no-quiet", &ov_verbose, 0 }, { ot_value, "Debugging mode", "Vd", "debug", &ov_verbose, adns_if_debug }, { ot_desconly, "other global options:" }, { ot_funcarg, "Configuration to use instead of /etc/resolv.conf", 0, "config", 0,0, of_config, "" }, { ot_func, "Print version number", 0, "version", 0,0, of_version }, { ot_func, "Print usage information", 0, "help", 0,0, of_help }, { ot_end } }; static const struct optioninfo perquery_options[]= { { ot_desconly, "per-query options:" }, { ot_funcarg, "Query type (see below)", "t", "type", 0,0, &of_type, "type" }, { ot_funcarg, "Do reverse query (address -> name lookup)", "i", "ptr", 0,0, &of_ptr, "addr" }, { ot_funcarg2, "Lookup in in-addr-like `zone' (eg MAPS RBL)", 0, "reverse", 0,0, &of_reverse, "addr","zone" }, { ot_desconly, "per-query binary options:" }, { ot_flag, "Use the search list", "s", "search", &ov_search, 1 }, { ot_flag, "Let query domains contain quote-requiring chars", "Qq", "qc-query", &ov_qc_query, 1 }, { ot_flag, "Let hostnames in answers contain ...", "Qa", "qc-anshost", &ov_qc_anshost, 1 }, { ot_flag, "Prevent CNAME target domains from containing ...", "Qc", "qc-cname", &ov_qc_cname, 0 }, { ot_flag, "Force use of a virtual circuit", "u", "tcp", &ov_tcp, 1 }, { ot_flag, "Do not display owner name in output", "Do", "show-owner", &ov_pqfr.show_owner, 0 }, { ot_flag, "Do not display RR type in output", "Dt", "show-type", &ov_pqfr.show_type, 0 }, { ot_flag, "Do not display CNAME target in output", "Dc", "show-cname", &ov_pqfr.show_cname, 0 }, { ot_desconly, "per-query TTL mode (NB TTL is minimum across all info in reply):" }, { ot_value, "Show the TTL as a TTL", "Tt", "ttl-ttl", &ov_pqfr.ttl, tm_rel }, { ot_value, "Show the TTL as a time_t when the data might expire", "Ta", "ttl-abs", &ov_pqfr.ttl, tm_abs }, { ot_value, "Do not show the TTL (default)", "Tn", "no-ttl", &ov_pqfr.ttl, tm_none }, { ot_desconly, "per-query address family options (for `addr' etc.):" }, { ot_value, "Only return IPv4 addresses", "A4", "--addr-ipv4-only", &ov_afflags, adns_qf_want_ipv4 }, { ot_value, "Only return IPv6 addresses", "A6", "--addr-ipv6-only", &ov_afflags, adns_qf_want_ipv6 }, { ot_value, "Return all available addresses (default)", "Aa", "--addr-all", &ov_afflags, 0 }, { ot_flag, "Return IPv4 addresses as IPv6-mapped", "Am", "--addr-ipv6-mapped", &ov_v6map, 1 }, { ot_desconly, "per-query CNAME handling mode:" }, { ot_value, "Call it an error if a CNAME is found", "Cf", "cname-reject", &ov_cname, adns_qf_cname_forbid }, { ot_value, "Allow references to CNAMEs in other RRs", "Cl", "cname-loose", &ov_cname, adns_qf_cname_loose }, { ot_value, "CNAME ok for query domain, but not in RRs (default)", "Cs", "cname-ok", &ov_cname, 0 }, { ot_desconly, "asynchronous/pipe mode options:" }, { ot_funcarg, "Set , default is decimal sequence starting 0", 0, "asynch-id", 0,0, &of_asynch_id, "id" }, { ot_funcarg, "Cancel the query with id (no error if not found)", 0, "cancel-id", 0,0, &of_cancel_id, "id" }, { ot_end } }; static void printusage(void) { static const struct optioninfo *const all_optiontables[]= { global_options, perquery_options, 0 }; const struct optioninfo *const *oiap, *oip=0; int maxsopt, maxlopt, l; maxsopt= maxlopt= 0; for (oiap=all_optiontables; *oiap; oiap++) { for (oip=*oiap; oip->type != ot_end; oip++) { if (oip->type == ot_funcarg) continue; if (oip->sopt) { l= strlen(oip->sopt); if (l>maxsopt) maxsopt= l; } if (oip->lopt) { l= strlen(oip->lopt); if (oip->type == ot_flag && !oip->value) l+= 3; if (l>maxlopt) maxlopt= l; } } } fputs("usage: adnshost [global-opts] [query-opts] query-domain\n" " [[query-opts] query-domain ...]\n" " adnshost [global-opts] [query-opts] -f|--pipe\n", stdout); for (oiap=all_optiontables; *oiap; oiap++) { putchar('\n'); for (oip=*oiap; oip->type != ot_end; oip++) { switch (oip->type) { case ot_flag: if (!oip->value) { if (oip->sopt) { printf(" +%-*s --no-%-*s %s\n", maxsopt, oip->sopt, maxlopt-2, oip->lopt, oip->desc); } else { printf(" --no-%-*s %s\n", maxlopt+maxsopt+1, oip->lopt, oip->desc); } break; } case ot_value: case ot_func: /* fall through */ if (oip->sopt) { printf(" -%-*s --%-*s %s\n", maxsopt, oip->sopt, maxlopt+1, oip->lopt, oip->desc); } else { printf(" --%-*s %s\n", maxlopt+maxsopt+3, oip->lopt, oip->desc); } break; case ot_funcarg: if (oip->sopt) { l= (maxlopt + maxsopt - 9 - (strlen(oip->sopt) + strlen(oip->lopt) + 2*strlen(oip->argdesc))); printf(" -%s<%s> / --%s <%s>%*s%s\n", oip->sopt, oip->argdesc, oip->lopt, oip->argdesc, l>2 ? l : 2, "", oip->desc); } else { l= (maxlopt + maxsopt + 1 - (strlen(oip->lopt) + strlen(oip->argdesc))); printf(" --%s <%s>%*s%s\n", oip->lopt, oip->argdesc, l>2 ? l : 2, "", oip->desc); } break; case ot_funcarg2: assert(!oip->sopt); l= (maxlopt + maxsopt - 2 - (strlen(oip->lopt) + strlen(oip->argdesc) + strlen(oip->argdesc2))); printf(" --%s <%s> <%s>%*s%s\n", oip->lopt, oip->argdesc, oip->argdesc2, l>2 ? l : 2, "", oip->desc); break; case ot_desconly: printf("%s\n", oip->desc); break; default: abort(); } } } printf("\nEscaping domains which might start with `-':\n" " - %-*s Next argument is a domain, but more options may follow\n", maxlopt+maxsopt+3, ""); fputs("\n" "Query domains should always be quoted according to master file format.\n" "\n" "For binary options, --FOO and --no-FOO are opposites, as are\n" "-X and +X. In each case the default is the one not listed.\n" "Per query options stay set a particular way until they are reset,\n" "whether they appear on the command line or on stdin.\n" "All global options must preceed the first query domain.\n" "\n" "With -f, the input should be lines with either an option, possibly\n" "with a value argument (separated from the option by a space if it's a long\n" "option), or a domain (possibly preceded by a hyphen and a space to\n" "distinguish it from an option).\n" "\n" "Output format is master file format without class or TTL by default:\n" " [] [] [] \n" "or if the domain refers to a CNAME and --show-cname is on\n" " [] [] CNAME \n" " [] [] \n" "When a query fails you get an error message to stderr (with --fmt-simple).\n" "Specify --fmt-inline for lines like this (broken here for readability):\n" " ; failed \\\n" " [] [] [] \"\"\n" "If you use --fmt-asynch, which is the default for --asynch,\n" "each answer (success or failure) is preceded by a line\n" " \\\n" " [] [] [] \"\"\n" "where is the number of RRs that follow and will be `$' or\n" "the CNAME target; the CNAME indirection and error formats above are not used.\n" "\n" "Exit status:\n" " 0 all went well\n" " 1-6 at least one query failed with statustype:\n" " 1 localfail )\n" " 2 remotefail ) temporary errors\n" " 3 tempfail __)_________________\n" " 4 misconfig )\n" " 5 misquery ) permanent errors\n" " 6 permfail )\n" " 10 system trouble\n" " 11 usage problems\n" "\n" "Query types (see adns.h; default is addr):\n" " ns soa ptr mx rp srv addr - enhanced versions\n" " cname hinfo txt - types with only one version\n" " a aaaa ns- soa- ptr- mx- rp- srv- - _raw versions\n" " type - `unknown' type, RFC3597\n" "Default is addr, or ptr for -i/--ptr queries\n", stdout); if (ferror(stdout)) sysfail("write usage message",errno); } void of_version(const struct optioninfo *oi, const char *arg, const char *arg2) { VERSION_PRINT_QUIT("adnshost"); } void of_help(const struct optioninfo *oi, const char *arg, const char *arg2) { printusage(); if (fclose(stdout)) sysfail("finish writing output",errno); quitnow(0); } typedef int comparer_type(const char **optp, const struct optioninfo *entry); static int oc_long(const char **optp, const struct optioninfo *entry) { return entry->lopt && !strcmp(*optp,entry->lopt); } static int oc_short(const char **optp, const struct optioninfo *entry) { const char *sopt; int l; sopt= entry->sopt; if (!sopt) return 0; l= strlen(sopt); if (memcmp(*optp,sopt,l)) return 0; (*optp) += l; return 1; } static const struct optioninfo *find1(const char **optp, const struct optioninfo *table, comparer_type *comparer) { for (;;) { if (table->type == ot_end) return 0; if (comparer(optp,table)) return table; table++; } } static const struct optioninfo *find(const char **optp, const char *prefix, comparer_type *comparer) { const struct optioninfo *oip; const char *opt; opt= *optp; oip= find1(optp,perquery_options,comparer); if (oip) return oip; oip= find1(optp,global_options,comparer); if (!oip) usageerr("unknown option %s%s",prefix,opt); if (ads) usageerr("global option %s%s specified after query domain(s)",prefix,opt); return oip; } const struct optioninfo *opt_findl(const char *opt) { return find(&opt,"--",oc_long); } const struct optioninfo *opt_finds(const char **optp) { return find(optp,"-",oc_short); } static void noninvert(const struct optioninfo *oip) NONRETURNING; static void noninvert(const struct optioninfo *oip) { usageerr("option %s%s%s%s%s may not be inverted", oip->sopt ? "-" : "", oip->sopt ? oip->sopt : "", oip->lopt && oip->sopt ? " / " : "", oip->lopt ? "--" : "", oip->lopt ? oip->lopt : ""); } void opt_do(const struct optioninfo *oip, int invert, const char *arg, const char *arg2) { switch (oip->type) { case ot_flag: assert(!arg); *oip->storep= !invert; return; case ot_value: assert(!arg); if (invert) noninvert(oip); *oip->storep= oip->value; return; case ot_func: case ot_funcarg: case ot_funcarg2: if (invert) noninvert(oip); oip->func(oip,arg,arg2); return; default: abort(); } } adns-1.5.0~rc1/client/adnslogres.c0000664000175000017500000001712512422540543015142 0ustar ianian/* * adnslogres.c * - a replacement for the Apache logresolve program using adns */ /* * This file is * Copyright (C) 1999-2000 Tony Finch * Copyright (C) 1999-2000 Ian Jackson * * It is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. * * This version was originally supplied by Tony Finch, but has been * modified by Ian Jackson as it was incorporated into adns and * subsequently. */ #include #include #include #include #include #include #include #include #include #include "config.h" #include "adns.h" #include "client.h" #ifdef ADNS_REGRESS_TEST # include "hredirect.h" #endif /* maximum number of concurrent DNS queries */ #define MAXMAXPENDING 64000 #define DEFMAXPENDING 2000 /* maximum length of a line */ #define MAXLINE 1024 /* option flags */ #define OPT_DEBUG 1 #define OPT_POLL 2 static const char *const progname= "adnslogres"; static const char *config_text; #define guard_null(str) ((str) ? (str) : "") #define sensible_ctype(type,ch) (type((unsigned char)(ch))) /* isfoo() functions from ctype.h can't safely be fed char - blech ! */ static void msg(const char *fmt, ...) { va_list al; fprintf(stderr, "%s: ", progname); va_start(al,fmt); vfprintf(stderr, fmt, al); va_end(al); fputc('\n',stderr); } static void aargh(const char *cause) { const char *why = strerror(errno); if (!why) why = "Unknown error"; msg("%s: %s (%d)", cause, why, errno); exit(1); } /* * Parse the IP address and convert to a reverse domain name. */ static char *ipaddr2domain(char *start, char **addr, char **rest) { static char buf[30]; /* "123.123.123.123.in-addr.arpa.\0" */ char *ptrs[5]; int i; ptrs[0]= start; retry: while (!sensible_ctype(isdigit,*ptrs[0])) if (!*ptrs[0]++) { strcpy(buf, "invalid."); *addr= *rest= NULL; return buf; } for (i= 1; i < 5; i++) { ptrs[i]= ptrs[i-1]; while (sensible_ctype(isdigit,*ptrs[i]++)); if ((i == 4 && !sensible_ctype(isspace,ptrs[i][-1])) || (i != 4 && ptrs[i][-1] != '.') || (ptrs[i]-ptrs[i-1] > 4)) { ptrs[0]= ptrs[i]-1; goto retry; } } sprintf(buf, "%.*s.%.*s.%.*s.%.*s.in-addr.arpa.", (int)(ptrs[4]-ptrs[3]-1), ptrs[3], (int)(ptrs[3]-ptrs[2]-1), ptrs[2], (int)(ptrs[2]-ptrs[1]-1), ptrs[1], (int)(ptrs[1]-ptrs[0]-1), ptrs[0]); *addr= ptrs[0]; *rest= ptrs[4]-1; return buf; } static void printline(FILE *outf, char *start, char *addr, char *rest, char *domain) { if (domain) fprintf(outf, "%.*s%s%s", (int)(addr - start), start, domain, rest); else fputs(start, outf); if (ferror(outf)) aargh("write output"); } typedef struct logline { struct logline *next; char *start, *addr, *rest; adns_query query; } logline; static logline *readline(FILE *inf, adns_state adns, int opts) { static char buf[MAXLINE]; char *str; logline *line; if (fgets(buf, MAXLINE, inf)) { str= malloc(sizeof(*line) + strlen(buf) + 1); if (!str) aargh("malloc"); line= (logline*)str; line->next= NULL; line->start= str+sizeof(logline); strcpy(line->start, buf); str= ipaddr2domain(line->start, &line->addr, &line->rest); if (opts & OPT_DEBUG) msg("submitting %.*s -> %s", (int)(line->rest-line->addr), guard_null(line->addr), str); if (adns_submit(adns, str, adns_r_ptr, adns_qf_quoteok_cname|adns_qf_cname_loose, NULL, &line->query)) aargh("adns_submit"); return line; } if (!feof(inf)) aargh("fgets"); return NULL; } static void proclog(FILE *inf, FILE *outf, int maxpending, int opts) { int eof, err, len; adns_state adns; adns_answer *answer; logline *head, *tail, *line; adns_initflags initflags; initflags= (opts & OPT_DEBUG) ? adns_if_debug : 0; if (config_text) { errno= adns_init_strcfg(&adns, initflags, stderr, config_text); } else { errno= adns_init(&adns, initflags, 0); } if (errno) aargh("adns_init"); head= tail= readline(inf, adns, opts); len= 1; eof= 0; while (head) { while (head) { if (opts & OPT_DEBUG) msg("%d in queue; checking %.*s", len, (int)(head->rest-head->addr), guard_null(head->addr)); if (eof || len >= maxpending) { if (opts & OPT_POLL) err= adns_wait_poll(adns, &head->query, &answer, NULL); else err= adns_wait(adns, &head->query, &answer, NULL); } else { err= adns_check(adns, &head->query, &answer, NULL); } if (err == EAGAIN) break; if (err) { fprintf(stderr, "%s: adns_wait/check: %s", progname, strerror(err)); exit(1); } printline(outf, head->start, head->addr, head->rest, answer->status == adns_s_ok ? *answer->rrs.str : NULL); line= head; head= head->next; free(line); free(answer); len--; } if (!eof) { line= readline(inf, adns, opts); if (line) { if (!head) head= line; else tail->next= line; tail= line; len++; } else { eof= 1; } } } adns_finish(adns); } static void printhelp(FILE *file) { fputs("usage: adnslogres [] []\n" " adnslogres --version|--help\n" "options: -c set max number of outstanding queries\n" " -p use poll(2) instead of select(2)\n" " -d turn on debugging\n" " -C use instead of contents of resolv.conf\n", stdout); } static void usage(void) { printhelp(stderr); exit(1); } int main(int argc, char *argv[]) { int c, opts, maxpending; extern char *optarg; FILE *inf; if (argv[1] && !strncmp(argv[1],"--",2)) { if (!strcmp(argv[1],"--help")) { printhelp(stdout); } else if (!strcmp(argv[1],"--version")) { fputs(VERSION_MESSAGE("adnslogres"),stdout); } else { usage(); } if (ferror(stdout) || fclose(stdout)) { perror("stdout"); exit(1); } exit(0); } maxpending= DEFMAXPENDING; opts= 0; while ((c= getopt(argc, argv, "c:C:dp")) != -1) switch (c) { case 'c': maxpending= atoi(optarg); if (maxpending < 1 || maxpending > MAXMAXPENDING) { fprintf(stderr, "%s: unfeasible concurrency %d\n", progname, maxpending); exit(1); } break; case 'C': config_text= optarg; break; case 'd': opts|= OPT_DEBUG; break; case 'p': opts|= OPT_POLL; break; default: usage(); } argc-= optind; argv+= optind; inf= NULL; if (argc == 0) inf= stdin; else if (argc == 1) inf= fopen(*argv, "r"); else usage(); if (!inf) aargh("couldn't open input"); proclog(inf, stdout, maxpending, opts); if (fclose(inf)) aargh("fclose input"); if (fclose(stdout)) aargh("fclose output"); return 0; } adns-1.5.0~rc1/client/adnshost.h0000664000175000017500000000723312421042025014617 0ustar ianian/* * adnshost.h * - useful general-purpose resolver client program, header file */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #ifndef ADNSHOST_H_INCLUDED #define ADNSHOST_H_INCLUDED #include #include #include #include #include #include #include #include #include #include #include #include #include #define ADNS_FEATURE_MANYAF #include "config.h" #include "adns.h" #include "dlist.h" #include "client.h" #ifdef ADNS_REGRESS_TEST # include "hredirect.h" #endif /* declarations related to option processing */ struct optioninfo; typedef void optfunc(const struct optioninfo *oi, const char *arg, const char *arg2); struct optioninfo { enum oi_type { ot_end, ot_desconly, ot_flag, ot_value, ot_func, ot_funcarg, ot_funcarg2 } type; const char *desc; const char *sopt, *lopt; int *storep, value; optfunc *func; const char *argdesc, *argdesc2; }; enum ttlmode { tm_none, tm_rel, tm_abs }; enum outputformat { fmt_default, fmt_simple, fmt_inline, fmt_asynch }; struct perqueryflags_remember { int show_owner, show_type, show_cname; int ttl; }; extern int ov_env, ov_pipe, ov_asynch; extern int ov_verbose; extern adns_rrtype ov_type; extern int ov_search, ov_qc_query, ov_qc_anshost, ov_qc_cname; extern int ov_tcp, ov_cname, ov_afflags, ov_v6map, ov_format; extern char *ov_id; extern struct perqueryflags_remember ov_pqfr; extern optfunc of_config, of_version, of_help, of_type, of_ptr, of_reverse; extern optfunc of_asynch_id, of_cancel_id; const struct optioninfo *opt_findl(const char *opt); const struct optioninfo *opt_finds(const char **optp); void opt_do(const struct optioninfo *oip, int invert, const char *arg, const char *arg2); /* declarations related to query processing */ struct query_node { struct query_node *next, *back; struct perqueryflags_remember pqfr; char *id, *owner; adns_query qu; }; extern adns_state ads; extern struct outstanding_list { struct query_node *head, *tail; } outstanding; void ensure_adns_init(void); void query_do(const char *domain); void query_done(struct query_node *qun, adns_answer *answer); void type_info(adns_rrtype type, const char **typename_r, const void *datap, char **data_r); /* wrapper for adns_rr_info which uses a static buffer to provide * *typename_r for adns_r_unknown */ /* declarations related to main program and useful utility functions */ void sysfail(const char *what, int errnoval) NONRETURNING; void usageerr(const char *what, ...) NONRETURNPRINTFFORMAT(1,2); void outerr(void) NONRETURNING; void *xmalloc(size_t sz); char *xstrsave(const char *str); extern int rcode; extern const char *config_text; /* 0 => use defaults */ #endif adns-1.5.0~rc1/client/fanftest.c0000664000175000017500000000447512422540543014617 0ustar ianian/* * fanftest.c * - a small test program from Tony Finch */ /* * This file is * Copyright (C) 1999 Tony Finch * Copyright (C) 1999-2000 Ian Jackson * * It is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. * * This version was originally supplied by Tony Finch, but has been * modified by Ian Jackson as it was incorporated into adns. */ #include #include #include #include #include #include #include "config.h" #include "adns.h" static const char *progname; static void aargh(const char *msg) { fprintf(stderr, "%s: %s: %s (%d)\n", progname, msg, strerror(errno) ? strerror(errno) : "Unknown error", errno); exit(1); } int main(int argc, char *argv[]) { adns_state adns; adns_query query; adns_answer *answer; progname= strrchr(*argv, '/'); if (progname) progname++; else progname= *argv; if (argc != 2) { fprintf(stderr, "usage: %s \n", progname); exit(1); } errno= adns_init(&adns, adns_if_debug, 0); if (errno) aargh("adns_init"); errno= adns_submit(adns, argv[1], adns_r_ptr, adns_qf_quoteok_cname|adns_qf_cname_loose, NULL, &query); if (errno) aargh("adns_submit"); errno= adns_wait(adns, &query, &answer, NULL); if (errno) aargh("adns_init"); printf("%s\n", answer->status == adns_s_ok ? *answer->rrs.str : "dunno"); adns_finish(adns); return 0; } adns-1.5.0~rc1/client/addrtext.c0000664000175000017500000001147312421042025014607 0ustar ianian/* some test cases ./addrtext_s fe80::1%wlanx ./addrtext_s fe80::1%wlan0 ./addrtext_s fe80::1%23 ./addrtext_s fe80::1%1 ./addrtext_s 2001:ba8:1e3::%wlan0 ./addrtext_s 2001:ba8:1e3::%23 ./addrtext_s 2001:ba8:1e3::%1 # normally lo ./addrtext_s 127.0.0.1x ./addrtext_s 172.18.45.6 ./addrtext_s 12345 */ /* * addrtext.c * - test program for address<->string conversion, not part of the library */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include #include #include #include #include #include #include #include "config.h" #include "adns.h" #define PORT 1234 #define STRING(x) STRING2(x) #define STRING2(x) #x static int fails; static void hex(const void *data_v, int l) { const uint8_t *data= data_v; int i; for (i=0; isa_family); switch (sa->sa_family) { case AF_INET: { const struct sockaddr_in *s = (const void*)sa; printf(".port=%d .addr=%08"PRIx32"", ntohs(s->sin_port), (uint32_t)ntohl(s->sin_addr.s_addr)); break; } case AF_INET6: { const struct sockaddr_in6 *s = (const void*)sa; printf(".port=%d .flowinfo=%08"PRIx32" .scope_id=%08"PRIx32" .addr=", ntohs(s->sin6_port), (uint32_t)ntohl(s->sin6_flowinfo), (uint32_t)ntohl(s->sin6_scope_id)); hex(&s->sin6_addr, sizeof(s->sin6_addr)); break; } } printf("\n"); } static void dotest(const char *input) { adns_sockaddr ours; socklen_t socklen; struct addrinfo aip; struct addrinfo *air=0; char ourbuf[ADNS_ADDR2TEXT_BUFLEN]; char theirbuf[ADNS_ADDR2TEXT_BUFLEN]; memset(&ours,0,sizeof(ours)); socklen= sizeof(ours); int our_r= adns_text2addr(input,PORT,0,&ours.sa,&socklen); memset(&aip,0,sizeof(aip)); aip.ai_flags= AI_NUMERICHOST|AI_NUMERICSERV; aip.ai_socktype= SOCK_DGRAM; aip.ai_protocol= IPPROTO_UDP; air= 0; int libc_r= getaddrinfo(input,STRING(PORT),&aip,&air); printf("`%s': us %s; libc %s, air=%p", input, strerror(our_r), libc_r ? gai_strerror(libc_r) : "0", air); if (air) printf(" .family=%d .socklen=%ld .addr=%p .next=%p", air->ai_family, (long)air->ai_addrlen, air->ai_addr, air->ai_next); printf(":"); if (libc_r==EAI_NONAME && !air) { if (strchr(input,'%') && (our_r==ENOSYS || our_r==ENXIO)) { printf(" bad-scope"); goto ok; } if (strchr(input,'%') && our_r==ENOSYS) { printf(" bad-scope"); goto ok; } if (our_r==EINVAL) { printf(" invalid"); goto ok; } } printf(" valid"); #define FAIL do{ printf(" | FAIL\n"); fails++; }while(0) #define WANT(x) if (!(x)) { printf(" not %s",STRING(x)); FAIL; return; } else; WANT(!our_r); WANT(!libc_r); WANT(air); WANT(air->ai_addr); WANT(!air->ai_next); if (air->ai_addrlen!=socklen || memcmp(&ours,air->ai_addr,socklen)) { printf(" mismatch"); FAIL; dump("ours",&ours.sa,socklen); dump("libc",air->ai_addr,air->ai_addrlen); return; } printf(" |"); int ourbuflen= sizeof(ourbuf); int ourport; our_r= adns_addr2text(&ours.sa,0, ourbuf,&ourbuflen, &ourport); printf(" us %s",strerror(our_r)); if (!our_r) printf(" `%s'",ourbuf); size_t theirbuflen= sizeof(theirbuf); libc_r= getnameinfo(&ours.sa,socklen, theirbuf,theirbuflen, 0,0, NI_NUMERICHOST|NI_NUMERICSERV); printf("; libc %s", libc_r ? gai_strerror(libc_r) : "0"); if (!libc_r) printf(" `%s'",theirbuf); printf(":"); WANT(!our_r); WANT(!libc_r); WANT(ourport==PORT); if (strcmp(ourbuf,theirbuf)) { printf(" mismatch"); FAIL; return; } ok: printf(" | PASS\n"); } int main(int argc, char **argv) { const char *arg; while ((arg= *++argv)) { dotest(arg); } return !!fails; } adns-1.5.0~rc1/client/adnsheloex.c0000664000175000017500000001655112422540543015135 0ustar ianian/* * adnsheloex.c * - look up the A record of hosts in an Exim log that failed HELO verification */ /* * This file is * Copyright (C) 2004 Tony Finch * * It is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. * * This file is by Tony Finch, based on adnslogres.c. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "config.h" #include "adns.h" #include "client.h" #ifdef ADNS_REGRESS_TEST # include "hredirect.h" #endif /* maximum number of concurrent DNS queries */ #define MAXMAXPENDING 64000 #define DEFMAXPENDING 2000 /* maximum length of a line */ #define MAXLINE 1024 /* option flags */ #define OPT_DEBUG 1 #define OPT_POLL 2 static const char *const progname= "adnsheloex"; static const char *config_text; #define guard_null(str) ((str) ? (str) : "") #define sensible_ctype(type,ch) (type((unsigned char)(ch))) /* isfoo() functions from ctype.h can't safely be fed char - blech ! */ static void msg(const char *fmt, ...) { va_list al; fprintf(stderr, "%s: ", progname); va_start(al,fmt); vfprintf(stderr, fmt, al); va_end(al); fputc('\n',stderr); } static void aargh(const char *cause) { const char *why = strerror(errno); if (!why) why = "Unknown error"; msg("%s: %s (%d)", cause, why, errno); exit(1); } typedef struct logline { struct logline *next; char *start, *name, *rest, *addr; adns_query query; } logline; static logline *readline(FILE *inf, adns_state adns, int opts) { static char buf[MAXLINE]; char *str, *p, *q, *r; logline *line; if (fgets(buf, MAXLINE, inf)) { str= malloc(sizeof(*line) + strlen(buf) + 1); if (!str) aargh("malloc"); line= (logline*)str; line->next= NULL; line->start= str+sizeof(logline); strcpy(line->start, buf); line->name= line->rest= line->addr= NULL; /* look for unverifiable HELO information matching the regex H=[a-z0-9.- ]*[(][a-z0-9.-]*[)] [[][0-9.]*[]] */ for (p= strchr(line->start, ' '); p; p= strchr(p+1, ' ')) { if (!strncmp(p, " H=", 3)) { r= strchr(p, '['); if (!r) break; q= strchr(p, ')'); if (!q || q>r) break; p= strchr(p, '('); if (!p || p>q) break; line->name= p+1; line->rest= q; line->addr= r+1; break; } } if (line->name) { *line->rest= '\0'; if (opts & OPT_DEBUG) msg("submitting %s", line->name); if (adns_submit(adns, line->name, adns_r_a, adns_qf_quoteok_query|adns_qf_quoteok_cname|adns_qf_cname_loose, NULL, &line->query)) aargh("adns_submit"); *line->rest= ')'; } else { if (opts & OPT_DEBUG) msg("no query"); line->query= NULL; } return line; } if (!feof(inf)) aargh("fgets"); return NULL; } static void proclog(FILE *inf, FILE *outf, int maxpending, int opts) { int eof, err, len; adns_state adns; adns_answer *answer; logline *head, *tail, *line; adns_initflags initflags; initflags= (opts & OPT_DEBUG) ? adns_if_debug : 0; if (config_text) { errno= adns_init_strcfg(&adns, initflags, stderr, config_text); } else { errno= adns_init(&adns, initflags, 0); } if (errno) aargh("adns_init"); head= tail= readline(inf, adns, opts); len= 1; eof= 0; while (head) { while (head) { if (head->query) { if (opts & OPT_DEBUG) msg("%d in queue; checking %.*s", len, (int)(head->rest-head->name), guard_null(head->name)); if (eof || len >= maxpending) { if (opts & OPT_POLL) err= adns_wait_poll(adns, &head->query, &answer, NULL); else err= adns_wait(adns, &head->query, &answer, NULL); } else { err= adns_check(adns, &head->query, &answer, NULL); } if (err == EAGAIN) break; if (err) { fprintf(stderr, "%s: adns_wait/check: %s", progname, strerror(err)); exit(1); } if (answer->status == adns_s_ok) { const char *addr; int ok = 0; fprintf(outf, "%.*s", (int)(head->rest-head->start), head->start); while(answer->nrrs--) { addr= inet_ntoa(answer->rrs.inaddr[answer->nrrs]); ok |= !strncmp(addr, head->addr, strlen(addr)); fprintf(outf, " [%s]", addr); } fprintf(outf, "%s%s", ok ? " OK" : "", head->rest); } else { if (opts & OPT_DEBUG) msg("query failed"); fputs(head->start, outf); } free(answer); len--; } else { if (opts & OPT_DEBUG) msg("%d in queue; no query on this line", len); fputs(head->start, outf); } line= head; head= head->next; free(line); } if (!eof) { line= readline(inf, adns, opts); if (line) { if (!head) head= line; else tail->next= line; tail= line; if (line->query) len++; } else { eof= 1; } } } adns_finish(adns); } static void printhelp(FILE *file) { fputs("usage: adnsheloex [] []\n" " adnsheloex --version|--help\n" "options: -c set max number of outstanding queries\n" " -p use poll(2) instead of select(2)\n" " -d turn on debugging\n" " -C use instead of contents of resolv.conf\n", stdout); } static void usage(void) { printhelp(stderr); exit(1); } int main(int argc, char *argv[]) { int c, opts, maxpending; extern char *optarg; FILE *inf; if (argv[1] && !strncmp(argv[1],"--",2)) { if (!strcmp(argv[1],"--help")) { printhelp(stdout); } else if (!strcmp(argv[1],"--version")) { fputs(VERSION_MESSAGE("adnsheloex"),stdout); } else { usage(); } if (ferror(stdout) || fclose(stdout)) { perror("stdout"); exit(1); } exit(0); } maxpending= DEFMAXPENDING; opts= 0; while ((c= getopt(argc, argv, "c:C:dp")) != -1) switch (c) { case 'c': maxpending= atoi(optarg); if (maxpending < 1 || maxpending > MAXMAXPENDING) { fprintf(stderr, "%s: unfeasible concurrency %d\n", progname, maxpending); exit(1); } break; case 'C': config_text= optarg; break; case 'd': opts|= OPT_DEBUG; break; case 'p': opts|= OPT_POLL; break; default: usage(); } argc-= optind; argv+= optind; inf= NULL; if (argc == 0) inf= stdin; else if (argc == 1) inf= fopen(*argv, "r"); else usage(); if (!inf) aargh("couldn't open input"); proclog(inf, stdout, maxpending, opts); if (fclose(inf)) aargh("fclose input"); if (fclose(stdout)) aargh("fclose output"); return 0; } adns-1.5.0~rc1/client/adnsresfilter.c0000664000175000017500000003023112421042025015626 0ustar ianian/* * adnsresfilter.c * - filter which does resolving, not part of the library */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include #include #include #include #include #include #include #include #include #include #include "config.h" #include "adns.h" #include "dlist.h" #include "tvarith.h" #include "client.h" #ifdef ADNS_REGRESS_TEST # include "hredirect.h" #endif struct outqueuenode { struct outqueuenode *next, *back; char *buffer, *textp; int textlen; struct timeval printbefore; struct treething *addr; }; static int bracket, forever, address; static unsigned long timeout= 1000; static adns_rrtype rrt= adns_r_ptr; static adns_initflags initflags= 0; static const char *config_text; static int outblocked, inputeof; static struct { struct outqueuenode *head, *tail; } outqueue; static int peroutqueuenode, outqueuelen; static struct sockaddr_in sa; static adns_state ads; static char addrtextbuf[14]; static int cbyte, inbyte, inbuf; static unsigned char bytes[4]; static struct timeval printbefore; struct treething { unsigned char bytes[4]; adns_query qu; adns_answer *ans; }; static struct treething *newthing; static void *treeroot; static int nonblock(int fd, int isnonblock) { int r; r= fcntl(fd,F_GETFL); if (r==-1) return -1; r= fcntl(fd,F_SETFL, isnonblock ? r|O_NONBLOCK : r&~O_NONBLOCK); if (r==-1) return -1; return 0; } void quitnow(int exitstatus) { nonblock(0,0); nonblock(1,0); exit(exitstatus); } static void sysfail(const char *what) NONRETURNING; static void sysfail(const char *what) { fprintf(stderr,"adnsresfilter: system call failed: %s: %s\n",what,strerror(errno)); quitnow(2); } static void *xmalloc(size_t sz) { void *r; r= malloc(sz); if (r) return r; sysfail("malloc"); } static void outputerr(void) NONRETURNING; static void outputerr(void) { sysfail("write to stdout"); } static void usage(void) { if (printf("usage: adnsresfilter []\n" " adnsresfilter -h|--help | --version\n" "options: -t|--timeout \n" " -w|--wait (always wait for queries to time out or fail)\n" " -b|--brackets (require [...] around IP addresses)\n" " -a|--address (always include [address] in output)\n" " -u|--unchecked (do not forward map for checking)\n" " --config (use this instead of resolv.conf)\n" " --debug (turn on adns resolver debugging)\n" "Timeout is the maximum amount to delay any particular bit of output for.\n" "Lookups will go on in the background. Default timeout = 1000 (ms).\n") == EOF) outputerr(); if (fflush(stdout)) sysfail("flush stdout"); } static void usageerr(const char *why) NONRETURNING; static void usageerr(const char *why) { fprintf(stderr,"adnsresfilter: bad usage: %s\n",why); usage(); quitnow(1); } static void adnsfail(const char *what, int e) NONRETURNING; static void adnsfail(const char *what, int e) { fprintf(stderr,"adnsresfilter: adns call failed: %s: %s\n",what,strerror(e)); quitnow(2); } static void settimeout(const char *arg) { char *ep; timeout= strtoul(arg,&ep,0); if (*ep) usageerr("invalid timeout"); } static void parseargs(const char *const *argv) { const char *arg; int c; while ((arg= *++argv)) { if (arg[0] != '-') usageerr("no non-option arguments are allowed"); if (arg[1] == '-') { if (!strcmp(arg,"--timeout")) { if (!(arg= *++argv)) usageerr("--timeout needs a value"); settimeout(arg); forever= 0; } else if (!strcmp(arg,"--wait")) { forever= 1; } else if (!strcmp(arg,"--brackets")) { bracket= 1; } else if (!strcmp(arg,"--address")) { address= 1; } else if (!strcmp(arg,"--unchecked")) { rrt= adns_r_ptr_raw; } else if (!strcmp(arg,"--config")) { if (!(arg= *++argv)) usageerr("--config needs a value"); config_text= arg; } else if (!strcmp(arg,"--debug")) { initflags |= adns_if_debug; } else if (!strcmp(arg,"--help")) { usage(); quitnow(0); } else if (!strcmp(arg,"--version")) { VERSION_PRINT_QUIT("adnsresfilter"); quitnow(0); } else { usageerr("unknown long option"); } } else { while ((c= *++arg)) { switch (c) { case 't': if (*++arg) settimeout(arg); else if ((arg= *++argv)) settimeout(arg); else usageerr("-t needs a value"); forever= 0; arg= "\0"; break; case 'w': forever= 1; break; case 'b': bracket= 1; break; case 'a': address= 1; break; case 'u': rrt= adns_r_ptr_raw; break; case 'h': usage(); quitnow(0); default: usageerr("unknown short option"); } } } } } static void queueoutchar(int c) { struct outqueuenode *entry; entry= outqueue.tail; if (!entry || entry->addr || entry->textlen >= peroutqueuenode - (entry->textp - entry->buffer)) { peroutqueuenode= !peroutqueuenode || !entry || entry->addr ? 128 : peroutqueuenode >= 1024 ? 4096 : peroutqueuenode<<2; entry= xmalloc(sizeof(*entry)); entry->buffer= xmalloc(peroutqueuenode); entry->textp= entry->buffer; entry->textlen= 0; entry->addr= 0; LIST_LINK_TAIL(outqueue,entry); outqueuelen++; } entry->textp[entry->textlen++]= c; } static void queueoutstr(const char *str, int len) { while (len-- > 0) queueoutchar(*str++); } static void writestdout(struct outqueuenode *entry) { int r; while (entry->textlen) { r= write(1, entry->textp, entry->textlen); if (r < 0) { if (errno == EINTR) continue; if (errno == EAGAIN) { outblocked= 1; break; } sysfail("write stdout"); } assert(r <= entry->textlen); entry->textp += r; entry->textlen -= r; } if (!entry->textlen) { LIST_UNLINK(outqueue,entry); free(entry->buffer); free(entry); outqueuelen--; } } static void replacetextwithname(struct outqueuenode *entry) { char *name, *newbuf; int namelen, newlen; name= entry->addr->ans->rrs.str[0]; namelen= strlen(name); if (!address) { free(entry->buffer); entry->buffer= 0; entry->textp= name; entry->textlen= namelen; } else { newlen= entry->textlen + namelen + (bracket ? 0 : 2); newbuf= xmalloc(newlen + 1); sprintf(newbuf, bracket ? "%s%.*s" : "%s[%.*s]", name, entry->textlen, entry->textp); free(entry->buffer); entry->buffer= entry->textp= newbuf; entry->textlen= newlen; } } static void checkadnsqueries(void) { adns_query qu; adns_answer *ans; void *context; struct treething *foundthing; int r; for (;;) { qu= 0; context= 0; ans= 0; r= adns_check(ads,&qu,&ans,&context); if (r == ESRCH || r == EAGAIN) break; assert(!r); foundthing= context; foundthing->ans= ans; foundthing->qu= 0; } } static void restartbuf(void) { if (inbuf>0) queueoutstr(addrtextbuf,inbuf); inbuf= 0; } static int comparer(const void *a, const void *b) { return memcmp(a,b,4); } static void procaddr(void) { struct treething *foundthing; void **searchfound; struct outqueuenode *entry; int r; if (!newthing) { newthing= xmalloc(sizeof(struct treething)); newthing->qu= 0; newthing->ans= 0; } memcpy(newthing->bytes,bytes,4); searchfound= tsearch(newthing,&treeroot,comparer); if (!searchfound) sysfail("tsearch"); foundthing= *searchfound; if (foundthing == newthing) { newthing= 0; memcpy(&sa.sin_addr,bytes,4); r= adns_submit_reverse(ads, (const struct sockaddr*)&sa, rrt,0,foundthing,&foundthing->qu); if (r) adnsfail("submit",r); } entry= xmalloc(sizeof(*entry)); entry->buffer= xmalloc(inbuf); entry->textp= entry->buffer; memcpy(entry->textp,addrtextbuf,inbuf); entry->textlen= inbuf; entry->addr= foundthing; entry->printbefore= printbefore; LIST_LINK_TAIL(outqueue,entry); outqueuelen++; inbuf= 0; cbyte= -1; } static void startaddr(void) { bytes[cbyte=0]= 0; inbyte= 0; } static void readstdin(void) { char readbuf[512], *p; int r, c, nbyte; while ((r= read(0,readbuf,sizeof(readbuf))) <= 0) { if (r == 0) { inputeof= 1; return; } if (r == EAGAIN) return; if (r != EINTR) sysfail("read stdin"); } for (p=readbuf; r>0; r--,p++) { c= *p; if (cbyte==-1 && bracket && c=='[') { addrtextbuf[inbuf++]= c; startaddr(); } else if (cbyte==-1 && !bracket && !isalnum(c)) { queueoutchar(c); startaddr(); } else if (cbyte>=0 && inbyte<3 && c>='0' && c<='9' && (nbyte= bytes[cbyte]*10 + (c-'0')) <= 255) { bytes[cbyte]= nbyte; addrtextbuf[inbuf++]= c; inbyte++; } else if (cbyte>=0 && cbyte<3 && inbyte>0 && c=='.') { bytes[++cbyte]= 0; addrtextbuf[inbuf++]= c; inbyte= 0; } else if (cbyte==3 && inbyte>0 && bracket && c==']') { addrtextbuf[inbuf++]= c; procaddr(); } else if (cbyte==3 && inbyte>0 && !bracket && !isalnum(c)) { procaddr(); queueoutchar(c); startaddr(); } else { restartbuf(); queueoutchar(c); cbyte= -1; if (!bracket && !isalnum(c)) startaddr(); } } } static void startup(void) { int r; if (nonblock(0,1)) sysfail("set stdin to nonblocking mode"); if (nonblock(1,1)) sysfail("set stdout to nonblocking mode"); memset(&sa,0,sizeof(sa)); sa.sin_family= AF_INET; if (config_text) { r= adns_init_strcfg(&ads,initflags,stderr,config_text); } else { r= adns_init(&ads,initflags,0); } if (r) adnsfail("init",r); cbyte= -1; inbyte= -1; inbuf= 0; if (!bracket) startaddr(); } int main(int argc, const char *const *argv) { int r, maxfd; fd_set readfds, writefds, exceptfds; struct outqueuenode *entry; struct timeval *tv, tvbuf, now; parseargs(argv); startup(); while (!inputeof || outqueue.head) { maxfd= 2; tv= 0; FD_ZERO(&readfds); FD_ZERO(&writefds); FD_ZERO(&exceptfds); if ((entry= outqueue.head) && !outblocked) { if (!entry->addr) { writestdout(entry); continue; } if (entry->addr->ans) { if (entry->addr->ans->nrrs) replacetextwithname(entry); entry->addr= 0; continue; } r= gettimeofday(&now,0); if (r) sysfail("gettimeofday"); if (forever) { tv= 0; } else if (!timercmp(&now,&entry->printbefore,<)) { entry->addr= 0; continue; } else { tvbuf.tv_sec= entry->printbefore.tv_sec - now.tv_sec - 1; tvbuf.tv_usec= entry->printbefore.tv_usec - now.tv_usec + 1000000; tvbuf.tv_sec += tvbuf.tv_usec / 1000000; tvbuf.tv_usec %= 1000000; tv= &tvbuf; } adns_beforeselect(ads,&maxfd,&readfds,&writefds,&exceptfds, &tv,&tvbuf,&now); } if (outblocked) FD_SET(1,&writefds); if (!inputeof && outqueuelen<1024) FD_SET(0,&readfds); r= select(maxfd,&readfds,&writefds,&exceptfds,tv); if (r < 0) { if (r == EINTR) continue; else sysfail("select"); } r= gettimeofday(&now,0); if (r) sysfail("gettimeofday"); adns_afterselect(ads,maxfd,&readfds,&writefds,&exceptfds,&now); checkadnsqueries(); if (FD_ISSET(0,&readfds)) { if (!forever) { printbefore= now; timevaladd(&printbefore,timeout); } readstdin(); } else if (FD_ISSET(1,&writefds)) { outblocked= 0; } } if (nonblock(0,0)) sysfail("un-nonblock stdin"); if (nonblock(1,0)) sysfail("un-nonblock stdout"); adns_finish(ads); exit(0); } adns-1.5.0~rc1/client/adh-main.c0000664000175000017500000001553612421042025014452 0ustar ianian/* * adh-main.c * - useful general-purpose resolver client program * main program and useful subroutines */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include "adnshost.h" int rcode; const char *config_text; static int used, avail; static char *buf; void quitnow(int rc) { if (ads) adns_finish(ads); free(buf); free(ov_id); exit(rc); } void sysfail(const char *what, int errnoval) { fprintf(stderr,"adnshost failed: %s: %s\n",what,strerror(errnoval)); quitnow(10); } void usageerr(const char *fmt, ...) { va_list al; fputs("adnshost usage error: ",stderr); va_start(al,fmt); vfprintf(stderr,fmt,al); va_end(al); putc('\n',stderr); quitnow(11); } void outerr(void) { sysfail("write to stdout",errno); } void *xmalloc(size_t sz) { void *p; p= malloc(sz); if (!p) sysfail("malloc",sz); return p; } char *xstrsave(const char *str) { char *p; p= xmalloc(strlen(str)+1); strcpy(p,str); return p; } void of_config(const struct optioninfo *oi, const char *arg, const char *arg2) { config_text= arg; } void of_type(const struct optioninfo *oi, const char *arg, const char *arg2) { static const struct typename { adns_rrtype type; const char *desc; } typenames[]= { /* enhanced versions */ { adns_r_ns, "ns" }, { adns_r_soa, "soa" }, { adns_r_ptr, "ptr" }, { adns_r_mx, "mx" }, { adns_r_rp, "rp" }, { adns_r_srv, "srv" }, { adns_r_addr, "addr" }, /* types with only one version */ { adns_r_cname, "cname" }, { adns_r_hinfo, "hinfo" }, { adns_r_txt, "txt" }, /* raw versions */ { adns_r_a, "a" }, { adns_r_aaaa, "aaaa" }, { adns_r_ns_raw, "ns-" }, { adns_r_soa_raw, "soa-" }, { adns_r_ptr_raw, "ptr-" }, { adns_r_mx_raw, "mx-" }, { adns_r_rp_raw, "rp-" }, { adns_r_srv_raw, "srv-" }, { adns_r_none, 0 } }; const struct typename *tnp; unsigned long unknowntype; char *ep; if (strlen(arg) > 4 && !memcmp(arg,"type",4) && (unknowntype= strtoul(arg+4, &ep, 10), !*ep) && unknowntype < 65536) { ov_type= unknowntype | adns_r_unknown; return; } for (tnp=typenames; tnp->type && strcmp(arg,tnp->desc); tnp++); if (!tnp->type) usageerr("unknown RR type %s",arg); ov_type= tnp->type; } static void process_optarg(const char *arg, const char *const **argv_p, const char *value) { const struct optioninfo *oip; const char *arg2; int invert; if (arg[0] == '-' || arg[0] == '+') { if (arg[0] == '-' && arg[1] == '-') { if (!strncmp(arg,"--no-",5)) { invert= 1; oip= opt_findl(arg+5); } else { invert= 0; oip= opt_findl(arg+2); } if (oip->type == ot_funcarg) { arg= argv_p ? *++(*argv_p) : value; if (!arg) usageerr("option --%s requires a value argument",oip->lopt); arg2= 0; } else if (oip->type == ot_funcarg2) { assert(argv_p); arg= *++(*argv_p); arg2= arg ? *++(*argv_p) : 0; if (!arg || !arg2) usageerr("option --%s requires two more arguments", oip->lopt); } else { if (value) usageerr("option --%s does not take a value",oip->lopt); arg= 0; arg2= 0; } opt_do(oip,invert,arg,arg2); } else if (arg[0] == '-' && arg[1] == 0) { arg= argv_p ? *++(*argv_p) : value; if (!arg) usageerr("option `-' must be followed by a domain"); query_do(arg); } else { /* arg[1] != '-', != '\0' */ invert= (arg[0] == '+'); ++arg; while (*arg) { oip= opt_finds(&arg); if (oip->type == ot_funcarg) { if (!*arg) { arg= argv_p ? *++(*argv_p) : value; if (!arg) usageerr("option -%s requires a value argument",oip->sopt); } else { if (value) usageerr("two values for option -%s given !",oip->sopt); } opt_do(oip,invert,arg,0); arg= ""; } else { if (value) usageerr("option -%s does not take a value",oip->sopt); opt_do(oip,invert,0,0); } } } } else { /* arg[0] != '-' */ query_do(arg); } } static void read_stdin(void) { int anydone, r; char *newline, *space; anydone= 0; while (!anydone || used) { while (!(newline= memchr(buf,'\n',used))) { if (used == avail) { avail += 20; avail <<= 1; buf= realloc(buf,avail); if (!buf) sysfail("realloc stdin buffer",errno); } do { r= read(0,buf+used,avail-used); } while (r < 0 && errno == EINTR); if (r == 0) { if (used) { /* fake up final newline */ buf[used++]= '\n'; r= 1; } else { ov_pipe= 0; return; } } if (r < 0) sysfail("read stdin",errno); used += r; } *newline++= 0; space= strchr(buf,' '); if (space) *space++= 0; process_optarg(buf,0,space); used -= (newline-buf); memmove(buf,newline,used); anydone= 1; } } int main(int argc, const char *const *argv) { struct timeval *tv, tvbuf; adns_query qu; void *qun_v; adns_answer *answer; int r, maxfd; fd_set readfds, writefds, exceptfds; const char *arg; while ((arg= *++argv)) process_optarg(arg,&argv,0); if (!ov_pipe && !ads) usageerr("no domains given, and -f/--pipe not used; try --help"); ensure_adns_init(); for (;;) { for (;;) { qu= ov_asynch ? 0 : outstanding.head ? outstanding.head->qu : 0; r= adns_check(ads,&qu,&answer,&qun_v); if (r == EAGAIN) break; if (r == ESRCH) { if (!ov_pipe) goto x_quit; else break; } assert(!r); query_done(qun_v,answer); } maxfd= 0; FD_ZERO(&readfds); FD_ZERO(&writefds); FD_ZERO(&exceptfds); if (ov_pipe) { maxfd= 1; FD_SET(0,&readfds); } tv= 0; adns_beforeselect(ads, &maxfd, &readfds,&writefds,&exceptfds, &tv,&tvbuf,0); r= select(maxfd, &readfds,&writefds,&exceptfds, tv); if (r == -1) { if (errno == EINTR) continue; sysfail("select",errno); } adns_afterselect(ads, maxfd, &readfds,&writefds,&exceptfds, 0); if (ov_pipe && FD_ISSET(0,&readfds)) read_stdin(); } x_quit: if (fclose(stdout)) outerr(); quitnow(rcode); } adns-1.5.0~rc1/client/adh-query.c0000664000175000017500000002154712421042025014672 0ustar ianian/* * adh-query.c * - useful general-purpose resolver client program * make queries and print answers */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #include "adnshost.h" adns_state ads; struct outstanding_list outstanding; static unsigned long idcounter; void ensure_adns_init(void) { adns_initflags initflags; int r; if (ads) return; if (signal(SIGPIPE,SIG_IGN) == SIG_ERR) sysfail("ignore SIGPIPE",errno); initflags= adns_if_noautosys|adns_if_nosigpipe|ov_verbose; if (!ov_env) initflags |= adns_if_noenv; if (config_text) { r= adns_init_strcfg(&ads, initflags, stderr, config_text); } else { r= adns_init(&ads, initflags, 0); } if (r) sysfail("adns_init",r); if (ov_format == fmt_default) ov_format= ov_asynch ? fmt_asynch : fmt_simple; } void type_info(adns_rrtype type, const char **typename_r, const void *datap, char **data_r) { static char buf[12]; adns_status st; st= adns_rr_info(type, typename_r, 0,0, datap,data_r); if (st == adns_s_nomemory) sysfail("adns_rr_info failed",ENOMEM); assert(!st); if (typename_r && !*typename_r) { sprintf(buf,"TYPE%d", (int)(type & adns_rrt_typemask)); *typename_r= buf; } } static void prep_query(struct query_node **qun_r, int *quflags_r) { struct query_node *qun; char idbuf[20]; if (ov_pipe && !ads) usageerr("-f/--pipe not consistent with domains on command line"); ensure_adns_init(); qun= malloc(sizeof(*qun)); qun->pqfr= ov_pqfr; if (ov_id) { qun->id= xstrsave(ov_id); } else { sprintf(idbuf,"%lu",idcounter++); idcounter &= 0x0fffffffflu; qun->id= xstrsave(idbuf); } *quflags_r= (ov_search ? adns_qf_search : 0) | (ov_tcp ? adns_qf_usevc : 0) | ((ov_pqfr.show_owner || ov_format == fmt_simple) ? adns_qf_owner : 0) | (ov_qc_query ? adns_qf_quoteok_query : 0) | (ov_qc_anshost ? adns_qf_quoteok_anshost : 0) | (ov_qc_cname ? 0 : adns_qf_quoteok_cname) | (ov_v6map ? adns_qf_ipv6_mapv4 : 0) | ov_cname | ov_afflags; *qun_r= qun; } static void sockaddr_aton(const char *text, adns_rr_addr *a) { int err; a->len= sizeof(a->addr); err= adns_text2addr(text,0,adns_qf_addrlit_scope_forbid, &a->addr.sa,&a->len); if (err == EINVAL) usageerr("invalid IP address %s",text); else if (err) sysfail("adns_text2addr",err); } void of_ptr(const struct optioninfo *oi, const char *arg, const char *arg2) { struct query_node *qun; int quflags, r; adns_rr_addr a; sockaddr_aton(arg,&a); prep_query(&qun,&quflags); qun->owner= xstrsave(arg); r= adns_submit_reverse(ads, &a.addr.sa, ov_type == adns_r_none ? adns_r_ptr : ov_type, quflags, qun, &qun->qu); if (r) sysfail("adns_submit_reverse",r); LIST_LINK_TAIL(outstanding,qun); } void of_reverse(const struct optioninfo *oi, const char *arg, const char *arg2) { struct query_node *qun; int quflags, r; adns_rr_addr a; sockaddr_aton(arg,&a); prep_query(&qun,&quflags); qun->owner= xmalloc(strlen(arg) + strlen(arg2) + 2); sprintf(qun->owner, "%s %s", arg,arg2); r= adns_submit_reverse_any(ads, &a.addr.sa,arg2, ov_type == adns_r_none ? adns_r_txt : ov_type, quflags, qun, &qun->qu); if (r) sysfail("adns_submit_reverse",r); LIST_LINK_TAIL(outstanding,qun); } void query_do(const char *domain) { struct query_node *qun; int quflags, r; prep_query(&qun,&quflags); qun->owner= xstrsave(domain); r= adns_submit(ads, domain, ov_type == adns_r_none ? adns_r_addr : ov_type, quflags, qun, &qun->qu); if (r) sysfail("adns_submit",r); LIST_LINK_TAIL(outstanding,qun); } static void dequeue_query(struct query_node *qun) { LIST_UNLINK(outstanding,qun); free(qun->id); free(qun->owner); free(qun); } static void print_withspace(const char *str) { if (printf("%s ", str) == EOF) outerr(); } static void print_ttl(struct query_node *qun, adns_answer *answer) { unsigned long ttl; time_t now; switch (qun->pqfr.ttl) { case tm_none: return; case tm_rel: if (time(&now) == (time_t)-1) sysfail("get current time",errno); ttl= answer->expires < now ? 0 : answer->expires - now; break; case tm_abs: ttl= answer->expires; break; default: abort(); } if (printf("%lu ",ttl) == EOF) outerr(); } static const char *owner_show(struct query_node *qun, adns_answer *answer) { return answer->owner ? answer->owner : qun->owner; } static void print_owner_ttl(struct query_node *qun, adns_answer *answer) { if (qun->pqfr.show_owner) print_withspace(owner_show(qun,answer)); print_ttl(qun,answer); } static void check_status(adns_status st) { static const adns_status statuspoints[]= { adns_s_ok, adns_s_max_localfail, adns_s_max_remotefail, adns_s_max_tempfail, adns_s_max_misconfig, adns_s_max_misquery }; const adns_status *spp; int minrcode; for (minrcode=0, spp=statuspoints; spp < statuspoints + (sizeof(statuspoints)/sizeof(statuspoints[0])); spp++) if (st > *spp) minrcode++; if (rcode < minrcode) rcode= minrcode; } static void print_status(adns_status st, struct query_node *qun, adns_answer *answer) { const char *statustypeabbrev, *statusabbrev, *statusstring; statustypeabbrev= adns_errtypeabbrev(st); statusabbrev= adns_errabbrev(st); statusstring= adns_strerror(st); assert(!strchr(statusstring,'"')); if (printf("%s %d %s ", statustypeabbrev, st, statusabbrev) == EOF) outerr(); print_owner_ttl(qun,answer); if (qun->pqfr.show_cname) print_withspace(answer->cname ? answer->cname : "$"); if (printf("\"%s\"\n", statusstring) == EOF) outerr(); } static void print_dnsfail(adns_status st, struct query_node *qun, adns_answer *answer) { int r; const char *typename, *statusstring; if (ov_format == fmt_inline) { if (fputs("; failed ",stdout) == EOF) outerr(); print_status(st,qun,answer); return; } assert(ov_format == fmt_simple); if (st == adns_s_nxdomain) { r= fprintf(stderr,"%s does not exist\n", owner_show(qun,answer)); } else { type_info(answer->type, &typename, 0,0); if (st == adns_s_nodata) { r= fprintf(stderr,"%s has no %s record\n", owner_show(qun,answer), typename); } else { statusstring= adns_strerror(st); r= fprintf(stderr,"Error during DNS %s lookup for %s: %s\n", typename, owner_show(qun,answer), statusstring); } } if (r == EOF) sysfail("write error message to stderr",errno); } void query_done(struct query_node *qun, adns_answer *answer) { adns_status st; int rrn, nrrs; const char *rrp, *realowner, *typename; char *datastr; st= answer->status; nrrs= answer->nrrs; if (ov_format == fmt_asynch) { check_status(st); if (printf("%s %d ", qun->id, nrrs) == EOF) outerr(); print_status(st,qun,answer); } else { if (qun->pqfr.show_cname && answer->cname) { print_owner_ttl(qun,answer); if (qun->pqfr.show_type) print_withspace("CNAME"); if (printf("%s\n", answer->cname) == EOF) outerr(); } if (st) { check_status(st); print_dnsfail(st,qun,answer); } } if (qun->pqfr.show_owner) { realowner= answer->cname ? answer->cname : owner_show(qun,answer); assert(realowner); } else { realowner= 0; } if (nrrs) { for (rrn=0, rrp = answer->rrs.untyped; rrn < nrrs; rrn++, rrp += answer->rrsz) { if (realowner) print_withspace(realowner); print_ttl(qun,answer); type_info(answer->type,&typename, rrp,&datastr); if (qun->pqfr.show_type) print_withspace(typename); if (printf("%s\n",datastr) == EOF) outerr(); free(datastr); } } if (fflush(stdout)) outerr(); free(answer); dequeue_query(qun); } void of_asynch_id(const struct optioninfo *oi, const char *arg, const char *arg2) { free(ov_id); ov_id= xstrsave(arg); } void of_cancel_id(const struct optioninfo *oi, const char *arg, const char *arg2) { struct query_node *qun; for (qun= outstanding.head; qun && strcmp(qun->id,arg); qun= qun->next); if (!qun) return; adns_cancel(qun->qu); dequeue_query(qun); } adns-1.5.0~rc1/client/Makefile.in0000664000175000017500000000467012421042025014672 0ustar ianian# client/Makefile - client program(s) Makefile # # This file is part of adns, which is # Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson # Copyright (C) 2014 Mark Wooding # Copyright (C) 1999-2000,2003,2006 Tony Finch # Copyright (C) 1991 Massachusetts Institute of Technology # (See the file INSTALL for full details.) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation. srcdir= @srcdir@ VPATH= @srcdir@ PROGS_SYSDEP= @PROGS_HAVE_TSEARCH@ ENABLE_DYNAMIC= @ENABLE_DYNAMIC@ PROGRAMS= adnslogres adnsheloex adnshost $(PROGS_SYSDEP) PROGRAMS_LOCAL= fanftest adnstest addrtext PROGRAMS_ALL= $(PROGRAMS) $(PROGRAMS_LOCAL) STATIC_LIB= ../src/libadns.a ifeq ($(ENABLE_DYNAMIC),elf) DYNAMIC_DEP= ../dynamic/$(SHLIBFILE) DYNAMIC_LINK= -L../dynamic -ladns DYNAMIC_SUFFIX= _s else DYNAMIC_DEP= $(STATIC_LIB) DYNAMIC_LINK= $(STATIC_LIB) DYNAMIC_SUFFIX= endif TARG_INSTALL= $(PROGRAMS) TARG_LOCAL= $(addsuffix $(DYNAMIC_SUFFIX), $(PROGRAMS_ALL)) TARGETS= $(TARG_LOCAL) $(TARG_INSTALL) include ../settings.make ADNSDIR= $(srcdir)/../src DIRCFLAGS= -I. -I../src -I$(ADNSDIR) TARG_OBJS= $(addsuffix .o, $(PROGRAMS_ALL)) ADH_OBJS= adh-main.o adh-opts.o adh-query.o ALL_OBJS= $(ADH_OBJS) $(TARG_OBJS) all: $(TARGETS) install: $(TARG_INSTALL) mkdir -p $(bindir) set -xe; for f in $(TARG_INSTALL); \ do $(INSTALL_PROGRAM) $$f $(bindir)/$$f; done uninstall: for f in $(TARGETS); do rm -f $(bindir)/$$f; done adnshost: $(ADH_OBJS) $(DYNAMIC_DEP) $(CC) $(LDFLAGS) $(ADH_OBJS) $(DYNAMIC_LINK) -o $@ $(LDLIBS) adnshost_s: $(ADH_OBJS) $(STATIC_LIB) $(CC) $(LDFLAGS) $(ADH_OBJS) $(STATIC_LIB) -o $@ $(LDLIBS) $(ADH_OBJS): adnshost.h $(ALL_OBJS): $(ADNSDIR)/adns.h ../src/config.h adnsresfilter.o: $(ADNSDIR)/tvarith.h %: %.o $(DYNAMIC_DEP) $(CC) $(LDFLAGS) $< $(DYNAMIC_LINK) -o $@ $(LDLIBS) %_s: %.o $(STATIC_LIB) $(CC) $(LDFLAGS) $< $(STATIC_LIB) -o $@ $(LDLIBS) adns-1.5.0~rc1/client/client.h0000664000175000017500000000410412423172767014267 0ustar ianian/* * clients.h * - useful declarations and definitions for adns client programs */ /* * This file is part of adns, which is * Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson * Copyright (C) 2014 Mark Wooding * Copyright (C) 1999-2000,2003,2006 Tony Finch * Copyright (C) 1991 Massachusetts Institute of Technology * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation. */ #ifndef CLIENT_H_INCLUDED #define CLIENT_H_INCLUDED #define ADNS_VERSION_STRING "1.5.0~rc1" #define COPYRIGHT_MESSAGE \ "Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson\n" \ "Copyright (C) 2014 Mark Wooding\n" \ "Copyright (C) 1999-2000,2003,2006 Tony Finch\n" \ "Copyright (C) 1991 Massachusetts Institute of Technology\n" \ "This is free software; see the source for copying conditions. There is NO\n" \ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" #define VERSION_MESSAGE(program) \ program " (GNU adns) " ADNS_VERSION_STRING "\n\n" COPYRIGHT_MESSAGE #define VERSION_PRINT_QUIT(program) \ if (fputs(VERSION_MESSAGE(program),stdout) == EOF || \ fclose(stdout)) { \ perror(program ": write version message"); \ quitnow(-1); \ } \ quitnow(0); void quitnow(int rc) NONRETURNING; #endif adns-1.5.0~rc1/NEWS0000664000175000017500000000541412423172476012063 0ustar ianianChanges in adns 1.5.0, since adns 1.4, are: New features: * This release provides full IPv6 support. Applications can request AAAA records (containing IPv6 addresses) as well as, or instead of, A records (containing IPv4 addresses). adns 1.5 can speak to nameservers over IPv6. * adns_addr2text and adns_text2addr: Convenient C functions for converting between addresses and address literals. These carry less baggage than getaddrinfo and getnameinfo. Bugfixes: * We fix a crashing bug in adnslogres. (Debian#392102.) * Previously, parsing of some adns_specific options in resolv.conf would go awry if multiple options were specified on the same line. (Fixed since 1.5.0~rc0.) * adns now knows to ignore more things in resolv.conf, rather than warn about them, and there's also an option to disable all of these warnings. (Debian#411263.) (Fixed since 1.5.0~rc0.) * Previously, some harmless but wrong owner names for checked ptr queries would be accepted; now they are rejected with `Domain invalid for particular DNS query type'. Other: * There are some minor API/ABI changes and improvements, for future proofing. * There are also some build system, test suite and coding style improvements. * Licence is now GPLv3. Compatibility: adns 1.5 is fully forwards API- and ABI-compatible with 1.4. adns 1.5 is not backwards ABI-compatible, in the sense that applications built against adns 1.5 but run with adns 1.4 may experience `Function not implemented' errors, or `symbol lookup error' due to undefined symbols. But applications built against 1.4 will not experience data corruption due to ABI mismatches. adns_r_addr queries (general `address' queries where the application does not specify the kind of address) used to only return AF_INET (IPv4) addresses. To avoid surprising existing applications, AF_INET6 (IPv6) addresses will be returned only if the application explicitly states its support for handling a mixture of address families in the results from adns_r_addr. In a future version of adns this will become the default. adnshost and the other command-line utilities are fully forward- and backward-compatible, except that in adns 1.5, adnshost will return IPv6 as well as IPv4 information if simply asked for `addresses'. Calling programs which did not ask for a specific address type ought to cope with this. The API in 1.5.0 also fixes a technical nonconformance to the C specification. On platforms where an `enum' type might be an integer type whose size is bits is not a power of two, there could be an incompatible ABI change between 1.4 and 1.5 - but we don't think there are many (if any) such platforms which are sufficiently POSIX-like for adns. (Changed since 1.5.0~rc0.) adns-1.5.0~rc1/regress/0000775000175000017500000000000012423173323013022 5ustar ianianadns-1.5.0~rc1/regress/r1test0000775000175000017500000000447312421042025014172 0ustar ianian#!/bin/sh # usage: r1test # test execution script, for running one test # # This file is part of adns, which is # Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson # Copyright (C) 2014 Mark Wooding # Copyright (C) 1999-2000,2003,2006 Tony Finch # Copyright (C) 1991 Massachusetts Institute of Technology # (See the file INSTALL for full details.) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation. set -e : ${srcdir=.} mrc=1 trap 'exit $mrc' 0 casename="$1" case="$srcdir/case-$casename" ocase="output-$casename" exec 4<"$case.sys" read <&4 program initfile initflags read <&4 queryargs initstring="`cat $srcdir/init-$initfile.text`" xinitflagsf=$srcdir/$program-xinitflags.text if test -f $xinitflagsf then initflags="$initflags `cat $xinitflagsf`"; else initflags="$initflags /" fi rm -f $ocase.* EF_DISABLE_BANNER=1 export EF_DISABLE_BANNER if test -f "$case.in" then exec <"$case.in" else exec >"$ocase.report" 4<&4 >"$ocase.out" 2>"$ocase.err" \ $ADNS_TEST_DEBUG $playback $initflags"$initstring" $queryargs rc=$? set -e if [ "$rc" = 5 ] then printf "SKIPPED-$casename " mrc=5 exit fi echo "rc=$rc" >>$ocase.out failed=false for part in err out do if diff -u -- "$case.$part" "$ocase.$part" then : else failwhy="$failwhy WRONG OUTPUT" fi done cat <&4 >"$ocase.leftover" if egrep . /dev/null "$ocase.leftover" then failwhy="$failwhy EXITED EARLY" fi if [ "x$failwhy" != x ] then scremain="`wc -l <\"$ocase.leftover\"`" echo >&2 "FAILED $case -$failwhy - lines of syscall remaining $scremain" mrc=2 exit fi printf "$casename " mrc=0 adns-1.5.0~rc1/regress/case-ptr-aaaa-caps.out0000664000175000017500000000052112421042025017064 0ustar ianianadns debug: using nameserver 172.18.45.6 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.D.1.0.8.A.B.0.1.0.0.2.IP6.ARPA flags 0 type 65548 PTR(checked) submitted 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.D.1.0.8.A.B.0.1.0.0.2.IP6.ARPA flags 0 type PTR(checked): OK; nrrs=1; cname=$; owner=$; ttl=13516 stratocaster.colo.distorted.org.uk rc=0 adns-1.5.0~rc1/regress/case-flags9.out0000664000175000017500000000033012421042025015635 0ustar ianianadns debug: using nameserver 172.18.45.6 chiark.greenend.org.uk flags 0 type 1 A(-) submitted chiark.greenend.org.uk flags 0 type A(-) ownflags=aaaaaaaaa: ok; nrrs=1; cname=$; owner=$; ttl=86400 195.224.76.132 rc=0 adns-1.5.0~rc1/regress/case-norecurse.sys0000664000175000017500000006144212422510662016507 0ustar ianianadnstest default -0x416 4.204.50.158.in-addr.arpa start 939764098.821612 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000163 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000053 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000041 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 010001. sendto=43 +0.001437 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 010001. +0.000286 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000152 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 020001. sendto=43 +0.000904 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 020001. +0.000247 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000144 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 050001. sendto=43 +0.001157 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000093 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 060001. sendto=43 +0.000957 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 060001. +0.000249 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000113 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.001196 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238380 00010012 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000130 7c000d03 6e733203 61667003 636f6d00 c00c000c 00010001 307c0005 026e73c0 3bc00c00 0c000100 01307c00 07046e65 7773c03b c00c000c 00010001 307c000c 036e7332 03616670 02667200 c00c000c 00010001 307c0005 026e73c0 78c00c00 0c000100 01307c00 07046e65 7773c078 c00c000c 00010001 307c0019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 3fc00c00 0c000100 01307c00 07046e65 7773c0b4 c00c000c 00010001 307c0019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 7cc00c00 0c000100 01307c00 07046e65 7773c0ec c00c000c 00010001 307c001a 036e7332 13616765 6e636566 72616e63 652d7072 65737365 c03fc00c 000c0001 0001307c 0007046e 657773c1 24c00c00 0c000100 01307c00 1a036e73 32136167 656e6365 6672616e 63652d70 72657373 65c07cc0 0c000c00 01000130 7c000704 6e657773 c15dc00c 000c0001 0001307c 0011036e 73320a69 6d616765 666f7275 6dc03fc0 0c000c00 01000130 7c000704 6e657773 c196c00c 000c0001 0001307c 0014036e 73320a69 6d616765 666f7275 6d02746d c07cc00c 000c0001 0001307c 0007046e 657773c1 c6. +0.002263 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.000942 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000045 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000041 connect fd=5 addr=172.18.45.6:53 connect=EINPROGRESS +0.000500 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000083 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0d0001. sendto=43 +0.000925 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0d0001. +0.000256 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000116 read fd=5 buflen=1 read=EAGAIN +0.000123 write fd=5 002b3123 01000001 00000000 00000134 03323034 02353003 31353807 696e2d61 64647204 61727061 00000c00 01. write=45 +0.001681 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.001010 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0f0001. +0.000266 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000117 read fd=5 buflen=2 read=OK 02ac. +0.000175 read fd=5 buflen=684 read=OK 31238180 00010017 00010001 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000130 7c000d03 6e733203 61667003 636f6d00 c00c000c 00010001 307c0005 026e73c0 3bc00c00 0c000100 01307c00 07046e65 7773c03b c00c000c 00010001 307c000c 036e7332 03616670 02667200 c00c000c 00010001 307c0005 026e73c0 78c00c00 0c000100 01307c00 07046e65 7773c078 c00c000c 00010001 307c0019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 3fc00c00 0c000100 01307c00 07046e65 7773c0b4 c00c000c 00010001 307c0019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 7cc00c00 0c000100 01307c00 07046e65 7773c0ec c00c000c 00010001 307c001a 036e7332 13616765 6e636566 72616e63 652d7072 65737365 c03fc00c 000c0001 0001307c 0007046e 657773c1 24c00c00 0c000100 01307c00 1a036e73 32136167 656e6365 6672616e 63652d70 72657373 65c07cc0 0c000c00 01000130 7c000704 6e657773 c15dc00c 000c0001 0001307c 0011036e 73320a69 6d616765 666f7275 6dc03fc0 0c000c00 01000130 7c000704 6e657773 c196c00c 000c0001 0001307c 0014036e 73320a69 6d616765 666f7275 6d02746d c07cc00c 000c0001 0001307c 0007046e 657773c1 c6c00c00 0c000100 01307c00 12036e73 320b6f6f 682d6c61 682d6c61 68c03fc0 0c000c00 01000130 7c001203 6e73320b 61667073 6369656e 636573c0 3fc00c00 0c000100 01307c00 0d036e73 32066166 70646f63 c03fc00c 000c0001 0001307c 0010036e 73320961 66702d6e 6f746573 c03fc00c 000c0001 0001307c 0011036e 73320a61 66702d64 6f6d696e 6fc03f03 32303402 35300331 35380769 6e2d6164 64720461 72706100 00020001 0001307c 0002c037 c0370001 00010002 80980004 9e32cc04. +0.002445 read fd=5 buflen=686 read=EAGAIN +0.003811 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 100001. sendto=43 +0.000940 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 100001. +0.000256 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000115 read fd=5 buflen=686 read=EAGAIN +0.000001 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. sendto=43 +0.000928 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. +0.000259 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000112 read fd=5 buflen=686 read=EAGAIN +0.000001 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 010001. sendto=43 +0.000917 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 010001. +0.000259 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000124 read fd=5 buflen=686 read=EAGAIN +0.000001 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 020001. sendto=43 +0.000899 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 020001. +0.000262 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000123 read fd=5 buflen=686 read=EAGAIN +0.000001 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.001190 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8380 00010012 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000130 7c000d03 6e733203 61667003 636f6d00 c00c000c 00010001 307c0005 026e73c0 3bc00c00 0c000100 01307c00 07046e65 7773c03b c00c000c 00010001 307c000c 036e7332 03616670 02667200 c00c000c 00010001 307c0005 026e73c0 78c00c00 0c000100 01307c00 07046e65 7773c078 c00c000c 00010001 307c0019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 3fc00c00 0c000100 01307c00 07046e65 7773c0b4 c00c000c 00010001 307c0019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 7cc00c00 0c000100 01307c00 07046e65 7773c0ec c00c000c 00010001 307c001a 036e7332 13616765 6e636566 72616e63 652d7072 65737365 c03fc00c 000c0001 0001307c 0007046e 657773c1 24c00c00 0c000100 01307c00 1a036e73 32136167 656e6365 6672616e 63652d70 72657373 65c07cc0 0c000c00 01000130 7c000704 6e657773 c15dc00c 000c0001 0001307c 0011036e 73320a69 6d616765 666f7275 6dc03fc0 0c000c00 01000130 7c000704 6e657773 c196c00c 000c0001 0001307c 0014036e 73320a69 6d616765 666f7275 6d02746d c07cc00c 000c0001 0001307c 0007046e 657773c1 c6. +0.001724 write fd=5 002b312b 01000001 00000000 00000134 03323034 02353003 31353807 696e2d61 64647204 61727061 00000c00 01. write=45 +0.001513 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000078 read fd=5 buflen=686 read=EAGAIN +0.000001 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.000907 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0f0001. +0.000264 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000118 read fd=5 buflen=686 read=EAGAIN +0.001429 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 060001. sendto=43 +0.000875 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 060001. +0.000265 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000115 read fd=5 buflen=686 read=OK 02ac312b 81800001 00170001 00010134 03323034 02353003 31353807 696e2d61 64647204 61727061 00000c00 01c00c00 0c000100 01307c00 0d036e73 32036166 7003636f 6d00c00c 000c0001 0001307c 0005026e 73c03bc0 0c000c00 01000130 7c000704 6e657773 c03bc00c 000c0001 0001307c 000c036e 73320361 66700266 7200c00c 000c0001 0001307c 0005026e 73c078c0 0c000c00 01000130 7c000704 6e657773 c078c00c 000c0001 0001307c 0019036e 73321261 67656e63 65667261 6e636570 72657373 65c03fc0 0c000c00 01000130 7c000704 6e657773 c0b4c00c 000c0001 0001307c 0019036e 73321261 67656e63 65667261 6e636570 72657373 65c07cc0 0c000c00 01000130 7c000704 6e657773 c0ecc00c 000c0001 0001307c 001a036e 73321361 67656e63 65667261 6e63652d 70726573 7365c03f c00c000c 00010001 307c0007 046e6577 73c124c0 0c000c00 01000130 7c001a03 6e733213 6167656e 63656672 616e6365 2d707265 737365c0 7cc00c00 0c000100 01307c00 07046e65 7773c15d c00c000c 00010001 307c0011 036e7332 0a696d61 6765666f 72756dc0 3fc00c00 0c000100 01307c00 07046e65 7773c196 c00c000c 00010001 307c0014 036e7332 0a696d61 6765666f 72756d02 746dc07c c00c000c 00010001 307c0007 046e6577 73c1c6c0 0c000c00 01000130 7c001203 6e73320b 6f6f682d 6c61682d 6c6168c0 3fc00c00 0c000100 01307c00 12036e73 320b6166 70736369 656e6365 73c03fc0 0c000c00 01000130 7c000d03 6e733206 61667064 6f63c03f c00c000c 00010001 307c0010 036e7332 09616670 2d6e6f74 6573c03f c00c000c 00010001 307c0011 036e7332 0a616670 2d646f6d 696e6fc0 3f033230 34023530 03313538 07696e2d 61646472 04617270 61000002 00010001 307c0002 c037c037 00010001 00028098 00049e32 cc04. +0.002314 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 036e7332 03616670 03636f6d 00000100 01. sendto=29 +0.001132 sendto fd=4 addr=172.18.45.6:53 312f0100 00010000 00000000 026e7303 61667003 636f6d00 00010001. sendto=28 +0.000872 sendto fd=4 addr=172.18.45.6:53 31300100 00010000 00000000 046e6577 73036166 7003636f 6d000001 0001. sendto=30 +0.000864 sendto fd=4 addr=172.18.45.6:53 31310100 00010000 00000000 036e7332 03616670 02667200 00010001. sendto=28 +0.000857 sendto fd=4 addr=172.18.45.6:53 31320100 00010000 00000000 026e7303 61667002 66720000 010001. sendto=27 +0.001077 sendto fd=4 addr=172.18.45.6:53 31330100 00010000 00000000 046e6577 73036166 70026672 00000100 01. sendto=29 +0.001081 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 036e7332 12616765 6e636566 72616e63 65707265 73736503 636f6d00 00010001. sendto=44 +0.001138 sendto fd=4 addr=172.18.45.6:53 31350100 00010000 00000000 046e6577 73126167 656e6365 6672616e 63657072 65737365 03636f6d 00000100 01. sendto=45 +0.001216 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 036e7332 12616765 6e636566 72616e63 65707265 73736502 66720000 010001. sendto=43 +0.001134 sendto fd=4 addr=172.18.45.6:53 31370100 00010000 00000000 046e6577 73126167 656e6365 6672616e 63657072 65737365 02667200 00010001. sendto=44 +0.001163 sendto fd=4 addr=172.18.45.6:53 31380100 00010000 00000000 036e7332 13616765 6e636566 72616e63 652d7072 65737365 03636f6d 00000100 01. sendto=45 +0.001153 sendto fd=4 addr=172.18.45.6:53 31390100 00010000 00000000 046e6577 73136167 656e6365 6672616e 63652d70 72657373 6503636f 6d000001 0001. sendto=46 +0.001167 sendto fd=4 addr=172.18.45.6:53 313a0100 00010000 00000000 036e7332 13616765 6e636566 72616e63 652d7072 65737365 02667200 00010001. sendto=44 +0.001170 sendto fd=4 addr=172.18.45.6:53 313b0100 00010000 00000000 046e6577 73136167 656e6365 6672616e 63652d70 72657373 65026672 00000100 01. sendto=45 +0.001174 sendto fd=4 addr=172.18.45.6:53 313c0100 00010000 00000000 036e7332 0a696d61 6765666f 72756d03 636f6d00 00010001. sendto=36 +0.001119 sendto fd=4 addr=172.18.45.6:53 313d0100 00010000 00000000 046e6577 730a696d 61676566 6f72756d 03636f6d 00000100 01. sendto=37 +0.001141 sendto fd=4 addr=172.18.45.6:53 313e0100 00010000 00000000 036e7332 0a696d61 6765666f 72756d02 746d0266 72000001 0001. sendto=38 +0.001115 sendto fd=4 addr=172.18.45.6:53 313f0100 00010000 00000000 046e6577 730a696d 61676566 6f72756d 02746d02 66720000 010001. sendto=39 +0.001383 sendto fd=4 addr=172.18.45.6:53 31400100 00010000 00000000 036e7332 0b6f6f68 2d6c6168 2d6c6168 03636f6d 00000100 01. sendto=37 +0.001190 sendto fd=4 addr=172.18.45.6:53 31410100 00010000 00000000 036e7332 0b616670 73636965 6e636573 03636f6d 00000100 01. sendto=37 +0.001178 sendto fd=4 addr=172.18.45.6:53 31420100 00010000 00000000 036e7332 06616670 646f6303 636f6d00 00010001. sendto=32 +0.001112 sendto fd=4 addr=172.18.45.6:53 31430100 00010000 00000000 036e7332 09616670 2d6e6f74 65730363 6f6d0000 010001. sendto=35 +0.001167 sendto fd=4 addr=172.18.45.6:53 31440100 00010000 00000000 036e7332 0a616670 2d646f6d 696e6f03 636f6d00 00010001. sendto=36 +0.001187 read fd=5 buflen=686 read=EAGAIN +0.000694 sendto fd=4 addr=172.18.45.6:53 31450100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. sendto=43 +0.001333 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8180 00010001 00020002 036e7332 03616670 03636f6d 00000100 01c00c00 01000100 02809800 049e32cc 04034146 5003636f 6d000002 00010001 4d720002 c00cc02d 00020001 00014d72 0006036e 7331c02d c00c0001 00010002 80980004 9e32cc04 c04e0001 00010002 80980004 d0dfa603. +0.000734 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312f8180 00010001 00020002 026e7303 61667003 636f6d00 00010001 c00c0001 00010001 4d720004 9e32cc04 03414650 03636f6d 00000200 0100014d 72000603 6e7332c0 2cc02c00 02000100 014d7200 06036e73 31c02cc0 3f000100 01000280 9800049e 32cc04c0 51000100 01000280 980004d0 dfa603. +0.000768 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31308180 00010001 00020002 046e6577 73036166 7003636f 6d000001 0001c00c 00010001 00013089 00049e32 cc040341 46500363 6f6d0000 02000100 014d7200 06036e73 32c02ec0 2e000200 0100014d 72000603 6e7331c0 2ec04100 01000100 02809800 049e32cc 04c05300 01000100 02809800 04d0dfa6 03. +0.000623 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31318180 00010001 00020002 036e7332 03616670 02667200 00010001 c00c0001 00010001 30850004 9e32cc04 03616670 02667200 00020001 00013085 0002c00c c02c0002 00010001 30850006 036e7331 c02cc00c 00010001 00013085 00049e32 cc04c04c 00010001 00013085 0004d0df a603. +0.000602 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31328180 00010001 00020002 026e7303 61667002 66720000 010001c0 0c000100 01000130 8500049e 32cc0403 61667002 66720000 02000100 01308500 06036e73 32c02bc0 2b000200 01000130 85000603 6e7331c0 2bc03d00 01000100 01308500 049e32cc 04c04f00 01000100 01308500 04d0dfa6 03. +0.000624 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31338180 00010001 00020002 046e6577 73036166 70026672 00000100 01c00c00 01000100 012f4700 049e32cc 04036166 70026672 00000200 01000130 85000603 6e7332c0 2dc02d00 02000100 01308500 06036e73 31c02dc0 3f000100 01000130 8500049e 32cc04c0 51000100 01000130 850004d0 dfa603. +0.000643 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31348180 00010001 00020002 036e7332 12616765 6e636566 72616e63 65707265 73736503 636f6d00 00010001 c00c0001 00010001 30850004 9e32cc04 12616765 6e636566 72616e63 65707265 73736503 636f6d00 00020001 00013085 0002c00c c03c0002 00010001 30850006 036e7331 c03cc00c 00010001 00013085 00049e32 cc04c06c 00010001 00013085 0004d0df a603. +0.000703 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31358180 00010001 00020002 046e6577 73126167 656e6365 6672616e 63657072 65737365 03636f6d 00000100 01c00c00 01000100 01308500 049e32cc 04126167 656e6365 6672616e 63657072 65737365 03636f6d 00000200 01000130 85000603 6e7332c0 3dc03d00 02000100 01308500 06036e73 31c03dc0 5f000100 01000130 8500049e 32cc04c0 71000100 01000130 850004d0 dfa603. +0.000750 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31368180 00010001 00020002 036e7332 12616765 6e636566 72616e63 65707265 73736502 66720000 010001c0 0c000100 01000130 8900049e 32cc0412 6167656e 63656672 616e6365 70726573 73650266 72000002 00010001 30890002 c00cc03b 00020001 00013089 0006036e 7331c03b c00c0001 00010001 30890004 9e32cc04 c06a0001 00010001 30890004 d0dfa603. +0.000708 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31378180 00010001 00020002 046e6577 73126167 656e6365 6672616e 63657072 65737365 02667200 00010001 c00c0001 00010001 30890004 9e32cc04 12616765 6e636566 72616e63 65707265 73736502 66720000 02000100 01308900 06036e73 32c03cc0 3c000200 01000130 89000603 6e7331c0 3cc05d00 01000100 01308900 049e32cc 04c06f00 01000100 01308900 04d0dfa6 03. +0.000739 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31388180 00010001 00020002 036e7332 13616765 6e636566 72616e63 652d7072 65737365 03636f6d 00000100 01c00c00 01000100 014dd900 049e32cc 04136167 656e6365 6672616e 63652d70 72657373 6503636f 6d000002 00010001 4dd90002 c00cc03d 00020001 00014dd9 0006036e 7331c03d c00c0001 00010001 4dd90004 9e32cc04 c06e0001 00010001 4dd90004 d0dfa603. +0.000723 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31398180 00010001 00020002 046e6577 73136167 656e6365 6672616e 63652d70 72657373 6503636f 6d000001 0001c00c 00010001 00014dd9 00049e32 cc041361 67656e63 65667261 6e63652d 70726573 73650363 6f6d0000 02000100 014dd900 06036e73 32c03ec0 3e000200 0100014d d9000603 6e7331c0 3ec06100 01000100 014dd900 049e32cc 04c07300 01000100 014dd900 04d0dfa6 03. +0.000757 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313a8180 00010001 00020002 036e7332 13616765 6e636566 72616e63 652d7072 65737365 02667200 00010001 c00c0001 00010001 30890004 9e32cc04 13616765 6e636566 72616e63 652d7072 65737365 02667200 00020001 00013089 0002c00c c03c0002 00010001 30890006 036e7331 c03cc00c 00010001 00013089 00049e32 cc04c06c 00010001 00013089 0004d0df a603. +0.000721 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313b8180 00010001 00020002 046e6577 73136167 656e6365 6672616e 63652d70 72657373 65026672 00000100 01c00c00 01000100 01308900 049e32cc 04136167 656e6365 6672616e 63652d70 72657373 65026672 00000200 01000130 89000603 6e7332c0 3dc03d00 02000100 01308900 06036e73 31c03dc0 5f000100 01000130 8900049e 32cc04c0 71000100 01000130 890004d0 dfa603. +0.000732 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313c8180 00010001 00020002 036e7332 0a696d61 6765666f 72756d03 636f6d00 00010001 c00c0001 00010001 30890004 9e32cc04 0a696d61 6765666f 72756d03 636f6d00 00020001 00013089 0002c00c c0340002 00010001 30890006 036e7331 c034c00c 00010001 00013089 00049e32 cc04c05c 00010001 00013089 0004d0df a603. +0.000677 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313d8180 00010001 00020002 046e6577 730a696d 61676566 6f72756d 03636f6d 00000100 01c00c00 01000100 01308900 049e32cc 040a696d 61676566 6f72756d 03636f6d 00000200 01000130 89000603 6e7332c0 35c03500 02000100 01308900 06036e73 31c035c0 4f000100 01000130 8900049e 32cc04c0 61000100 01000130 890004d0 dfa603. +0.000673 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313e8180 00010001 00020002 036e7332 0a696d61 6765666f 72756d02 746d0266 72000001 0001c00c 00010001 000280c4 00049e32 cc040a69 6d616765 666f7275 6d02746d 02667200 00020001 000280c4 0002c00c c0360002 00010002 80c40006 036e7331 c036c00c 00010001 000280c4 00049e32 cc04c060 00010001 000280c4 0004d0df a603. +0.000687 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313f8180 00010001 00020002 046e6577 730a696d 61676566 6f72756d 02746d02 66720000 010001c0 0c000100 0100012f 4500049e 32cc040a 696d6167 65666f72 756d0274 6d026672 00000200 01000280 c4000603 6e7332c0 37c03700 02000100 0280c400 06036e73 31c037c0 53000100 01000280 c400049e 32cc04c0 65000100 01000280 c40004d0 dfa603. +0.000685 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31408180 00010001 00020002 036e7332 0b6f6f68 2d6c6168 2d6c6168 03636f6d 00000100 01c00c00 01000100 014dd900 049e32cc 040b6f6f 682d6c61 682d6c61 6803636f 6d000002 00010001 4dd90002 c00cc035 00020001 00014dd9 0006036e 7331c035 c00c0001 00010001 4dd90004 9e32cc04 c05e0001 00010001 4dd90004 d0dfa603. +0.000664 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31418180 00010000 00010000 036e7332 0b616670 73636965 6e636573 03636f6d 00000100 010b6166 70736369 656e6365 7303636f 6d000006 00010000 0148002c 03646e73 08766963 746f6972 65026672 0004726f 6f74c044 77276589 00007080 00001c20 004f1a00 00015180. +0.000607 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31428180 00010000 00010000 036e7332 06616670 646f6303 636f6d00 00010001 06616670 646f6303 636f6d00 00060001 00000148 002c0364 6e730876 6963746f 69726502 66720004 726f6f74 c03a7727 65890000 70800000 1c20004f 1a000001 5180. +0.001536 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31438180 00010001 00020002 036e7332 09616670 2d6e6f74 65730363 6f6d0000 010001c0 0c000100 01000130 8900049e 32cc0409 6166702d 6e6f7465 7303636f 6d000002 00010001 30890002 c00cc033 00020001 00013089 0006036e 7331c033 c00c0001 00010001 30890004 9e32cc04 c05a0001 00010001 30890004 d0dfa603. +0.000601 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31448180 00010001 00020002 036e7332 0a616670 2d646f6d 696e6f03 636f6d00 00010001 c00c0001 00010001 30890004 9e32cc04 0a616670 2d646f6d 696e6f03 636f6d00 00020001 00013089 0002c00c c0340002 00010001 30890006 036e7331 c034c00c 00010001 00013089 00049e32 cc04c05c 00010001 00013089 0004d0df a603. +0.000629 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31458180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. +0.000317 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000001 read fd=5 buflen=686 read=EAGAIN +0.000115 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.920609 select=1 rfds=[4] wfds=[] efds=[] +1.-754319 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 050001. +0.000252 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000127 close fd=4 close=OK +0.000208 close fd=5 close=OK +0.000001 adns-1.5.0~rc1/regress/case-tcpblockwr.out0000664000175000017500000002145212421042025016632 0ustar ianianadns debug: using nameserver 172.18.45.2 test.iwj.relativity.greenend.org.uk. flags 2 type 1 A(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 2 NS(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 5 CNAME(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 6 SOA(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 12 PTR(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 13 HINFO(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 15 MX(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 16 TXT(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 17 RP(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65537 A(addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65538 NS(+addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65548 PTR(checked) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65551 MX(+addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 131078 SOA(822) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 131089 RP(822) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 1 A(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 2 NS(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 5 CNAME(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 6 SOA(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 12 PTR(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 13 HINFO(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 15 MX(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 16 TXT(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 17 RP(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65537 A(addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65538 NS(+addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65548 PTR(checked) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65551 MX(+addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 131078 SOA(822) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 131089 RP(822) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 1 A(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 2 NS(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 5 CNAME(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 6 SOA(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 12 PTR(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 13 HINFO(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 15 MX(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 16 TXT(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 17 RP(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65537 A(addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65538 NS(+addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65548 PTR(checked) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65551 MX(+addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 131078 SOA(822) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 131089 RP(822) submitted test.iwj.relativity.greenend.org.uk. flags 2 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 adns debug: TCP connected (NS=172.18.45.2) test.iwj.relativity.greenend.org.uk. flags 2 type A(-): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type NS(raw): OK; nrrs=1; cname=$; owner=$; ttl=59 ns0.relativity.greenend.org.uk test.iwj.relativity.greenend.org.uk. flags 2 type CNAME(-): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type SOA(raw): OK; nrrs=1; cname=$; owner=$; ttl=59 ns0.relativity.greenend.org.uk hostmaster.relativity.greenend.org.uk 42 3600 120 6604800 60 test.iwj.relativity.greenend.org.uk. flags 2 type PTR(raw): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type HINFO(-): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type MX(raw): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type TXT(-): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type NS(+addr): OK; nrrs=1; cname=$; owner=$; ttl=59 ns0.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.6 ) test.iwj.relativity.greenend.org.uk. flags 2 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=59 ns0.relativity.greenend.org.uk hostmaster@relativity.greenend.org.uk 42 3600 120 6604800 60 test.iwj.relativity.greenend.org.uk. flags 2 type RP(822): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type A(-): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type NS(raw): OK; nrrs=1; cname=$; owner=$; ttl=59 ns0.relativity.greenend.org.uk test.iwj.relativity.greenend.org.uk. flags 2 type CNAME(-): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type SOA(raw): OK; nrrs=1; cname=$; owner=$; ttl=59 ns0.relativity.greenend.org.uk hostmaster.relativity.greenend.org.uk 42 3600 120 6604800 60 test.iwj.relativity.greenend.org.uk. flags 2 type PTR(raw): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type HINFO(-): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type MX(raw): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type TXT(-): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type NS(+addr): OK; nrrs=1; cname=$; owner=$; ttl=59 ns0.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.6 ) test.iwj.relativity.greenend.org.uk. flags 2 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=59 ns0.relativity.greenend.org.uk hostmaster@relativity.greenend.org.uk 42 3600 120 6604800 60 test.iwj.relativity.greenend.org.uk. flags 2 type RP(822): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type A(-): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type NS(raw): OK; nrrs=1; cname=$; owner=$; ttl=59 ns0.relativity.greenend.org.uk test.iwj.relativity.greenend.org.uk. flags 2 type CNAME(-): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type SOA(raw): OK; nrrs=1; cname=$; owner=$; ttl=59 ns0.relativity.greenend.org.uk hostmaster.relativity.greenend.org.uk 42 3600 120 6604800 60 test.iwj.relativity.greenend.org.uk. flags 2 type PTR(raw): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type HINFO(-): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type MX(raw): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type TXT(-): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type NS(+addr): OK; nrrs=1; cname=$; owner=$; ttl=59 ns0.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.6 ) test.iwj.relativity.greenend.org.uk. flags 2 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=59 ns0.relativity.greenend.org.uk hostmaster@relativity.greenend.org.uk 42 3600 120 6604800 60 test.iwj.relativity.greenend.org.uk. flags 2 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=59 test.iwj.relativity.greenend.org.uk. flags 2 type RP(822): No such data; nrrs=0; cname=$; owner=$; ttl=60 rc=0 adns-1.5.0~rc1/regress/case-longdomsrch0.out0000664000175000017500000000122212421042025017050 0ustar ianianadns debug: using nameserver 172.18.45.6 10rndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk flags 1 type 1 A(-) submitted 10rndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk flags 1 type A(-): No such domain; nrrs=0; cname=$; owner=$; ttl=604800 rc=0 adns-1.5.0~rc1/regress/case-dh-ptr-aaaa.out0000664000175000017500000000016012421042025016530 0ustar ianian4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa PTR stratocaster.distorted.org.uk rc=0 adns-1.5.0~rc1/regress/case-alr-norm.out0000664000175000017500000000264012421042025016205 0ustar ianiansfere.relativity.greenend.org.uk - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/main/source/Release HTTP/1.0" 304 - localhost - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/contrib/source/Sources.gz HTTP/1.0" 304 - 172.30.206.14 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/contrib/source/Release HTTP/1.0" 304 - localhost - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/non-free/source/Sources.gz HTTP/1.0" 304 - 172.18.45.3 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/non-free/source/Release HTTP/1.0" 304 - sfere.relativity.greenend.org.uk - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79-3potato1.dsc HTTP/1.0" 200 604 kadath.relativity.greenend.org.uk - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79.orig.tar.gz HTTP/1.0" 200 34886 sfere.relativity.greenend.org.uk - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79.orig.tar.gz HTTP/1.0" 200 34886 sfere.relativity.greenend.org.uk - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79-3potato1.diff.gz HTTP/1.0" 200 7962 davenant.relativity.greenend.org.uk - - [16/Sep/2000:18:35:15 +0100] "GET / HTTP/1.0" 304 - rc=0 adns-1.5.0~rc1/regress/case-unknown33.out0000664000175000017500000000012412421042025016316 0ustar ianian_jabber._tcp.jabber.org TYPE33 \# 18 001e001e 1495066a 61626265 72036f72 67 00 rc=0 adns-1.5.0~rc1/regress/case-abbrevto.out0000664000175000017500000000433312421042026016264 0ustar ianianadns debug: using nameserver 172.18.45.36 greenend.org.uk flags 0 type 1 A(-) submitted greenend.org.uk flags 0 type 2 NS(raw) submitted greenend.org.uk flags 0 type 5 CNAME(-) submitted greenend.org.uk flags 0 type 6 SOA(raw) submitted greenend.org.uk flags 0 type 12 PTR(raw) submitted greenend.org.uk flags 0 type 13 HINFO(-) submitted greenend.org.uk flags 0 type 15 MX(raw) submitted greenend.org.uk flags 0 type 16 TXT(-) submitted greenend.org.uk flags 0 type 17 RP(raw) submitted greenend.org.uk flags 0 type 65537 A(addr) submitted greenend.org.uk flags 0 type 65538 NS(+addr) submitted greenend.org.uk flags 0 type 65548 PTR(checked) submitted greenend.org.uk flags 0 type 65551 MX(+addr) submitted greenend.org.uk flags 0 type 131078 SOA(822) submitted greenend.org.uk flags 0 type 131089 RP(822) submitted greenend.org.uk flags 0 type PTR(checked) ownflags=a: querydomainwrong; nrrs=0; cname=$; owner=$; ttl=604800 greenend.org.uk flags 0 type A(-) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type NS(raw) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type CNAME(-) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type SOA(raw) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type PTR(raw) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type HINFO(-) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type MX(raw) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type TXT(-) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type RP(raw) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type NS(+addr) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type MX(+addr) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type SOA(822) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type RP(822) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 greenend.org.uk flags 0 type A(addr) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770 rc=0 adns-1.5.0~rc1/regress/case-tcpblock.err0000664000175000017500000000000012421042026016225 0ustar ianianadns-1.5.0~rc1/regress/case-bogus-sortlist.sys0000664000175000017500000000007012422540543017471 0ustar ianian./adnstest bogus-sortlist :0x0|1 chiark.greenend.org.uk adns-1.5.0~rc1/regress/case-manya.err0000664000175000017500000000000012421042026015531 0ustar ianianadns-1.5.0~rc1/regress/case-2ndservok.out0000664000175000017500000000040612421042026016372 0ustar ianianadns debug: using nameserver 172.18.45.36 adns debug: using nameserver 172.18.45.6 davenant.relativity.greenend.org.uk flags 0 type 1 A(-) submitted davenant.relativity.greenend.org.uk flags 0 type A(-): OK; nrrs=1; cname=$; owner=$; ttl=86400 172.18.45.6 rc=0 adns-1.5.0~rc1/regress/case-manyptrwrongrst.sys0000664000175000017500000013672412422510661020007 0ustar ianianadnstest default -0x400 292/254.0.99.203.in-addr.arpa start 933289772.727140 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000265 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000089 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000067 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 010001. sendto=43 +0.004394 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 020001. sendto=43 +0.003204 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 050001. sendto=43 +0.003203 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 060001. sendto=43 +0.003315 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.003207 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0d0001. sendto=43 +0.003263 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.003208 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 100001. sendto=43 +0.003221 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 110001. sendto=43 +0.003221 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 010001. sendto=43 +0.003315 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 020001. sendto=43 +0.003215 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.003247 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.003252 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 060001. sendto=43 +0.003368 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 110001. sendto=43 +0.003230 select max=5 rfds=[4] wfds=[] efds=[] to=1.950137 select=1 rfds=[4] wfds=[] efds=[] +2.-643984 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 01000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 00a2002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.001188 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000472 select max=5 rfds=[4] wfds=[] efds=[] to=0.596855 select=1 rfds=[4] wfds=[] efds=[] +0.176497 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 02000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000885 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000392 select max=5 rfds=[4] wfds=[] efds=[] to=0.422285 select=1 rfds=[4] wfds=[] efds=[] +0.049249 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 05000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.001133 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000450 select max=5 rfds=[4] wfds=[] efds=[] to=0.374656 select=1 rfds=[4] wfds=[] efds=[] +0.026086 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0d000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000914 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000411 select max=5 rfds=[4] wfds=[] efds=[] to=0.347245 select=1 rfds=[4] wfds=[] efds=[] +0.041288 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 01000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 00a2002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000882 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000437 select max=5 rfds=[4] wfds=[] efds=[] to=0.304638 select=1 rfds=[4] wfds=[] efds=[] +0.035548 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 10000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 00a2002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.001120 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000442 select max=5 rfds=[4] wfds=[] efds=[] to=0.267528 select=1 rfds=[4] wfds=[] efds=[] +0.038130 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 06000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.001107 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000697 select max=5 rfds=[4] wfds=[] efds=[] to=0.230909 select=1 rfds=[4] wfds=[] efds=[] +0.088915 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000881 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000428 select max=5 rfds=[4] wfds=[] efds=[] to=0.140685 select=0 rfds=[] wfds=[] efds=[] +0.149669 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.002605 select max=5 rfds=[4] wfds=[] efds=[] to=0.001310 select=0 rfds=[] wfds=[] efds=[] +0.007369 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 110001. sendto=43 +0.002868 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 020001. sendto=43 +0.002427 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.004373 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.002425 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.002419 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=1 rfds=[4] wfds=[] efds=[] +0.005328 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 060001. sendto=43 +0.002641 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 110001. sendto=43 +0.000001 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 02000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 0258002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000001 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 02000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 0258002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000001 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.002664 select max=5 rfds=[4] wfds=[] efds=[] to=1.964877 select=1 rfds=[4] wfds=[] efds=[] +0.003669 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 0258002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000882 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 06000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 0258002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.003257 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000436 select max=5 rfds=[4] wfds=[] efds=[] to=1.956633 select=1 rfds=[4] wfds=[] efds=[] +0.015305 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 0258002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.001159 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000349 select max=5 rfds=[4] wfds=[] efds=[] to=1.939820 select=1 rfds=[4] wfds=[] efds=[] +0.038251 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 06000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 0258002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000880 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000323 select max=5 rfds=[4] wfds=[] efds=[] to=1.900366 select=1 rfds=[4] wfds=[] efds=[] +0.039069 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 11000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000881 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000448 select max=5 rfds=[4] wfds=[] efds=[] to=1.859968 select=1 rfds=[4] wfds=[] efds=[] +1.-420413 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 11000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 0257002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000922 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000399 select max=5 rfds=[4] wfds=[] efds=[] to=1.279060 select=1 rfds=[4] wfds=[] efds=[] +1.176624 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 11000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 0256002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000917 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000466 select max=5 rfds=[4] wfds=[] efds=[] to=0.101053 select=0 rfds=[] wfds=[] efds=[] +0.100567 select max=5 rfds=[4] wfds=[] efds=[] to=0.000486 select=0 rfds=[] wfds=[] efds=[] +0.009988 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.001186 select max=5 rfds=[4] wfds=[] efds=[] to=0.008955 select=0 rfds=[] wfds=[] efds=[] +0.008816 select max=5 rfds=[4] wfds=[] efds=[] to=0.000139 select=0 rfds=[] wfds=[] efds=[] +0.009991 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.001137 select max=5 rfds=[4] wfds=[] efds=[] to=1.978870 select=1 rfds=[4] wfds=[] efds=[] +2.-569657 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238380 00010013 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 0100004e cb001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 00004ecb 00080574 65747261 c043c00c 000c0001 00004ecb 000d046d 61696c05 61676174 65c043c0 0c000c00 0100004e cb000502 6e73c06f c00c000c 00010000 4ecb0013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 0100004e cb001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 0100004e cb001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 004ecb00 0a07626f 75717565 74c043c0 0c000c00 0100004e cb00100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 0100004e cb000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 00004ecb 000c046d 61696c04 6e657275 c043c00c 000c0001 00004ecb 0002c03a c00c000c 00010000 4ecb0010 026e730a 73746f72 65776174 6368c043 c00c000c 00010000 4ecb0002 c0d2c00c 000c0001 00004ecb 0005026e 73c056c0 0c000c00 0100004e cb000704 6d61696c c056c00c 000c0001 00004ecb 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 00004ecb 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 004ecb00 06036263 63c043. +0.003463 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.001488 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000076 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000067 connect fd=5 addr=172.18.45.6:53 connect=EINPROGRESS +0.000978 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000143 select max=6 rfds=[4] wfds=[5] efds=[] to=0.562305 select=1 rfds=[] wfds=[5] efds=[] +0.001347 read fd=5 buflen=1 read=EAGAIN +0.000274 write fd=5 002b3123 01000001 00000000 00000332 35340130 02393903 32303307 696e2d61 64647204 61727061 00000c00 01. write=45 +0.001176 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.559508 select=0 rfds=[] wfds=[] efds=[] +0.559030 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.000478 select=0 rfds=[] wfds=[] efds=[] +0.010029 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.001273 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.998727 select=1 rfds=[4] wfds=[] efds=[] +0.140762 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8380 00010013 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 0100004e ca001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 00004eca 00080574 65747261 c043c00c 000c0001 00004eca 000d046d 61696c05 61676174 65c043c0 0c000c00 0100004e ca000502 6e73c06f c00c000c 00010000 4eca0013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 0100004e ca001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 0100004e ca001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 004eca00 0a07626f 75717565 74c043c0 0c000c00 0100004e ca00100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 0100004e ca000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 00004eca 000c046d 61696c04 6e657275 c043c00c 000c0001 00004eca 0002c03a c00c000c 00010000 4eca0010 026e730a 73746f72 65776174 6368c043 c00c000c 00010000 4eca0002 c0d2c00c 000c0001 00004eca 0005026e 73c056c0 0c000c00 0100004e ca000704 6d61696c c056c00c 000c0001 00004eca 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 00004eca 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 004eca00 06036263 63c043. +0.003063 write fd=5 002b312b 01000001 00000000 00000332 35340130 02393903 32303307 696e2d61 64647204 61727061 00000c00 01. write=45 +0.001448 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000169 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.275214 select=1 rfds=[4] wfds=[] efds=[] +1.-921124 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8380 00010013 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 0100004e ca001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 00004eca 00080574 65747261 c043c00c 000c0001 00004eca 000d046d 61696c05 61676174 65c043c0 0c000c00 0100004e ca000502 6e73c06f c00c000c 00010000 4eca0013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 0100004e ca001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 0100004e ca001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 004eca00 0a07626f 75717565 74c043c0 0c000c00 0100004e ca00100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 0100004e ca000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 00004eca 000c046d 61696c04 6e657275 c043c00c 000c0001 00004eca 0002c03a c00c000c 00010000 4eca0010 026e730a 73746f72 65776174 6368c043 c00c000c 00010000 4eca0002 c0d2c00c 000c0001 00004eca 0005026e 73c056c0 0c000c00 0100004e ca000704 6d61696c c056c00c 000c0001 00004eca 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 00004eca 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 004eca00 06036263 63c043. +0.003054 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000483 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.192801 select=1 rfds=[5] wfds=[] efds=[] +0.817055 read fd=5 buflen=2 read=OK 096f. +0.000391 read fd=5 buflen=2415 read=OK 31238180 0001005e 00020001 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 0100004e c9001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 00004ec9 00080574 65747261 c043c00c 000c0001 00004ec9 000d046d 61696c05 61676174 65c043c0 0c000c00 0100004e c9000502 6e73c06f c00c000c 00010000 4ec90013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 0100004e c9001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 0100004e c9001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 004ec900 0a07626f 75717565 74c043c0 0c000c00 0100004e c900100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 0100004e c9000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 00004ec9 000c046d 61696c04 6e657275 c043c00c 000c0001 00004ec9 0002c03a c00c000c 00010000 4ec90010 026e730a 73746f72 65776174 6368c043 c00c000c 00010000 4ec90002 c0d2c00c 000c0001 00004ec9 0005026e 73c056c0 0c000c00 0100004e c9000704 6d61696c c056c00c 000c0001 00004ec9 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 00004ec9 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 004ec900 06036263 63c043c0 0c000c00 0100004e c9000b08 73656375 72697479 c128c00c 000c0001 00004ec9 00100d62 7572676c 6172616c 61726d73 c043c00c 000c0001 00004ec9 000b026e 73057361 666573c0 43c00c00 0c000100 004ec900 05026e73 c1f7c00c 000c0001 00004ec9 00131063 6f757065 72636f6e 73756c74 696e67c0 43c00c00 0c000100 004ec900 110e7365 63757269 74796775 61726473 c043c00c 000c0001 00004ec9 000c026e 73066775 61726473 c043c00c 000c0001 00004ec9 00070461 736973c1 28c00c00 0c000100 004ec900 02c13fc0 0c000c00 0100004e c90002c0 b6c00c00 0c000100 004ec900 08056d61 676963c0 43c00c00 0c000100 004ec900 07046d61 696cc1e5 c00c000c 00010000 4ec90005 026e73c1 03c00c00 0c000100 004ec900 02c122c0 0c000c00 0100004e c9000502 6e73c0ed c00c000c 00010000 4ec90007 046d6169 6cc22dc0 0c000c00 0100004e c9000502 6e73c1e5 c00c000c 00010000 4ec90005 026e73c2 0ec00c00 0c000100 004ec900 05026e73 c271c00c 000c0001 00004ec9 00100d63 6f766572 7463616d 65726173 c043c00c 000c0001 00004ec9 0005026e 73c13fc0 0c000c00 0100004e c9001302 6e730d63 6f766572 7463616d 65726173 c043c00c 000c0001 00004ec9 000b0862 6f757175 657473c0 43c00c00 0c000100 004ec900 0d0a636f 6e63656e 74726963 c043c00c 000c0001 00004ec9 0005026e 73c094c0 0c000c00 0100004e c9000704 6d61696c c252c00c 000c0001 00004ec9 00110e72 65746169 6c736563 75726974 79c043c0 0c000c00 0100004e c9001002 6e730a63 6f6e6365 6e747269 63c043c0 0c000c00 0100004e c9000d04 6d61696c 056d6167 6963c043 c00c000c 00010000 4ec9000c 096e7a61 6e676c69 6e67c043 c00c000c 00010000 4ec90005 026e73c2 52c00c00 0c000100 004ec900 0f026e73 096e7a61 6e676c69 6e67c043 c00c000c 00010000 4ec90007 046d6169 6cc163c0 0c000c00 0100004e c9000805 73776966 74c043c0 0c000c00 0100004e c9001104 6d61696c 0973656c 65637469 7665c043 c00c000c 00010000 4ec9000f 026e7309 666f7265 66726f6e 74c043c0 0c000c00 0100004e c9001104 6d61696c 096e7a61 6e676c69 6e67c043 c00c000c 00010000 4ec90009 06677561 726473c0 43c00c00 0c000100 004ec900 11046d61 696c096e 7a646573 69676e73 c043c00c 000c0001 00004ec9 0002c163 c00c000c 00010000 4ec90018 026e7312 73656375 72697479 6d616e61 67656d65 6e74c043 c00c000c 00010000 4ec90012 046d6169 6c0a776f 6f6c776f 72746873 c043c00c 000c0001 00004ec9 0012046d 61696c0a 636f6e63 656e. +0.010287 read fd=5 buflen=957 read=OK 74726963 c043c00c 000c0001 00004ec9 000c0973 656c6563 74697665 c043c00c 000c0001 00004ec9 00181573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 00004ec9 000b026e 73057377 696674c0 43c00c00 0c000100 004ec900 0d046d61 696c0573 77696674 c043c00c 000c0001 00004ec9 0013026e 73097365 63757265 6e657403 6e6574c0 46c00c00 0c000100 004ec900 17147072 69766174 65696e76 65737469 67617469 6f6ec043 c00c000c 00010000 4ec9001a 026e7314 70726976 61746569 6e766573 74696761 74696f6e c043c00c 000c0001 00004ec9 00090665 74726164 65c043c0 0c000c00 0100004e c9001b02 6e731573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 00004ec9 000e046d 61696c06 616e7365 7474c043 c00c000c 00010000 4ec9000e 03667470 07776172 72656e74 c043c00c 000c0001 00004ec9 0014026e 730e7265 7461696c 73656375 72697479 c043c00c 000c0001 00004ec9 001a046d 61696c12 73656375 72697479 6d616e61 67656d65 6e74c043 c00c000c 00010000 4ec9000b 026e7305 6d616769 63c043c0 0c000c00 0100004e c9001104 6d61696c 09666f72 6566726f 6e74c043 c00c000c 00010000 4ec90007 046d6169 6cc1b1c0 0c000c00 0100004e c90002c1 b1c00c00 0c000100 004ec900 0f026e73 096e7a64 65736967 6e73c043 c00c000c 00010000 4ec90002 c22dc00c 000c0001 00004ec9 000f026e 73097365 6c656374 697665c0 43c00c00 0c000100 004ec900 0c09666f 72656672 6f6e74c0 43c00c00 0c000100 004ec900 15127365 63757269 74796d61 6e616765 6d656e74 c043c00c 000c0001 00004ec9 0002c1cd c00c000c 00010000 4ec90010 09736563 7572656e 6574036e 6574c046 c00c000c 00010000 4ec9001d 046d6169 6c157370 65636961 6c696e76 65737469 67617469 6f6e73c0 43c00c00 0c000100 004ec900 0c096e7a 64657369 676e73c0 43c00c00 0c000100 004ec900 0c026e73 06657472 616465c0 43c00c00 0c000100 004ec900 07046d61 696cc122 c00c000c 00010000 4ec90007 046d6169 6cc1cdc0 0c000c00 0100004e c9000a02 6e730461 736973c1 28c00c00 0c000100 004ec900 0e026e73 08626f75 71756574 73c043c0 0c000c00 0100004e c90002c0 6f013002 39390332 30330769 6e2d6164 64720461 72706100 00020001 000545fc 0002c037 01300239 39033230 3307696e 2d616464 72046172 70610000 02000100 0545fc00 11036e73 31077761 696b6174 6f026163 c046036e 73310777 61696b61 746f0261 63c04600 01000100 02a30000 048cc880 0d. +0.005913 read fd=5 buflen=2417 read=EAGAIN +0.019409 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.059852 select=1 rfds=[5] wfds=[] efds=[] +0.028945 read fd=5 buflen=2417 read=OK 096f312b 81800001 005e0002 00010332 35340130 02393903 32303307 696e2d61 64647204 61727061 00000c00 01c00c00 0c000100 004ec900 13026e73 08736563 75726974 7902636f 026e7a00 c00c000c 00010000 4ec90008 05746574 7261c043 c00c000c 00010000 4ec9000d 046d6169 6c056167 617465c0 43c00c00 0c000100 004ec900 05026e73 c06fc00c 000c0001 00004ec9 00131073 65637572 69747974 7261696e 696e67c0 43c00c00 0c000100 004ec900 10026e73 0a676966 74626173 6b6574c0 43c00c00 0c000100 004ec900 12026e73 08736563 75726974 79036765 6ec046c0 0c000c00 0100004e c9000a07 626f7571 756574c0 43c00c00 0c000100 004ec900 100d696e 76657374 69676174 696f6ec0 43c00c00 0c000100 004ec900 0f026e73 056e7a69 7069036f 7267c046 c00c000c 00010000 4ec9000c 046d6169 6c046e65 7275c043 c00c000c 00010000 4ec90002 c03ac00c 000c0001 00004ec9 0010026e 730a7374 6f726577 61746368 c043c00c 000c0001 00004ec9 0002c0d2 c00c000c 00010000 4ec90005 026e73c0 56c00c00 0c000100 004ec900 07046d61 696cc056 c00c000c 00010000 4ec90010 026e730a 73656375 72696361 7264c043 c00c000c 00010000 4ec9000f 026e7309 756e6465 72686f75 72c043c0 0c000c00 0100004e c9000603 626363c0 43c00c00 0c000100 004ec900 0b087365 63757269 7479c128 c00c000c 00010000 4ec90010 0d627572 676c6172 616c6172 6d73c043 c00c000c 00010000 4ec9000b 026e7305 73616665 73c043c0 0c000c00 0100004e c9000502 6e73c1f7 c00c000c 00010000 4ec90013 10636f75 70657263 6f6e7375 6c74696e 67c043c0 0c000c00 0100004e c900110e 73656375 72697479 67756172 6473c043 c00c000c 00010000 4ec9000c 026e7306 67756172 6473c043 c00c000c 00010000 4ec90007 04617369 73c128c0 0c000c00 0100004e c90002c1 3fc00c00 0c000100 004ec900 02c0b6c0 0c000c00 0100004e c9000805 6d616769 63c043c0 0c000c00 0100004e c9000704 6d61696c c1e5c00c 000c0001 00004ec9 0005026e 73c103c0 0c000c00 0100004e c90002c1 22c00c00 0c000100 004ec900 05026e73 c0edc00c 000c0001 00004ec9 0007046d 61696cc2 2dc00c00 0c000100 004ec900 05026e73 c1e5c00c 000c0001 00004ec9 0005026e 73c20ec0 0c000c00 0100004e c9000502 6e73c271 c00c000c 00010000 4ec90010 0d636f76 65727463 616d6572 6173c043 c00c000c 00010000 4ec90005 026e73c1 3fc00c00 0c000100 004ec900 13026e73 0d636f76 65727463 616d6572 6173c043 c00c000c 00010000 4ec9000b 08626f75 71756574 73c043c0 0c000c00 0100004e c9000d0a 636f6e63 656e7472 6963c043 c00c000c 00010000 4ec90005 026e73c0 94c00c00 0c000100 004ec900 07046d61 696cc252 c00c000c 00010000 4ec90011 0e726574 61696c73 65637572 697479c0 43c00c00 0c000100 004ec900 10026e73 0a636f6e 63656e74 726963c0 43c00c00 0c000100 004ec900 0d046d61 696c056d 61676963 c043c00c 000c0001 00004ec9 000c096e 7a616e67 6c696e67 c043c00c 000c0001 00004ec9 0005026e 73c252c0 0c000c00 0100004e c9000f02 6e73096e 7a616e67 6c696e67 c043c00c 000c0001 00004ec9 0007046d 61696cc1 63c00c00 0c000100 004ec900 08057377 696674c0 43c00c00 0c000100 004ec900 11046d61 696c0973 656c6563 74697665 c043c00c 000c0001 00004ec9 000f026e 7309666f 72656672 6f6e74c0 43c00c00 0c000100 004ec900 11046d61 696c096e 7a616e67 6c696e67 c043c00c 000c0001 00004ec9 00090667 75617264 73c043c0 0c000c00 0100004e c9001104 6d61696c 096e7a64 65736967 6e73c043 c00c000c 00010000 4ec90002 c163c00c 000c0001 00004ec9 0018026e 73127365 63757269 74796d61 6e616765 6d656e74 c043c00c 000c0001 00004ec9 0012046d 61696c0a 776f6f6c 776f7274 6873c043 c00c000c 00010000 4ec90012 046d6169 6c0a636f 6e63656e. +0.008722 read fd=5 buflen=957 read=EAGAIN +0.000264 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.021921 select=1 rfds=[5] wfds=[] efds=[] +0.063001 read fd=5 buflen=957 read=OK 74726963 c043c00c 000c0001 00004ec9 000c0973 656c6563 74697665 c043c00c 000c0001 00004ec9 00181573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 00004ec9 000b026e 73057377 696674c0 43c00c00 0c000100 004ec900 0d046d61 696c0573 77696674 c043c00c 000c0001 00004ec9 0013026e 73097365 63757265 6e657403 6e6574c0 46c00c00 0c000100 004ec900 17147072 69766174 65696e76 65737469 67617469 6f6ec043 c00c000c 00010000 4ec9001a 026e7314 70726976 61746569 6e766573 74696761 74696f6e c043c00c 000c0001 00004ec9 00090665 74726164 65c043c0 0c000c00 0100004e c9001b02 6e731573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 00004ec9 000e046d 61696c06 616e7365 7474c043 c00c000c 00010000 4ec9000e 03667470 07776172 72656e74 c043c00c 000c0001 00004ec9 0014026e 730e7265 7461696c 73656375 72697479 c043c00c 000c0001 00004ec9 001a046d 61696c12 73656375 72697479 6d616e61 67656d65 6e74c043 c00c000c 00010000 4ec9000b 026e7305 6d616769 63c043c0 0c000c00 0100004e c9001104 6d61696c 09666f72 6566726f 6e74c043 c00c000c 00010000 4ec90007 046d6169 6cc1b1c0 0c000c00 0100004e c90002c1 b1c00c00 0c000100 004ec900 0f026e73 096e7a64 65736967 6e73c043 c00c000c 00010000 4ec90002 c22dc00c 000c0001 00004ec9 000f026e 73097365 6c656374 697665c0 43c00c00 0c000100 004ec900 0c09666f 72656672 6f6e74c0 43c00c00 0c000100 004ec900 15127365 63757269 74796d61 6e616765 6d656e74 c043c00c 000c0001 00004ec9 0002c1cd c00c000c 00010000 4ec90010 09736563 7572656e 6574036e 6574c046 c00c000c 00010000 4ec9001d 046d6169 6c157370 65636961 6c696e76 65737469 67617469 6f6e73c0 43c00c00 0c000100 004ec900 0c096e7a 64657369 676e73c0 43c00c00 0c000100 004ec900 0c026e73 06657472 616465c0 43c00c00 0c000100 004ec900 07046d61 696cc122 c00c000c 00010000 4ec90007 046d6169 6cc1cdc0 0c000c00 0100004e c9000a02 6e730461 736973c1 28c00c00 0c000100 004ec900 0e026e73 08626f75 71756574 73c043c0 0c000c00 0100004e c90002c0 6f013002 39390332 30330769 6e2d6164 64720461 72706100 00020001 000545fc 0002c037 01300239 39033230 3307696e 2d616464 72046172 70610000 02000100 0545fc00 11036e73 31077761 696b6174 6f026163 c046036e 73310777 61696b61 746f0261 63c04600 01000100 02a30000 048cc880 0d. +0.005816 sendto fd=4 addr=172.18.45.6:53 312f0100 00010000 00000000 026e7308 73656375 72697479 02636f02 6e7a0000 010001. sendto=35 +0.002957 sendto fd=4 addr=172.18.45.6:53 31300100 00010000 00000000 05746574 72610263 6f026e7a 00000100 01. sendto=29 +0.001178 sendto fd=4 addr=172.18.45.6:53 31310100 00010000 00000000 046d6169 6c056167 61746502 636f026e 7a000001 0001. sendto=34 +0.001193 sendto fd=4 addr=172.18.45.6:53 31320100 00010000 00000000 026e7305 61676174 6502636f 026e7a00 00010001. sendto=32 +0.001166 sendto fd=4 addr=172.18.45.6:53 31330100 00010000 00000000 10736563 75726974 79747261 696e696e 6702636f 026e7a00 00010001. sendto=40 +0.001265 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 026e730a 67696674 6261736b 65740263 6f026e7a 00000100 01. sendto=37 +0.001219 sendto fd=4 addr=172.18.45.6:53 31350100 00010000 00000000 026e7308 73656375 72697479 0367656e 026e7a00 00010001. sendto=36 +0.001212 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 07626f75 71756574 02636f02 6e7a0000 010001. sendto=31 +0.001210 sendto fd=4 addr=172.18.45.6:53 31370100 00010000 00000000 0d696e76 65737469 67617469 6f6e0263 6f026e7a 00000100 01. sendto=37 +0.001220 sendto fd=4 addr=172.18.45.6:53 31380100 00010000 00000000 026e7305 6e7a6970 69036f72 67026e7a 00000100 01. sendto=33 +0.001203 sendto fd=4 addr=172.18.45.6:53 31390100 00010000 00000000 046d6169 6c046e65 72750263 6f026e7a 00000100 01. sendto=33 +0.001223 sendto fd=4 addr=172.18.45.6:53 313a0100 00010000 00000000 08736563 75726974 7902636f 026e7a00 00010001. sendto=32 +0.001251 sendto fd=4 addr=172.18.45.6:53 313b0100 00010000 00000000 026e730a 73746f72 65776174 63680263 6f026e7a 00000100 01. sendto=37 +0.001242 sendto fd=4 addr=172.18.45.6:53 313c0100 00010000 00000000 08736563 75726974 79036765 6e026e7a 00000100 01. sendto=33 +0.001165 sendto fd=4 addr=172.18.45.6:53 313d0100 00010000 00000000 026e7305 74657472 6102636f 026e7a00 00010001. sendto=32 +0.001208 sendto fd=4 addr=172.18.45.6:53 313e0100 00010000 00000000 046d6169 6c057465 74726102 636f026e 7a000001 0001. sendto=34 +0.001212 sendto fd=4 addr=172.18.45.6:53 313f0100 00010000 00000000 026e730a 73656375 72696361 72640263 6f026e7a 00000100 01. sendto=37 +1.-998781 sendto fd=4 addr=172.18.45.6:53 31400100 00010000 00000000 026e7309 756e6465 72686f75 7202636f 026e7a00 00010001. sendto=36 +0.001202 sendto fd=4 addr=172.18.45.6:53 31410100 00010000 00000000 03626363 02636f02 6e7a0000 010001. sendto=27 +0.001186 sendto fd=4 addr=172.18.45.6:53 31420100 00010000 00000000 08736563 75726974 79036f72 67026e7a 00000100 01. sendto=33 +0.001192 sendto fd=4 addr=172.18.45.6:53 31430100 00010000 00000000 0d627572 676c6172 616c6172 6d730263 6f026e7a 00000100 01. sendto=37 +0.001520 sendto fd=4 addr=172.18.45.6:53 31440100 00010000 00000000 026e7305 73616665 7302636f 026e7a00 00010001. sendto=32 +0.001501 sendto fd=4 addr=172.18.45.6:53 31450100 00010000 00000000 026e7308 73656375 72697479 036f7267 026e7a00 00010001. sendto=36 +0.002041 sendto fd=4 addr=172.18.45.6:53 31460100 00010000 00000000 10636f75 70657263 6f6e7375 6c74696e 6702636f 026e7a00 00010001. sendto=40 +0.001682 sendto fd=4 addr=172.18.45.6:53 31470100 00010000 00000000 0e736563 75726974 79677561 72647302 636f026e 7a000001 0001. sendto=38 +0.001629 sendto fd=4 addr=172.18.45.6:53 31480100 00010000 00000000 026e7306 67756172 64730263 6f026e7a 00000100 01. sendto=33 +0.001671 sendto fd=4 addr=172.18.45.6:53 31490100 00010000 00000000 04617369 73036f72 67026e7a 00000100 01. sendto=29 +0.001592 sendto fd=4 addr=172.18.45.6:53 314a0100 00010000 00000000 046e6572 7502636f 026e7a00 00010001. sendto=28 +0.001561 sendto fd=4 addr=172.18.45.6:53 314b0100 00010000 00000000 0a676966 74626173 6b657402 636f026e 7a000001 0001. sendto=34 +0.001907 sendto fd=4 addr=172.18.45.6:53 314c0100 00010000 00000000 056d6167 69630263 6f026e7a 00000100 01. sendto=29 +0.001654 sendto fd=4 addr=172.18.45.6:53 314d0100 00010000 00000000 046d6169 6c036263 6302636f 026e7a00 00010001. sendto=32 +0.001634 sendto fd=4 addr=172.18.45.6:53 314e0100 00010000 00000000 026e730d 696e7665 73746967 6174696f 6e02636f 026e7a00 00010001. sendto=40 +0.001656 sendto fd=4 addr=172.18.45.6:53 314f0100 00010000 00000000 056e7a69 7069036f 7267026e 7a000001 0001. sendto=30 +0.001595 sendto fd=4 addr=172.18.45.6:53 31500100 00010000 00000000 026e7307 626f7571 75657402 636f026e 7a000001 0001. sendto=34 +0.001672 sendto fd=4 addr=172.18.45.6:53 31510100 00010000 00000000 046d6169 6c057361 66657302 636f026e 7a000001 0001. sendto=34 +0.001801 sendto fd=4 addr=172.18.45.6:53 31520100 00010000 00000000 026e7303 62636302 636f026e 7a000001 0001. sendto=30 +0.001626 sendto fd=4 addr=172.18.45.6:53 31530100 00010000 00000000 026e730d 62757267 6c617261 6c61726d 7302636f 026e7a00 00010001. sendto=40 +0.001697 sendto fd=4 addr=172.18.45.6:53 31540100 00010000 00000000 026e730e 73656375 72697479 67756172 64730263 6f026e7a 00000100 01. sendto=41 +0.001694 sendto fd=4 addr=172.18.45.6:53 31550100 00010000 00000000 0d636f76 65727463 616d6572 61730263 6f026e7a 00000100 01. sendto=37 +0.001665 sendto fd=4 addr=172.18.45.6:53 31560100 00010000 00000000 026e7304 6e657275 02636f02 6e7a0000 010001. sendto=31 +0.001613 sendto fd=4 addr=172.18.45.6:53 31570100 00010000 00000000 026e730d 636f7665 72746361 6d657261 7302636f 026e7a00 00010001. sendto=40 +0.001761 sendto fd=4 addr=172.18.45.6:53 31580100 00010000 00000000 08626f75 71756574 7302636f 026e7a00 00010001. sendto=32 +0.001635 sendto fd=4 addr=172.18.45.6:53 31590100 00010000 00000000 0a636f6e 63656e74 72696302 636f026e 7a000001 0001. sendto=34 +0.001693 sendto fd=4 addr=172.18.45.6:53 315a0100 00010000 00000000 026e7310 73656375 72697479 74726169 6e696e67 02636f02 6e7a0000 010001. sendto=43 +0.001762 sendto fd=4 addr=172.18.45.6:53 315b0100 00010000 00000000 046d6169 6c10636f 75706572 636f6e73 756c7469 6e670263 6f026e7a 00000100 01. sendto=45 +0.001727 sendto fd=4 addr=172.18.45.6:53 315c0100 00010000 00000000 0e726574 61696c73 65637572 69747902 636f026e 7a000001 0001. sendto=38 +0.001636 sendto fd=4 addr=172.18.45.6:53 315d0100 00010000 00000000 026e730a 636f6e63 656e7472 69630263 6f026e7a 00000100 01. sendto=37 +0.001667 sendto fd=4 addr=172.18.45.6:53 315e0100 00010000 00000000 046d6169 6c056d61 67696302 636f026e 7a000001 0001. sendto=34 +0.001674 sendto fd=4 addr=172.18.45.6:53 315f0100 00010000 00000000 096e7a61 6e676c69 6e670263 6f026e7a 00000100 01. sendto=33 +0.001676 sendto fd=4 addr=172.18.45.6:53 31600100 00010000 00000000 026e7310 636f7570 6572636f 6e73756c 74696e67 02636f02 6e7a0000 010001. sendto=43 +0.001709 sendto fd=4 addr=172.18.45.6:53 31610100 00010000 00000000 026e7309 6e7a616e 676c696e 6702636f 026e7a00 00010001. sendto=36 +0.001623 sendto fd=4 addr=172.18.45.6:53 31620100 00010000 00000000 046d6169 6c0a7374 6f726577 61746368 02636f02 6e7a0000 010001. sendto=39 +0.001647 sendto fd=4 addr=172.18.45.6:53 31630100 00010000 00000000 05737769 66740263 6f026e7a 00000100 01. sendto=29 +0.001638 sendto fd=4 addr=172.18.45.6:53 31640100 00010000 00000000 046d6169 6c097365 6c656374 69766502 636f026e 7a000001 0001. sendto=38 +0.001714 sendto fd=4 addr=172.18.45.6:53 31650100 00010000 00000000 026e7309 666f7265 66726f6e 7402636f 026e7a00 00010001. sendto=36 +0.001705 sendto fd=4 addr=172.18.45.6:53 31660100 00010000 00000000 046d6169 6c096e7a 616e676c 696e6702 636f026e 7a000001 0001. sendto=38 +0.001701 sendto fd=4 addr=172.18.45.6:53 31670100 00010000 00000000 06677561 72647302 636f026e 7a000001 0001. sendto=30 +0.001623 sendto fd=4 addr=172.18.45.6:53 31680100 00010000 00000000 046d6169 6c096e7a 64657369 676e7302 636f026e 7a000001 0001. sendto=38 +0.001653 sendto fd=4 addr=172.18.45.6:53 31690100 00010000 00000000 0a73746f 72657761 74636802 636f026e 7a000001 0001. sendto=34 +0.058123 sendto fd=4 addr=172.18.45.6:53 316a0100 00010000 00000000 026e7312 73656375 72697479 6d616e61 67656d65 6e740263 6f026e7a 00000100 01. sendto=45 +0.001825 sendto fd=4 addr=172.18.45.6:53 316b0100 00010000 00000000 046d6169 6c0a776f 6f6c776f 72746873 02636f02 6e7a0000 010001. sendto=39 +0.001755 sendto fd=4 addr=172.18.45.6:53 316c0100 00010000 00000000 046d6169 6c0a636f 6e63656e 74726963 02636f02 6e7a0000 010001. sendto=39 +0.001576 sendto fd=4 addr=172.18.45.6:53 316d0100 00010000 00000000 0973656c 65637469 76650263 6f026e7a 00000100 01. sendto=33 +0.001723 sendto fd=4 addr=172.18.45.6:53 316e0100 00010000 00000000 15737065 6369616c 696e7665 73746967 6174696f 6e730263 6f026e7a 00000100 01. sendto=45 +0.001520 sendto fd=4 addr=172.18.45.6:53 316f0100 00010000 00000000 026e7305 73776966 7402636f 026e7a00 00010001. sendto=32 +0.001453 sendto fd=4 addr=172.18.45.6:53 31700100 00010000 00000000 046d6169 6c057377 69667402 636f026e 7a000001 0001. sendto=34 +0.001422 sendto fd=4 addr=172.18.45.6:53 31710100 00010000 00000000 026e7309 73656375 72656e65 74036e65 74026e7a 00000100 01. sendto=37 +0.001461 sendto fd=4 addr=172.18.45.6:53 31720100 00010000 00000000 14707269 76617465 696e7665 73746967 6174696f 6e02636f 026e7a00 00010001. sendto=44 +0.001602 sendto fd=4 addr=172.18.45.6:53 31730100 00010000 00000000 026e7314 70726976 61746569 6e766573 74696761 74696f6e 02636f02 6e7a0000 010001. sendto=47 +0.001625 sendto fd=4 addr=172.18.45.6:53 31740100 00010000 00000000 06657472 61646502 636f026e 7a000001 0001. sendto=30 +0.001427 sendto fd=4 addr=172.18.45.6:53 31750100 00010000 00000000 026e7315 73706563 69616c69 6e766573 74696761 74696f6e 7302636f 026e7a00 00010001. sendto=48 +0.001592 sendto fd=4 addr=172.18.45.6:53 31760100 00010000 00000000 046d6169 6c06616e 73657474 02636f02 6e7a0000 010001. sendto=35 +0.001410 sendto fd=4 addr=172.18.45.6:53 31770100 00010000 00000000 03667470 07776172 72656e74 02636f02 6e7a0000 010001. sendto=35 +0.001429 sendto fd=4 addr=172.18.45.6:53 31780100 00010000 00000000 026e730e 72657461 696c7365 63757269 74790263 6f026e7a 00000100 01. sendto=41 +0.001586 sendto fd=4 addr=172.18.45.6:53 31790100 00010000 00000000 046d6169 6c127365 63757269 74796d61 6e616765 6d656e74 02636f02 6e7a0000 010001. sendto=47 +0.001654 sendto fd=4 addr=172.18.45.6:53 317a0100 00010000 00000000 026e7305 6d616769 6302636f 026e7a00 00010001. sendto=32 +0.001470 sendto fd=4 addr=172.18.45.6:53 317b0100 00010000 00000000 046d6169 6c09666f 72656672 6f6e7402 636f026e 7a000001 0001. sendto=38 +0.001529 sendto fd=4 addr=172.18.45.6:53 317c0100 00010000 00000000 046d6169 6c0a7365 63757269 63617264 02636f02 6e7a0000 010001. sendto=39 +0.001536 sendto fd=4 addr=172.18.45.6:53 317d0100 00010000 00000000 0a736563 75726963 61726402 636f026e 7a000001 0001. sendto=34 +0.001493 sendto fd=4 addr=172.18.45.6:53 317e0100 00010000 00000000 026e7309 6e7a6465 7369676e 7302636f 026e7a00 00010001. sendto=36 +0.001518 sendto fd=4 addr=172.18.45.6:53 317f0100 00010000 00000000 05736166 65730263 6f026e7a 00000100 01. sendto=29 +0.001536 sendto fd=4 addr=172.18.45.6:53 31800100 00010000 00000000 026e7309 73656c65 63746976 6502636f 026e7a00 00010001. sendto=36 +0.001634 sendto fd=4 addr=172.18.45.6:53 31810100 00010000 00000000 09666f72 6566726f 6e740263 6f026e7a 00000100 01. sendto=33 +0.001549 sendto fd=4 addr=172.18.45.6:53 31820100 00010000 00000000 12736563 75726974 796d616e 6167656d 656e7402 636f026e 7a000001 0001. sendto=42 +0.001511 sendto fd=4 addr=172.18.45.6:53 31830100 00010000 00000000 09756e64 6572686f 75720263 6f026e7a 00000100 01. sendto=33 +0.001450 sendto fd=4 addr=172.18.45.6:53 31840100 00010000 00000000 09736563 7572656e 6574036e 6574026e 7a000001 0001. sendto=34 +0.027143 sendto fd=4 addr=172.18.45.6:53 31850100 00010000 00000000 046d6169 6c157370 65636961 6c696e76 65737469 67617469 6f6e7302 636f026e 7a000001 0001. sendto=50 +0.001627 sendto fd=4 addr=172.18.45.6:53 31860100 00010000 00000000 096e7a64 65736967 6e730263 6f026e7a 00000100 01. sendto=33 +0.001455 sendto fd=4 addr=172.18.45.6:53 31870100 00010000 00000000 026e7306 65747261 64650263 6f026e7a 00000100 01. sendto=33 +0.001572 sendto fd=4 addr=172.18.45.6:53 31880100 00010000 00000000 046d6169 6c056e7a 69706903 6f726702 6e7a0000 010001. sendto=35 +0.001559 sendto fd=4 addr=172.18.45.6:53 31890100 00010000 00000000 046d6169 6c09756e 64657268 6f757202 636f026e 7a000001 0001. sendto=38 +0.001507 sendto fd=4 addr=172.18.45.6:53 318a0100 00010000 00000000 026e7304 61736973 036f7267 026e7a00 00010001. sendto=32 +0.001428 sendto fd=4 addr=172.18.45.6:53 318b0100 00010000 00000000 026e7308 626f7571 75657473 02636f02 6e7a0000 010001. sendto=35 +0.001471 sendto fd=4 addr=172.18.45.6:53 318c0100 00010000 00000000 05616761 74650263 6f026e7a 00000100 01. sendto=29 +0.001457 read fd=5 buflen=2417 read=EAGAIN +0.000160 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.766818 select=1 rfds=[4] wfds=[] efds=[] +0.661618 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312f8180 00010001 00020002 026e7308 73656375 72697479 02636f02 6e7a0000 010001c0 0c000100 01000151 800004cb 6300fe08 73656375 72697479 02636f02 6e7a0000 02000100 01518000 02c00cc0 33000200 01000151 80001103 6e733107 7761696b 61746f02 6163c03f c00c0001 00010001 51800004 cb6300fe c05b0001 00010001 51800004 8cc8800d. +0.001142 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000798 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.103260 select=1 rfds=[4] wfds=[] efds=[] +0.077615 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31328180 00010001 00020002 026e7305 61676174 6502636f 026e7a00 00010001 c00c0001 00010001 51800004 cb6300fe 05616761 74650263 6f026e7a 00000200 01000151 800002c0 0cc03000 02000100 01518000 11036e73 31077761 696b6174 6f026163 c039c00c 00010001 00015180 0004cb63 00fec055 00010001 00015180 00048cc8 800d. +0.001006 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000520 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.024119 select=1 rfds=[4] wfds=[] efds=[] +1.-919664 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31338180 00010001 00020002 10736563 75726974 79747261 696e696e 6702636f 026e7a00 00010001 c00c0001 00010001 4fd40004 cb6300fe c00c0002 00010001 51800005 026e73c0 0cc00c00 02000100 01518000 13036e73 31077761 696b6174 6f026163 026e7a00 c0440001 00010001 51800004 cb6300fe c0550001 00010001 51800004 8cc8800d. +0.001035 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000535 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.942213 select=1 rfds=[4] wfds=[] efds=[] +0.047739 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31348180 00010001 00020002 026e730a 67696674 6261736b 65740263 6f026e7a 00000100 01c00c00 01000100 01518000 04cb6300 fe0a6769 66746261 736b6574 02636f02 6e7a0000 02000100 01518000 02c00cc0 35000200 01000151 80001103 6e733107 7761696b 61746f02 6163c043 c00c0001 00010001 51800004 cb6300fe c05f0001 00010001 51800004 8cc8800d. +0.001079 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000550 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.892845 select=1 rfds=[4] wfds=[] efds=[] +0.038213 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31358180 00010001 00020002 026e7308 73656375 72697479 0367656e 026e7a00 00010001 c00c0001 00010001 51800004 cb6300fe 08736563 75726974 79036765 6e026e7a 00000200 01000151 800002c0 0cc03400 02000100 01518000 11036e73 31077761 696b6174 6f026163 c041c00c 00010001 00015180 0004cb63 00fec05d 00010001 00015180 00048cc8 800d. +0.001063 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000523 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.853046 select=1 rfds=[4] wfds=[] efds=[] +0.048278 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31388180 00010001 00020002 026e7305 6e7a6970 69036f72 67026e7a 00000100 01c00c00 01000100 01518000 04cb6300 fe056e7a 69706903 6f726702 6e7a0000 02000100 01518000 02c00cc0 31000200 01000151 80001103 6e733107 7761696b 61746f02 6163c03b c00c0001 00010001 51800004 cb6300fe c0570001 00010001 51800004 8cc8800d. +0.001030 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000557 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.803181 select=1 rfds=[4] wfds=[] efds=[] +0.146677 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313b8583 00010000 00010000 026e730a 73746f72 65776174 63680263 6f026e7a 00000100 0102636f 026e7a00 00060001 00015180 002c046e 73393907 7761696b 61746f02 6163c028 03736f61 c03b7727 6ec50000 0e100000 07080027 8d000001 5180. +0.000793 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.026541 close fd=4 close=OK +0.000436 close fd=5 close=OK +0.004673 adns-1.5.0~rc1/regress/case-flags10.err0000664000175000017500000000001712421042026015671 0ustar ianiantoo many flags adns-1.5.0~rc1/regress/adnshost-xinitflags.text0000664000175000017500000000002212421042026017704 0ustar ianian--debug --config adns-1.5.0~rc1/regress/case-1stservbroken.out0000664000175000017500000000511012421042026017262 0ustar ianianadns debug: using nameserver 172.18.45.2 adns debug: using nameserver 172.18.45.6 trunc.test.iwj.relativity.greenend.org.uk flags 0 type 12 PTR(raw) submitted adns warning: datagram receive error: Connection refused adns debug: TCP connected (NS=172.18.45.2) adns warning: TCP connection failed: read: Broken pipe (NS=172.18.45.2) adns debug: TCP connected (NS=172.18.45.6) trunc.test.iwj.relativity.greenend.org.uk flags 0 type PTR(raw): OK; nrrs=30; cname=$; owner=$; ttl=60 long.domain.to.force.truncation.0.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.1.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.2.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.3.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.4.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.5.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.6.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.7.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.8.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.9.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.10.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.11.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.12.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.13.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.14.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.15.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.16.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.17.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.18.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.19.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.20.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.21.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.22.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.23.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.24.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.25.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.26.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.27.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.28.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.29.test.iwj.relativity.greenend.org.uk rc=0 adns-1.5.0~rc1/regress/case-rootquery.sys0000664000175000017500000000632312422540543016551 0ustar ianianadnstest default :0x20000|6 . 1/. start 924364442.672925 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000222 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000085 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000069 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 00000600 01. sendto=17 +0.001781 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 00000600 01. sendto=17 +0.001194 select max=5 rfds=[4] wfds=[] efds=[] to=1.997025 select=1 rfds=[4] wfds=[] efds=[] +0.012535 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010001 000d000d 00000600 01000006 00010000 eb3e003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 51800000 02000100 04a9e700 040144c0 1e000002 00010004 a9e70004 0145c01e 00000200 010004a9 e7000401 49c01e00 00020001 0004a9e7 00040146 c01e0000 02000100 04a9e700 040147c0 1e000002 00010004 a9e70004 014ac01e 00000200 010004a9 e7000401 4bc01e00 00020001 0004a9e7 0004014c c01e0000 02000100 04a9e700 04014dc0 1e000002 00010004 a9e70002 c01c0000 02000100 04a9e700 040148c0 1e000002 00010004 a9e70004 0142c01e 00000200 010004a9 e7000401 43c01ec0 65000100 01000929 a8000480 080a5ac0 74000100 01000929 a80004c0 cbe60ac0 83000100 0100092c 170004c0 249411c0 92000100 01000929 a80004c0 0505f1c0 a1000100 01000929 a80004c0 702404c0 b0000100 010005fb 670004c6 29000ac0 bf000100 010005fb 670004c1 000e81c0 ce000100 010005fb 670004c6 20400cc0 dd000100 010005fb 670004ca 0c1b21c0 1c000100 01000929 a80004c6 290004c0 f9000100 01000929 a8000480 3f0235c1 08000100 01000929 a8000480 09006bc1 17000100 01000929 a80004c0 21040c. +0.002867 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000463 select max=5 rfds=[4] wfds=[] efds=[] to=1.982941 select=1 rfds=[4] wfds=[] efds=[] +0.008221 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010001 000d000d 00000600 01000006 00010000 df7a003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 51800000 02000100 04a9e700 040144c0 1e000002 00010004 a9e70004 0145c01e 00000200 010004a9 e7000401 49c01e00 00020001 0004a9e7 00040146 c01e0000 02000100 04a9e700 040147c0 1e000002 00010004 a9e70004 014ac01e 00000200 010004a9 e7000401 4bc01e00 00020001 0004a9e7 0004014c c01e0000 02000100 04a9e700 04014dc0 1e000002 00010004 a9e70002 c01c0000 02000100 04a9e700 040148c0 1e000002 00010004 a9e70004 0142c01e 00000200 010004a9 e7000401 43c01ec0 65000100 01000929 a8000480 080a5ac0 74000100 01000929 a80004c0 cbe60ac0 83000100 0100092c 170004c0 249411c0 92000100 01000929 a80004c0 0505f1c0 a1000100 01000929 a80004c0 702404c0 b0000100 010005fb 670004c6 29000ac0 bf000100 010005fb 670004c1 000e81c0 ce000100 010005fb 670004c6 20400cc0 dd000100 010005fb 670004ca 0c1b21c0 1c000100 01000929 a80004c6 290004c0 f9000100 01000929 a8000480 3f0235c1 08000100 01000929 a8000480 09006bc1 17000100 01000929 a80004c0 21040c. +0.002425 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000260 close fd=4 close=OK +0.000232 adns-1.5.0~rc1/regress/case-srvsort.err0000664000175000017500000000005112421042026016154 0ustar ianianadns debug: using nameserver 172.18.45.6 adns-1.5.0~rc1/regress/init-ncipher.text0000664000175000017500000000014512421042026016312 0ustar ianiannameserver 195.224.55.129 sortlist 127.0.0.1/32 195.224.55.128/25 195.224.55.0/24 search ncipher.com adns-1.5.0~rc1/regress/case-ptrbaddom2.sys0000664000175000017500000000061012422540543016527 0ustar ianian./adnstest default :0x10000|12 00.45.18.172.in-addr.arpa 6.945.18.172.in-addr.arpa 4.0.0.0.g.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa start 1406163217.059538 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000157 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000069 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000059 close fd=6 close=OK +0.000414 adns-1.5.0~rc1/regress/case-longdom1.sys0000664000175000017500000000100512422540543016210 0ustar ianianadnstest default :0x0|1 1/10rndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk. start 951955690.505811 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000126 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000058 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000035 close fd=4 close=OK +0.000269 adns-1.5.0~rc1/regress/case-unknown-flags-query.out0000664000175000017500000000015512423157063020424 0ustar ianianadns debug: using nameserver 172.18.45.6 chiark.greenend.org.uk flags 1075314688 type 1 not implemented rc=0 adns-1.5.0~rc1/regress/case-manyptrwrong.out0000664000175000017500000001042612421042026017227 0ustar ianianadns debug: using nameserver 195.224.55.129 254.0.99.203.in-addr.arpa flags 0 type 1 A(-) submitted 254.0.99.203.in-addr.arpa flags 0 type 2 NS(raw) submitted 254.0.99.203.in-addr.arpa flags 0 type 5 CNAME(-) submitted 254.0.99.203.in-addr.arpa flags 0 type 6 SOA(raw) submitted 254.0.99.203.in-addr.arpa flags 0 type 12 PTR(raw) submitted 254.0.99.203.in-addr.arpa flags 0 type 13 HINFO(-) submitted 254.0.99.203.in-addr.arpa flags 0 type 15 MX(raw) submitted 254.0.99.203.in-addr.arpa flags 0 type 16 TXT(-) submitted 254.0.99.203.in-addr.arpa flags 0 type 17 RP(raw) submitted 254.0.99.203.in-addr.arpa flags 0 type 65537 A(addr) submitted 254.0.99.203.in-addr.arpa flags 0 type 65538 NS(+addr) submitted 254.0.99.203.in-addr.arpa flags 0 type 65548 PTR(checked) submitted 254.0.99.203.in-addr.arpa flags 0 type 65551 MX(+addr) submitted 254.0.99.203.in-addr.arpa flags 0 type 131078 SOA(822) submitted 254.0.99.203.in-addr.arpa flags 0 type 131089 RP(822) submitted adns debug: TCP connected (NS=195.224.55.129) 254.0.99.203.in-addr.arpa flags 0 type PTR(raw): OK; nrrs=94; cname=$; owner=$; ttl=80790 ns.security.co.nz tetra.co.nz mail.agate.co.nz ns.agate.co.nz securitytraining.co.nz ns.giftbasket.co.nz ns.security.gen.nz bouquet.co.nz investigation.co.nz ns.nzipi.org.nz mail.neru.co.nz security.co.nz ns.storewatch.co.nz security.gen.nz ns.tetra.co.nz mail.tetra.co.nz ns.securicard.co.nz ns.underhour.co.nz bcc.co.nz security.org.nz burglaralarms.co.nz ns.safes.co.nz ns.security.org.nz couperconsulting.co.nz securityguards.co.nz ns.guards.co.nz asis.org.nz neru.co.nz giftbasket.co.nz magic.co.nz mail.bcc.co.nz ns.investigation.co.nz nzipi.org.nz ns.bouquet.co.nz mail.safes.co.nz ns.bcc.co.nz ns.burglaralarms.co.nz ns.securityguards.co.nz covertcameras.co.nz ns.neru.co.nz ns.covertcameras.co.nz bouquets.co.nz concentric.co.nz ns.securitytraining.co.nz mail.couperconsulting.co.nz retailsecurity.co.nz ns.concentric.co.nz mail.magic.co.nz nzangling.co.nz ns.couperconsulting.co.nz ns.nzangling.co.nz mail.storewatch.co.nz swift.co.nz mail.selective.co.nz ns.forefront.co.nz mail.nzangling.co.nz guards.co.nz mail.nzdesigns.co.nz storewatch.co.nz ns.securitymanagement.co.nz mail.woolworths.co.nz mail.concentric.co.nz selective.co.nz specialinvestigations.co.nz ns.swift.co.nz mail.swift.co.nz ns.securenet.net.nz privateinvestigation.co.nz ns.privateinvestigation.co.nz etrade.co.nz ns.specialinvestigations.co.nz mail.ansett.co.nz ftp.warrent.co.nz ns.retailsecurity.co.nz mail.securitymanagement.co.nz ns.magic.co.nz mail.forefront.co.nz mail.securicard.co.nz securicard.co.nz ns.nzdesigns.co.nz safes.co.nz ns.selective.co.nz forefront.co.nz securitymanagement.co.nz underhour.co.nz securenet.net.nz mail.specialinvestigations.co.nz nzdesigns.co.nz ns.etrade.co.nz mail.nzipi.org.nz mail.underhour.co.nz ns.asis.org.nz ns.bouquets.co.nz agate.co.nz 254.0.99.203.in-addr.arpa flags 0 type PTR(checked): Inconsistent resource records in DNS; nrrs=0; cname=$; owner=$; ttl=80790 254.0.99.203.in-addr.arpa flags 0 type A(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400 254.0.99.203.in-addr.arpa flags 0 type NS(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86400 254.0.99.203.in-addr.arpa flags 0 type CNAME(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400 254.0.99.203.in-addr.arpa flags 0 type SOA(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86400 254.0.99.203.in-addr.arpa flags 0 type HINFO(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400 254.0.99.203.in-addr.arpa flags 0 type MX(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86400 254.0.99.203.in-addr.arpa flags 0 type TXT(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400 254.0.99.203.in-addr.arpa flags 0 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86400 254.0.99.203.in-addr.arpa flags 0 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=86400 254.0.99.203.in-addr.arpa flags 0 type NS(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=86400 254.0.99.203.in-addr.arpa flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=86400 254.0.99.203.in-addr.arpa flags 0 type SOA(822): No such data; nrrs=0; cname=$; owner=$; ttl=86400 254.0.99.203.in-addr.arpa flags 0 type RP(822): No such data; nrrs=0; cname=$; owner=$; ttl=86400 rc=0 adns-1.5.0~rc1/regress/case-adh-cancel3.sys0000664000175000017500000000524012422510661016535 0ustar ianian./adnshost default -f start 969129578.690081 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000809 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000531 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000512 select max=7 rfds=[0,6] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +17.-461569 read fd=0 buflen=40 read=OK 2d2d6173 796e6368 2d696420 34320a. +0.000686 select max=7 rfds=[0,6] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +0.000915 read fd=0 buflen=40 read=OK 2d692031 37322e33 302e3230 362e3134 0a. +0.000583 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 02313403 32303602 33300331 37320769 6e2d6164 64720461 72706100 000c0001. sendto=44 +0.001629 select max=7 rfds=[0,6] wfds=[] efds=[] to=1.998371 select=1 rfds=[6] wfds=[] efds=[] +0.000910 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00010001 02313403 32303602 33300331 37320769 6e2d6164 64720461 72706100 000c0001 c00c000c 00010000 003c002a 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000332 30360233 30033137 3207696e 2d616464 72046172 70610000 02000100 00003c00 20036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c08500 01000100 01518000 04ac122d 06. +0.001417 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.001988 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000537 select max=7 rfds=[0,6] wfds=[] efds=[] to=1.996058 select=0 rfds=[] wfds=[] efds=[] +2.-05146 select max=7 rfds=[0,6] wfds=[] efds=[] to=0.001204 select=0 rfds=[] wfds=[] efds=[] +0.009951 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.001141 select max=7 rfds=[0,6] wfds=[] efds=[] to=1.998859 select=1 rfds=[0] wfds=[] efds=[] +0.551215 read fd=0 buflen=40 read=OK 2d2d6361 6e63656c 2d696420 34320a. +0.000599 select max=7 rfds=[0,6] wfds=[] efds=[] to=null select=1 rfds=[6] wfds=[] efds=[] +42.-794672 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208182 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. +0.000986 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.003836 select max=7 rfds=[0,6] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +6.662470 read fd=0 buflen=40 read=OK . +0.000545 close fd=6 close=OK +0.000686 adns-1.5.0~rc1/regress/case-owner.out0000664000175000017500000000540012421042026015606 0ustar ianianadns debug: using nameserver 172.18.45.6 chiark.greenend.org.uk flags 4 type 1 A(-) submitted chiark.greenend.org.uk flags 4 type 2 NS(raw) submitted chiark.greenend.org.uk flags 4 type 5 CNAME(-) submitted chiark.greenend.org.uk flags 4 type 6 SOA(raw) submitted chiark.greenend.org.uk flags 4 type 12 PTR(raw) submitted chiark.greenend.org.uk flags 4 type 13 HINFO(-) submitted chiark.greenend.org.uk flags 4 type 15 MX(raw) submitted chiark.greenend.org.uk flags 4 type 16 TXT(-) submitted chiark.greenend.org.uk flags 4 type 17 RP(raw) submitted chiark.greenend.org.uk flags 4 type 65537 A(addr) submitted chiark.greenend.org.uk flags 4 type 65538 NS(+addr) submitted chiark.greenend.org.uk flags 4 type 65548 PTR(checked) submitted chiark.greenend.org.uk flags 4 type 65551 MX(+addr) submitted chiark.greenend.org.uk flags 4 type 131078 SOA(822) submitted chiark.greenend.org.uk flags 4 type 131089 RP(822) submitted chiark.greenend.org.uk flags 4 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=604800 chiark.greenend.org.uk flags 4 type A(-): OK; nrrs=1; cname=$; owner=chiark.greenend.org.uk; ttl=86400 195.224.76.132 chiark.greenend.org.uk flags 4 type NS(raw): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400 chiark.greenend.org.uk flags 4 type CNAME(-): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400 chiark.greenend.org.uk flags 4 type SOA(raw): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400 chiark.greenend.org.uk flags 4 type PTR(raw): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400 chiark.greenend.org.uk flags 4 type HINFO(-): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400 chiark.greenend.org.uk flags 4 type MX(raw): OK; nrrs=1; cname=$; owner=chiark.greenend.org.uk; ttl=86400 5 permutation-city.greenend.org.uk chiark.greenend.org.uk flags 4 type TXT(-): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400 chiark.greenend.org.uk flags 4 type RP(raw): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400 chiark.greenend.org.uk flags 4 type A(addr): OK; nrrs=1; cname=$; owner=chiark.greenend.org.uk; ttl=86400 INET 195.224.76.132 chiark.greenend.org.uk flags 4 type NS(+addr): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400 chiark.greenend.org.uk flags 4 type MX(+addr): OK; nrrs=1; cname=$; owner=chiark.greenend.org.uk; ttl=86400 5 permutation-city.greenend.org.uk ok 0 ok "OK" ( INET 195.224.76.134 ) chiark.greenend.org.uk flags 4 type SOA(822): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400 chiark.greenend.org.uk flags 4 type RP(822): No such data; nrrs=0; cname=$; owner=chiark.greenend.org.uk; ttl=86400 rc=0 adns-1.5.0~rc1/regress/case-ptrbaddom2.err0000664000175000017500000000000012421042026016462 0ustar ianianadns-1.5.0~rc1/regress/case-brokenmail.err0000664000175000017500000000000012421042026016547 0ustar ianianadns-1.5.0~rc1/regress/init-ndots.text0000664000175000017500000000021312421042026016005 0ustar ianiannameserver 172.18.45.6 sortlist 127.0.0.1/32 172.18.45.0/28 172.18.45.0/24 search davenant.greenend.org.uk greenend.org.uk options ndots:3 adns-1.5.0~rc1/regress/case-2ndservok.err0000664000175000017500000000000012421042026016341 0ustar ianianadns-1.5.0~rc1/regress/case-v6-map.out0000664000175000017500000000111712421042026015563 0ustar ianianadns debug: using nameserver 172.29.199.224 distorted.org.uk flags 4096 type 65537 A(addr) submitted distorted.org.uk flags 4096 type 65551 MX(+addr) submitted distorted.org.uk flags 4096 type 65537 A(addr) submitted distorted.org.uk flags 4096 type MX(+addr): OK; nrrs=1; cname=$; owner=$; ttl=14400 50 mail.distorted.org.uk ok 0 ok "OK" ( INET6 ::ffff:172.29.199.180 ) distorted.org.uk flags 4096 type A(addr): OK; nrrs=1; cname=$; owner=$; ttl=14400 INET6 ::ffff:172.29.199.180 distorted.org.uk flags 4096 type A(addr): OK; nrrs=1; cname=$; owner=$; ttl=14400 INET 172.29.199.180 rc=0 adns-1.5.0~rc1/regress/case-alr-slow.err0000664000175000017500000000257112421042026016203 0ustar ianianadns debug: using nameserver 172.18.45.6 adnslogres: submitting 172.18.45.1 -> 1.45.18.172.in-addr.arpa. adnslogres: 1 in queue; checking 172.18.45.1 adnslogres: submitting 127.0.0.1 -> 1.0.0.127.in-addr.arpa. adnslogres: 1 in queue; checking 127.0.0.1 adnslogres: submitting 172.30.206.14 -> 14.206.30.172.in-addr.arpa. adnslogres: 1 in queue; checking 172.30.206.14 adnslogres: submitting 127.0.0.1 -> 1.0.0.127.in-addr.arpa. adnslogres: 2 in queue; checking 172.30.206.14 adnslogres: submitting 172.18.45.3 -> 3.45.18.172.in-addr.arpa. adnslogres: 3 in queue; checking 172.30.206.14 adnslogres: submitting 172.18.45.1 -> 1.45.18.172.in-addr.arpa. adnslogres: 4 in queue; checking 172.30.206.14 adnslogres: 3 in queue; checking 127.0.0.1 adnslogres: 2 in queue; checking 172.18.45.3 adnslogres: 1 in queue; checking 172.18.45.1 adnslogres: submitting 172.18.45.8 -> 8.45.18.172.in-addr.arpa. adnslogres: 1 in queue; checking 172.18.45.8 adnslogres: submitting 172.18.45.1 -> 1.45.18.172.in-addr.arpa. adnslogres: 2 in queue; checking 172.18.45.8 adnslogres: submitting 172.18.45.1 -> 1.45.18.172.in-addr.arpa. adnslogres: 3 in queue; checking 172.18.45.8 adnslogres: submitting 172.18.45.6 -> 6.45.18.172.in-addr.arpa. adnslogres: 4 in queue; checking 172.18.45.8 adnslogres: 3 in queue; checking 172.18.45.1 adnslogres: 2 in queue; checking 172.18.45.1 adnslogres: 1 in queue; checking 172.18.45.6 adns-1.5.0~rc1/regress/case-flags9.err0000664000175000017500000000000012421042026015611 0ustar ianianadns-1.5.0~rc1/regress/case-rootqueryall-as.err0000664000175000017500000000000012421042026017567 0ustar ianianadns-1.5.0~rc1/regress/case-abbrev.err0000664000175000017500000000000012421042026015665 0ustar ianianadns-1.5.0~rc1/regress/case-owner.sys0000664000175000017500000002260512422510662015632 0ustar ianianadnstest default -0x400 4/chiark.greenend.org.uk start 933206012.504679 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000275 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000094 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000073 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.001715 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00020001. sendto=40 +0.001142 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00050001. sendto=40 +0.001143 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00060001. sendto=40 +0.001213 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 000c0001. sendto=40 +0.001183 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 000d0001. sendto=40 +0.001273 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 000f0001. sendto=40 +0.001188 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00100001. sendto=40 +0.001185 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00110001. sendto=40 +0.001192 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.001315 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00020001. sendto=40 +0.002405 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 000f0001. sendto=40 +0.001162 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00060001. sendto=40 +0.001234 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00110001. sendto=40 +0.001320 select max=5 rfds=[4] wfds=[] efds=[] to=1.981330 select=1 rfds=[4] wfds=[] efds=[] +0.000364 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d41. +0.001489 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010000 00010000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00020001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002602 6e73c00c 0a686f73 746d6173 746572c0 2877276a 9c000070 8000001c 2000093a 80000151 80. +0.001437 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000394 select max=5 rfds=[4] wfds=[] efds=[] to=1.980503 select=1 rfds=[4] wfds=[] efds=[] +0.001013 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010000 00010000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00050001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002602 6e73c00c 0a686f73 746d6173 746572c0 2877276a 9c000070 8000001c 2000093a 80000151 80. +0.000770 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000496 select max=5 rfds=[4] wfds=[] efds=[] to=1.979367 select=1 rfds=[4] wfds=[] efds=[] +0.001726 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228580 00010000 00010000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00060001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002602 6e73c00c 0a686f73 746d6173 746572c0 2877276a 9c000070 8000001c 2000093a 80000151 80. +0.000812 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000408 select max=5 rfds=[4] wfds=[] efds=[] to=1.977634 select=1 rfds=[4] wfds=[] efds=[] +0.002560 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238580 00010000 00010000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 000c0001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002602 6e73c00c 0a686f73 746d6173 746572c0 2877276a 9c000070 8000001c 2000093a 80000151 80. +0.000777 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000403 select max=5 rfds=[4] wfds=[] efds=[] to=1.975077 select=1 rfds=[4] wfds=[] efds=[] +0.002559 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248580 00010000 00010000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 000d0001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002602 6e73c00c 0a686f73 746d6173 746572c0 2877276a 9c000070 8000001c 2000093a 80000151 80. +0.000960 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000412 select max=5 rfds=[4] wfds=[] efds=[] to=1.972419 select=1 rfds=[4] wfds=[] efds=[] +0.004697 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258580 00010001 00020003 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 000f0001 c00c000f 00010001 51800024 00051070 65726d75 74617469 6f6e2d63 69747908 67726565 6e656e64 036f7267 02756b00 c0470002 00010001 51800011 036e7330 0a72656c 61746976 697479c0 47c04700 02000100 01518000 06036e73 31c068c0 36000100 01000151 800004c3 e04c86c0 64000100 01000151 800004ac 122d06c0 81000100 01000151 800004ac 122d41. +0.001256 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000769 select max=5 rfds=[4] wfds=[] efds=[] to=1.966885 select=1 rfds=[4] wfds=[] efds=[] +0.001768 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268580 00010000 00010000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00100001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002602 6e73c00c 0a686f73 746d6173 746572c0 2877276a 9c000070 8000001c 2000093a 80000151 80. +0.001528 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000443 select max=5 rfds=[4] wfds=[] efds=[] to=1.964331 select=1 rfds=[4] wfds=[] efds=[] +0.001739 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278580 00010000 00010000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00110001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002602 6e73c00c 0a686f73 746d6173 746572c0 2877276a 9c000070 8000001c 2000093a 80000151 80. +0.000776 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000429 select max=5 rfds=[4] wfds=[] efds=[] to=1.962579 select=1 rfds=[4] wfds=[] efds=[] +0.004212 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d41. +0.001050 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000589 select max=5 rfds=[4] wfds=[] efds=[] to=1.958043 select=1 rfds=[4] wfds=[] efds=[] +0.002059 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8580 00010000 00010000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00020001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002602 6e73c00c 0a686f73 746d6173 746572c0 2877276a 9c000070 8000001c 2000093a 80000151 80. +0.000776 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.004206 select max=5 rfds=[4] wfds=[] efds=[] to=1.953407 select=1 rfds=[4] wfds=[] efds=[] +0.004872 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8580 00010001 00020003 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 000f0001 c00c000f 00010001 51800024 00051070 65726d75 74617469 6f6e2d63 69747908 67726565 6e656e64 036f7267 02756b00 c0470002 00010001 51800011 036e7330 0a72656c 61746976 697479c0 47c04700 02000100 01518000 06036e73 31c068c0 36000100 01000151 800004c3 e04c86c0 64000100 01000151 800004ac 122d06c0 81000100 01000151 800004ac 122d41. +0.001252 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000950 select max=5 rfds=[4] wfds=[] efds=[] to=1.947495 select=1 rfds=[4] wfds=[] efds=[] +0.001580 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8580 00010000 00010000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00060001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002602 6e73c00c 0a686f73 746d6173 746572c0 2877276a 9c000070 8000001c 2000093a 80000151 80. +0.000780 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000401 select max=5 rfds=[4] wfds=[] efds=[] to=1.945968 select=1 rfds=[4] wfds=[] efds=[] +0.002592 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8580 00010000 00010000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00110001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002602 6e73c00c 0a686f73 746d6173 746572c0 2877276a 9c000070 8000001c 2000093a 80000151 80. +0.000794 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000441 close fd=4 close=OK +0.000387 adns-1.5.0~rc1/regress/case-quote.sys0000664000175000017500000002413212422540543015633 0ustar ianianadnstest default :0x0|1 hyphen.cname.test.iwj.relativity.greenend.org.uk dot.cname.test.iwj.relativity.greenend.org.uk plus.cname.test.iwj.relativity.greenend.org.uk slash.cname.test.iwj.relativity.greenend.org.uk underscore.cname.test.iwj.relativity.greenend.org.uk quote.cname.test.iwj.relativity.greenend.org.uk backslash.cname.test.iwj.relativity.greenend.org.uk null.cname.test.iwj.relativity.greenend.org.uk space.cname.test.iwj.relativity.greenend.org.uk hash.cname.test.iwj.relativity.greenend.org.uk del.cname.test.iwj.relativity.greenend.org.uk meta-null.cname.test.iwj.relativity.greenend.org.uk meta-del.cname.test.iwj.relativity.greenend.org.uk start 951958420.936685 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000229 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000057 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000034 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 06687970 68656e05 636e616d 65047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=66 +0.001345 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 03646f74 05636e61 6d650474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=63 +0.000708 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 04706c75 7305636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00010001. sendto=64 +0.000669 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 05736c61 73680563 6e616d65 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=65 +0.000670 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 0a756e64 65727363 6f726505 636e616d 65047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000690 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 0571756f 74650563 6e616d65 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=65 +0.000699 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 09626163 6b736c61 73680563 6e616d65 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=69 +0.000911 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 046e756c 6c05636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00010001. sendto=64 +0.000831 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 05737061 63650563 6e616d65 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=65 +0.000684 sendto fd=4 addr=172.18.45.6:53 31280100 00010000 00000000 04686173 6805636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00010001. sendto=64 +0.000672 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 0364656c 05636e61 6d650474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=63 +0.000715 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 096d6574 612d6e75 6c6c0563 6e616d65 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=69 +0.000695 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 086d6574 612d6465 6c05636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00010001. sendto=68 +0.000695 select max=5 rfds=[4] wfds=[] efds=[] to=1.990016 select=1 rfds=[4] wfds=[] efds=[] +0.000248 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8583 00010001 00010000 06687970 68656e05 636e616d 65047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001c00c 00050001 0000003c 002f0361 2d620563 6e616d65 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c05800 06000100 00003c00 27036e73 30c0610a 686f7374 6d617374 6572c061 00000023 00000e10 00000078 0064c800 0000003c. +0.000645 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208583 00010001 00010000 03646f74 05636e61 6d650474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000000 3c002f03 612e6205 636e616d 65047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c055 00060001 0000003c 0027036e 7330c05e 0a686f73 746d6173 746572c0 5e000000 2300000e 10000000 780064c8 00000000 3c. +0.001014 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218583 00010001 00010000 04706c75 7305636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00010001 c00c0005 00010000 003c002f 03612b62 05636e61 6d650474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b00c0 56000600 01000000 3c002703 6e7330c0 5f0a686f 73746d61 73746572 c05f0000 00230000 0e100000 00780064 c8000000 003c. +0.000717 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228583 00010001 00010000 05736c61 73680563 6e616d65 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 05000100 00003c00 2f03612f 6205636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c0570006 00010000 003c0027 036e7330 c0600a68 6f73746d 61737465 72c06000 00002300 000e1000 00007800 64c80000 00003c. +0.000666 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238583 00010001 00010000 0a756e64 65727363 6f726505 636e616d 65047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001c00c 00050001 0000003c 002f0361 5f620563 6e616d65 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c05c00 06000100 00003c00 27036e73 30c0650a 686f7374 6d617374 6572c065 00000023 00000e10 00000078 0064c800 0000003c. +0.000663 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248583 00010001 00010000 0571756f 74650563 6e616d65 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 05000100 00003c00 2f036122 6205636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c0570006 00010000 003c0027 036e7330 c0600a68 6f73746d 61737465 72c06000 00002300 000e1000 00007800 64c80000 00003c. +0.000667 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258583 00010001 00010000 09626163 6b736c61 73680563 6e616d65 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 05000100 00003c00 2f03615c 6205636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c05b0006 00010000 003c0027 036e7330 c0640a68 6f73746d 61737465 72c06400 00002300 000e1000 00007800 64c80000 00003c. +0.000663 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268583 00010001 00010000 046e756c 6c05636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00010001 c00c0005 00010000 003c002f 03610062 05636e61 6d650474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b00c0 56000600 01000000 3c002703 6e7330c0 5f0a686f 73746d61 73746572 c05f0000 00230000 0e100000 00780064 c8000000 003c. +0.000670 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278583 00010001 00010000 05737061 63650563 6e616d65 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 05000100 00003c00 2f036120 6205636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c0570006 00010000 003c0027 036e7330 c0600a68 6f73746d 61737465 72c06000 00002300 000e1000 00007800 64c80000 00003c. +0.000651 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31288583 00010001 00010000 04686173 6805636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00010001 c00c0005 00010000 003c002f 03612362 05636e61 6d650474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b00c0 56000600 01000000 3c002703 6e7330c0 5f0a686f 73746d61 73746572 c05f0000 00230000 0e100000 00780064 c8000000 003c. +0.000664 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298583 00010001 00010000 0364656c 05636e61 6d650474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000000 3c002f03 617f6205 636e616d 65047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c055 00060001 0000003c 0027036e 7330c05e 0a686f73 746d6173 746572c0 5e000000 2300000e 10000000 780064c8 00000000 3c. +0.000646 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8583 00010001 00010000 096d6574 612d6e75 6c6c0563 6e616d65 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 05000100 00003c00 2f0361c8 6205636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c05b0006 00010000 003c0027 036e7330 c0640a68 6f73746d 61737465 72c06400 00002300 000e1000 00007800 64c80000 00003c. +0.000708 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8583 00010001 00010000 086d6574 612d6465 6c05636e 616d6504 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00010001 c00c0005 00010000 003c002f 0361ff62 05636e61 6d650474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b00c0 5a000600 01000000 3c002703 6e7330c0 630a686f 73746d61 73746572 c0630000 00230000 0e100000 00780064 c8000000 003c. +0.000665 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000123 close fd=4 close=OK +0.000708 adns-1.5.0~rc1/regress/case-norecurse2.sys0000664000175000017500000012512012422510662016563 0ustar ianianadnstest default -0x416 4.204.50.158.in-addr.arpa start 939764277.018636 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000162 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000052 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000042 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 010001. sendto=43 +0.001984 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000131 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 020001. sendto=43 +0.001195 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000092 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 050001. sendto=43 +0.001175 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000096 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 060001. sendto=43 +0.001216 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000098 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.001153 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000095 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0d0001. sendto=43 +0.001170 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000103 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.001162 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000099 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 100001. sendto=43 +0.001193 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000104 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. sendto=43 +0.001203 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000105 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 010001. sendto=43 +0.001379 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000105 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 020001. sendto=43 +0.001199 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000107 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.001196 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000111 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.001229 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000114 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 060001. sendto=43 +0.001187 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000115 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. sendto=43 +0.001165 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000116 select max=5 rfds=[4] wfds=[] efds=[] to=1.979603 select=1 rfds=[4] wfds=[] efds=[] +1.005569 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228580 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 060001. +0.000287 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000173 select max=5 rfds=[4] wfds=[] efds=[] to=0.973574 select=1 rfds=[4] wfds=[] efds=[] +0.149373 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248580 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0d0001. +0.000294 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000119 select max=5 rfds=[4] wfds=[] efds=[] to=0.823788 select=1 rfds=[4] wfds=[] efds=[] +0.019622 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258580 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0f0001. +0.000268 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000116 select max=5 rfds=[4] wfds=[] efds=[] to=0.803782 select=1 rfds=[4] wfds=[] efds=[] +0.019566 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268580 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 100001. +0.000266 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000116 select max=5 rfds=[4] wfds=[] efds=[] to=0.783834 select=1 rfds=[4] wfds=[] efds=[] +0.019476 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0f0001. +0.000261 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000120 select max=5 rfds=[4] wfds=[] efds=[] to=0.763977 select=1 rfds=[4] wfds=[] efds=[] +0.189710 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298580 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 010001. +0.000268 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000119 select max=5 rfds=[4] wfds=[] efds=[] to=0.573880 select=1 rfds=[4] wfds=[] efds=[] +0.019648 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8580 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 020001. +0.000260 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000119 select max=5 rfds=[4] wfds=[] efds=[] to=0.553853 select=1 rfds=[4] wfds=[] efds=[] +0.019563 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. +0.000257 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000119 select max=5 rfds=[4] wfds=[] efds=[] to=0.533914 select=0 rfds=[] wfds=[] efds=[] +1.-463554 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 010001. sendto=43 +0.000546 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 020001. sendto=43 +0.000484 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 050001. sendto=43 +0.000484 select max=5 rfds=[4] wfds=[] efds=[] to=0.001940 select=1 rfds=[4] wfds=[] efds=[] +0.000119 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 010001. +0.000255 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 020001. +0.000284 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000100 select max=5 rfds=[4] wfds=[] efds=[] to=0.001182 select=0 rfds=[] wfds=[] efds=[] +0.007693 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000479 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. sendto=43 +0.000465 select max=5 rfds=[4] wfds=[] efds=[] to=0.001722 select=0 rfds=[] wfds=[] efds=[] +0.009054 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000480 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 060001. sendto=43 +0.000489 select max=5 rfds=[4] wfds=[] efds=[] to=1.980098 select=1 rfds=[4] wfds=[] efds=[] +0.000131 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 060001. +0.000231 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000119 select max=5 rfds=[4] wfds=[] efds=[] to=1.979617 select=0 rfds=[] wfds=[] efds=[] +2.-21402 select max=5 rfds=[4] wfds=[] efds=[] to=0.001019 select=0 rfds=[] wfds=[] efds=[] +0.009951 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 050001. sendto=43 +0.000505 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000529 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. sendto=43 +0.000468 select max=5 rfds=[4] wfds=[] efds=[] to=0.008498 select=0 rfds=[] wfds=[] efds=[] +0.008500 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000459 select max=5 rfds=[4] wfds=[] efds=[] to=1.989538 select=0 rfds=[] wfds=[] efds=[] +2.-10446 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 050001. sendto=43 +0.000537 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000484 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. sendto=43 +0.000487 select max=5 rfds=[4] wfds=[] efds=[] to=0.008478 select=0 rfds=[] wfds=[] efds=[] +0.008478 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000106 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000456 select max=5 rfds=[4] wfds=[] efds=[] to=1.989451 select=0 rfds=[] wfds=[] efds=[] +2.-10542 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 050001. sendto=43 +0.000612 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000551 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. sendto=43 +0.000564 select max=5 rfds=[4] wfds=[] efds=[] to=0.008358 select=0 rfds=[] wfds=[] efds=[] +0.008252 select max=5 rfds=[4] wfds=[] efds=[] to=0.000106 select=0 rfds=[] wfds=[] efds=[] +0.009994 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000467 select max=5 rfds=[4] wfds=[] efds=[] to=1.979559 select=1 rfds=[4] wfds=[] efds=[] +0.372703 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 060001. +0.000261 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000225 select max=5 rfds=[4] wfds=[] efds=[] to=1.606370 select=1 rfds=[4] wfds=[] efds=[] +0.039270 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 010001. +0.000255 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000224 select max=5 rfds=[4] wfds=[] efds=[] to=1.566621 select=1 rfds=[4] wfds=[] efds=[] +0.149484 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 020001. +0.000261 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000200 select max=5 rfds=[4] wfds=[] efds=[] to=1.416676 select=0 rfds=[] wfds=[] efds=[] +2.-583334 select max=5 rfds=[4] wfds=[] efds=[] to=0.000010 select=0 rfds=[] wfds=[] efds=[] +0.010045 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 050001. sendto=43 +0.000504 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000456 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. sendto=43 +0.000499 select max=5 rfds=[4] wfds=[] efds=[] to=0.008480 select=0 rfds=[] wfds=[] efds=[] +0.008495 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000644 select max=5 rfds=[4] wfds=[] efds=[] to=1.989402 select=1 rfds=[4] wfds=[] efds=[] +0.490712 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278580 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 110001. +0.001892 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238380 00010012 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000000 00000d03 6e733203 61667003 636f6d00 c00c000c 00010000 00000005 026e73c0 3bc00c00 0c000100 00000000 07046e65 7773c03b c00c000c 00010000 0000000c 036e7332 03616670 02667200 c00c000c 00010000 00000005 026e73c0 78c00c00 0c000100 00000000 07046e65 7773c078 c00c000c 00010000 00000019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 3fc00c00 0c000100 00000000 07046e65 7773c0b4 c00c000c 00010000 00000019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 7cc00c00 0c000100 00000000 07046e65 7773c0ec c00c000c 00010000 0000001a 036e7332 13616765 6e636566 72616e63 652d7072 65737365 c03fc00c 000c0001 00000000 0007046e 657773c1 24c00c00 0c000100 00000000 1a036e73 32136167 656e6365 6672616e 63652d70 72657373 65c07cc0 0c000c00 01000000 00000704 6e657773 c15dc00c 000c0001 00000000 0011036e 73320a69 6d616765 666f7275 6dc03fc0 0c000c00 01000000 00000704 6e657773 c196c00c 000c0001 00000000 0014036e 73320a69 6d616765 666f7275 6d02746d c07cc00c 000c0001 00000000 0007046e 657773c1 c6. +0.003281 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.002885 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000045 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000039 connect fd=5 addr=172.18.45.6:53 connect=EINPROGRESS +0.000565 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010000 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 050001. +0.000249 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8380 00010012 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000000 00000d03 6e733203 61667003 636f6d00 c00c000c 00010000 00000005 026e73c0 3bc00c00 0c000100 00000000 07046e65 7773c03b c00c000c 00010000 0000000c 036e7332 03616670 02667200 c00c000c 00010000 00000005 026e73c0 78c00c00 0c000100 00000000 07046e65 7773c078 c00c000c 00010000 00000019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 3fc00c00 0c000100 00000000 07046e65 7773c0b4 c00c000c 00010000 00000019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 7cc00c00 0c000100 00000000 07046e65 7773c0ec c00c000c 00010000 0000001a 036e7332 13616765 6e636566 72616e63 652d7072 65737365 c03fc00c 000c0001 00000000 0007046e 657773c1 24c00c00 0c000100 00000000 1a036e73 32136167 656e6365 6672616e 63652d70 72657373 65c07cc0 0c000c00 01000000 00000704 6e657773 c15dc00c 000c0001 00000000 0011036e 73320a69 6d616765 666f7275 6dc03fc0 0c000c00 01000000 00000704 6e657773 c196c00c 000c0001 00000000 0014036e 73320a69 6d616765 666f7275 6d02746d c07cc00c 000c0001 00000000 0007046e 657773c1 c6. +0.001704 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8380 00010012 00000000 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000000 00000d03 6e733203 61667003 636f6d00 c00c000c 00010000 00000005 026e73c0 3bc00c00 0c000100 00000000 07046e65 7773c03b c00c000c 00010000 0000000c 036e7332 03616670 02667200 c00c000c 00010000 00000005 026e73c0 78c00c00 0c000100 00000000 07046e65 7773c078 c00c000c 00010000 00000019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 3fc00c00 0c000100 00000000 07046e65 7773c0b4 c00c000c 00010000 00000019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 7cc00c00 0c000100 00000000 07046e65 7773c0ec c00c000c 00010000 0000001a 036e7332 13616765 6e636566 72616e63 652d7072 65737365 c03fc00c 000c0001 00000000 0007046e 657773c1 24c00c00 0c000100 00000000 1a036e73 32136167 656e6365 6672616e 63652d70 72657373 65c07cc0 0c000c00 01000000 00000704 6e657773 c15dc00c 000c0001 00000000 0011036e 73320a69 6d616765 666f7275 6dc03fc0 0c000c00 01000000 00000704 6e657773 c196c00c 000c0001 00000000 0014036e 73320a69 6d616765 666f7275 6d02746d c07cc00c 000c0001 00000000 0007046e 657773c1 c6. +0.001827 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000201 select max=6 rfds=[4] wfds=[5] efds=[] to=13.987312 select=1 rfds=[] wfds=[5] efds=[] +0.000364 read fd=5 buflen=1 read=EAGAIN +0.000127 write fd=5 002b3123 01000001 00000000 00000134 03323034 02353003 31353807 696e2d61 64647204 61727061 00000c00 01. write=45 +0.001692 write fd=5 002b312b 01000001 00000000 00000134 03323034 02353003 31353807 696e2d61 64647204 61727061 00000c00 01. write=45 +0.001275 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.983854 select=1 rfds=[5] wfds=[] efds=[] +0.000150 read fd=5 buflen=2 read=OK 02e1. +0.000196 read fd=5 buflen=737 read=OK 31238180 00010017 00020002 01340332 30340235 30033135 3807696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000000 00000d03 6e733203 61667003 636f6d00 c00c000c 00010000 00000005 026e73c0 3bc00c00 0c000100 00000000 07046e65 7773c03b c00c000c 00010000 0000000c 036e7332 03616670 02667200 c00c000c 00010000 00000005 026e73c0 78c00c00 0c000100 00000000 07046e65 7773c078 c00c000c 00010000 00000019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 3fc00c00 0c000100 00000000 07046e65 7773c0b4 c00c000c 00010000 00000019 036e7332 12616765 6e636566 72616e63 65707265 737365c0 7cc00c00 0c000100 00000000 07046e65 7773c0ec c00c000c 00010000 0000001a 036e7332 13616765 6e636566 72616e63 652d7072 65737365 c03fc00c 000c0001 00000000 0007046e 657773c1 24c00c00 0c000100 00000000 1a036e73 32136167 656e6365 6672616e 63652d70 72657373 65c07cc0 0c000c00 01000000 00000704 6e657773 c15dc00c 000c0001 00000000 0011036e 73320a69 6d616765 666f7275 6dc03fc0 0c000c00 01000000 00000704 6e657773 c196c00c 000c0001 00000000 0014036e 73320a69 6d616765 666f7275 6d02746d c07cc00c 000c0001 00000000 0007046e 657773c1 c6c00c00 0c000100 00000000 12036e73 320b6f6f 682d6c61 682d6c61 68c03fc0 0c000c00 01000000 00001203 6e73320b 61667073 6369656e 636573c0 3fc00c00 0c000100 00000000 0d036e73 32066166 70646f63 c03fc00c 000c0001 00000000 0010036e 73320961 66702d6e 6f746573 c03fc00c 000c0001 00000000 0011036e 73320a61 66702d64 6f6d696e 6fc03f02 35300331 35380769 6e2d6164 64720461 72706100 00020001 0007e8fe 0002c037 02353003 31353807 696e2d61 64647204 61727061 00000200 010007e8 fe000603 4e5331c0 3bc03700 01000100 02a2fe00 049e32cc 04034e53 31c03b00 01000100 02a2fe00 04d0dfa6 03. +0.002595 read fd=5 buflen=739 read=OK 02e1312b 81800001 00170002 00020134 03323034 02353003 31353807 696e2d61 64647204 61727061 00000c00 01c00c00 0c000100 00000000 0d036e73 32036166 7003636f 6d00c00c 000c0001 00000000 0005026e 73c03bc0 0c000c00 01000000 00000704 6e657773 c03bc00c 000c0001 00000000 000c036e 73320361 66700266 7200c00c 000c0001 00000000 0005026e 73c078c0 0c000c00 01000000 00000704 6e657773 c078c00c 000c0001 00000000 0019036e 73321261 67656e63 65667261 6e636570 72657373 65c03fc0 0c000c00 01000000 00000704 6e657773 c0b4c00c 000c0001 00000000 0019036e 73321261 67656e63 65667261 6e636570 72657373 65c07cc0 0c000c00 01000000 00000704 6e657773 c0ecc00c 000c0001 00000000 001a036e 73321361 67656e63 65667261 6e63652d 70726573 7365c03f c00c000c 00010000 00000007 046e6577 73c124c0 0c000c00 01000000 00001a03 6e733213 6167656e 63656672 616e6365 2d707265 737365c0 7cc00c00 0c000100 00000000 07046e65 7773c15d c00c000c 00010000 00000011 036e7332 0a696d61 6765666f 72756dc0 3fc00c00 0c000100 00000000 07046e65 7773c196 c00c000c 00010000 00000014 036e7332 0a696d61 6765666f 72756d02 746dc07c c00c000c 00010000 00000007 046e6577 73c1c6c0 0c000c00 01000000 00001203 6e73320b 6f6f682d 6c61682d 6c6168c0 3fc00c00 0c000100 00000000 12036e73 320b6166 70736369 656e6365 73c03fc0 0c000c00 01000000 00000d03 6e733206 61667064 6f63c03f c00c000c 00010000 00000010 036e7332 09616670 2d6e6f74 6573c03f c00c000c 00010000 00000011 036e7332 0a616670 2d646f6d 696e6fc0 3f023530 03313538 07696e2d 61646472 04617270 61000002 00010007 e8fe0002 c0370235 30033135 3807696e 2d616464 72046172 70610000 02000100 07e8fe00 06034e53 31c03bc0 37000100 010002a2 fe00049e 32cc0403 4e5331c0 3b000100 010002a2 fe0004d0 dfa603. +0.004644 sendto fd=4 addr=172.18.45.6:53 312f0100 00010000 00000000 036e7332 03616670 03636f6d 00000100 01. sendto=29 +0.001410 sendto fd=4 addr=172.18.45.6:53 31300100 00010000 00000000 026e7303 61667003 636f6d00 00010001. sendto=28 +0.001075 sendto fd=4 addr=172.18.45.6:53 31310100 00010000 00000000 046e6577 73036166 7003636f 6d000001 0001. sendto=30 +0.001072 sendto fd=4 addr=172.18.45.6:53 31320100 00010000 00000000 036e7332 03616670 02667200 00010001. sendto=28 +0.001053 sendto fd=4 addr=172.18.45.6:53 31330100 00010000 00000000 026e7303 61667002 66720000 010001. sendto=27 +0.001065 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 046e6577 73036166 70026672 00000100 01. sendto=29 +0.001063 sendto fd=4 addr=172.18.45.6:53 31350100 00010000 00000000 036e7332 12616765 6e636566 72616e63 65707265 73736503 636f6d00 00010001. sendto=44 +0.001117 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 046e6577 73126167 656e6365 6672616e 63657072 65737365 03636f6d 00000100 01. sendto=45 +0.001230 sendto fd=4 addr=172.18.45.6:53 31370100 00010000 00000000 036e7332 12616765 6e636566 72616e63 65707265 73736502 66720000 010001. sendto=43 +0.001352 sendto fd=4 addr=172.18.45.6:53 31380100 00010000 00000000 046e6577 73126167 656e6365 6672616e 63657072 65737365 02667200 00010001. sendto=44 +0.001324 sendto fd=4 addr=172.18.45.6:53 31390100 00010000 00000000 036e7332 13616765 6e636566 72616e63 652d7072 65737365 03636f6d 00000100 01. sendto=45 +0.001336 sendto fd=4 addr=172.18.45.6:53 313a0100 00010000 00000000 046e6577 73136167 656e6365 6672616e 63652d70 72657373 6503636f 6d000001 0001. sendto=46 +0.001340 sendto fd=4 addr=172.18.45.6:53 313b0100 00010000 00000000 036e7332 13616765 6e636566 72616e63 652d7072 65737365 02667200 00010001. sendto=44 +0.001322 sendto fd=4 addr=172.18.45.6:53 313c0100 00010000 00000000 046e6577 73136167 656e6365 6672616e 63652d70 72657373 65026672 00000100 01. sendto=45 +0.001312 sendto fd=4 addr=172.18.45.6:53 313d0100 00010000 00000000 036e7332 0a696d61 6765666f 72756d03 636f6d00 00010001. sendto=36 +0.001330 sendto fd=4 addr=172.18.45.6:53 313e0100 00010000 00000000 046e6577 730a696d 61676566 6f72756d 03636f6d 00000100 01. sendto=37 +0.001298 sendto fd=4 addr=172.18.45.6:53 313f0100 00010000 00000000 036e7332 0a696d61 6765666f 72756d02 746d0266 72000001 0001. sendto=38 +0.001326 sendto fd=4 addr=172.18.45.6:53 31400100 00010000 00000000 046e6577 730a696d 61676566 6f72756d 02746d02 66720000 010001. sendto=39 +0.001310 sendto fd=4 addr=172.18.45.6:53 31410100 00010000 00000000 036e7332 0b6f6f68 2d6c6168 2d6c6168 03636f6d 00000100 01. sendto=37 +0.001326 sendto fd=4 addr=172.18.45.6:53 31420100 00010000 00000000 036e7332 0b616670 73636965 6e636573 03636f6d 00000100 01. sendto=37 +0.001329 sendto fd=4 addr=172.18.45.6:53 31430100 00010000 00000000 036e7332 06616670 646f6303 636f6d00 00010001. sendto=32 +0.001283 sendto fd=4 addr=172.18.45.6:53 31440100 00010000 00000000 036e7332 09616670 2d6e6f74 65730363 6f6d0000 010001. sendto=35 +0.001386 sendto fd=4 addr=172.18.45.6:53 31450100 00010000 00000000 036e7332 0a616670 2d646f6d 696e6f03 636f6d00 00010001. sendto=36 +0.001512 read fd=5 buflen=739 read=EAGAIN +0.000090 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.963304 select=1 rfds=[4] wfds=[] efds=[] +0.004077 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312f8180 00010001 000d000d 036e7332 03616670 03636f6d 00000100 01c00c00 01000100 02813e00 049e32cc 04000002 00010007 e8df0014 014c0c52 4f4f542d 53455256 45525303 4e455400 00000200 010007e8 df000401 4dc03a00 00020001 0007e8df 00040149 c03a0000 02000100 07e8df00 040145c0 3a000002 00010007 e8df0004 0144c03a 00000200 010007e8 df000401 41c03a00 00020001 0007e8df 00040148 c03a0000 02000100 07e8df00 040143c0 3a000002 00010007 e8df0004 0147c03a 00000200 010007e8 df000401 46c03a00 00020001 0007e8df 00040142 c03a0000 02000100 07e8df00 04014ac0 3a000002 00010007 e8df0004 014bc03a c0380001 00010009 3a5f0004 c620400c c0570001 00010009 3a5f0004 ca0c1b21 c0660001 00010009 3a5f0004 c0249411 c0750001 00010009 3a5f0004 c0cbe60a c0840001 00010009 3a5f0004 80080a5a c0930001 00010009 3a5f0004 c6290004 c0a20001 00010009 3a5f0004 803f0235 c0b10001 00010009 3a5f0004 c021040c c0c00001 00010009 3a5f0004 c0702404 c0cf0001 00010009 3a5f0004 c00505f1 c0de0001 00010009 3a5f0004 8009006b c0ed0001 00010009 3a5f0004 c629000a c0fc0001 00010009 3a5f0004 c1000e81. +0.001847 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000277 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.957103 select=0 rfds=[] wfds=[] efds=[] +2.-40545 sendto fd=4 addr=172.18.45.6:53 31300100 00010000 00000000 026e7303 61667003 636f6d00 00010001. sendto=28 +0.000601 sendto fd=4 addr=172.18.45.6:53 31310100 00010000 00000000 046e6577 73036166 7003636f 6d000001 0001. sendto=30 +0.000404 sendto fd=4 addr=172.18.45.6:53 31320100 00010000 00000000 036e7332 03616670 02667200 00010001. sendto=28 +0.000424 sendto fd=4 addr=172.18.45.6:53 31330100 00010000 00000000 026e7303 61667002 66720000 010001. sendto=27 +0.000383 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 046e6577 73036166 70026672 00000100 01. sendto=29 +0.000389 sendto fd=4 addr=172.18.45.6:53 31350100 00010000 00000000 036e7332 12616765 6e636566 72616e63 65707265 73736503 636f6d00 00010001. sendto=44 +0.000446 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 046e6577 73126167 656e6365 6672616e 63657072 65737365 03636f6d 00000100 01. sendto=45 +0.000449 sendto fd=4 addr=172.18.45.6:53 31370100 00010000 00000000 036e7332 12616765 6e636566 72616e63 65707265 73736502 66720000 010001. sendto=43 +0.000440 sendto fd=4 addr=172.18.45.6:53 31380100 00010000 00000000 046e6577 73126167 656e6365 6672616e 63657072 65737365 02667200 00010001. sendto=44 +0.000441 sendto fd=4 addr=172.18.45.6:53 31390100 00010000 00000000 036e7332 13616765 6e636566 72616e63 652d7072 65737365 03636f6d 00000100 01. sendto=45 +0.000474 sendto fd=4 addr=172.18.45.6:53 313a0100 00010000 00000000 046e6577 73136167 656e6365 6672616e 63652d70 72657373 6503636f 6d000001 0001. sendto=46 +0.000451 sendto fd=4 addr=172.18.45.6:53 313b0100 00010000 00000000 036e7332 13616765 6e636566 72616e63 652d7072 65737365 02667200 00010001. sendto=44 +0.000440 sendto fd=4 addr=172.18.45.6:53 313c0100 00010000 00000000 046e6577 73136167 656e6365 6672616e 63652d70 72657373 65026672 00000100 01. sendto=45 +0.000439 sendto fd=4 addr=172.18.45.6:53 313d0100 00010000 00000000 036e7332 0a696d61 6765666f 72756d03 636f6d00 00010001. sendto=36 +0.000413 sendto fd=4 addr=172.18.45.6:53 313e0100 00010000 00000000 046e6577 730a696d 61676566 6f72756d 03636f6d 00000100 01. sendto=37 +0.000416 sendto fd=4 addr=172.18.45.6:53 313f0100 00010000 00000000 036e7332 0a696d61 6765666f 72756d02 746d0266 72000001 0001. sendto=38 +0.000442 sendto fd=4 addr=172.18.45.6:53 31400100 00010000 00000000 046e6577 730a696d 61676566 6f72756d 02746d02 66720000 010001. sendto=39 +0.000418 sendto fd=4 addr=172.18.45.6:53 31410100 00010000 00000000 036e7332 0b6f6f68 2d6c6168 2d6c6168 03636f6d 00000100 01. sendto=37 +0.000412 sendto fd=4 addr=172.18.45.6:53 31420100 00010000 00000000 036e7332 0b616670 73636965 6e636573 03636f6d 00000100 01. sendto=37 +0.000413 sendto fd=4 addr=172.18.45.6:53 31430100 00010000 00000000 036e7332 06616670 646f6303 636f6d00 00010001. sendto=32 +0.000394 sendto fd=4 addr=172.18.45.6:53 31440100 00010000 00000000 036e7332 09616670 2d6e6f74 65730363 6f6d0000 010001. sendto=35 +0.000403 sendto fd=4 addr=172.18.45.6:53 31450100 00010000 00000000 036e7332 0a616670 2d646f6d 696e6f03 636f6d00 00010001. sendto=36 +0.000407 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.990501 select=0 rfds=[] wfds=[] efds=[] +2.-09491 sendto fd=4 addr=172.18.45.6:53 31300100 00010000 00000000 026e7303 61667003 636f6d00 00010001. sendto=28 +0.000642 sendto fd=4 addr=172.18.45.6:53 31310100 00010000 00000000 046e6577 73036166 7003636f 6d000001 0001. sendto=30 +0.000399 sendto fd=4 addr=172.18.45.6:53 31320100 00010000 00000000 036e7332 03616670 02667200 00010001. sendto=28 +0.000385 sendto fd=4 addr=172.18.45.6:53 31330100 00010000 00000000 026e7303 61667002 66720000 010001. sendto=27 +0.000380 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 046e6577 73036166 70026672 00000100 01. sendto=29 +0.000388 sendto fd=4 addr=172.18.45.6:53 31350100 00010000 00000000 036e7332 12616765 6e636566 72616e63 65707265 73736503 636f6d00 00010001. sendto=44 +0.000443 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 046e6577 73126167 656e6365 6672616e 63657072 65737365 03636f6d 00000100 01. sendto=45 +0.000447 sendto fd=4 addr=172.18.45.6:53 31370100 00010000 00000000 036e7332 12616765 6e636566 72616e63 65707265 73736502 66720000 010001. sendto=43 +0.000456 sendto fd=4 addr=172.18.45.6:53 31380100 00010000 00000000 046e6577 73126167 656e6365 6672616e 63657072 65737365 02667200 00010001. sendto=44 +0.000438 sendto fd=4 addr=172.18.45.6:53 31390100 00010000 00000000 036e7332 13616765 6e636566 72616e63 652d7072 65737365 03636f6d 00000100 01. sendto=45 +0.000445 sendto fd=4 addr=172.18.45.6:53 313a0100 00010000 00000000 046e6577 73136167 656e6365 6672616e 63652d70 72657373 6503636f 6d000001 0001. sendto=46 +0.000447 sendto fd=4 addr=172.18.45.6:53 313b0100 00010000 00000000 036e7332 13616765 6e636566 72616e63 652d7072 65737365 02667200 00010001. sendto=44 +0.000437 sendto fd=4 addr=172.18.45.6:53 313c0100 00010000 00000000 046e6577 73136167 656e6365 6672616e 63652d70 72657373 65026672 00000100 01. sendto=45 +0.000438 sendto fd=4 addr=172.18.45.6:53 313d0100 00010000 00000000 036e7332 0a696d61 6765666f 72756d03 636f6d00 00010001. sendto=36 +0.000434 sendto fd=4 addr=172.18.45.6:53 313e0100 00010000 00000000 046e6577 730a696d 61676566 6f72756d 03636f6d 00000100 01. sendto=37 +0.000416 sendto fd=4 addr=172.18.45.6:53 313f0100 00010000 00000000 036e7332 0a696d61 6765666f 72756d02 746d0266 72000001 0001. sendto=38 +0.000415 sendto fd=4 addr=172.18.45.6:53 31400100 00010000 00000000 046e6577 730a696d 61676566 6f72756d 02746d02 66720000 010001. sendto=39 +0.000416 sendto fd=4 addr=172.18.45.6:53 31410100 00010000 00000000 036e7332 0b6f6f68 2d6c6168 2d6c6168 03636f6d 00000100 01. sendto=37 +0.000412 sendto fd=4 addr=172.18.45.6:53 31420100 00010000 00000000 036e7332 0b616670 73636965 6e636573 03636f6d 00000100 01. sendto=37 +0.000414 sendto fd=4 addr=172.18.45.6:53 31430100 00010000 00000000 036e7332 06616670 646f6303 636f6d00 00010001. sendto=32 +0.000392 sendto fd=4 addr=172.18.45.6:53 31440100 00010000 00000000 036e7332 09616670 2d6e6f74 65730363 6f6d0000 010001. sendto=35 +0.000425 sendto fd=4 addr=172.18.45.6:53 31450100 00010000 00000000 036e7332 0a616670 2d646f6d 696e6f03 636f6d00 00010001. sendto=36 +0.000409 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.990522 select=1 rfds=[4] wfds=[] efds=[] +1.-235306 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31308580 00010001 00020002 026e7303 61667003 636f6d00 00010001 c00c0001 00010001 51800004 9e32cc04 03616670 03636f6d 00000200 01000151 80000603 6e7332c0 2cc02c00 02000100 01518000 06036e73 31c02cc0 3f000100 01000151 8000049e 32cc04c0 51000100 01000151 800004d0 dfa603. +0.000734 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000269 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.224825 select=1 rfds=[4] wfds=[] efds=[] +0.179062 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31458580 00010001 00020002 036e7332 0a616670 2d646f6d 696e6f03 636f6d00 00010001 c00c0001 00010001 51800004 9e32cc04 0a616670 2d646f6d 696e6f03 636f6d00 00020001 00015180 0002c00c c0340002 00010001 51800006 036e7331 c034c00c 00010001 00015180 00049e32 cc04c05c 00010001 00015180 0004d0df a603. +0.000758 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000284 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.044721 select=1 rfds=[4] wfds=[] efds=[] +0.038932 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31448580 00010001 00020002 036e7332 09616670 2d6e6f74 65730363 6f6d0000 010001c0 0c000100 01000151 8000049e 32cc0409 6166702d 6e6f7465 7303636f 6d000002 00010001 51800002 c00cc033 00020001 00015180 0006036e 7331c033 c00c0001 00010001 51800004 9e32cc04 c05a0001 00010001 51800004 d0dfa603. +0.000729 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000258 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.004802 select=1 rfds=[4] wfds=[] efds=[] +0.399140 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313b8180 00010001 00020002 036e7332 13616765 6e636566 72616e63 652d7072 65737365 02667200 00010001 c00c0001 00010005 46000004 9e32cc04 13616765 6e636566 72616e63 652d7072 65737365 02667200 00020001 00054600 0002c00c c03c0002 00010005 46000006 036e7331 c03cc00c 00010001 00054600 00049e32 cc04c06c 00010001 00054600 0004d0df a603. +0.000770 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000288 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.604604 select=1 rfds=[4] wfds=[] efds=[] +0.038862 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313e8580 00010001 00020002 046e6577 730a696d 61676566 6f72756d 03636f6d 00000100 01c00c00 01000100 01518000 049e32cc 040a696d 61676566 6f72756d 03636f6d 00000200 01000151 80000603 6e7332c0 35c03500 02000100 01518000 06036e73 31c035c0 4f000100 01000151 8000049e 32cc04c0 61000100 01000151 800004d0 dfa603. +0.000714 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000248 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.564780 select=1 rfds=[4] wfds=[] efds=[] +1.-870685 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31368580 00010001 00020002 046e6577 73126167 656e6365 6672616e 63657072 65737365 03636f6d 00000100 01c00c00 01000100 01518000 049e32cc 04126167 656e6365 6672616e 63657072 65737365 03636f6d 00000200 01000151 80000603 6e7332c0 3dc03d00 02000100 01518000 06036e73 31c03dc0 5f000100 01000151 8000049e 32cc04c0 71000100 01000151 800004d0 dfa603. +0.000749 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000248 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.434468 select=1 rfds=[4] wfds=[] efds=[] +0.038661 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31358580 00010001 00020002 036e7332 12616765 6e636566 72616e63 65707265 73736503 636f6d00 00010001 c00c0001 00010001 51800004 9e32cc04 12616765 6e636566 72616e63 65707265 73736503 636f6d00 00020001 00015180 0002c00c c03c0002 00010001 51800006 036e7331 c03cc00c 00010001 00015180 00049e32 cc04c06c 00010001 00015180 0004d0df a603. +0.000722 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000266 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.394819 select=1 rfds=[4] wfds=[] efds=[] +0.049154 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31378180 00010001 00020002 036e7332 12616765 6e636566 72616e63 65707265 73736502 66720000 010001c0 0c000100 01000546 0000049e 32cc0412 6167656e 63656672 616e6365 70726573 73650266 72000002 00010005 46000002 c00cc03b 00020001 00054600 0006036e 7331c03b c00c0001 00010005 46000004 9e32cc04 c06a0001 00010005 46000004 d0dfa603. +0.000707 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000243 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.344715 select=1 rfds=[4] wfds=[] efds=[] +0.039336 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31398580 00010001 00020002 036e7332 13616765 6e636566 72616e63 652d7072 65737365 03636f6d 00000100 01c00c00 01000100 01518000 049e32cc 04136167 656e6365 6672616e 63652d70 72657373 6503636f 6d000002 00010001 51800002 c00cc03d 00020001 00015180 0006036e 7331c03d c00c0001 00010001 51800004 9e32cc04 c06e0001 00010001 51800004 d0dfa603. +0.000695 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000267 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.304417 select=1 rfds=[4] wfds=[] efds=[] +0.078532 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31318580 00010001 00020002 046e6577 73036166 7003636f 6d000001 0001c00c 00010001 00015180 00049e32 cc040361 66700363 6f6d0000 02000100 01518000 06036e73 32c02ec0 2e000200 01000151 80000603 6e7331c0 2ec04100 01000100 01518000 049e32cc 04c05300 01000100 01518000 04d0dfa6 03. +0.000600 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000235 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.225050 select=1 rfds=[4] wfds=[] efds=[] +0.039210 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31328180 00010001 00020002 036e7332 03616670 02667200 00010001 c00c0001 00010005 46000004 9e32cc04 03616670 02667200 00020001 00054600 0002c00c c02c0002 00010005 46000006 036e7331 c02cc00c 00010001 00054600 00049e32 cc04c04c 00010001 00054600 0004d0df a603. +0.000589 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000236 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.185015 select=1 rfds=[4] wfds=[] efds=[] +0.159098 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31388180 00010001 00010001 046e6577 73126167 656e6365 6672616e 63657072 65737365 02667200 00010001 c00c0001 00010000 00000004 9e32cc04 12616765 6e636566 72616e63 65707265 73736502 66720000 02000100 00000000 06036e73 31c03cc0 5d000100 01000000 000004d0 dfa603. +0.000578 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000253 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.025086 select=0 rfds=[] wfds=[] efds=[] +0.025066 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.000020 select=0 rfds=[] wfds=[] efds=[] +0.009997 sendto fd=4 addr=172.18.45.6:53 31330100 00010000 00000000 026e7303 61667002 66720000 010001. sendto=27 +0.000458 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 046e6577 73036166 70026672 00000100 01. sendto=29 +0.000387 sendto fd=4 addr=172.18.45.6:53 313a0100 00010000 00000000 046e6577 73136167 656e6365 6672616e 63652d70 72657373 6503636f 6d000001 0001. sendto=46 +0.000441 sendto fd=4 addr=172.18.45.6:53 313c0100 00010000 00000000 046e6577 73136167 656e6365 6672616e 63652d70 72657373 65026672 00000100 01. sendto=45 +0.000438 sendto fd=4 addr=172.18.45.6:53 313d0100 00010000 00000000 036e7332 0a696d61 6765666f 72756d03 636f6d00 00010001. sendto=36 +0.000561 sendto fd=4 addr=172.18.45.6:53 313f0100 00010000 00000000 036e7332 0a696d61 6765666f 72756d02 746d0266 72000001 0001. sendto=38 +0.000423 sendto fd=4 addr=172.18.45.6:53 31400100 00010000 00000000 046e6577 730a696d 61676566 6f72756d 02746d02 66720000 010001. sendto=39 +0.000446 sendto fd=4 addr=172.18.45.6:53 31410100 00010000 00000000 036e7332 0b6f6f68 2d6c6168 2d6c6168 03636f6d 00000100 01. sendto=37 +0.000418 sendto fd=4 addr=172.18.45.6:53 31420100 00010000 00000000 036e7332 0b616670 73636965 6e636573 03636f6d 00000100 01. sendto=37 +0.000584 sendto fd=4 addr=172.18.45.6:53 31430100 00010000 00000000 036e7332 06616670 646f6303 636f6d00 00010001. sendto=32 +0.000560 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.995284 select=1 rfds=[4] wfds=[] efds=[] +0.000226 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313d8180 00010001 00020002 036e7332 0a696d61 6765666f 72756d03 636f6d00 00010001 c00c0001 00010001 409f0004 9e32cc04 0a696d61 6765666f 72756d03 434f4d00 00020001 0001517f 0002c00c c0340002 00010001 517f0006 036e7331 c034c00c 00010001 0001409f 00049e32 cc04c05c 00010001 0001517f 0004d0df a603. +0.000582 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000266 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.994210 select=1 rfds=[4] wfds=[] efds=[] +0.168328 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31338180 00010001 00010001 026e7303 61667002 66720000 010001c0 0c000100 01000000 0000049e 32cc0403 61667002 66720000 02000100 00000000 06036e73 31c02bc0 3d000100 01000000 000004d0 dfa603. +0.000470 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000252 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.825160 select=1 rfds=[4] wfds=[] efds=[] +0.229075 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31438580 00010000 00010000 036e7332 06616670 646f6303 636f6d00 00010001 06616670 646f6303 636f6d00 00060001 00015180 002c0364 6e730876 6963746f 69726502 66720004 726f6f74 c03a7727 65890000 70800000 1c20004f 1a000001 5180. +0.000492 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.001505 close fd=4 close=OK +0.000260 close fd=5 close=OK +0.000401 adns-1.5.0~rc1/regress/case-adh-cancel.sys0000664000175000017500000000427512422510661016461 0ustar ianian./adnshost default -f -A4 start 969124425.922896 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000162 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000058 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000035 select max=7 rfds=[0,6] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +0.000135 read fd=0 buflen=40 read=OK 2d2d6173 796e6368 2d696420 34320a63 68696172 6b2e6772 65656e65 6e642e6f 72672e75 6b0a2d2d. +0.000254 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000825 read fd=0 buflen=38 read=OK 6173796e 63682d69 64203433 0a646176 656e616e 742e7265 6c617469 76697479 2e677265 656e. +0.000184 read fd=0 buflen=15 read=OK 656e642e 6f72672e 756b0a2d 2d6361. +0.000106 sendto fd=6 addr=172.18.45.6:53 31220100 00010000 00000000 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=53 +0.000624 read fd=0 buflen=36 read=OK 6e63656c 2d696420 34320a. +0.000145 select max=7 rfds=[0,6] wfds=[] efds=[] to=1.999231 select=2 rfds=[0,6] wfds=[] efds=[] +0.000157 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d01. +0.000551 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228580 00010001 00020002 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 01000100 01518000 04ac122d 060a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000200 01000151 80000603 6e7330c0 45c04500 02000100 01518000 06036e73 31c045c0 6b000100 01000151 800004ac 122d06c0 7d000100 01000151 800004ac 122d01. +0.000579 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000151 read fd=0 buflen=40 read=OK . +0.000043 close fd=6 close=OK +0.000961 adns-1.5.0~rc1/regress/case-srvok.sys0000664000175000017500000000761112422510662015644 0ustar ianian./adnshost default -t srv- _srv._tcp.test.iwj.relativity.greenend.org.uk. _jabber._tcp.jabber.org _sip._udp.voip.net.cam.ac.uk. start 1144348873.125491 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000077 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000045 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000039 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001. sendto=63 +0.000350 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 075f6a61 62626572 045f7463 70066a61 62626572 036f7267 00002100 01. sendto=41 +0.000228 sendto fd=6 addr=172.18.45.6:53 31210100 00010000 00000000 045f7369 70045f75 64700476 6f697003 6e657403 63616d02 61630275 6b000021 0001. sendto=46 +0.000207 select max=7 rfds=[6] wfds=[] efds=[] to=1.999215 select=1 rfds=[6] wfds=[] efds=[] +0.006492 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010004 00020004 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001c0 0c002100 01000000 0a002b00 0a004227 52086461 76656e61 6e740a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 00210001 0000000a 002a0014 01904fb0 07616e61 72726573 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c00c0021 00010000 000a0029 001400c8 4ee8066e 6f727761 790a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 21000100 00000a00 2b001400 644e8408 6e78646f 6d61696e 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c0160002 00010000 000a0006 036e7330 c01fc016 00020001 0000000a 0021086e 732d7370 6f6e6702 34350331 37320231 3807696e 2d616464 72046172 70610008 64617665 6e616e74 c01f0001 00010001 51800004 ac122d06 07616e61 72726573 c01f0001 00010001 51800004 ac122d02 066e6f72 776179c0 1f000100 01000151 800004ac 122d28c1 24000100 01000151 800004ac 122d06. +0.000557 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000119 select max=7 rfds=[6] wfds=[] efds=[] to=1.992397 select=1 rfds=[6] wfds=[] efds=[] +0.003318 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010001 00040005 075f6a61 62626572 045f7463 70066a61 62626572 036f7267 00002100 01c00c00 21000100 0006e300 12001e00 1e149506 6a616262 6572036f 726700c0 19000200 0100001b fb001103 6e733107 6a657265 6d696503 636f6d00 c0190002 00010000 1bfb0006 036e7332 c057c019 00020001 00001bfb 000c036e 73310562 6c616872 c05fc019 00020001 00001bfb 0010026e 73076f62 656c6973 6b036e65 7400c019 00010001 00000107 0004d0f5 d462c053 00010001 00004149 0004d0f5 d41dc070 00010001 00004149 0004d0f5 d41ec082 00010001 0000414b 00044051 6774c09a 00010001 0000414b 00044761 e072. +0.000331 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218180 00010001 00070008 045f7369 70045f75 64700476 6f697003 6e657403 63616d02 61630275 6b000021 0001c00c 00210001 0001516b 001e000a 000113c4 03736970 04766f69 70036e65 74036361 6d026163 02756b00 c01f0002 00010001 516b000a 03633031 03637369 c01fc01f 00020001 0001516b 0009036e 73320269 63c023c0 1f000200 01000151 6b000a04 646e7330 02636cc0 1fc01f00 02000100 01516b00 0b04646e 73300365 6e67c01f c01f0002 00010001 516b0007 04646e73 31c094c0 1f000200 01000151 6b000f05 62697473 79036d69 74036564 7500c01f 00020001 0001516b 000f0863 68696d61 65726103 637378c0 1f037369 70c01600 01000100 01516b00 04836f08 aec06400 01000100 01516b00 04836f0c 14c07a00 01000100 00fd5100 049bc605 03c08f00 01000100 00544b00 0480e800 13c0a500 01000100 01516b00 0481a908 08c0bc00 01000100 00544b00 0480e800 12c0cf00 01000100 00028d00 04124800 03c0ea00 01000100 01516b00 04836f08 2a. +0.000484 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000061 close fd=6 close=OK +0.004680 adns-1.5.0~rc1/regress/init-unkopts.text0000664000175000017500000000062512423161435016400 0ustar ianiannameserver 172.18.45.6 sortlist 127.0.0.1/32 172.18.45.0/28 172.18.45.0/24 search davenant.greenend.org.uk greenend.org.uk lwserver 127.0.0.1 options timeout:1 attempts:30 rotate no-check-names inet6 edns0 wombat stoat options adns_checkc:freq zorkmid options adns_af:any adns_af:ipv6,ipv4,dampstring spong options adns_ignoreunkcfg wombat2 stoat2 options adns_af:any adns_af:ipv6,ipv4,dampstring2 spong2 adns-1.5.0~rc1/regress/case-noinfto.sys0000664000175000017500000000744512422540543016162 0ustar ianianadnstest noserver -,p :0x0|1 a.b.c.d start 940011574.766962 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000158 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000053 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000039 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.001065 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=1999 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.010188 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000218 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009786 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000282 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009708 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000217 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009800 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000272 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009786 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000216 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009723 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000273 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=EINTR +18.-37194 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=0 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +10.-89436 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000256 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.006138 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000218 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009731 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000261 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009735 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000212 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009790 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000254 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009747 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000228 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009771 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000256 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009755 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 01610162 01630164 00000100 01. sendto=25 +0.000226 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009768 close fd=4 close=OK +0.000363 adns-1.5.0~rc1/regress/case-unknown2.err0000664000175000017500000000005112421042026016213 0ustar ianianadns debug: using nameserver 172.18.45.6 adns-1.5.0~rc1/regress/hsyscalls.h.m40000664000175000017500000000303112421042026015505 0ustar ianianm4_dnl hsyscalls.h.m4 m4_dnl (part of complex test harness, not of the library) m4_dnl - prototypes of redefinitions of system calls m4_dnl This file is part of adns, which is m4_dnl Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson m4_dnl Copyright (C) 2014 Mark Wooding m4_dnl Copyright (C) 1999-2000,2003,2006 Tony Finch m4_dnl Copyright (C) 1991 Massachusetts Institute of Technology m4_dnl (See the file INSTALL for full details.) m4_dnl m4_dnl This program is free software; you can redistribute it and/or modify m4_dnl it under the terms of the GNU General Public License as published by m4_dnl the Free Software Foundation; either version 3, or (at your option) m4_dnl any later version. m4_dnl m4_dnl This program is distributed in the hope that it will be useful, m4_dnl but WITHOUT ANY WARRANTY; without even the implied warranty of m4_dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the m4_dnl GNU General Public License for more details. m4_dnl m4_dnl You should have received a copy of the GNU General Public License m4_dnl along with this program; if not, write to the Free Software Foundation. m4_include(hmacros.i4) #ifndef HSYSCALLS_H_INCLUDED #define HSYSCALLS_H_INCLUDED #include #include #include #include #include #ifdef HAVE_POLL #include #endif hm_create_proto_h m4_define(`hm_syscall', `int H$1(hm_args_massage($3,void));') m4_define(`hm_specsyscall', `$1 H$2($3)$4;') m4_include(`hsyscalls.i4') #endif adns-1.5.0~rc1/regress/case-manya.sys0000664000175000017500000000227312422540543015605 0ustar ianianadnstest default :0x0|1 manyaddrs.test.iwj.relativity.greenend.org.uk start 912888920.123769 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000245 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000705 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000073 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 096d616e 79616464 72730474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=63 +0.000698 select max=5 rfds=[4] wfds=[] efds=[] to=1.999302 select=1 rfds=[4] wfds=[] efds=[] +0.006236 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010004 00010001 096d616e 79616464 72730474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000100 01000000 3c0004ac 122d23c0 0c000100 01000000 3c0004ac 122d06c0 0c000100 01000000 3c0004ac 122d01c0 0c000100 01000000 3c00047f 00000104 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00020001 0000003c 0006036e 7330c088 c0ae0001 00010001 51800004 ac122d06. +0.001078 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000329 close fd=4 close=OK +0.000240 adns-1.5.0~rc1/regress/case-adh-cancel3.err0000664000175000017500000000015512421042026016501 0ustar ianianadns debug: using nameserver 172.18.45.6 adns debug: server failure on unidentifiable query (NS=172.18.45.6) adns-1.5.0~rc1/regress/hmacros.i40000664000175000017500000001166712421042026014720 0ustar ianianm4_dnl hmacros.h.m4 m4_dnl (part of complex test harness, not of the library) m4_dnl - common macros m4_dnl This file is part of adns, which is m4_dnl Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson m4_dnl Copyright (C) 2014 Mark Wooding m4_dnl Copyright (C) 1999-2000,2003,2006 Tony Finch m4_dnl Copyright (C) 1991 Massachusetts Institute of Technology m4_dnl (See the file INSTALL for full details.) m4_dnl m4_dnl This program is free software; you can redistribute it and/or modify m4_dnl it under the terms of the GNU General Public License as published by m4_dnl the Free Software Foundation; either version 3, or (at your option) m4_dnl any later version. m4_dnl m4_dnl This program is distributed in the hope that it will be useful, m4_dnl but WITHOUT ANY WARRANTY; without even the implied warranty of m4_dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the m4_dnl GNU General Public License for more details. m4_dnl m4_dnl You should have received a copy of the GNU General Public License m4_dnl along with this program; if not, write to the Free Software Foundation. m4_define(`hm_args_massage', `m4_ifelse( m4_patsubst( $1, `hm_comma\|[ ]+', `'), `', `$2', `m4_dnl m4_patsubst(m4_patsubst(m4_patsubst(m4_translit($1, ` ',` '), `\(hm_comma *\)*$', `'), `^\( *hm_comma\)*', `'), `\( *hm_comma *\)+',` hm_comma ')m4_dnl ')') m4_define(`hm_create_nothing', ` m4_define(`hm_na',`') m4_define(`hm_arg_nullptr', `') m4_define(`hm_arg_int', `') m4_define(`hm_arg_fdset_io', `') m4_define(`hm_arg_pollfds_io', `') m4_define(`hm_arg_timeval_in_rel_null',`') m4_define(`hm_arg_must', `') m4_define(`hm_arg_socktype',`') m4_define(`hm_arg_addrfam',`') m4_define(`hm_arg_ign', `') m4_define(`hm_arg_fd', `') m4_define(`hm_arg_fcntl_cmd_arg',`') m4_define(`hm_arg_addr_in', `') m4_define(`hm_arg_bytes_in', `') m4_define(`hm_arg_bytes_out', `') m4_define(`hm_arg_addr_out', `') ') m4_define(`hm_create_proto_h',` m4_define(`hm_na', `hm_comma') m4_define(`hm_arg_nullptr', `$'`1 $'`2') m4_define(`hm_arg_int', `int $'`1') m4_define(`hm_arg_fdset_io', `fd_set *$'`1') m4_define(`hm_arg_pollfds_io', `struct pollfd *$'`1 hm_comma int $'`2') m4_define(`hm_arg_timeval_in_rel_null', `struct timeval *$'`1') m4_define(`hm_arg_must', `$'`1 $'`2') m4_define(`hm_arg_socktype', `int $'`1') m4_define(`hm_arg_addrfam', `int $'`1') m4_define(`hm_arg_ign', `$'`1 $'`2') m4_define(`hm_arg_fd', `int $'`1') m4_define(`hm_arg_fcntl_cmd_arg', `int $'`1 hm_comma ...') m4_define(`hm_arg_addr_in', `const struct sockaddr *$'`1 hm_comma int $'`2') m4_define(`hm_arg_bytes_in', `const $'`1 *$'`2 hm_comma $'`3 $'`4') m4_define(`hm_arg_bytes_out', `$'`1 *$'`2 hm_comma $'`3 $'`4') m4_define(`hm_arg_addr_out', `struct sockaddr *$'`1 hm_comma int *$'`2') ') m4_define(`hm_create_proto_q',` hm_create_proto_h m4_define(`hm_arg_nullptr', `') m4_define(`hm_arg_fdset_io', `const fd_set *$'`1') m4_define(`hm_arg_pollfds_io', `const struct pollfd *$'`1 hm_comma int $'`2') m4_define(`hm_arg_must', `') m4_define(`hm_arg_ign', `') m4_define(`hm_arg_fcntl_cmd_arg', `int $'`1 hm_comma long $'`2') m4_define(`hm_arg_bytes_out', `$'`3 $'`4') m4_define(`hm_arg_addr_out', `int $'`2') ') m4_define(`hm_create_hqcall_vars',` hm_create_nothing m4_define(`hm_arg_fcntl_cmd_arg',`va_list al; long $'`2;') ') m4_define(`hm_create_hqcall_init',` hm_create_nothing m4_define(`hm_arg_nullptr', `Tmust("$1","$'`2",!$'`2);') m4_define(`hm_arg_must', `Tmust("$1","$'`2",$'`2==$'`3);') m4_define(`hm_arg_socktype',` Tmust("$1","$'`1",$'`1==SOCK_STREAM || $'`1==SOCK_DGRAM);') m4_define(`hm_arg_addrfam',` Tmust("$1","$'`1",$'`1==AF_INET || $'`1==AF_INET6);') m4_define(`hm_arg_fcntl_cmd_arg',` Tmust("$1","$'`1",$'`1==F_SETFL || $'`1==F_GETFL); if ($'`1 == F_SETFL) { va_start(al,$'`1); $'`2= va_arg(al,long); va_end(al); } else { $'`2= 0; }') m4_define(`hm_arg_addr_out',`Tmust("$1","*$'`2",*$'`2>=sizeof(struct sockaddr_in));') ') m4_define(`hm_create_realcall_args',` m4_define(`hm_na',`hm_comma') m4_define(`hm_arg_nullptr', `0') m4_define(`hm_arg_int', `$'`1') m4_define(`hm_arg_fdset_io', `$'`1') m4_define(`hm_arg_pollfds_io', `$'`1 hm_comma $'`2') m4_define(`hm_arg_timeval_in_rel_null', `$'`1') m4_define(`hm_arg_must', `$'`2') m4_define(`hm_arg_socktype', `$'`1') m4_define(`hm_arg_addrfam', `$'`1') m4_define(`hm_arg_ign', `$'`2') m4_define(`hm_arg_fd', `$'`1') m4_define(`hm_arg_fcntl_cmd_arg', `$'`1 hm_comma $'`2') m4_define(`hm_arg_addr_in', `$'`1 hm_comma $'`2') m4_define(`hm_arg_bytes_in', `$'`2 hm_comma $'`4') m4_define(`hm_arg_bytes_out', `$'`2 hm_comma $'`4') m4_define(`hm_arg_addr_out', `$'`1 hm_comma $'`2') ') m4_define(`hm_create_hqcall_args',` hm_create_realcall_args m4_define(`hm_arg_nullptr', `') m4_define(`hm_arg_must', `') m4_define(`hm_arg_ign', `') m4_define(`hm_arg_bytes_in', `$'`2 hm_comma $'`4') m4_define(`hm_arg_bytes_out', `$'`4') m4_define(`hm_arg_addr_out', `*$'`2') ') adns-1.5.0~rc1/regress/case-longdomsrch2.err0000664000175000017500000000000012421042026017025 0ustar ianianadns-1.5.0~rc1/regress/case-bogus-sortlist.out0000664000175000017500000000077512421042026017466 0ustar ianianadns debug: using nameserver 172.18.45.6 adns: :2: prefix length 24 in sortlist overlaps address `198.51.100.1' adns: :2: prefix length 10 in sortlist overlaps address `2001:db8:2::' adns: :2: network address `255.0.0.0' in sortlist is not in classed ranges, must specify mask explicitly adns: :2: mask length `33' invalid adns: :2: mask length `129' invalid rc=2 adns-1.5.0~rc1/regress/case-ndots-as.sys0000664000175000017500000002757312422540543016242 0ustar ianianadnstest default :0x0|1 5/newsx.davenant 5/news.davenant 5/news.davenant.greenend.org.uk 5/trunc.test.iwj.relativity 5/trunx.test.iwj.relativity 5/test.iwj.relativity start 931992163.221752 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000186 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000086 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000066 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 056e6577 73780864 6176656e 616e7400 00010001. sendto=32 +0.000567 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 046e6577 73086461 76656e61 6e740000 010001. sendto=31 +0.000453 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001. sendto=47 +0.000507 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790000 010001. sendto=43 +0.000479 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 05747275 6e780474 65737403 69776a0a 72656c61 74697669 74790000 010001. sendto=43 +0.000624 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 04746573 74036977 6a0a7265 6c617469 76697479 00000100 01. sendto=37 +0.000457 select max=5 rfds=[4] wfds=[] efds=[] to=1.996913 select=1 rfds=[4] wfds=[] efds=[] +0.022284 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010002 00030003 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000151 80002508 64617665 6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c03b0001 00010001 51800004 ac122d06 c0440002 00010001 51800006 036e7330 c044c044 00020001 00015180 0006036e 7331c044 c0440002 00010001 51800006 036e7332 c044c07c 00010001 00015180 0004ac12 2d06c08e 00010001 00015180 0004ac12 2d41c0a0 00010001 00015180 0004ac12 2d01. +0.001420 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000291 select max=5 rfds=[4] wfds=[] efds=[] to=1.972918 select=1 rfds=[4] wfds=[] efds=[] +0.387236 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8583 00010000 00010000 056e6577 73780864 6176656e 616e7400 00010001 00000600 01000151 80003e01 410c524f 4f542d53 45525645 5253034e 4554000a 686f7374 6d617374 65720849 4e544552 4e4943c0 3a772768 44000007 08000003 8400093a 80000151 80. +0.000745 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 056e6577 73780864 6176656e 616e7408 64617665 6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=57 +0.000559 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000102 select max=5 rfds=[4] wfds=[] efds=[] to=1.584843 select=1 rfds=[4] wfds=[] efds=[] +0.005460 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258583 00010000 00010000 056e6577 73780864 6176656e 616e7408 64617665 6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01086772 65656e65 6e64036f 72670275 6b000006 00010001 5180002d 026e7306 63686961 726bc039 0a686f73 746d6173 746572c0 39772741 34000070 8000001c 2000093a 80000151 80. +0.000861 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 056e6577 73780864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001. sendto=48 +0.000511 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000100 select max=5 rfds=[4] wfds=[] efds=[] to=1.577911 select=1 rfds=[4] wfds=[] efds=[] +0.003716 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268583 00010000 00010000 056e6577 73780864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002d02 6e730663 68696172 6bc0300a 686f7374 6d617374 6572c030 77274134 00007080 00001c20 00093a80 00015180. +0.000808 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000127 select max=5 rfds=[4] wfds=[] efds=[] to=1.573260 select=1 rfds=[4] wfds=[] efds=[] +0.075508 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208583 00010000 00010000 046e6577 73086461 76656e61 6e740000 01000100 00060001 00015180 003e0141 0c524f4f 542d5345 52564552 53034e45 54000a68 6f73746d 61737465 7208494e 5445524e 4943c039 77276844 00000708 00000384 00093a80 00015180. +0.000755 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 046e6577 73086461 76656e61 6e740864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001. sendto=56 +0.000532 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000101 select max=5 rfds=[4] wfds=[] efds=[] to=1.497324 select=1 rfds=[4] wfds=[] efds=[] +0.005326 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278583 00010000 00010000 046e6577 73086461 76656e61 6e740864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002d02 6e730663 68696172 6bc0380a 686f7374 6d617374 6572c038 77274134 00007080 00001c20 00093a80 00015180. +0.000855 sendto fd=4 addr=172.18.45.6:53 31280100 00010000 00000000 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001. sendto=47 +0.000503 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000100 select max=5 rfds=[4] wfds=[] efds=[] to=1.490540 select=1 rfds=[4] wfds=[] efds=[] +0.007220 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31288580 00010002 00030003 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000151 80002508 64617665 6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c03b0001 00010001 51800004 ac122d06 c0440002 00010001 51800006 036e7330 c044c044 00020001 00015180 0006036e 7331c044 c0440002 00010001 51800006 036e7332 c044c07c 00010001 00015180 0004ac12 2d06c08e 00010001 00015180 0004ac12 2d41c0a0 00010001 00015180 0004ac12 2d01. +0.001356 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000223 select max=5 rfds=[4] wfds=[] efds=[] to=1.481741 select=1 rfds=[4] wfds=[] efds=[] +0.023419 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228583 00010000 00010000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790000 01000100 00060001 00015180 003e0141 0c524f4f 542d5345 52564552 53034e45 54000a68 6f73746d 61737465 7208494e 5445524e 4943c045 77276844 00000708 00000384 00093a80 00015180. +0.000802 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001. sendto=68 +0.000607 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000101 select max=5 rfds=[4] wfds=[] efds=[] to=1.457291 select=1 rfds=[4] wfds=[] efds=[] +0.005416 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298583 00010000 00010000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002d02 6e730663 68696172 6bc0440a 686f7374 6d617374 6572c044 77274134 00007080 00001c20 00093a80 00015180. +0.000925 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=59 +0.000575 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000101 select max=5 rfds=[4] wfds=[] efds=[] to=1.450274 select=1 rfds=[4] wfds=[] efds=[] +0.006009 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8580 00010000 00010000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 01000104 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00060001 0000003c 0027036e 7330c044 0a686f73 746d6173 746572c0 44000000 1800000e 10000000 780064c8 00000000 3c. +0.000954 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000145 select max=5 rfds=[4] wfds=[] efds=[] to=1.443166 select=1 rfds=[4] wfds=[] efds=[] +0.014229 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238583 00010000 00010000 05747275 6e780474 65737403 69776a0a 72656c61 74697669 74790000 01000100 00060001 00015180 003e0141 0c524f4f 542d5345 52564552 53034e45 54000a68 6f73746d 61737465 7208494e 5445524e 4943c045 77276844 00000708 00000384 00093a80 00015180. +0.000805 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 05747275 6e780474 65737403 69776a0a 72656c61 74697669 74790864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001. sendto=68 +0.000606 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000101 select max=5 rfds=[4] wfds=[] efds=[] to=1.428049 select=1 rfds=[4] wfds=[] efds=[] +0.005331 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8583 00010000 00010000 05747275 6e780474 65737403 69776a0a 72656c61 74697669 74790864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002d02 6e730663 68696172 6bc0440a 686f7374 6d617374 6572c044 77274134 00007080 00001c20 00093a80 00015180. +0.000923 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 05747275 6e780474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=59 +0.000584 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000101 select max=5 rfds=[4] wfds=[] efds=[] to=1.421110 select=1 rfds=[4] wfds=[] efds=[] +0.004042 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8583 00010000 00010000 05747275 6e780474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 01000104 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00060001 0000003c 0027036e 7330c044 0a686f73 746d6173 746572c0 44000000 1800000e 10000000 780064c8 00000000 3c. +0.000951 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000153 select max=5 rfds=[4] wfds=[] efds=[] to=1.415964 select=1 rfds=[4] wfds=[] efds=[] +0.026227 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248583 00010000 00010000 04746573 74036977 6a0a7265 6c617469 76697479 00000100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c03f7727 68440000 07080000 03840009 3a800001 5180. +0.000817 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 04746573 74036977 6a0a7265 6c617469 76697479 08646176 656e616e 74086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=62 +0.000579 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000102 select max=5 rfds=[4] wfds=[] efds=[] to=1.998502 select=1 rfds=[4] wfds=[] efds=[] +0.005185 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8583 00010000 00010000 04746573 74036977 6a0a7265 6c617469 76697479 08646176 656e616e 74086772 65656e65 6e64036f 72670275 6b000001 00010867 7265656e 656e6403 6f726702 756b0000 06000100 01518000 2d026e73 06636869 61726bc0 3e0a686f 73746d61 73746572 c03e7727 41340000 70800000 1c200009 3a800001 5180. +0.000918 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=53 +0.000524 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000102 select max=5 rfds=[4] wfds=[] efds=[] to=1.998456 select=1 rfds=[4] wfds=[] efds=[] +0.004007 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8580 00010000 00010000 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 00180000 0e100000 00780064 c8000000 003c. +0.000867 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000175 close fd=4 close=OK +0.000183 adns-1.5.0~rc1/regress/case-rootquery.out0000664000175000017500000000063412421042026016531 0ustar ianianadns debug: using nameserver 172.18.45.6 . flags 0 type 131078 SOA(822) submitted . flags 1 type 131078 SOA(822) submitted . flags 0 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=60222 A.ROOT-SERVERS.NET hostmaster@INTERNIC.NET 1999041600 1800 900 604800 86400 . flags 1 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=57210 A.ROOT-SERVERS.NET hostmaster@INTERNIC.NET 1999041600 1800 900 604800 86400 rc=0 adns-1.5.0~rc1/regress/case-manya.out0000664000175000017500000000042312421042026015561 0ustar ianianadns debug: using nameserver 172.18.45.6 manyaddrs.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted manyaddrs.test.iwj.relativity.greenend.org.uk flags 0 type A(-): OK; nrrs=4; cname=$; owner=$; ttl=60 127.0.0.1 172.18.45.6 172.18.45.1 172.18.45.35 rc=0 adns-1.5.0~rc1/regress/hplayback.c.m40000664000175000017500000002461412421042026015443 0ustar ianianm4_dnl hplayback.c.m4 m4_dnl (part of complex test harness, not of the library) m4_dnl - playback routines m4_dnl This file is part of adns, which is m4_dnl Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson m4_dnl Copyright (C) 2014 Mark Wooding m4_dnl Copyright (C) 1999-2000,2003,2006 Tony Finch m4_dnl Copyright (C) 1991 Massachusetts Institute of Technology m4_dnl (See the file INSTALL for full details.) m4_dnl m4_dnl This program is free software; you can redistribute it and/or modify m4_dnl it under the terms of the GNU General Public License as published by m4_dnl the Free Software Foundation; either version 3, or (at your option) m4_dnl any later version. m4_dnl m4_dnl This program is distributed in the hope that it will be useful, m4_dnl but WITHOUT ANY WARRANTY; without even the implied warranty of m4_dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the m4_dnl GNU General Public License for more details. m4_dnl m4_dnl You should have received a copy of the GNU General Public License m4_dnl along with this program; if not, write to the Free Software Foundation. m4_include(hmacros.i4) #include #include #include #include #include #include #include #include #include #include #include #include "harness.h" static FILE *Tinputfile, *Treportfile; static vbuf vb2; extern void Tshutdown(void) { adns__vbuf_free(&vb2); } static void Tensurereportfile(void) { const char *fdstr; int fd; if (Treportfile) return; Treportfile= stderr; fdstr= getenv("ADNS_TEST_REPORT_FD"); if (!fdstr) return; fd= atoi(fdstr); Treportfile= fdopen(fd,"a"); if (!Treportfile) Tfailed("fdopen ADNS_TEST_REPORT_FD"); } static void Psyntax(const char *where) { fprintf(stderr,"adns test harness: syntax error in test log input file: %s\n",where); exit(-1); } static void Pcheckinput(void) { if (ferror(Tinputfile)) Tfailed("read test log input file"); if (feof(Tinputfile)) Psyntax("eof at syscall reply"); } void Tensurerecordfile(void) { const char *fdstr; int fd; int chars; unsigned long sec, usec; if (Tinputfile) return; Tinputfile= stdin; fdstr= getenv("ADNS_TEST_IN_FD"); if (fdstr) { fd= atoi(fdstr); Tinputfile= fdopen(fd,"r"); if (!Tinputfile) Tfailed("fdopen ADNS_TEST_IN_FD"); } setvbuf(Tinputfile,0,_IONBF,0); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); chars= -1; sscanf(vb2.buf," start %lu.%lu%n",&sec,&usec,&chars); if (chars==-1) Psyntax("start time invalid"); currenttime.tv_sec= sec; currenttime.tv_usec= usec; if (vb2.buf[chars] != hm_squote\nhm_squote) Psyntax("not newline after start time"); } static void Parg(const char *argname) { int l; if (vb2.buf[vb2.used++] != hm_squote hm_squote) Psyntax("not a space before argument"); l= strlen(argname); if (memcmp(vb2.buf+vb2.used,argname,l)) Psyntax("argument name wrong"); vb2.used+= l; if (vb2.buf[vb2.used++] != hm_squote=hm_squote) Psyntax("not = after argument name"); } static int Pstring_maybe(const char *string) { int l; l= strlen(string); if (memcmp(vb2.buf+vb2.used,string,l)) return 0; vb2.used+= l; return 1; } static void Pstring(const char *string, const char *emsg) { if (Pstring_maybe(string)) return; Psyntax(emsg); } static int Perrno(const char *stuff) { const struct Terrno *te; int r; char *ep; for (te= Terrnos; te->n && strcmp(te->n,stuff); te++); if (te->n) return te->v; r= strtoul(stuff+2,&ep,10); if (*ep) Psyntax("errno value not recognised, not numeric"); return r; } static void P_updatetime(void) { int chars; unsigned long sec, usec; if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); chars= -1; sscanf(vb2.buf," +%lu.%lu%n",&sec,&usec,&chars); if (chars==-1) Psyntax("update time invalid"); currenttime.tv_sec+= sec; currenttime.tv_usec+= usec; if (currenttime.tv_usec > 1000000) { currenttime.tv_sec++; currenttime.tv_usec -= 1000000; } if (vb2.buf[chars] != hm_squote\nhm_squote) Psyntax("not newline after update time"); } static void Pfdset(fd_set *set, int max) { int r, c; char *ep; if (vb2.buf[vb2.used++] != hm_squote[hm_squote) Psyntax("fd set start not ["); FD_ZERO(set); if (vb2.buf[vb2.used] == hm_squote]hm_squote) { vb2.used++; return; } for (;;) { r= strtoul(vb2.buf+vb2.used,&ep,10); if (r>=max) Psyntax("fd set member > max"); if (ep == (char*)vb2.buf+vb2.used) Psyntax("empty entry in fd set"); FD_SET(r,set); vb2.used= ep - (char*)vb2.buf; c= vb2.buf[vb2.used++]; if (c == hm_squote]hm_squote) break; if (c != hm_squote,hm_squote) Psyntax("fd set separator not ,"); } } #ifdef HAVE_POLL static int Ppollfdevents(void) { int events; if (Pstring_maybe("0")) return 0; events= 0; if (Pstring_maybe("POLLIN")) { events |= POLLIN; if (!Pstring_maybe("|")) return events; } if (Pstring_maybe("POLLOUT")) { events |= POLLOUT; if (!Pstring_maybe("|")) return events; } Pstring("POLLPRI","pollfdevents PRI?"); return events; } static void Ppollfds(struct pollfd *fds, int nfds) { int i; char *ep; const char *comma= ""; if (vb2.buf[vb2.used++] != hm_squote[hm_squote) Psyntax("pollfds start not ["); for (i=0; ifd= strtoul(vb2.buf+vb2.used,&ep,10); vb2.used= ep - (char*)vb2.buf; Pstring(", events=",", events= in pollfds"); fds->events= Ppollfdevents(); Pstring(", revents=",", revents= in pollfds"); fds->revents= Ppollfdevents(); Pstring("}","} in pollfds"); Pstring(comma,"separator in pollfds"); comma= ", "; } if (vb2.buf[vb2.used++] != hm_squote]hm_squote) Psyntax("pollfds end not ]"); } #endif static void Paddr(struct sockaddr *addr, int *lenr) { adns_rr_addr a; char *p, *q, *ep; int err; unsigned long ul; p= vb2.buf+vb2.used; if (*p!='[') { q= strchr(p,':'); if (!q) Psyntax("missing :"); *q++= 0; } else { p++; q= strchr(p,']'); if (!q) Psyntax("missing ]"); *q++= 0; if (*q!=':') Psyntax("expected : after ]"); q++; } ul= strtoul(q,&ep,10); if (*ep && *ep != ' ') Psyntax("invalid port (bad syntax)"); if (ul >= 65536) Psyntax("port too large"); a.len= sizeof(a.addr); err= adns_text2addr(p, (int)ul, 0, &a.addr.sa,&a.len); if (err) Psyntax("invalid address"); assert(*lenr >= a.len); memcpy(addr, &a.addr, a.len); *lenr= a.len; vb2.used= ep - (char*)vb2.buf; } static int Pbytes(byte *buf, int maxlen) { static const char hexdigits[]= "0123456789abcdef"; int c, v, done; const char *pf; done= 0; for (;;) { c= getc(Tinputfile); Pcheckinput(); if (c=='\n' || c==' ' || c=='\t') continue; if (c=='.') break; pf= strchr(hexdigits,c); if (!pf) Psyntax("invalid first hex digit"); v= (pf-hexdigits)<<4; c= getc(Tinputfile); Pcheckinput(); pf= strchr(hexdigits,c); if (!pf) Psyntax("invalid second hex digit"); v |= (pf-hexdigits); if (maxlen<=0) Psyntax("buffer overflow in bytes"); *buf++= v; maxlen--; done++; } for (;;) { c= getc(Tinputfile); Pcheckinput(); if (c=='\n') return done; } } void Q_vb(void) { const char *nl; Tensurerecordfile(); if (!adns__vbuf_ensure(&vb2,vb.used+2)) Tnomem(); fread(vb2.buf,1,vb.used+2,Tinputfile); if (feof(Tinputfile)) { fprintf(stderr,"adns test harness: input ends prematurely; program did:\n %.*s\n", vb.used,vb.buf); exit(-1); } Pcheckinput(); if (vb2.buf[0] != hm_squote hm_squote) Psyntax("not space before call"); if (memcmp(vb.buf,vb2.buf+1,vb.used) || vb2.buf[vb.used+1] != hm_squote\nhm_squote) { fprintf(stderr, "adns test harness: program did unexpected:\n %.*s\n" "was expecting:\n %.*s\n", vb.used,vb.buf, vb.used,vb2.buf+1); exit(1); } Tensurereportfile(); nl= memchr(vb.buf,'\n',vb.used); fprintf(Treportfile," %.*s\n", (int)(nl ? nl - (const char*)vb.buf : vb.used), vb.buf); } m4_define(`hm_syscall', ` hm_create_proto_h int H$1(hm_args_massage($3,void)) { int r, amtread; m4_define(`hm_rv_fd',`char *ep;') m4_define(`hm_rv_any',`char *ep;') m4_define(`hm_rv_len',`') m4_define(`hm_rv_must',`') m4_define(`hm_rv_succfail',`') m4_define(`hm_rv_fcntl',`') $2 hm_create_hqcall_vars $3 hm_create_hqcall_init($1) $3 hm_create_hqcall_args Q$1(hm_args_massage($3)); m4_define(`hm_r_offset',`m4_len(` $1=')') if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!=hm_squote\nhm_squote) Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," $1=",hm_r_offset)) Psyntax("syscall reply mismatch"); if (vb2.buf[hm_r_offset] == hm_squoteEhm_squote) { int e; e= Perrno(vb2.buf+hm_r_offset); P_updatetime(); errno= e; return -1; } m4_define(`hm_rv_succfail',` if (memcmp(vb2.buf+hm_r_offset,"OK",2)) Psyntax("success/fail not E* or OK"); vb2.used= hm_r_offset+2; r= 0; ') m4_define(`hm_rv_len',`hm_rv_succfail') m4_define(`hm_rv_must',`hm_rv_succfail') m4_define(`hm_rv_any',` r= strtoul(vb2.buf+hm_r_offset,&ep,10); if (*ep && *ep!=hm_squote hm_squote) Psyntax("return value not E* or positive number"); vb2.used= ep - (char*)vb2.buf; ') m4_define(`hm_rv_fd',`hm_rv_any') m4_define(`hm_rv_fcntl',` r= 0; if (cmd == F_GETFL) { if (!memcmp(vb2.buf+hm_r_offset,"O_NONBLOCK|...",14)) { r= O_NONBLOCK; vb2.used= hm_r_offset+14; } else if (!memcmp(vb2.buf+hm_r_offset,"~O_NONBLOCK&...",15)) { vb2.used= hm_r_offset+15; } else { Psyntax("fcntl flags not O_NONBLOCK|... or ~O_NONBLOCK&..."); } } else if (cmd == F_SETFL) { hm_rv_succfail } else { Psyntax("fcntl not F_GETFL or F_SETFL"); } ') $2 hm_create_nothing m4_define(`hm_arg_fdset_io',`Parg("$'`1"); Pfdset($'`1,$'`2);') m4_define(`hm_arg_pollfds_io',`Parg("$'`1"); Ppollfds($'`1,$'`2);') m4_define(`hm_arg_addr_out',`Parg("$'`1"); Paddr($'`1,$'`2);') $3 assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); hm_create_nothing m4_define(`hm_arg_bytes_out',`r= Pbytes($'`2,$'`4);') $3 P_updatetime(); return r; } ') m4_define(`hm_specsyscall', `') m4_include(`hsyscalls.i4') adns-1.5.0~rc1/regress/case-abbrevto.sys0000664000175000017500000010076312422510661016305 0ustar ianianadnstest noserver -0x400 ,a/greenend.org.uk start 929580082.699581 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000192 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000084 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000062 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.014155 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000420 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000322 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000322 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000320 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000366 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000324 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000318 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000319 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000319 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000638 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000319 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000343 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000399 select max=5 rfds=[4] wfds=[] efds=[] to=1.981116 select=0 rfds=[] wfds=[] efds=[] +2.-18933 select max=5 rfds=[4] wfds=[] efds=[] to=0.000049 select=0 rfds=[] wfds=[] efds=[] +0.010028 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000363 select max=5 rfds=[4] wfds=[] efds=[] to=0.003813 select=0 rfds=[] wfds=[] efds=[] +0.009575 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000291 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000277 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000302 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000271 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000270 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000272 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000271 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000270 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000565 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000271 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000272 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000271 select max=5 rfds=[4] wfds=[] efds=[] to=1.986185 select=0 rfds=[] wfds=[] efds=[] +2.-14326 select max=5 rfds=[4] wfds=[] efds=[] to=0.000511 select=0 rfds=[] wfds=[] efds=[] +0.009965 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000386 select max=5 rfds=[4] wfds=[] efds=[] to=0.000098 select=0 rfds=[] wfds=[] efds=[] +0.009616 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000285 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000272 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000279 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000271 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000298 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000272 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000546 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000271 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000275 select max=5 rfds=[4] wfds=[] efds=[] to=1.986134 select=0 rfds=[] wfds=[] efds=[] +2.-14145 select max=5 rfds=[4] wfds=[] efds=[] to=0.000279 select=0 rfds=[] wfds=[] efds=[] +0.009905 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000427 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000317 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000283 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000280 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000278 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000315 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000277 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000551 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000318 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000274 select max=5 rfds=[4] wfds=[] efds=[] to=1.995581 select=0 rfds=[] wfds=[] efds=[] +2.-04960 select max=5 rfds=[4] wfds=[] efds=[] to=0.000541 select=0 rfds=[] wfds=[] efds=[] +0.009952 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000430 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000310 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000309 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000278 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000276 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000567 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000277 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000275 select max=5 rfds=[4] wfds=[] efds=[] to=1.995632 select=0 rfds=[] wfds=[] efds=[] +2.-04751 select max=5 rfds=[4] wfds=[] efds=[] to=0.000383 select=0 rfds=[] wfds=[] efds=[] +0.009901 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000339 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000280 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000323 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000272 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000317 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000548 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000274 select max=5 rfds=[4] wfds=[] efds=[] to=1.995734 select=0 rfds=[] wfds=[] efds=[] +2.-04720 select max=5 rfds=[4] wfds=[] efds=[] to=0.000454 select=0 rfds=[] wfds=[] efds=[] +0.009970 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000393 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000303 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000272 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000276 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000297 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000546 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000297 select max=5 rfds=[4] wfds=[] efds=[] to=1.995695 select=0 rfds=[] wfds=[] efds=[] +2.-04679 select max=5 rfds=[4] wfds=[] efds=[] to=0.000374 select=0 rfds=[] wfds=[] efds=[] +0.009892 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000323 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000280 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000276 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000307 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000547 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000301 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000273 select max=5 rfds=[4] wfds=[] efds=[] to=1.995776 select=0 rfds=[] wfds=[] efds=[] +2.-04674 select max=5 rfds=[4] wfds=[] efds=[] to=0.000450 select=0 rfds=[] wfds=[] efds=[] +0.009968 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000368 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000305 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000307 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000314 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000600 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000276 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000277 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000274 select max=5 rfds=[4] wfds=[] efds=[] to=1.995636 select=0 rfds=[] wfds=[] efds=[] +2.-04747 select max=5 rfds=[4] wfds=[] efds=[] to=0.000383 select=0 rfds=[] wfds=[] efds=[] +0.009901 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000324 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000306 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000276 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000272 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000272 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000297 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000547 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000273 select max=5 rfds=[4] wfds=[] efds=[] to=1.995790 select=0 rfds=[] wfds=[] efds=[] +2.-04665 select max=5 rfds=[4] wfds=[] efds=[] to=0.000455 select=0 rfds=[] wfds=[] efds=[] +0.009985 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000387 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000305 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000272 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000277 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000300 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000278 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000550 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000301 select max=5 rfds=[4] wfds=[] efds=[] to=1.995681 select=0 rfds=[] wfds=[] efds=[] +2.-04719 select max=5 rfds=[4] wfds=[] efds=[] to=0.000400 select=0 rfds=[] wfds=[] efds=[] +0.009906 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000320 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000279 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000319 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000277 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000278 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000548 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000300 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000275 select max=5 rfds=[4] wfds=[] efds=[] to=1.995757 select=0 rfds=[] wfds=[] efds=[] +2.-04698 select max=5 rfds=[4] wfds=[] efds=[] to=0.000455 select=0 rfds=[] wfds=[] efds=[] +0.009982 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000385 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000304 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000306 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000281 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000276 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000568 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000274 select max=5 rfds=[4] wfds=[] efds=[] to=1.995688 select=0 rfds=[] wfds=[] efds=[] +2.-04700 select max=5 rfds=[4] wfds=[] efds=[] to=0.000388 select=0 rfds=[] wfds=[] efds=[] +0.009990 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000328 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000309 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000277 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000302 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000277 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000549 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000273 select max=5 rfds=[4] wfds=[] efds=[] to=1.995768 select=0 rfds=[] wfds=[] efds=[] +2.-04700 select max=5 rfds=[4] wfds=[] efds=[] to=0.000468 select=0 rfds=[] wfds=[] efds=[] +0.009893 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000368 sendto fd=4 addr=172.18.45.36:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000302 sendto fd=4 addr=172.18.45.36:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000272 sendto fd=4 addr=172.18.45.36:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000276 sendto fd=4 addr=172.18.45.36:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000275 sendto fd=4 addr=172.18.45.36:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000321 sendto fd=4 addr=172.18.45.36:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000276 sendto fd=4 addr=172.18.45.36:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000273 sendto fd=4 addr=172.18.45.36:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000545 sendto fd=4 addr=172.18.45.36:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000274 sendto fd=4 addr=172.18.45.36:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000296 sendto fd=4 addr=172.18.45.36:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000277 select max=5 rfds=[4] wfds=[] efds=[] to=1.995699 select=0 rfds=[] wfds=[] efds=[] +2.-04687 select max=5 rfds=[4] wfds=[] efds=[] to=0.000386 select=0 rfds=[] wfds=[] efds=[] +0.009894 close fd=4 close=OK +0.000779 adns-1.5.0~rc1/regress/case-addr-multi-af.err0000664000175000017500000000000012421042026017052 0ustar ianianadns-1.5.0~rc1/regress/case-norecurse3.sys0000664000175000017500000004004212422510662016563 0ustar ianianadnstest default -0x416 2.203.156.195.in-addr.arpa1 start 939764258.086555 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000189 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000054 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000041 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000100 01. sendto=45 +0.002044 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000133 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000200 01. sendto=45 +0.001173 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000092 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000500 01. sendto=45 +0.001197 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000095 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000600 01. sendto=45 +0.001228 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000095 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000c00 01. sendto=45 +0.001194 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000095 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000d00 01. sendto=45 +0.001205 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000099 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000f00 01. sendto=45 +0.001196 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000104 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00001000 01. sendto=45 +0.001186 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000122 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00001100 01. sendto=45 +0.001225 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000104 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000100 01. sendto=45 +0.001179 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000112 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000200 01. sendto=45 +0.001344 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.001314 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000113 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000f00 01. sendto=45 +0.001214 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000118 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000600 01. sendto=45 +0.001221 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000120 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00001100 01. sendto=45 +0.001203 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000129 select max=5 rfds=[4] wfds=[] efds=[] to=1.979346 select=0 rfds=[] wfds=[] efds=[] +2.-26085 select max=5 rfds=[4] wfds=[] efds=[] to=0.005431 select=0 rfds=[] wfds=[] efds=[] +0.009976 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000100 01. sendto=45 +0.000545 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000200 01. sendto=45 +0.000472 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000500 01. sendto=45 +0.000438 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000600 01. sendto=45 +0.000482 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000c00 01. sendto=45 +0.000001 select max=5 rfds=[4] wfds=[] efds=[] to=0.000861 select=0 rfds=[] wfds=[] efds=[] +0.008517 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000d00 01. sendto=45 +0.000438 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000f00 01. sendto=45 +0.000454 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00001000 01. sendto=45 +0.000434 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00001100 01. sendto=45 +0.000433 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000100 01. sendto=45 +0.000435 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000200 01. sendto=45 +0.000829 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000488 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000f00 01. sendto=45 +0.000457 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000600 01. sendto=45 +0.000430 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00001100 01. sendto=45 +0.000001 select max=5 rfds=[4] wfds=[] efds=[] to=1.985143 select=0 rfds=[] wfds=[] efds=[] +1.985166 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000100 01. sendto=45 +0.000564 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000200 01. sendto=45 +0.000441 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000500 01. sendto=45 +0.000455 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000600 01. sendto=45 +0.000482 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000145 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000c00 01. sendto=45 +0.000448 select max=5 rfds=[4] wfds=[] efds=[] to=0.007898 select=0 rfds=[] wfds=[] efds=[] +0.008039 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000d00 01. sendto=45 +0.000434 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000f00 01. sendto=45 +0.000431 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00001000 01. sendto=45 +0.000454 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00001100 01. sendto=45 +0.000434 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000100 01. sendto=45 +0.000434 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000200 01. sendto=45 +0.000915 select max=5 rfds=[4] wfds=[] efds=[] to=0.000268 select=0 rfds=[] wfds=[] efds=[] +0.006750 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000f00 01. sendto=45 +0.000431 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000600 01. sendto=45 +0.000461 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00001100 01. sendto=45 +0.000432 select max=5 rfds=[4] wfds=[] efds=[] to=1.978249 select=1 rfds=[4] wfds=[] efds=[] +0.291904 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000689 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000167 select max=5 rfds=[4] wfds=[] efds=[] to=1.685489 select=1 rfds=[4] wfds=[] efds=[] +0.038802 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00001100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000514 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000165 select max=5 rfds=[4] wfds=[] efds=[] to=1.646008 select=1 rfds=[4] wfds=[] efds=[] +0.099281 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000600 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000520 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000145 select max=5 rfds=[4] wfds=[] efds=[] to=1.546062 select=1 rfds=[4] wfds=[] efds=[] +0.039368 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000f00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000535 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000134 select max=5 rfds=[4] wfds=[] efds=[] to=1.506025 select=1 rfds=[4] wfds=[] efds=[] +0.079316 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000200 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000538 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000132 select max=5 rfds=[4] wfds=[] efds=[] to=1.426039 select=1 rfds=[4] wfds=[] efds=[] +0.039291 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000502 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000132 select max=5 rfds=[4] wfds=[] efds=[] to=1.386114 select=1 rfds=[4] wfds=[] efds=[] +0.039825 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00001100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000500 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000131 select max=5 rfds=[4] wfds=[] efds=[] to=1.345658 select=1 rfds=[4] wfds=[] efds=[] +0.039138 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00001000 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000498 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000132 select max=5 rfds=[4] wfds=[] efds=[] to=1.305890 select=1 rfds=[4] wfds=[] efds=[] +0.039192 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000f00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000495 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000130 select max=5 rfds=[4] wfds=[] efds=[] to=1.266073 select=1 rfds=[4] wfds=[] efds=[] +0.039369 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000d00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000494 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000149 select max=5 rfds=[4] wfds=[] efds=[] to=1.226061 select=1 rfds=[4] wfds=[] efds=[] +0.039356 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000c00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000493 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000130 select max=5 rfds=[4] wfds=[] efds=[] to=1.186082 select=1 rfds=[4] wfds=[] efds=[] +0.039358 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000600 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000490 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000157 select max=5 rfds=[4] wfds=[] efds=[] to=1.146077 select=1 rfds=[4] wfds=[] efds=[] +0.039772 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000500 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000496 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000131 select max=5 rfds=[4] wfds=[] efds=[] to=1.105678 select=1 rfds=[4] wfds=[] efds=[] +1.-960894 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208583 00010000 00010000 01320332 30330331 35360331 39350769 6e2d6164 64720561 72706131 00000200 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 696e7465 726e6963 c0477727 dd100000 07080000 03840009 3a800001 5180. +0.000487 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000143 close fd=4 close=OK +0.000235 adns-1.5.0~rc1/regress/case-adh-cancel.out0000664000175000017500000000007412421042026016435 0ustar ianiandavenant.relativity.greenend.org.uk A INET 172.18.45.6 rc=0 adns-1.5.0~rc1/regress/case-norecurse2.err0000664000175000017500000000000012421042026016513 0ustar ianianadns-1.5.0~rc1/regress/case-longdomsrch1b.err0000664000175000017500000000000012421042026017166 0ustar ianianadns-1.5.0~rc1/regress/case-ptr-aaaa-check.out0000664000175000017500000000051712421042026017221 0ustar ianianadns debug: using nameserver 172.29.199.224 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa flags 0 type 65548 PTR(checked) submitted 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa flags 0 type PTR(checked): OK; nrrs=1; cname=$; owner=$; ttl=14400 stratocaster.distorted.org.uk rc=0 adns-1.5.0~rc1/regress/case-unknown-flags-query.err0000664000175000017500000000000012423157063020372 0ustar ianianadns-1.5.0~rc1/regress/case-2ndservtcp.out0000664000175000017500000000476312421042026016561 0ustar ianianadns debug: using nameserver 172.18.45.36 adns debug: using nameserver 172.18.45.6 trunc.test.iwj.relativity.greenend.org.uk flags 0 type 12 PTR(raw) submitted adns warning: TCP connection failed: connect/read: No route to host (NS=172.18.45.36) adns debug: TCP connected (NS=172.18.45.6) trunc.test.iwj.relativity.greenend.org.uk flags 0 type PTR(raw): OK; nrrs=30; cname=$; owner=$; ttl=60 long.domain.to.force.truncation.0.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.1.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.2.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.3.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.4.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.5.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.6.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.7.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.8.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.9.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.10.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.11.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.12.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.13.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.14.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.15.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.16.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.17.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.18.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.19.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.20.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.21.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.22.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.23.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.24.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.25.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.26.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.27.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.28.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.29.test.iwj.relativity.greenend.org.uk rc=0 adns-1.5.0~rc1/regress/case-longdom1.err0000664000175000017500000000000012421042026016144 0ustar ianianadns-1.5.0~rc1/regress/case-connfail.out0000664000175000017500000000116212421042026016246 0ustar ianianadns debug: using nameserver 172.18.45.36 adns debug: using nameserver 172.18.45.6 davenant.greenend.org.uk flags 2 type 1adns warning: TCP connection failed: connect: Socket operation on non-socket (NS=172.18.45.36) adns warning: TCP connection failed: connect: Socket operation on non-socket (NS=172.18.45.6) A(-) submitted adns warning: TCP connection failed: connect: Socket operation on non-socket (NS=172.18.45.36) adns warning: TCP connection failed: connect: Socket operation on non-socket (NS=172.18.45.6) davenant.greenend.org.uk flags 2 type A(-): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 rc=0 adns-1.5.0~rc1/regress/case-dh-ptr-aaaa.err0000664000175000017500000000005412421042026016514 0ustar ianianadns debug: using nameserver 172.29.199.224 adns-1.5.0~rc1/regress/case-ptr-aaaa-mismatch.out0000664000175000017500000000052212421042026017745 0ustar ianianadns debug: using nameserver 172.29.199.224 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.b.d.0.1.0.0.2.ip6.arpa flags 0 type 65548 PTR(checked) submitted 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.b.d.0.1.0.0.2.ip6.arpa flags 0 type PTR(checked): Inconsistent resource records in DNS; nrrs=0; cname=$; owner=$; ttl=14400 rc=0 adns-1.5.0~rc1/regress/case-noinfto.out0000664000175000017500000000025212421042026016130 0ustar ianianadns debug: using nameserver 172.18.45.36 a.b.c.d flags 0 type 1 A(-) submitted a.b.c.d flags 0 type A(-): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604744 rc=0 adns-1.5.0~rc1/regress/case-unknown33.sys0000664000175000017500000000237512422510662016347 0ustar ianian./adnshost default -t type33 -Qq _jabber._tcp.jabber.org start 1144369693.043661 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000080 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000045 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000040 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 075f6a61 62626572 045f7463 70066a61 62626572 036f7267 00002100 01. sendto=41 +0.000316 select max=7 rfds=[6] wfds=[] efds=[] to=1.999684 select=1 rfds=[6] wfds=[] efds=[] +0.004580 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010001 00040005 075f6a61 62626572 045f7463 70066a61 62626572 036f7267 00002100 01c00c00 21000100 00031b00 12001e00 1e149506 6a616262 6572036f 726700c0 19000200 01000018 33001103 6e733107 6a657265 6d696503 636f6d00 c0190002 00010000 18330006 036e7332 c057c019 00020001 00001833 000c036e 73310562 6c616872 c05fc019 00020001 00001833 0010026e 73076f62 656c6973 6b036e65 7400c019 00010001 00000102 0004d0f5 d462c053 00010001 00029f11 0004d0f5 d41dc070 00010001 00029f11 0004d0f5 d41ec082 00010001 00029f13 00044051 6774c09a 00010001 00029f1d 00044761 e072. +0.000369 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000082 close fd=6 close=OK +0.002395 adns-1.5.0~rc1/regress/case-tcpptr.sys0000664000175000017500000000513712422540543016016 0ustar ianianadnstest default :0x10000|12 2/6.45.18.172.in-addr.arpa start 957718868.938329 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000161 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000059 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000038 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.001056 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000238 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000055 connect fd=5 addr=172.18.45.6:53 connect=EINPROGRESS +0.000723 select max=6 rfds=[4] wfds=[5] efds=[] to=13.997928 select=1 rfds=[] wfds=[5] efds=[] +0.000536 read fd=5 buflen=1 read=EAGAIN +0.000118 write fd=5 002a311f 01000001 00000000 00000136 02343502 31380331 37320769 6e2d6164 64720461 72706100 000c0001. write=44 +0.001433 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.995841 select=1 rfds=[5] wfds=[] efds=[] +0.000260 read fd=5 buflen=2 read=OK 00d7. +0.000302 read fd=5 buflen=215 read=OK 311f8580 00010001 00030003 01360234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00250864 6176656e 616e740a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0002 34350231 38033137 3207696e 2d616464 72046172 70610000 02000100 01518000 06036e73 30c03fc0 5b000200 01000151 80000603 6e7331c0 3fc05b00 02000100 01518000 06036e73 32c03fc0 7d000100 01000151 800004ac 122d06c0 8f000100 01000151 800004ac 122d41c0 a1000100 01000151 800004ac 122d01. +0.001364 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=EMSGSIZE +0.000001 write fd=5 00353120 01000001 00000000 00000864 6176656e 616e740a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=53 +0.001233 read fd=5 buflen=217 read=EAGAIN +0.000100 select max=6 rfds=[4,5] wfds=[5] efds=[5] to=29.997000 select=1 rfds=[5] wfds=[] efds=[] +0.000118 read fd=5 buflen=217 read=OK 00c5 31208580 00010001 00030003 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 01000100 01518000 04ac122d 060a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000200 01000151 80000603 6e7330c0 45c04500 02000100 01518000 06036e73 31c045c0 45000200 01000151 80000603 6e7332c0 45c06b00 01000100 01518000 04ac122d 06c07d00 01000100 01518000 04ac122d 41c08f00 01000100 01518000 04ac122d 01. +0.001171 read fd=5 buflen=217 read=EAGAIN +0.000189 close fd=4 close=OK +0.000352 close fd=5 close=OK +0.000507 adns-1.5.0~rc1/regress/case-tcpbreakin.err0000664000175000017500000000000012421042026016546 0ustar ianianadns-1.5.0~rc1/regress/case-ndotsbad.sys0000664000175000017500000000007112422540543016270 0ustar ianianadnstest ndotsbad :0x0|1 5/news.davenant.greenend.org.uk adns-1.5.0~rc1/regress/init-anarres.text0000664000175000017500000000006712421042026016320 0ustar ianiannameserver 172.18.45.2 search davenant.greenend.org.uk adns-1.5.0~rc1/regress/case-v6-transport-simple.out0000664000175000017500000000446412421042026020341 0ustar ianianadns debug: using nameserver 2001:ba8:1d9::1 www.distorted.org.uk flags 0 type 1 A(-) submitted www.distorted.org.uk flags 0 type 2 NS(raw) submitted www.distorted.org.uk flags 0 type 5 CNAME(-) submitted www.distorted.org.uk flags 0 type 6 SOA(raw) submitted www.distorted.org.uk flags 0 type 12 PTR(raw) submitted www.distorted.org.uk flags 0 type 13 HINFO(-) submitted www.distorted.org.uk flags 0 type 15 MX(raw) submitted www.distorted.org.uk flags 0 type 16 TXT(-) submitted www.distorted.org.uk flags 0 type 17 RP(raw) submitted www.distorted.org.uk flags 0 type 65537 A(addr) submitted www.distorted.org.uk flags 0 type 65538 NS(+addr) submitted www.distorted.org.uk flags 0 type 65548 PTR(checked) submitted www.distorted.org.uk flags 0 type 65551 MX(+addr) submitted www.distorted.org.uk flags 0 type 131078 SOA(822) submitted www.distorted.org.uk flags 0 type 131089 RP(822) submitted www.distorted.org.uk flags 0 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 www.distorted.org.uk flags 0 type A(-): OK; nrrs=1; cname=$; owner=$; ttl=14400 172.29.199.180 www.distorted.org.uk flags 0 type NS(raw): No such data; nrrs=0; cname=$; owner=$; ttl=14400 www.distorted.org.uk flags 0 type CNAME(-): No such data; nrrs=0; cname=$; owner=$; ttl=14400 www.distorted.org.uk flags 0 type SOA(raw): No such data; nrrs=0; cname=$; owner=$; ttl=14400 www.distorted.org.uk flags 0 type PTR(raw): No such data; nrrs=0; cname=$; owner=$; ttl=14400 www.distorted.org.uk flags 0 type HINFO(-): No such data; nrrs=0; cname=$; owner=$; ttl=14400 www.distorted.org.uk flags 0 type MX(raw): No such data; nrrs=0; cname=$; owner=$; ttl=14400 www.distorted.org.uk flags 0 type TXT(-): No such data; nrrs=0; cname=$; owner=$; ttl=14400 www.distorted.org.uk flags 0 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=14400 www.distorted.org.uk flags 0 type A(addr): OK; nrrs=1; cname=$; owner=$; ttl=14400 INET 172.29.199.180 www.distorted.org.uk flags 0 type NS(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 www.distorted.org.uk flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 www.distorted.org.uk flags 0 type SOA(822): No such data; nrrs=0; cname=$; owner=$; ttl=14400 www.distorted.org.uk flags 0 type RP(822): No such data; nrrs=0; cname=$; owner=$; ttl=14400 rc=0 adns-1.5.0~rc1/regress/case-lockup.out0000664000175000017500000000031012421042026015744 0ustar ianianadns debug: using nameserver 172.18.45.36 chiark.greenend.org.uk flags 0 type 1 A(-) submitted chiark.greenend.org.uk flags 0 type A(-): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 rc=0 adns-1.5.0~rc1/regress/init-1stservbroken.text0000664000175000017500000000014212421042026017467 0ustar ianiannameserver 172.18.45.2 nameserver 172.18.45.6 sortlist 127.0.0.1/32 172.18.45.0/28 172.18.45.0/24 adns-1.5.0~rc1/regress/case-ptr-aaaa-plain.out0000664000175000017500000000050412421042026017243 0ustar ianianadns debug: using nameserver 172.29.199.224 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa flags 0 type 12 PTR(raw) submitted 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa flags 0 type PTR(raw): OK; nrrs=1; cname=$; owner=$; ttl=14400 stratocaster.distorted.org.uk rc=0 adns-1.5.0~rc1/regress/case-tcpmultipart.err0000664000175000017500000000000012421042026017154 0ustar ianianadns-1.5.0~rc1/regress/case-unknown33.err0000664000175000017500000000005112421042026016277 0ustar ianianadns debug: using nameserver 172.18.45.6 adns-1.5.0~rc1/regress/case-connfail.sys0000664000175000017500000000272112422540543016267 0ustar ianian./adnstest 2ndserver :0x0|1 2/davenant.greenend.org.uk start 1056289303.784817 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000031 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000010 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000007 socket domain=AF_INET type=SOCK_STREAM socket=7 +0.000059 fcntl fd=7 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000007 fcntl fd=7 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000006 connect fd=7 addr=172.18.45.36:53 connect=ENOTSOCK +0.000013 close fd=7 close=OK +0.000031 socket domain=AF_INET type=SOCK_STREAM socket=7 +0.000035 fcntl fd=7 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000006 fcntl fd=7 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000007 connect fd=7 addr=172.18.45.6:53 connect=ENOTSOCK +0.000008 close fd=7 close=OK +0.000013 select max=7 rfds=[6] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000036 socket domain=AF_INET type=SOCK_STREAM socket=7 +0.000036 fcntl fd=7 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000007 fcntl fd=7 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000006 connect fd=7 addr=172.18.45.36:53 connect=ENOTSOCK +0.000008 close fd=7 close=OK +0.000013 socket domain=AF_INET type=SOCK_STREAM socket=7 +0.000036 fcntl fd=7 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000007 fcntl fd=7 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000006 connect fd=7 addr=172.18.45.6:53 connect=ENOTSOCK +0.000008 close fd=7 close=OK +0.000012 close fd=6 close=OK +0.000023 adns-1.5.0~rc1/regress/case-2ndservok.sys0000664000175000017500000000303312422540543016410 0ustar ianianadnstest 2ndserver :0x0|1 davenant.relativity.greenend.org.uk start 940100095.012145 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000173 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000053 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000042 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=53 +0.001041 select max=5 rfds=[4] wfds=[] efds=[] to=1.998959 select=0 rfds=[] wfds=[] efds=[] +2.-04931 select max=5 rfds=[4] wfds=[] efds=[] to=0.003890 select=0 rfds=[] wfds=[] efds=[] +0.009910 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=53 +0.000863 select max=5 rfds=[4] wfds=[] efds=[] to=1.999137 select=1 rfds=[4] wfds=[] efds=[] +0.000126 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00030003 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 01000100 01518000 04ac122d 060a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000200 01000151 80000603 6e7330c0 45c04500 02000100 01518000 06036e73 31c045c0 45000200 01000151 80000603 6e7332c0 45c06b00 01000100 01518000 04ac122d 06c07d00 01000100 01518000 04ac122d 41c08f00 01000100 01518000 04ac122d 01. +0.001026 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000423 close fd=4 close=OK +0.000435 adns-1.5.0~rc1/regress/case-rootquery.err0000664000175000017500000000000012421042026016475 0ustar ianianadns-1.5.0~rc1/regress/case-search.err0000664000175000017500000000000012421042026015671 0ustar ianianadns-1.5.0~rc1/regress/case-unknown5.sys0000664000175000017500000000256612422510662016270 0ustar ianian./adnshost default -t type5 pop.chiark.greenend.org.uk start 1144369700.944069 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000074 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000048 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000040 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 03706f70 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00050001. sendto=44 +0.000311 select max=7 rfds=[6] wfds=[] efds=[] to=1.999689 select=0 rfds=[] wfds=[] efds=[] +2.-00919 select max=7 rfds=[6] wfds=[] efds=[] to=0.000608 select=0 rfds=[] wfds=[] efds=[] +0.000988 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 03706f70 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00050001. sendto=44 +0.000264 select max=7 rfds=[6] wfds=[] efds=[] to=1.999736 select=1 rfds=[6] wfds=[] efds=[] +0.004660 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00020002 03706f70 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00050001 c00c0005 00010001 5180000f 0c736572 76696365 2d6e616d 65c010c0 17000200 01000151 80001103 6e73300a 72656c61 74697669 7479c017 c0170002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d0b. +0.000242 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000074 close fd=6 close=OK +0.000144 adns-1.5.0~rc1/regress/case-1stservtotcp.out0000664000175000017500000000476112421042026017146 0ustar ianianadns debug: using nameserver 10.0.0.1 adns debug: using nameserver 172.18.45.6 trunc.test.iwj.relativity.greenend.org.uk flags 0 type 12 PTR(raw) submitted adns warning: TCP connection failed: unable to make connection: timed out (NS=10.0.0.1) adns debug: TCP connected (NS=172.18.45.6) trunc.test.iwj.relativity.greenend.org.uk flags 0 type PTR(raw): OK; nrrs=30; cname=$; owner=$; ttl=59 long.domain.to.force.truncation.0.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.1.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.2.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.3.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.4.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.5.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.6.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.7.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.8.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.9.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.10.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.11.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.12.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.13.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.14.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.15.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.16.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.17.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.18.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.19.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.20.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.21.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.22.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.23.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.24.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.25.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.26.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.27.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.28.test.iwj.relativity.greenend.org.uk long.domain.to.force.truncation.29.test.iwj.relativity.greenend.org.uk rc=0 adns-1.5.0~rc1/regress/case-norecurse3.err0000664000175000017500000000000012421042026016514 0ustar ianianadns-1.5.0~rc1/regress/case-poll.err0000664000175000017500000000000012421042026015372 0ustar ianianadns-1.5.0~rc1/regress/case-rootqueryall.out0000664000175000017500000001416012421042026017221 0ustar ianianadns debug: using nameserver 172.18.45.6 . flags 0 type 1 A(-) submitted . flags 0 type 2 NS(raw) submitted . flags 0 type 5 CNAME(-) submitted . flags 0 type 6 SOA(raw) submitted . flags 0 type 12 PTR(raw) submitted . flags 0 type 13 HINFO(-) submitted . flags 0 type 15 MX(raw) submitted . flags 0 type 16 TXT(-) submitted . flags 0 type 17 RP(raw) submitted . flags 0 type 65537 A(addr) submitted . flags 0 type 65538 NS(+addr) submitted . flags 0 type 65548 PTR(checked) submitted . flags 0 type 65551 MX(+addr) submitted . flags 0 type 131078 SOA(822) submitted . flags 0 type 131089 RP(822) submitted . flags 1 type 1 A(-) submitted . flags 1 type 2 NS(raw) submitted . flags 1 type 5 CNAME(-) submitted . flags 1 type 6 SOA(raw) submitted . flags 1 type 12 PTR(raw) submitted . flags 1 type 13 HINFO(-) submitted . flags 1 type 15 MX(raw) submitted . flags 1 type 16 TXT(-) submitted . flags 1 type 17 RP(raw) submitted . flags 1 type 65537 A(addr) submitted . flags 1 type 65538 NS(+addr) submitted . flags 1 type 65548 PTR(checked) submitted . flags 1 type 65551 MX(+addr) submitted . flags 1 type 131078 SOA(822) submitted . flags 1 type 131089 RP(822) submitted . flags 0 type A(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400 . flags 0 type NS(raw): OK; nrrs=13; cname=$; owner=$; ttl=305624 E.ROOT-SERVERS.NET I.ROOT-SERVERS.NET F.ROOT-SERVERS.NET G.ROOT-SERVERS.NET J.ROOT-SERVERS.NET K.ROOT-SERVERS.NET L.ROOT-SERVERS.NET M.ROOT-SERVERS.NET A.ROOT-SERVERS.NET H.ROOT-SERVERS.NET B.ROOT-SERVERS.NET C.ROOT-SERVERS.NET D.ROOT-SERVERS.NET . flags 0 type CNAME(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400 . flags 0 type SOA(raw): OK; nrrs=1; cname=$; owner=$; ttl=54334 A.ROOT-SERVERS.NET hostmaster.INTERNIC.NET 1999041600 1800 900 604800 86400 . flags 0 type PTR(raw): No such data; nrrs=0; cname=$; owner=$; ttl=599 adns debug: reply not found, id 3123, query owner (NS=172.18.45.6) . flags 0 type HINFO(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400 adns debug: reply not found, id 3129, query owner (NS=172.18.45.6) adns debug: reply not found, id 312b, query owner (NS=172.18.45.6) adns debug: reply not found, id 312f, query owner (NS=172.18.45.6) . flags 0 type MX(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86400 . flags 0 type TXT(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400 . flags 0 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86400 . flags 0 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 0 type NS(+addr): OK; nrrs=13; cname=$; owner=$; ttl=305624 I.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.36.148.17 ) F.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.5.5.241 ) G.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.112.36.4 ) J.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.10 ) K.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 193.0.14.129 ) L.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.32.64.12 ) M.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 202.12.27.33 ) A.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.4 ) H.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.63.2.53 ) B.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.9.0.107 ) C.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.33.4.12 ) D.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.8.10.90 ) E.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.203.230.10 ) . flags 0 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604793 . flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=86400 . flags 0 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=51616 A.ROOT-SERVERS.NET hostmaster@INTERNIC.NET 1999041600 1800 900 604800 86400 . flags 0 type RP(822): No such data; nrrs=0; cname=$; owner=$; ttl=86400 . flags 1 type A(-): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 1 type NS(raw): OK; nrrs=13; cname=$; owner=$; ttl=305624 F.ROOT-SERVERS.NET G.ROOT-SERVERS.NET J.ROOT-SERVERS.NET K.ROOT-SERVERS.NET L.ROOT-SERVERS.NET M.ROOT-SERVERS.NET A.ROOT-SERVERS.NET H.ROOT-SERVERS.NET B.ROOT-SERVERS.NET C.ROOT-SERVERS.NET D.ROOT-SERVERS.NET E.ROOT-SERVERS.NET I.ROOT-SERVERS.NET . flags 1 type CNAME(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400 . flags 1 type SOA(raw): OK; nrrs=1; cname=$; owner=$; ttl=49034 A.ROOT-SERVERS.NET hostmaster.INTERNIC.NET 1999041600 1800 900 604800 86400 . flags 1 type PTR(raw): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 1 type HINFO(-): No such data; nrrs=0; cname=$; owner=$; ttl=599 adns debug: reply not found, id 3133, query owner (NS=172.18.45.6) adns debug: reply not found, id 3123, query owner (NS=172.18.45.6) adns debug: reply not found, id 3134, query owner (NS=172.18.45.6) adns debug: reply not found, id 3139, query owner (NS=172.18.45.6) adns debug: reply not found, id 313b, query owner (NS=172.18.45.6) . flags 1 type MX(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86400 . flags 1 type TXT(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400 . flags 1 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86399 . flags 1 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=598 . flags 1 type NS(+addr): OK; nrrs=13; cname=$; owner=$; ttl=305623 G.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.112.36.4 ) J.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.10 ) K.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 193.0.14.129 ) L.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.32.64.12 ) M.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 202.12.27.33 ) A.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.4 ) H.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.63.2.53 ) B.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.9.0.107 ) C.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.33.4.12 ) D.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.8.10.90 ) E.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.203.230.10 ) I.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.36.148.17 ) F.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.5.5.241 ) . flags 1 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604792 . flags 1 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=598 . flags 1 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=46580 A.ROOT-SERVERS.NET hostmaster@INTERNIC.NET 1999041600 1800 900 604800 86400 . flags 1 type RP(822): No such data; nrrs=0; cname=$; owner=$; ttl=598 rc=0 adns-1.5.0~rc1/regress/harness.h.m40000664000175000017500000000450712421042026015154 0ustar ianianm4_dnl harness.h.m4 m4_dnl (part of complex test harness, not of the library) m4_dnl - function and other declarations m4_dnl This file is part of adns, which is m4_dnl Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson m4_dnl Copyright (C) 2014 Mark Wooding m4_dnl Copyright (C) 1999-2000,2003,2006 Tony Finch m4_dnl Copyright (C) 1991 Massachusetts Institute of Technology m4_dnl (See the file INSTALL for full details.) m4_dnl m4_dnl This program is free software; you can redistribute it and/or modify m4_dnl it under the terms of the GNU General Public License as published by m4_dnl the Free Software Foundation; either version 3, or (at your option) m4_dnl any later version. m4_dnl m4_dnl This program is distributed in the hope that it will be useful, m4_dnl but WITHOUT ANY WARRANTY; without even the implied warranty of m4_dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the m4_dnl GNU General Public License for more details. m4_dnl m4_dnl You should have received a copy of the GNU General Public License m4_dnl along with this program; if not, write to the Free Software Foundation. m4_include(hmacros.i4) #ifndef HARNESS_H_INCLUDED #define HARNESS_H_INCLUDED #include "internal.h" #include "hsyscalls.h" /* There is a Q function (Q for Question) for each such syscall; * it constructs a string representing the call, and calls Q_str * on it, or constructs it in vb and calls Q_vb; */ hm_create_proto_q m4_define(`hm_syscall', `void Q$1(hm_args_massage($3,void));') m4_define(`hm_specsyscall', `') m4_include(`hsyscalls.i4') void Q_vb(void); extern void Tshutdown(void); /* General help functions */ void Tfailed(const char *why); void Toutputerr(void); void Tnomem(void); void Tfsyscallr(const char *fmt, ...) PRINTFFORMAT(1,2); void Tensurerecordfile(void); void Tmust(const char *call, const char *arg, int cond); void Tvbf(const char *fmt, ...) PRINTFFORMAT(1,2); void Tvbvf(const char *fmt, va_list al); void Tvbfdset(int max, const fd_set *set); void Tvbpollfds(const struct pollfd *fds, int nfds); void Tvbaddr(const struct sockaddr *addr, int addrlen); void Tvbbytes(const void *buf, int len); void Tvberrno(int e); void Tvba(const char *str); /* Shared globals */ extern vbuf vb; extern struct timeval currenttime; extern const struct Terrno { const char *n; int v; } Terrnos[]; #endif adns-1.5.0~rc1/regress/case-poll.sys0000664000175000017500000000203312422540543015440 0ustar ianianadnstest default -,p :0x0|1 chiark.greenend.org.uk start 931719947.391142 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000208 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000087 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000066 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000592 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=1 fds=[{fd=4, events=POLLIN, revents=POLLIN}] +0.006530 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d41. +0.001044 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000211 close fd=4 close=OK +0.000248 adns-1.5.0~rc1/regress/hsyscalls.h0000664000175000017500000000240212421044560015174 0ustar ianian#ifndef HSYSCALLS_H_INCLUDED #define HSYSCALLS_H_INCLUDED #include #include #include #include #include #ifdef HAVE_POLL #include #endif int Hselect( int max , fd_set *rfds , fd_set *wfds , fd_set *efds , struct timeval *to ); #ifdef HAVE_POLL int Hpoll( struct pollfd *fds , int nfds , int timeout ); #endif int Hsocket( int domain , int type , int protocol ); int Hfcntl( int fd , int cmd , ... ); int Hconnect( int fd , const struct sockaddr *addr , int addrlen ); int Hbind( int fd , const struct sockaddr *addr , int addrlen ); int Hlisten( int fd , int backlog ); int Hclose( int fd ); int Hsendto( int fd , const void *msg , int msglen , unsigned int flags , const struct sockaddr *addr , int addrlen ); int Hrecvfrom( int fd , void *buf , int buflen , unsigned int flags , struct sockaddr *addr , int *addrlen ); int Hread( int fd , void *buf , size_t buflen ); int Hwrite( int fd , const void *buf , size_t len ); int Hwritev(int fd, const struct iovec *vector, size_t count); int Hgettimeofday(struct timeval *tv, struct timezone *tz); pid_t Hgetpid(void); void* Hmalloc(size_t sz); void Hfree(void *ptr); void* Hrealloc(void *op, size_t nsz); void Hexit(int rv)NONRETURNING; #endif adns-1.5.0~rc1/regress/case-manyptrwrongrst.out0000664000175000017500000001216712421042026017764 0ustar ianianadns debug: using nameserver 172.18.45.6 254.0.99.203.in-addr.arpa flags 292 type 1 A(-) submitted 254.0.99.203.in-addr.arpa flags 292 type 2 NS(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 5 CNAME(-) submitted 254.0.99.203.in-addr.arpa flags 292 type 6 SOA(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 12 PTR(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 13 HINFO(-) submitted 254.0.99.203.in-addr.arpa flags 292 type 15 MX(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 16 TXT(-) submitted 254.0.99.203.in-addr.arpa flags 292 type 17 RP(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 65537 A(addr) submitted 254.0.99.203.in-addr.arpa flags 292 type 65538 NS(+addr) submitted 254.0.99.203.in-addr.arpa flags 292 type 65548 PTR(checked) submitted 254.0.99.203.in-addr.arpa flags 292 type 65551 MX(+addr) submitted 254.0.99.203.in-addr.arpa flags 292 type 131078 SOA(822) submitted 254.0.99.203.in-addr.arpa flags 292 type 131089 RP(822) submitted 254.0.99.203.in-addr.arpa flags 292 type A(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=162 254.0.99.203.in-addr.arpa flags 292 type NS(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type CNAME(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type HINFO(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type A(addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=162 254.0.99.203.in-addr.arpa flags 292 type TXT(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=162 254.0.99.203.in-addr.arpa flags 292 type SOA(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type MX(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 adns debug: reply not found, id 312a, query owner 254.0.99.203.in-addr.arpa (NS=172.18.45.6) 254.0.99.203.in-addr.arpa flags 292 type NS(+addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=600 254.0.99.203.in-addr.arpa flags 292 type MX(+addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=600 254.0.99.203.in-addr.arpa flags 292 type SOA(822): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=600 adns debug: reply not found, id 312c, query owner 254.0.99.203.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 312d, query owner 254.0.99.203.in-addr.arpa (NS=172.18.45.6) 254.0.99.203.in-addr.arpa flags 292 type RP(822): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 adns debug: reply not found, id 312e, query owner 254.0.99.203.in-addr.arpa (NS=172.18.45.6) 254.0.99.203.in-addr.arpa flags 292 type RP(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=598 adns debug: TCP connected (NS=172.18.45.6) adns debug: reply not found, id 312b, query owner 254.0.99.203.in-addr.arpa (NS=172.18.45.6) 254.0.99.203.in-addr.arpa flags 292 type PTR(raw): OK; nrrs=94; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=20169 ns.security.co.nz tetra.co.nz mail.agate.co.nz ns.agate.co.nz securitytraining.co.nz ns.giftbasket.co.nz ns.security.gen.nz bouquet.co.nz investigation.co.nz ns.nzipi.org.nz mail.neru.co.nz security.co.nz ns.storewatch.co.nz security.gen.nz ns.tetra.co.nz mail.tetra.co.nz ns.securicard.co.nz ns.underhour.co.nz bcc.co.nz security.org.nz burglaralarms.co.nz ns.safes.co.nz ns.security.org.nz couperconsulting.co.nz securityguards.co.nz ns.guards.co.nz asis.org.nz neru.co.nz giftbasket.co.nz magic.co.nz mail.bcc.co.nz ns.investigation.co.nz nzipi.org.nz ns.bouquet.co.nz mail.safes.co.nz ns.bcc.co.nz ns.burglaralarms.co.nz ns.securityguards.co.nz covertcameras.co.nz ns.neru.co.nz ns.covertcameras.co.nz bouquets.co.nz concentric.co.nz ns.securitytraining.co.nz mail.couperconsulting.co.nz retailsecurity.co.nz ns.concentric.co.nz mail.magic.co.nz nzangling.co.nz ns.couperconsulting.co.nz ns.nzangling.co.nz mail.storewatch.co.nz swift.co.nz mail.selective.co.nz ns.forefront.co.nz mail.nzangling.co.nz guards.co.nz mail.nzdesigns.co.nz storewatch.co.nz ns.securitymanagement.co.nz mail.woolworths.co.nz mail.concentric.co.nz selective.co.nz specialinvestigations.co.nz ns.swift.co.nz mail.swift.co.nz ns.securenet.net.nz privateinvestigation.co.nz ns.privateinvestigation.co.nz etrade.co.nz ns.specialinvestigations.co.nz mail.ansett.co.nz ftp.warrent.co.nz ns.retailsecurity.co.nz mail.securitymanagement.co.nz ns.magic.co.nz mail.forefront.co.nz mail.securicard.co.nz securicard.co.nz ns.nzdesigns.co.nz safes.co.nz ns.selective.co.nz forefront.co.nz securitymanagement.co.nz underhour.co.nz securenet.net.nz mail.specialinvestigations.co.nz nzdesigns.co.nz ns.etrade.co.nz mail.nzipi.org.nz mail.underhour.co.nz ns.asis.org.nz ns.bouquets.co.nz agate.co.nz 254.0.99.203.in-addr.arpa flags 292 type PTR(checked): Inconsistent resource records in DNS; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=20167 rc=0 adns-1.5.0~rc1/regress/case-ndots-as.err0000664000175000017500000000000012421042026016154 0ustar ianianadns-1.5.0~rc1/regress/hcommon.c.m40000664000175000017500000002114412421042026015140 0ustar ianianm4_dnl hcommon.c m4_dnl (part of complex test harness, not of the library) m4_dnl - routines used for both record and playback m4_dnl This file is part of adns, which is m4_dnl Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson m4_dnl Copyright (C) 2014 Mark Wooding m4_dnl Copyright (C) 1999-2000,2003,2006 Tony Finch m4_dnl Copyright (C) 1991 Massachusetts Institute of Technology m4_dnl (See the file INSTALL for full details.) m4_dnl m4_dnl This program is free software; you can redistribute it and/or modify m4_dnl it under the terms of the GNU General Public License as published by m4_dnl the Free Software Foundation; either version 3, or (at your option) m4_dnl any later version. m4_dnl m4_dnl This program is distributed in the hope that it will be useful, m4_dnl but WITHOUT ANY WARRANTY; without even the implied warranty of m4_dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the m4_dnl GNU General Public License for more details. m4_dnl m4_dnl You should have received a copy of the GNU General Public License m4_dnl along with this program; if not, write to the Free Software Foundation. m4_include(hmacros.i4) #include #include #include #include #include #include #include #include #include #include #include "harness.h" #include "internal.h" vbuf vb; FILE *Toutputfile= 0; struct timeval currenttime; const struct Terrno Terrnos[]= { { "EBADF", EBADF }, { "EAGAIN", EAGAIN }, { "EINPROGRESS", EINPROGRESS }, { "EINTR", EINTR }, { "EINVAL", EINVAL }, { "EMSGSIZE", EMSGSIZE }, { "ENOBUFS", ENOBUFS }, { "ENOENT", ENOENT }, { "ENOPROTOOPT", ENOPROTOOPT }, { "ENOSPC", ENOSPC }, { "EWOULDBLOCK", EWOULDBLOCK }, { "EHOSTUNREACH", EHOSTUNREACH }, { "ECONNRESET", ECONNRESET }, { "ECONNREFUSED", ECONNREFUSED }, { "EPIPE", EPIPE }, { "ENOTSOCK", ENOTSOCK }, { 0, 0 } }; static vbuf vbw; int Hgettimeofday(struct timeval *tv, struct timezone *tz) { Tensurerecordfile(); Tmust("gettimeofday","tz",!tz); *tv= currenttime; return 0; } int Hwritev(int fd, const struct iovec *vector, size_t count) { size_t i; vbw.used= 0; for (i=0; iiov_base,vector->iov_len)) Tnomem(); } return Hwrite(fd,vbw.buf,vbw.used); } m4_define(`hm_syscall', ` hm_create_proto_q void Q$1(hm_args_massage($3,void)) { vb.used= 0; Tvba("$1"); m4_define(`hm_na',`') m4_define(`hm_arg_nullptr',`') m4_define(`hm_arg_int', `Tvbf(" $'`1=%d",$'`1);') m4_define(`hm_arg_fdset_io', `Tvbf(" $'`1="); Tvbfdset($'`2,$'`1);') m4_define(`hm_arg_pollfds_io', `Tvbf(" $'`1="); Tvbpollfds($'`1,$'`2);') m4_define(`hm_arg_timeval_in_rel_null', ` if ($'`1) Tvbf(" $'`1=%ld.%06ld",(long)$'`1->tv_sec,(long)$'`1->tv_usec); else Tvba(" $'`1=null");') m4_define(`hm_arg_must', `') m4_define(`hm_arg_socktype', ` Tvbf($'`1==SOCK_STREAM ? " $'`1=SOCK_STREAM" : " $'`1=SOCK_DGRAM");') m4_define(`hm_arg_addrfam', ` Tvbf($'`1==AF_INET ? " $'`1=AF_INET" : $'`1==AF_INET6 ? " $'`1=AF_INET6" : " $'`1=AF_???");') m4_define(`hm_arg_ign', `') m4_define(`hm_arg_fd', `Tvbf(" $'`1=%d",$'`1);') m4_define(`hm_arg_fcntl_cmd_arg', ` if ($'`1 == F_SETFL) { Tvbf(" $'`1=F_SETFL %s",arg & O_NONBLOCK ? "O_NONBLOCK|..." : "~O_NONBLOCK&..."); } else if ($'`1 == F_GETFL) { Tvba(" $'`1=F_GETFL"); } else { Tmust("$'`1","F_GETFL/F_SETFL",0); }') m4_define(`hm_arg_addr_in', `Tvba(" $'`1="); Tvbaddr($'`1,$'`2);') m4_define(`hm_arg_bytes_in', `') m4_define(`hm_arg_bytes_out', `Tvbf(" $'`4=%lu",(unsigned long)$'`4);') m4_define(`hm_arg_addr_out', `') $3 hm_create_nothing m4_define(`hm_arg_bytes_in', `Tvbbytes($'`2,$'`4);') $3 Q_vb(); } ') m4_define(`hm_specsyscall', `') m4_include(`hsyscalls.i4') void Tvbaddr(const struct sockaddr *addr, int len) { char buf[ADNS_ADDR2TEXT_BUFLEN]; int err, port; int sz= sizeof(buf); err= adns_addr2text(addr, 0, buf,&sz, &port); assert(!err); Tvbf(strchr(buf, ':') ? "[%s]:%d" : "%s:%d", buf,port); } void Tvbbytes(const void *buf, int len) { const byte *bp; int i; if (!len) { Tvba("\n ."); return; } for (i=0, bp=buf; i0) { Tvba(comma); Tvbf("{fd=%d, events=",fds->fd); Tvbpollevents(fds->events); Tvba(", revents="); Tvbpollevents(fds->revents); Tvba("}"); comma= ", "; nfds--; fds++; } Tvba("]"); } void Tvberrno(int e) { const struct Terrno *te; for (te= Terrnos; te->n && te->v != e; te++); assert(te->n); Tvba(te->n); } void Tvba(const char *str) { if (!adns__vbuf_appendstr(&vb,str)) Tnomem(); } void Tvbvf(const char *fmt, va_list al) { char buf[1000]; buf[sizeof(buf)-2]= '\t'; vsnprintf(buf,sizeof(buf),fmt,al); assert(buf[sizeof(buf)-2] == '\t'); Tvba(buf); } void Tvbf(const char *fmt, ...) { va_list al; va_start(al,fmt); Tvbvf(fmt,al); va_end(al); } void Tmust(const char *call, const char *arg, int cond) { if (cond) return; fprintf(stderr,"adns test harness: case not handled: system call %s, arg %s",call,arg); exit(-1); } void Tfailed(const char *why) { fprintf(stderr,"adns test harness: failure: %s: %s\n",why,strerror(errno)); exit(-1); } void Tnomem(void) { Tfailed("unable to malloc/realloc"); } void Toutputerr(void) { Tfailed("write error on test harness output"); } struct malloced { struct malloced *next, *back; size_t sz; unsigned long count; struct { double d; long ul; void *p; void (*fp)(void); } data; }; static unsigned long malloccount, mallocfailat; static struct { struct malloced *head, *tail; } mallocedlist; #define MALLOCHSZ ((char*)&mallocedlist.head->data - (char*)mallocedlist.head) void *Hmalloc(size_t sz) { struct malloced *newnode; const char *mfavar; char *ep; assert(sz); newnode= malloc(MALLOCHSZ + sz); if (!newnode) Tnomem(); LIST_LINK_TAIL(mallocedlist,newnode); newnode->sz= sz; newnode->count= ++malloccount; if (!mallocfailat) { mfavar= getenv("ADNS_REGRESS_MALLOCFAILAT"); if (mfavar) { mallocfailat= strtoul(mfavar,&ep,10); if (!mallocfailat || *ep) Tfailed("ADNS_REGRESS_MALLOCFAILAT bad value"); } else { mallocfailat= ~0UL; } } assert(newnode->count != mallocfailat); memset(&newnode->data,0xc7,sz); return &newnode->data; } void Hfree(void *ptr) { struct malloced *oldnode; if (!ptr) return; oldnode= (void*)((char*)ptr - MALLOCHSZ); LIST_UNLINK(mallocedlist,oldnode); memset(&oldnode->data,0x38,oldnode->sz); free(oldnode); } void *Hrealloc(void *op, size_t nsz) { struct malloced *oldnode; void *np; size_t osz; if (op) { oldnode= (void*)((char*)op - MALLOCHSZ); osz= oldnode->sz; } else { osz= 0; } np= Hmalloc(nsz); memcpy(np,op, osz>nsz ? nsz : osz); Hfree(op); return np; } void Hexit(int rv) { struct malloced *loopnode; Tshutdown(); adns__vbuf_free(&vb); adns__vbuf_free(&vbw); if (mallocedlist.head) { fprintf(stderr,"adns test harness: memory leaked:"); for (loopnode=mallocedlist.head; loopnode; loopnode=loopnode->next) fprintf(stderr," %lu",loopnode->count); putc('\n',stderr); if (ferror(stderr)) exit(-1); } exit(rv); } pid_t Hgetpid(void) { return 2264; /* just some number */ } adns-1.5.0~rc1/regress/case-unknownq.sys0000664000175000017500000000045412422540543016357 0ustar ianianadnstest default :0x0|32767 davenant.relativity.greenend.org.uk. start 933811310.565828 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000264 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000087 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000067 close fd=4 close=OK +0.000307 adns-1.5.0~rc1/regress/hrecord.c0000664000175000017500000001362212421044560014616 0ustar ianian#include #include #include #include #include #include #include #include "harness.h" static FILE *Toutputfile; void Tshutdown(void) { } static void R_recordtime(void) { int r; struct timeval tv, tvrel; Tensurerecordfile(); r= gettimeofday(&tv,0); if (r) Tfailed("gettimeofday syscallbegin"); tvrel.tv_sec= tv.tv_sec - currenttime.tv_sec; tvrel.tv_usec= tv.tv_usec - currenttime.tv_usec; if (tv.tv_usec < 0) { tvrel.tv_usec += 1000000; tvrel.tv_sec--; } Tvbf("\n +%ld.%06ld",(long)tvrel.tv_sec,(long)tvrel.tv_usec); currenttime= tv; } void Tensurerecordfile(void) { const char *fdstr; int fd, r; if (Toutputfile) return; Toutputfile= stdout; fdstr= getenv("ADNS_TEST_OUT_FD"); if (fdstr) { fd= atoi(fdstr); Toutputfile= fdopen(fd,"a"); if (!Toutputfile) Tfailed("fdopen ADNS_TEST_OUT_FD"); } r= gettimeofday(¤ttime,0); if (r) Tfailed("gettimeofday syscallbegin"); if (fprintf(Toutputfile," start %ld.%06ld\n", (long)currenttime.tv_sec,(long)currenttime.tv_usec) == EOF) Toutputerr(); } void Q_vb(void) { if (!adns__vbuf_append(&vb,"",1)) Tnomem(); Tensurerecordfile(); if (fprintf(Toutputfile," %s\n",vb.buf) == EOF) Toutputerr(); if (fflush(Toutputfile)) Toutputerr(); } static void R_vb(void) { Q_vb(); } int Hselect( int max , fd_set *rfds , fd_set *wfds , fd_set *efds , struct timeval *to ) { int r, e; Qselect( max , rfds , wfds , efds , to ); r= select( max , rfds , wfds , efds , to ); e= errno; vb.used= 0; Tvba("select="); if (r==-1) { Tvberrno(e); goto x_error; } Tvbf("%d",r); Tvba(" rfds="); Tvbfdset(max,rfds); Tvba(" wfds="); Tvbfdset(max,wfds); Tvba(" efds="); Tvbfdset(max,efds); x_error: R_recordtime(); R_vb(); errno= e; return r; } #ifdef HAVE_POLL int Hpoll( struct pollfd *fds , int nfds , int timeout ) { int r, e; Qpoll( fds , nfds , timeout ); r= poll( fds , nfds , timeout ); e= errno; vb.used= 0; Tvba("poll="); if (r==-1) { Tvberrno(e); goto x_error; } Tvbf("%d",r); Tvba(" fds="); Tvbpollfds(fds,nfds); x_error: R_recordtime(); R_vb(); errno= e; return r; } #endif int Hsocket( int domain , int type , int protocol ) { int r, e; Tmust("socket","domain",domain==AF_INET || domain==AF_INET6); Tmust("socket","type",type==SOCK_STREAM || type==SOCK_DGRAM); Qsocket( domain , type ); r= socket( domain , type , protocol ); e= errno; vb.used= 0; Tvba("socket="); if (r==-1) { Tvberrno(e); goto x_error; } Tvbf("%d",r); x_error: R_recordtime(); R_vb(); errno= e; return r; } int Hfcntl( int fd , int cmd , ... ) { int r, e; va_list al; long arg; Tmust("fcntl","cmd",cmd==F_SETFL || cmd==F_GETFL); if (cmd == F_SETFL) { va_start(al,cmd); arg= va_arg(al,long); va_end(al); } else { arg= 0; } Qfcntl( fd , cmd , arg ); r= fcntl( fd , cmd , arg ); e= errno; vb.used= 0; Tvba("fcntl="); if (r==-1) { Tvberrno(e); goto x_error; } if (cmd == F_GETFL) { Tvbf(r & O_NONBLOCK ? "O_NONBLOCK|..." : "~O_NONBLOCK&..."); } else { if (cmd == F_SETFL) { Tmust("fcntl","return",!r); } else { Tmust("cmd","F_GETFL/F_SETFL",0); } Tvba("OK"); } x_error: R_recordtime(); R_vb(); errno= e; return r; } int Hconnect( int fd , const struct sockaddr *addr , int addrlen ) { int r, e; Qconnect( fd , addr , addrlen ); r= connect( fd , addr , addrlen ); e= errno; vb.used= 0; Tvba("connect="); if (r) { Tvberrno(e); goto x_error; } Tvba("OK"); x_error: R_recordtime(); R_vb(); errno= e; return r; } int Hbind( int fd , const struct sockaddr *addr , int addrlen ) { int r, e; Qbind( fd , addr , addrlen ); r= bind( fd , addr , addrlen ); e= errno; vb.used= 0; Tvba("bind="); if (r) { Tvberrno(e); goto x_error; } Tvba("OK"); x_error: R_recordtime(); R_vb(); errno= e; return r; } int Hlisten( int fd , int backlog ) { int r, e; Qlisten( fd , backlog ); r= listen( fd , backlog ); e= errno; vb.used= 0; Tvba("listen="); if (r) { Tvberrno(e); goto x_error; } Tvba("OK"); x_error: R_recordtime(); R_vb(); errno= e; return r; } int Hclose( int fd ) { int r, e; Qclose( fd ); r= close( fd ); e= errno; vb.used= 0; Tvba("close="); if (r) { Tvberrno(e); goto x_error; } Tvba("OK"); x_error: R_recordtime(); R_vb(); errno= e; return r; } int Hsendto( int fd , const void *msg , int msglen , unsigned int flags , const struct sockaddr *addr , int addrlen ) { int r, e; Tmust("sendto","flags",flags==0); Qsendto( fd , msg , msglen , addr , addrlen ); r= sendto( fd , msg , msglen , flags , addr , addrlen ); e= errno; vb.used= 0; Tvba("sendto="); if (r==-1) { Tvberrno(e); goto x_error; } Tvbf("%d",r); x_error: R_recordtime(); R_vb(); errno= e; return r; } int Hrecvfrom( int fd , void *buf , int buflen , unsigned int flags , struct sockaddr *addr , int *addrlen ) { int r, e; Tmust("recvfrom","flags",flags==0); Tmust("recvfrom","*addrlen",*addrlen>=sizeof(struct sockaddr_in)); Qrecvfrom( fd , buflen , *addrlen ); r= recvfrom( fd , buf , buflen , flags , addr , addrlen ); e= errno; vb.used= 0; Tvba("recvfrom="); if (r==-1) { Tvberrno(e); goto x_error; } Tmust("recvfrom","return",r<=buflen); Tvba("OK"); Tvba(" addr="); Tvbaddr(addr,*addrlen); Tvbbytes(buf,r); x_error: R_recordtime(); R_vb(); errno= e; return r; } int Hread( int fd , void *buf , size_t buflen ) { int r, e; Qread( fd , buflen ); r= read( fd , buf , buflen ); e= errno; vb.used= 0; Tvba("read="); if (r==-1) { Tvberrno(e); goto x_error; } Tmust("read","return",r<=buflen); Tvba("OK"); Tvbbytes(buf,r); x_error: R_recordtime(); R_vb(); errno= e; return r; } int Hwrite( int fd , const void *buf , size_t len ) { int r, e; Qwrite( fd , buf , len ); r= write( fd , buf , len ); e= errno; vb.used= 0; Tvba("write="); if (r==-1) { Tvberrno(e); goto x_error; } Tvbf("%d",r); x_error: R_recordtime(); R_vb(); errno= e; return r; } adns-1.5.0~rc1/regress/case-norm.err0000664000175000017500000000000012421042026015377 0ustar ianianadns-1.5.0~rc1/regress/case-ptrbaddom.err0000664000175000017500000000000012421042026016400 0ustar ianianadns-1.5.0~rc1/regress/case-abbrev.out0000664000175000017500000000517012421042026015721 0ustar ianianadns debug: using nameserver 172.18.45.6 greenend.org.uk flags 0 type 1 A(-) submitted greenend.org.uk flags 0 type 2 NS(raw) submitted greenend.org.uk flags 0 type 5 CNAME(-) submitted greenend.org.uk flags 0 type 6 SOA(raw) submitted greenend.org.uk flags 0 type 12 PTR(raw) submitted greenend.org.uk flags 0 type 13 HINFO(-) submitted greenend.org.uk flags 0 type 15 MX(raw) submitted greenend.org.uk flags 0 type 16 TXT(-) submitted greenend.org.uk flags 0 type 17 RP(raw) submitted greenend.org.uk flags 0 type 65537 A(addr) submitted greenend.org.uk flags 0 type 65538 NS(+addr) submitted greenend.org.uk flags 0 type 65548 PTR(checked) submitted greenend.org.uk flags 0 type 65551 MX(+addr) submitted greenend.org.uk flags 0 type 131078 SOA(822) submitted greenend.org.uk flags 0 type 131089 RP(822) submitted greenend.org.uk flags 0 type PTR(checked) ownflags=a: querydomainwrong; nrrs=0; cname=$; owner=$; ttl=604800 greenend.org.uk flags 0 type A(-) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400 greenend.org.uk flags 0 type NS(raw) ownflags=a: ok; nrrs=2; cname=$; owner=$; ttl=86400 ns1.relativity.greenend.org.uk ns0.relativity.greenend.org.uk greenend.org.uk flags 0 type CNAME(-) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400 greenend.org.uk flags 0 type SOA(raw) ownflags=a: ok; nrrs=1; cname=$; owner=$; ttl=86400 ns.chiark.greenend.org.uk hostmaster.greenend.org.uk 1999061300 28800 7200 604800 86400 greenend.org.uk flags 0 type PTR(raw) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400 greenend.org.uk flags 0 type HINFO(-) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400 greenend.org.uk flags 0 type MX(raw) ownflags=a: ok; nrrs=1; cname=$; owner=$; ttl=86400 10 chiark.greenend.org.uk greenend.org.uk flags 0 type TXT(-) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400 greenend.org.uk flags 0 type RP(raw) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400 greenend.org.uk flags 0 type A(addr) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400 greenend.org.uk flags 0 type NS(+addr) ownflags=a: ok; nrrs=2; cname=$; owner=$; ttl=86400 ns0.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.6 ) ns1.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.65 ) greenend.org.uk flags 0 type MX(+addr) ownflags=a: ok; nrrs=1; cname=$; owner=$; ttl=86400 10 chiark.greenend.org.uk ok 0 ok "OK" ( INET 195.224.76.132 ) greenend.org.uk flags 0 type SOA(822) ownflags=a: ok; nrrs=1; cname=$; owner=$; ttl=86400 ns.chiark.greenend.org.uk hostmaster@greenend.org.uk 1999061300 28800 7200 604800 86400 greenend.org.uk flags 0 type RP(822) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400 rc=0 adns-1.5.0~rc1/regress/hrecord.c.m40000664000175000017500000001010612421042026015122 0ustar ianianm4_dnl hrecord.c.m4 m4_dnl (part of complex test harness, not of the library) m4_dnl - recording routines m4_dnl This file is part of adns, which is m4_dnl Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson m4_dnl Copyright (C) 2014 Mark Wooding m4_dnl Copyright (C) 1999-2000,2003,2006 Tony Finch m4_dnl Copyright (C) 1991 Massachusetts Institute of Technology m4_dnl (See the file INSTALL for full details.) m4_dnl m4_dnl This program is free software; you can redistribute it and/or modify m4_dnl it under the terms of the GNU General Public License as published by m4_dnl the Free Software Foundation; either version 3, or (at your option) m4_dnl any later version. m4_dnl m4_dnl This program is distributed in the hope that it will be useful, m4_dnl but WITHOUT ANY WARRANTY; without even the implied warranty of m4_dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the m4_dnl GNU General Public License for more details. m4_dnl m4_dnl You should have received a copy of the GNU General Public License m4_dnl along with this program; if not, write to the Free Software Foundation. m4_include(hmacros.i4) #include #include #include #include #include #include #include #include "harness.h" static FILE *Toutputfile; void Tshutdown(void) { } static void R_recordtime(void) { int r; struct timeval tv, tvrel; Tensurerecordfile(); r= gettimeofday(&tv,0); if (r) Tfailed("gettimeofday syscallbegin"); tvrel.tv_sec= tv.tv_sec - currenttime.tv_sec; tvrel.tv_usec= tv.tv_usec - currenttime.tv_usec; if (tv.tv_usec < 0) { tvrel.tv_usec += 1000000; tvrel.tv_sec--; } Tvbf("\n +%ld.%06ld",(long)tvrel.tv_sec,(long)tvrel.tv_usec); currenttime= tv; } void Tensurerecordfile(void) { const char *fdstr; int fd, r; if (Toutputfile) return; Toutputfile= stdout; fdstr= getenv("ADNS_TEST_OUT_FD"); if (fdstr) { fd= atoi(fdstr); Toutputfile= fdopen(fd,"a"); if (!Toutputfile) Tfailed("fdopen ADNS_TEST_OUT_FD"); } r= gettimeofday(¤ttime,0); if (r) Tfailed("gettimeofday syscallbegin"); if (fprintf(Toutputfile," start %ld.%06ld\n", (long)currenttime.tv_sec,(long)currenttime.tv_usec) == EOF) Toutputerr(); } void Q_vb(void) { if (!adns__vbuf_append(&vb,"",1)) Tnomem(); Tensurerecordfile(); if (fprintf(Toutputfile," %s\n",vb.buf) == EOF) Toutputerr(); if (fflush(Toutputfile)) Toutputerr(); } static void R_vb(void) { Q_vb(); } m4_define(`hm_syscall', ` hm_create_proto_h int H$1(hm_args_massage($3,void)) { int r, e; hm_create_hqcall_vars $3 hm_create_hqcall_init($1) $3 hm_create_hqcall_args Q$1(hm_args_massage($3)); hm_create_realcall_args r= $1(hm_args_massage($3)); e= errno; vb.used= 0; Tvba("$1="); m4_define(`hm_rv_any',` if (r==-1) { Tvberrno(e); goto x_error; } Tvbf("%d",r);') m4_define(`hm_rv_fd',`hm_rv_any($'`1)') m4_define(`hm_rv_succfail',` if (r) { Tvberrno(e); goto x_error; } Tvba("OK");') m4_define(`hm_rv_must',`Tmust("$1","return",!r); Tvba("OK");') m4_define(`hm_rv_len',` if (r==-1) { Tvberrno(e); goto x_error; } Tmust("$1","return",r<=$'`1); Tvba("OK");') m4_define(`hm_rv_fcntl',` if (r==-1) { Tvberrno(e); goto x_error; } if (cmd == F_GETFL) { Tvbf(r & O_NONBLOCK ? "O_NONBLOCK|..." : "~O_NONBLOCK&..."); } else { if (cmd == F_SETFL) { Tmust("$1","return",!r); } else { Tmust("cmd","F_GETFL/F_SETFL",0); } Tvba("OK"); }') $2 hm_create_nothing m4_define(`hm_arg_fdset_io',`Tvba(" $'`1="); Tvbfdset($'`2,$'`1);') m4_define(`hm_arg_pollfds_io',`Tvba(" $'`1="); Tvbpollfds($'`1,$'`2);') m4_define(`hm_arg_addr_out',`Tvba(" $'`1="); Tvbaddr($'`1,*$'`2);') $3 hm_create_nothing m4_define(`hm_arg_bytes_out',`Tvbbytes($'`2,r);') $3 m4_define(`hm_rv_any',`x_error:') m4_define(`hm_rv_fd',`x_error:') m4_define(`hm_rv_succfail',`x_error:') m4_define(`hm_rv_len',`x_error:') m4_define(`hm_rv_fcntl',`x_error:') m4_define(`hm_rv_must',`') $2 R_recordtime(); R_vb(); errno= e; return r; } ') m4_define(`hm_specsyscall', `') m4_include(`hsyscalls.i4') adns-1.5.0~rc1/regress/case-norecurse2.out0000664000175000017500000000635512421042026016555 0ustar ianianadns debug: using nameserver 172.18.45.6 4.204.50.158.in-addr.arpa flags 0 type 1 A(-) submitted 4.204.50.158.in-addr.arpa flags 0 type 2 NS(raw) submitted 4.204.50.158.in-addr.arpa flags 0 type 5 CNAME(-) submitted 4.204.50.158.in-addr.arpa flags 0 type 6 SOA(raw) submitted 4.204.50.158.in-addr.arpa flags 0 type 12 PTR(raw) submitted 4.204.50.158.in-addr.arpa flags 0 type 13 HINFO(-) submitted 4.204.50.158.in-addr.arpa flags 0 type 15 MX(raw) submitted 4.204.50.158.in-addr.arpa flags 0 type 16 TXT(-) submitted 4.204.50.158.in-addr.arpa flags 0 type 17 RP(raw) submitted 4.204.50.158.in-addr.arpa flags 0 type 65537 A(addr) submitted 4.204.50.158.in-addr.arpa flags 0 type 65538 NS(+addr) submitted 4.204.50.158.in-addr.arpa flags 0 type 65548 PTR(checked) submitted 4.204.50.158.in-addr.arpa flags 0 type 65551 MX(+addr) submitted 4.204.50.158.in-addr.arpa flags 0 type 131078 SOA(822) submitted 4.204.50.158.in-addr.arpa flags 0 type 131089 RP(822) submitted 4.204.50.158.in-addr.arpa flags 0 type SOA(raw): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type HINFO(-): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type MX(raw): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type TXT(-): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type NS(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type RP(822): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type A(-): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type NS(raw): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type SOA(822): No such data; nrrs=0; cname=$; owner=$; ttl=0 adns debug: reply not found, id 312d, query owner 4.204.50.158.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 311f, query owner 4.204.50.158.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3120, query owner 4.204.50.158.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 312b, query owner 4.204.50.158.in-addr.arpa (NS=172.18.45.6) 4.204.50.158.in-addr.arpa flags 0 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type CNAME(-): No such data; nrrs=0; cname=$; owner=$; ttl=0 adns debug: TCP connected (NS=172.18.45.6) 4.204.50.158.in-addr.arpa flags 0 type PTR(raw): OK; nrrs=23; cname=$; owner=$; ttl=0 ns2.afp.com ns.afp.com news.afp.com ns2.afp.fr ns.afp.fr news.afp.fr ns2.agencefrancepresse.com news.agencefrancepresse.com ns2.agencefrancepresse.fr news.agencefrancepresse.fr ns2.agencefrance-presse.com news.agencefrance-presse.com ns2.agencefrance-presse.fr news.agencefrance-presse.fr ns2.imageforum.com news.imageforum.com ns2.imageforum.tm.fr news.imageforum.tm.fr ns2.ooh-lah-lah.com ns2.afpsciences.com ns2.afpdoc.com ns2.afp-notes.com ns2.afp-domino.com 4.204.50.158.in-addr.arpa flags 0 type PTR(checked): Inconsistent resource records in DNS; nrrs=0; cname=$; owner=$; ttl=-6 rc=0 adns-1.5.0~rc1/regress/case-rootqueryall.err0000664000175000017500000000000012421042026017166 0ustar ianianadns-1.5.0~rc1/regress/case-rootqueryall-as.sys0000664000175000017500000005407212422510662017646 0ustar ianianadnstest default -0x400 . 1/. start 931992019.753022 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000216 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000082 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000065 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 00000100 01. sendto=17 +0.000454 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 00000200 01. sendto=17 +0.000348 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 00000500 01. sendto=17 +0.000303 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 00000600 01. sendto=17 +0.000298 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 00000c00 01. sendto=17 +0.000298 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 00000d00 01. sendto=17 +0.000375 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 00000f00 01. sendto=17 +0.000301 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 00001000 01. sendto=17 +0.000299 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 00001100 01. sendto=17 +0.000351 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 00000100 01. sendto=17 +0.000868 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 00000200 01. sendto=17 +0.000617 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 00000f00 01. sendto=17 +0.000299 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 00000600 01. sendto=17 +0.000297 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 00001100 01. sendto=17 +0.000297 sendto fd=4 addr=172.18.45.6:53 312f0100 00010000 00000000 00000100 01. sendto=17 +0.000307 sendto fd=4 addr=172.18.45.6:53 31300100 00010000 00000000 00000200 01. sendto=17 +0.000299 sendto fd=4 addr=172.18.45.6:53 31310100 00010000 00000000 00000500 01. sendto=17 +0.000298 sendto fd=4 addr=172.18.45.6:53 31320100 00010000 00000000 00000600 01. sendto=17 +0.000330 sendto fd=4 addr=172.18.45.6:53 31330100 00010000 00000000 00000c00 01. sendto=17 +0.000323 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 00000d00 01. sendto=17 +0.000384 sendto fd=4 addr=172.18.45.6:53 31350100 00010000 00000000 00000f00 01. sendto=17 +0.000302 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 00001000 01. sendto=17 +0.000300 sendto fd=4 addr=172.18.45.6:53 31370100 00010000 00000000 00001100 01. sendto=17 +0.000296 sendto fd=4 addr=172.18.45.6:53 31390100 00010000 00000000 00000100 01. sendto=17 +0.000298 sendto fd=4 addr=172.18.45.6:53 313a0100 00010000 00000000 00000200 01. sendto=17 +0.000595 sendto fd=4 addr=172.18.45.6:53 313c0100 00010000 00000000 00000f00 01. sendto=17 +0.000296 sendto fd=4 addr=172.18.45.6:53 313d0100 00010000 00000000 00000600 01. sendto=17 +0.000326 sendto fd=4 addr=172.18.45.6:53 313e0100 00010000 00000000 00001100 01. sendto=17 +0.000303 select max=5 rfds=[4] wfds=[] efds=[] to=1.989938 select=1 rfds=[4] wfds=[] efds=[] +0.007735 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010000 00010000 00000100 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000703 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000151 select max=5 rfds=[4] wfds=[] efds=[] to=1.981803 select=1 rfds=[4] wfds=[] efds=[] +0.011771 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 0001000d 0000000d 00000200 01000002 00010007 e8ff0014 01450c52 4f4f542d 53455256 45525303 4e455400 00000200 010007e8 ff000401 49c01e00 00020001 0007e8ff 00040146 c01e0000 02000100 07e8ff00 040147c0 1e000002 00010007 e8ff0004 014ac01e 00000200 010007e8 ff000401 4bc01e00 00020001 0007e8ff 0004014c c01e0000 02000100 07e8ff00 04014dc0 1e000002 00010007 e8ff0004 0141c01e 00000200 010007e8 ff000401 48c01e00 00020001 0007e8ff 00040142 c01e0000 02000100 07e8ff00 040143c0 1e000002 00010007 e8ff0004 0144c01e c01c0001 00010009 3a7f0004 c0cbe60a c03b0001 00010009 3a7f0004 c0249411 c04a0001 00010009 3a7f0004 c00505f1 c0590001 00010009 3a7f0004 c0702404 c0680001 00010009 3a7f0004 c629000a c0770001 00010009 3a7f0004 c1000e81 c0860001 00010009 3a7f0004 c620400c c0950001 00010009 3a7f0004 ca0c1b21 c0a40001 00010009 3a7f0004 c6290004 c0b30001 00010009 3a7f0004 803f0235 c0c20001 00010009 3a7f0004 8009006b c0d10001 00010009 3a7f0004 c021040c c0e00001 00010009 3a7f0004 80080a5a. +0.002660 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000492 select max=5 rfds=[4] wfds=[] efds=[] to=1.967228 select=1 rfds=[4] wfds=[] efds=[] +0.016740 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228180 00010001 000d000d 00000600 01000006 00010001 409f003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 51800000 02000100 07e8ff00 040145c0 1e000002 00010007 e8ff0004 0149c01e 00000200 010007e8 ff000401 46c01e00 00020001 0007e8ff 00040147 c01e0000 02000100 07e8ff00 04014ac0 1e000002 00010007 e8ff0004 014bc01e 00000200 010007e8 ff000401 4cc01e00 00020001 0007e8ff 0004014d c01e0000 02000100 07e8ff00 02c01c00 00020001 0007e8ff 00040148 c01e0000 02000100 07e8ff00 040142c0 1e000002 00010007 e8ff0004 0143c01e 00000200 010007e8 ff000401 44c01ec0 65000100 0100093a 7f0004c0 cbe60ac0 74000100 0100093a 7f0004c0 249411c0 83000100 0100093a 7f0004c0 0505f1c0 92000100 0100093a 7f0004c0 702404c0 a1000100 0100093a 7f0004c6 29000ac0 b0000100 0100093a 7f0004c1 000e81c0 bf000100 0100093a 7f0004c6 20400cc0 ce000100 0100093a 7f0004ca 0c1b21c0 1c000100 0100093a 7f0004c6 290004c0 ea000100 0100093a 7f000480 3f0235c0 f9000100 0100093a 7f000480 09006bc1 08000100 0100093a 7f0004c0 21040cc1 17000100 0100093a 7f000480 080a5a. +0.002984 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000231 select max=5 rfds=[4] wfds=[] efds=[] to=1.947273 select=1 rfds=[4] wfds=[] efds=[] +0.000462 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238180 00010000 00010000 00000c00 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000634 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000101 select max=5 rfds=[4] wfds=[] efds=[] to=1.946076 select=1 rfds=[4] wfds=[] efds=[] +0.003306 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248180 00010000 00010000 00000d00 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000640 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000124 select max=5 rfds=[4] wfds=[] efds=[] to=1.942006 select=1 rfds=[4] wfds=[] efds=[] +0.003471 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258180 00010000 00010000 00000f00 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000640 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000101 select max=5 rfds=[4] wfds=[] efds=[] to=1.937794 select=1 rfds=[4] wfds=[] efds=[] +0.003503 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268180 00010000 00010000 00001000 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000657 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000120 select max=5 rfds=[4] wfds=[] efds=[] to=1.933514 select=1 rfds=[4] wfds=[] efds=[] +0.003470 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278180 00010000 00010000 00001100 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000640 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000100 select max=5 rfds=[4] wfds=[] efds=[] to=1.929304 select=1 rfds=[4] wfds=[] efds=[] +0.003089 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298180 00010000 00010000 00000100 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000639 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000100 select max=5 rfds=[4] wfds=[] efds=[] to=1.925476 select=1 rfds=[4] wfds=[] efds=[] +0.011378 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8180 0001000d 0000000d 00000200 01000002 00010007 e8ff0014 01490c52 4f4f542d 53455256 45525303 4e455400 00000200 010007e8 ff000401 46c01e00 00020001 0007e8ff 00040147 c01e0000 02000100 07e8ff00 04014ac0 1e000002 00010007 e8ff0004 014bc01e 00000200 010007e8 ff000401 4cc01e00 00020001 0007e8ff 0004014d c01e0000 02000100 07e8ff00 040141c0 1e000002 00010007 e8ff0004 0148c01e 00000200 010007e8 ff000401 42c01e00 00020001 0007e8ff 00040143 c01e0000 02000100 07e8ff00 040144c0 1e000002 00010007 e8ff0004 0145c01e c01c0001 00010009 3a7f0004 c0249411 c03b0001 00010009 3a7f0004 c00505f1 c04a0001 00010009 3a7f0004 c0702404 c0590001 00010009 3a7f0004 c629000a c0680001 00010009 3a7f0004 c1000e81 c0770001 00010009 3a7f0004 c620400c c0860001 00010009 3a7f0004 ca0c1b21 c0950001 00010009 3a7f0004 c6290004 c0a40001 00010009 3a7f0004 803f0235 c0b30001 00010009 3a7f0004 8009006b c0c20001 00010009 3a7f0004 c021040c c0d10001 00010009 3a7f0004 80080a5a c0e00001 00010009 3a7f0004 c0cbe60a. +0.004350 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000096 select max=5 rfds=[4] wfds=[] efds=[] to=1.909652 select=1 rfds=[4] wfds=[] efds=[] +0.003338 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8180 00010000 00010000 00000f00 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000643 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000106 select max=5 rfds=[4] wfds=[] efds=[] to=1.905565 select=1 rfds=[4] wfds=[] efds=[] +0.012071 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010001 000d000d 00000600 01000006 00010001 3097003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 51800000 02000100 07e8ff00 040149c0 1e000002 00010007 e8ff0004 0146c01e 00000200 010007e8 ff000401 47c01e00 00020001 0007e8ff 0004014a c01e0000 02000100 07e8ff00 04014bc0 1e000002 00010007 e8ff0004 014cc01e 00000200 010007e8 ff000401 4dc01e00 00020001 0007e8ff 0002c01c 00000200 010007e8 ff000401 48c01e00 00020001 0007e8ff 00040142 c01e0000 02000100 07e8ff00 040143c0 1e000002 00010007 e8ff0004 0144c01e 00000200 010007e8 ff000401 45c01ec0 65000100 0100093a 7f0004c0 249411c0 74000100 0100093a 7f0004c0 0505f1c0 83000100 0100093a 7f0004c0 702404c0 92000100 0100093a 7f0004c6 29000ac0 a1000100 0100093a 7f0004c1 000e81c0 b0000100 0100093a 7f0004c6 20400cc0 bf000100 0100093a 7f0004ca 0c1b21c0 1c000100 0100093a 7f0004c6 290004c0 db000100 0100093a 7f000480 3f0235c0 ea000100 0100093a 7f000480 09006bc0 f9000100 0100093a 7f0004c0 21040cc1 08000100 0100093a 7f000480 080a5ac1 17000100 0100093a 7f0004c0 cbe60a. +0.002963 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000237 select max=5 rfds=[4] wfds=[] efds=[] to=1.890294 select=1 rfds=[4] wfds=[] efds=[] +0.000878 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8180 00010000 00010000 00001100 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000645 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000107 select max=5 rfds=[4] wfds=[] efds=[] to=1.888664 select=1 rfds=[4] wfds=[] efds=[] +0.003147 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312f8180 00010000 00010000 00000100 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000643 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000141 select max=5 rfds=[4] wfds=[] efds=[] to=1.884733 select=1 rfds=[4] wfds=[] efds=[] +0.011290 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31308180 0001000d 0000000d 00000200 01000002 00010007 e8ff0014 01460c52 4f4f542d 53455256 45525303 4e455400 00000200 010007e8 ff000401 47c01e00 00020001 0007e8ff 0004014a c01e0000 02000100 07e8ff00 04014bc0 1e000002 00010007 e8ff0004 014cc01e 00000200 010007e8 ff000401 4dc01e00 00020001 0007e8ff 00040141 c01e0000 02000100 07e8ff00 040148c0 1e000002 00010007 e8ff0004 0142c01e 00000200 010007e8 ff000401 43c01e00 00020001 0007e8ff 00040144 c01e0000 02000100 07e8ff00 040145c0 1e000002 00010007 e8ff0004 0149c01e c01c0001 00010009 3a7f0004 c00505f1 c03b0001 00010009 3a7f0004 c0702404 c04a0001 00010009 3a7f0004 c629000a c0590001 00010009 3a7f0004 c1000e81 c0680001 00010009 3a7f0004 c620400c c0770001 00010009 3a7f0004 ca0c1b21 c0860001 00010009 3a7f0004 c6290004 c0950001 00010009 3a7f0004 803f0235 c0a40001 00010009 3a7f0004 8009006b c0b30001 00010009 3a7f0004 c021040c c0c20001 00010009 3a7f0004 80080a5a c0d10001 00010009 3a7f0004 c0cbe60a c0e00001 00010009 3a7f0004 c0249411. +0.002658 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000400 select max=5 rfds=[4] wfds=[] efds=[] to=1.870385 select=1 rfds=[4] wfds=[] efds=[] +0.019033 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31328180 00010001 000d000d 00000600 01000006 00010001 215c003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 51800000 02000100 07e8ff00 040146c0 1e000002 00010007 e8ff0004 0147c01e 00000200 010007e8 ff000401 4ac01e00 00020001 0007e8ff 0004014b c01e0000 02000100 07e8ff00 04014cc0 1e000002 00010007 e8ff0004 014dc01e 00000200 010007e8 ff0002c0 1c000002 00010007 e8ff0004 0148c01e 00000200 010007e8 ff000401 42c01e00 00020001 0007e8ff 00040143 c01e0000 02000100 07e8ff00 040144c0 1e000002 00010007 e8ff0004 0145c01e 00000200 010007e8 ff000401 49c01ec0 65000100 0100093a 7f0004c0 0505f1c0 74000100 0100093a 7f0004c0 702404c0 83000100 0100093a 7f0004c6 29000ac0 92000100 0100093a 7f0004c1 000e81c0 a1000100 0100093a 7f0004c6 20400cc0 b0000100 0100093a 7f0004ca 0c1b21c0 1c000100 0100093a 7f0004c6 290004c0 cc000100 0100093a 7f000480 3f0235c0 db000100 0100093a 7f000480 09006bc0 ea000100 0100093a 7f0004c0 21040cc0 f9000100 0100093a 7f000480 080a5ac1 08000100 0100093a 7f0004c0 cbe60ac1 17000100 0100093a 7f0004c0 249411. +0.002965 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000228 select max=5 rfds=[4] wfds=[] efds=[] to=1.848159 select=1 rfds=[4] wfds=[] efds=[] +0.000402 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31338180 00010000 00010000 00000c00 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000658 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000104 select max=5 rfds=[4] wfds=[] efds=[] to=1.846995 select=1 rfds=[4] wfds=[] efds=[] +0.003222 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31348180 00010000 00010000 00000d00 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000645 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000107 select max=5 rfds=[4] wfds=[] efds=[] to=1.843021 select=1 rfds=[4] wfds=[] efds=[] +0.003535 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31358180 00010000 00010000 00000f00 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000640 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000128 select max=5 rfds=[4] wfds=[] efds=[] to=1.838718 select=1 rfds=[4] wfds=[] efds=[] +0.003396 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31368180 00010000 00010000 00001000 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000643 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000108 select max=5 rfds=[4] wfds=[] efds=[] to=1.834571 select=1 rfds=[4] wfds=[] efds=[] +0.003560 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31378180 00010000 00010000 00001100 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000642 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000133 select max=5 rfds=[4] wfds=[] efds=[] to=1.830236 select=1 rfds=[4] wfds=[] efds=[] +0.003060 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31398180 00010000 00010000 00000100 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000645 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000106 select max=5 rfds=[4] wfds=[] efds=[] to=1.826425 select=1 rfds=[4] wfds=[] efds=[] +0.011323 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313a8180 0001000d 0000000d 00000200 01000002 00010007 e8ff0014 01470c52 4f4f542d 53455256 45525303 4e455400 00000200 010007e8 ff000401 4ac01e00 00020001 0007e8ff 0004014b c01e0000 02000100 07e8ff00 04014cc0 1e000002 00010007 e8ff0004 014dc01e 00000200 010007e8 ff000401 41c01e00 00020001 0007e8ff 00040148 c01e0000 02000100 07e8ff00 040142c0 1e000002 00010007 e8ff0004 0143c01e 00000200 010007e8 ff000401 44c01e00 00020001 0007e8ff 00040145 c01e0000 02000100 07e8ff00 040149c0 1e000002 00010007 e8ff0004 0146c01e c01c0001 00010009 3a7f0004 c0702404 c03b0001 00010009 3a7f0004 c629000a c04a0001 00010009 3a7f0004 c1000e81 c0590001 00010009 3a7f0004 c620400c c0680001 00010009 3a7f0004 ca0c1b21 c0770001 00010009 3a7f0004 c6290004 c0860001 00010009 3a7f0004 803f0235 c0950001 00010009 3a7f0004 8009006b c0a40001 00010009 3a7f0004 c021040c c0b30001 00010009 3a7f0004 80080a5a c0c20001 00010009 3a7f0004 c0cbe60a c0d10001 00010009 3a7f0004 c0249411 c0e00001 00010009 3a7f0004 c00505f1. +0.004326 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000127 select max=5 rfds=[4] wfds=[] efds=[] to=1.810649 select=1 rfds=[4] wfds=[] efds=[] +0.003326 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313c8180 00010000 00010000 00000f00 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000643 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000105 select max=5 rfds=[4] wfds=[] efds=[] to=1.806575 select=1 rfds=[4] wfds=[] efds=[] +0.025669 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313d8180 00010001 000d000d 00000600 01000006 00010001 12e4003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 51800000 02000100 07e8ff00 040147c0 1e000002 00010007 e8ff0004 014ac01e 00000200 010007e8 ff000401 4bc01e00 00020001 0007e8ff 0004014c c01e0000 02000100 07e8ff00 04014dc0 1e000002 00010007 e8ff0002 c01c0000 02000100 07e8ff00 040148c0 1e000002 00010007 e8ff0004 0142c01e 00000200 010007e8 ff000401 43c01e00 00020001 0007e8ff 00040144 c01e0000 02000100 07e8ff00 040145c0 1e000002 00010007 e8ff0004 0149c01e 00000200 010007e8 ff000401 46c01ec0 65000100 0100093a 7f0004c0 702404c0 74000100 0100093a 7f0004c6 29000ac0 83000100 0100093a 7f0004c1 000e81c0 92000100 0100093a 7f0004c6 20400cc0 a1000100 0100093a 7f0004ca 0c1b21c0 1c000100 0100093a 7f0004c6 290004c0 bd000100 0100093a 7f000480 3f0235c0 cc000100 0100093a 7f000480 09006bc0 db000100 0100093a 7f0004c0 21040cc0 ea000100 0100093a 7f000480 080a5ac0 f9000100 0100093a 7f0004c0 cbe60ac1 08000100 0100093a 7f0004c0 249411c1 17000100 0100093a 7f0004c0 0505f1. +0.002963 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000233 select max=5 rfds=[4] wfds=[] efds=[] to=1.777710 select=1 rfds=[4] wfds=[] efds=[] +0.004017 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313e8180 00010000 00010000 00001100 01000006 00010000 0257003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000640 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000106 select max=5 rfds=[4] wfds=[] efds=[] to=1.772947 select=1 rfds=[4] wfds=[] efds=[] +1.-752512 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010000 00010000 00000500 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000649 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000106 select max=5 rfds=[4] wfds=[] efds=[] to=1.529913 select=1 rfds=[4] wfds=[] efds=[] +0.181054 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31318580 00010000 00010000 00000500 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7727 68440000 07080000 03840009 3a800001 5180. +0.000687 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000112 close fd=4 close=OK +0.000197 adns-1.5.0~rc1/regress/case-srvbaddom.sys0000664000175000017500000000314312422510662016455 0ustar ianian./adnshost default -t srv- srv.tcp.test.iwj.relativity.greenend.org.uk. spong. _foo._bar. _s*a._tcp.ucam.org. _s*a._tcp.pi&ckle.ucam.org start 1144349027.926430 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000082 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000049 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000041 sendto fd=6 addr=172.18.45.6:53 31210100 00010000 00000000 045f666f 6f045f62 61720000 210001. sendto=27 +0.000326 sendto fd=6 addr=172.18.45.6:53 31220100 00010000 00000000 045f732a 61045f74 63700475 63616d03 6f726700 00210001. sendto=36 +0.000227 select max=7 rfds=[6] wfds=[] efds=[] to=1.999447 select=1 rfds=[6] wfds=[] efds=[] +0.004565 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218183 00010000 00010000 045f666f 6f045f62 61720000 21000100 00060001 000029fb 00400141 0c524f4f 542d5345 52564552 53034e45 5400054e 53544c44 0c564552 49534947 4e2d4752 5303434f 4d007791 bfb50000 07080000 03840009 3a800001 5180. +0.000212 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000070 select max=7 rfds=[6] wfds=[] efds=[] to=1.994926 select=1 rfds=[6] wfds=[] efds=[] +0.002158 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228183 00010000 00010000 045f732a 61045f74 63700475 63616d03 6f726700 00210001 c0160006 00010000 0df5004c 0a736f61 2d6f7269 67696e02 6e730663 68696172 6b086772 65656e65 6e64036f 72670275 6b000f73 74756465 6e742d72 756e2d64 6e73c03e 00000121 00002a30 00000e10 00093a80 00000e10. +0.000198 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000062 close fd=6 close=OK +0.000091 adns-1.5.0~rc1/regress/case-arf-text.err0000664000175000017500000000005112421042026016164 0ustar ianianadns debug: using nameserver 172.18.45.6 adns-1.5.0~rc1/regress/case-adh-norm.sys0000664000175000017500000000177612422510661016212 0ustar ianian./adnshost default -A4 chiark.greenend.org.uk start 969122933.609498 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000155 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000057 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000037 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000827 select max=5 rfds=[4] wfds=[] efds=[] to=1.999173 select=1 rfds=[4] wfds=[] efds=[] +0.000158 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d01. +0.000895 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000149 close fd=4 close=OK +0.000290 adns-1.5.0~rc1/regress/case-sillyrp.out0000664000175000017500000000342212421042026016154 0ustar ianianadns debug: using nameserver 172.18.45.6 silly-rp-dm.test.iwj.relativity.greenend.org.uk flags 112 type 17 RP(raw) submitted silly-rp-dm.test.iwj.relativity.greenend.org.uk flags 112 type 131089 RP(822) submitted silly-rp-lp.test.iwj.relativity.greenend.org.uk flags 112 type 17 RP(raw) submitted silly-rp-lp.test.iwj.relativity.greenend.org.uk flags 112 type 131089 RP(822) submitted silly-rp-lp.test.iwj.relativity.greenend.org.uk flags 0 type 17 RP(raw) submitted silly-rp-lp.test.iwj.relativity.greenend.org.uk flags 0 type 131089 RP(822) submitted silly-rp-dm.test.iwj.relativity.greenend.org.uk flags 0 type 17 RP(raw) submitted silly-rp-dm.test.iwj.relativity.greenend.org.uk flags 0 type 131089 RP(822) submitted silly-rp-dm.test.iwj.relativity.greenend.org.uk flags 112 type RP(raw): OK; nrrs=1; cname=$; owner=$; ttl=60 i\..root\000null.org . silly-rp-dm.test.iwj.relativity.greenend.org.uk flags 112 type RP(822): Found syntactically invalid domain name; nrrs=0; cname=$; owner=$; ttl=60 silly-rp-lp.test.iwj.relativity.greenend.org.uk flags 112 type RP(raw): OK; nrrs=1; cname=$; owner=$; ttl=60 spong\000flibble.ucam.org . silly-rp-lp.test.iwj.relativity.greenend.org.uk flags 112 type RP(822): Found invalid DNS data; nrrs=0; cname=$; owner=$; ttl=60 silly-rp-lp.test.iwj.relativity.greenend.org.uk flags 0 type RP(raw): OK; nrrs=1; cname=$; owner=$; ttl=60 spong\000flibble.ucam.org . silly-rp-lp.test.iwj.relativity.greenend.org.uk flags 0 type RP(822): Found invalid DNS data; nrrs=0; cname=$; owner=$; ttl=60 silly-rp-dm.test.iwj.relativity.greenend.org.uk flags 0 type RP(raw): OK; nrrs=1; cname=$; owner=$; ttl=60 i\..root\000null.org . silly-rp-dm.test.iwj.relativity.greenend.org.uk flags 0 type RP(822): Found syntactically invalid domain name; nrrs=0; cname=$; owner=$; ttl=60 rc=0 adns-1.5.0~rc1/regress/case-unknown-flags-init.sys0000664000175000017500000000011312423157063020223 0ustar ianian./adnstest default -0x6000 :0x60000000|1 0x40080000/chiark.greenend.org.uk adns-1.5.0~rc1/regress/case-datapluscnamewait.err0000664000175000017500000000000012421042026020132 0ustar ianianadns-1.5.0~rc1/regress/case-manyptrwrongrty.sys0000664000175000017500000016662512422510662020021 0ustar ianianadnstest default -0x400 292/254.0.99.203.in-addr.arpa start 933286845.072950 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000253 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000085 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000063 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 010001. sendto=43 +0.001688 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 020001. sendto=43 +0.001142 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 050001. sendto=43 +0.001140 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 060001. sendto=43 +0.001165 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.001176 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0d0001. sendto=43 +0.001238 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.001191 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 100001. sendto=43 +0.001128 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 110001. sendto=43 +0.001143 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 010001. sendto=43 +0.001146 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 020001. sendto=43 +0.001165 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.001178 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.001183 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 060001. sendto=43 +0.001231 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 110001. sendto=43 +0.001357 select max=5 rfds=[4] wfds=[] efds=[] to=1.981729 select=1 rfds=[4] wfds=[] efds=[] +0.000351 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 01000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 021b002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.001109 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000482 select max=5 rfds=[4] wfds=[] efds=[] to=1.981475 select=1 rfds=[4] wfds=[] efds=[] +0.009100 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 02000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 021b002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000873 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000382 select max=5 rfds=[4] wfds=[] efds=[] to=1.972262 select=1 rfds=[4] wfds=[] efds=[] +0.016240 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 06000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 021c002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000837 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000395 select max=5 rfds=[4] wfds=[] efds=[] to=1.954790 select=1 rfds=[4] wfds=[] efds=[] +0.009780 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238380 00010013 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000151 4f001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 0001514f 00080574 65747261 c043c00c 000c0001 0001514f 000d046d 61696c05 61676174 65c043c0 0c000c00 01000151 4f000502 6e73c06f c00c000c 00010001 514f0013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 01000151 4f001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 01000151 4f001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 01514f00 0a07626f 75717565 74c043c0 0c000c00 01000151 4f00100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 01000151 4f000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 0001514f 000c046d 61696c04 6e657275 c043c00c 000c0001 0001514f 0002c03a c00c000c 00010001 514f0010 026e730a 73746f72 65776174 6368c043 c00c000c 00010001 514f0002 c0d2c00c 000c0001 0001514f 0005026e 73c056c0 0c000c00 01000151 4f000704 6d61696c c056c00c 000c0001 0001514f 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 0001514f 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 01514f00 06036263 63c043. +0.003330 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.001365 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000066 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000058 connect fd=5 addr=172.18.45.6:53 connect=EINPROGRESS +0.000257 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000121 select max=6 rfds=[4] wfds=[5] efds=[] to=1.939813 select=1 rfds=[] wfds=[5] efds=[] +0.001860 read fd=5 buflen=1 read=EAGAIN +0.000211 write fd=5 002b3123 01000001 00000000 00000332 35340130 02393903 32303307 696e2d61 64647204 61727061 00000c00 01. write=45 +0.000910 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.936832 select=1 rfds=[4] wfds=[] efds=[] +0.005498 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0d000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 021c002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000840 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000372 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.930122 select=1 rfds=[4] wfds=[] efds=[] +0.011817 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 021c002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000838 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000389 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.917078 select=1 rfds=[4] wfds=[] efds=[] +0.010900 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 10000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 021b002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000836 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000359 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.904983 select=1 rfds=[4] wfds=[] efds=[] +0.057379 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 11000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 021b002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000856 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000409 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.846339 select=1 rfds=[5] wfds=[] efds=[] +0.003255 read fd=5 buflen=2 read=OK 097f. +0.000294 read fd=5 buflen=2431 read=OK 31238180 0001005e 00020002 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000151 4f001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 0001514f 00080574 65747261 c043c00c 000c0001 0001514f 000d046d 61696c05 61676174 65c043c0 0c000c00 01000151 4f000502 6e73c06f c00c000c 00010001 514f0013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 01000151 4f001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 01000151 4f001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 01514f00 0a07626f 75717565 74c043c0 0c000c00 01000151 4f00100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 01000151 4f000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 0001514f 000c046d 61696c04 6e657275 c043c00c 000c0001 0001514f 0002c03a c00c000c 00010001 514f0010 026e730a 73746f72 65776174 6368c043 c00c000c 00010001 514f0002 c0d2c00c 000c0001 0001514f 0005026e 73c056c0 0c000c00 01000151 4f000704 6d61696c c056c00c 000c0001 0001514f 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 0001514f 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 01514f00 06036263 63c043c0 0c000c00 01000151 4f000b08 73656375 72697479 c128c00c 000c0001 0001514f 00100d62 7572676c 6172616c 61726d73 c043c00c 000c0001 0001514f 000b026e 73057361 666573c0 43c00c00 0c000100 01514f00 05026e73 c1f7c00c 000c0001 0001514f 00131063 6f757065 72636f6e 73756c74 696e67c0 43c00c00 0c000100 01514f00 110e7365 63757269 74796775 61726473 c043c00c 000c0001 0001514f 000c026e 73066775 61726473 c043c00c 000c0001 0001514f 00070461 736973c1 28c00c00 0c000100 01514f00 02c13fc0 0c000c00 01000151 4f0002c0 b6c00c00 0c000100 01514f00 08056d61 676963c0 43c00c00 0c000100 01514f00 07046d61 696cc1e5 c00c000c 00010001 514f0005 026e73c1 03c00c00 0c000100 01514f00 02c122c0 0c000c00 01000151 4f000502 6e73c0ed c00c000c 00010001 514f0007 046d6169 6cc22dc0 0c000c00 01000151 4f000502 6e73c1e5 c00c000c 00010001 514f0005 026e73c2 0ec00c00 0c000100 01514f00 05026e73 c271c00c 000c0001 0001514f 00100d63 6f766572 7463616d 65726173 c043c00c 000c0001 0001514f 0005026e 73c13fc0 0c000c00 01000151 4f001302 6e730d63 6f766572 7463616d 65726173 c043c00c 000c0001 0001514f 000b0862 6f757175 657473c0 43c00c00 0c000100 01514f00 0d0a636f 6e63656e 74726963 c043c00c 000c0001 0001514f 0005026e 73c094c0 0c000c00 01000151 4f000704 6d61696c c252c00c 000c0001 0001514f 00110e72 65746169 6c736563 75726974 79c043c0 0c000c00 01000151 4f001002 6e730a63 6f6e6365 6e747269 63c043c0 0c000c00 01000151 4f000d04 6d61696c 056d6167 6963c043 c00c000c 00010001 514f000c 096e7a61 6e676c69 6e67c043 c00c000c 00010001 514f0005 026e73c2 52c00c00 0c000100 01514f00 0f026e73 096e7a61 6e676c69 6e67c043 c00c000c 00010001 514f0007 046d6169 6cc163c0 0c000c00 01000151 4f000805 73776966 74c043c0 0c000c00 01000151 4f001104 6d61696c 0973656c 65637469 7665c043 c00c000c 00010001 514f000f 026e7309 666f7265 66726f6e 74c043c0 0c000c00 01000151 4f001104 6d61696c 096e7a61 6e676c69 6e67c043 c00c000c 00010001 514f0009 06677561 726473c0 43c00c00 0c000100 01514f00 11046d61 696c096e 7a646573 69676e73 c043c00c 000c0001 0001514f 0002c163 c00c000c 00010001 514f0018 026e7312 73656375 72697479 6d616e61 67656d65 6e74c043 c00c000c 00010001 514f0012 046d6169 6c0a776f 6f6c776f 72746873 c043c00c 000c0001 0001514f 0012046d 61696c0a 636f6e63 656e. +0.009407 read fd=5 buflen=973 read=OK 74726963 c043c00c 000c0001 0001514f 000c0973 656c6563 74697665 c043c00c 000c0001 0001514f 00181573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 0001514f 000b026e 73057377 696674c0 43c00c00 0c000100 01514f00 0d046d61 696c0573 77696674 c043c00c 000c0001 0001514f 0013026e 73097365 63757265 6e657403 6e6574c0 46c00c00 0c000100 01514f00 17147072 69766174 65696e76 65737469 67617469 6f6ec043 c00c000c 00010001 514f001a 026e7314 70726976 61746569 6e766573 74696761 74696f6e c043c00c 000c0001 0001514f 00090665 74726164 65c043c0 0c000c00 01000151 4f001b02 6e731573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 0001514f 000e046d 61696c06 616e7365 7474c043 c00c000c 00010001 514f000e 03667470 07776172 72656e74 c043c00c 000c0001 0001514f 0014026e 730e7265 7461696c 73656375 72697479 c043c00c 000c0001 0001514f 001a046d 61696c12 73656375 72697479 6d616e61 67656d65 6e74c043 c00c000c 00010001 514f000b 026e7305 6d616769 63c043c0 0c000c00 01000151 4f001104 6d61696c 09666f72 6566726f 6e74c043 c00c000c 00010001 514f0007 046d6169 6cc1b1c0 0c000c00 01000151 4f0002c1 b1c00c00 0c000100 01514f00 0f026e73 096e7a64 65736967 6e73c043 c00c000c 00010001 514f0002 c22dc00c 000c0001 0001514f 000f026e 73097365 6c656374 697665c0 43c00c00 0c000100 01514f00 0c09666f 72656672 6f6e74c0 43c00c00 0c000100 01514f00 15127365 63757269 74796d61 6e616765 6d656e74 c043c00c 000c0001 0001514f 0002c1cd c00c000c 00010001 514f0010 09736563 7572656e 6574036e 6574c046 c00c000c 00010001 514f001d 046d6169 6c157370 65636961 6c696e76 65737469 67617469 6f6e73c0 43c00c00 0c000100 01514f00 0c096e7a 64657369 676e73c0 43c00c00 0c000100 01514f00 0c026e73 06657472 616465c0 43c00c00 0c000100 01514f00 07046d61 696cc122 c00c000c 00010001 514f0007 046d6169 6cc1cdc0 0c000c00 01000151 4f000a02 6e730461 736973c1 28c00c00 0c000100 01514f00 0e026e73 08626f75 71756574 73c043c0 0c000c00 01000151 4f0002c0 6f013002 39390332 30330769 6e2d6164 64720461 72706100 00020001 000545c2 0002c037 01300239 39033230 3307696e 2d616464 72046172 70610000 02000100 0545c200 11036e73 31077761 696b6174 6f026163 c046c037 00010001 0001514a 0004cb63 00fe036e 73310777 61696b61 746f0261 63c04600 01000100 02a2c200 048cc880 0d. +0.006032 read fd=5 buflen=2433 read=EAGAIN +0.020859 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.806492 select=1 rfds=[4] wfds=[] efds=[] +0.022402 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 01000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 021b002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000868 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 02000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 021b002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.001114 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8380 00010013 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000151 4f001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 0001514f 00080574 65747261 c043c00c 000c0001 0001514f 000d046d 61696c05 61676174 65c043c0 0c000c00 01000151 4f000502 6e73c06f c00c000c 00010001 514f0013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 01000151 4f001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 01000151 4f001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 01514f00 0a07626f 75717565 74c043c0 0c000c00 01000151 4f00100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 01000151 4f000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 0001514f 000c046d 61696c04 6e657275 c043c00c 000c0001 0001514f 0002c03a c00c000c 00010001 514f0010 026e730a 73746f72 65776174 6368c043 c00c000c 00010001 514f0002 c0d2c00c 000c0001 0001514f 0005026e 73c056c0 0c000c00 01000151 4f000704 6d61696c c056c00c 000c0001 0001514f 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 0001514f 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 01514f00 06036263 63c043. +0.003373 write fd=5 002b312b 01000001 00000000 00000332 35340130 02393903 32303307 696e2d61 64647204 61727061 00000c00 01. write=45 +0.000877 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 021c002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000880 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 06000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 021c002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.001170 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8180 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 11000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010000 021b002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.001182 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000384 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.774242 select=1 rfds=[5] wfds=[] efds=[] +0.050425 read fd=5 buflen=2433 read=OK 097f312b 81800001 005e0002 00020332 35340130 02393903 32303307 696e2d61 64647204 61727061 00000c00 01c00c00 0c000100 01514f00 13026e73 08736563 75726974 7902636f 026e7a00 c00c000c 00010001 514f0008 05746574 7261c043 c00c000c 00010001 514f000d 046d6169 6c056167 617465c0 43c00c00 0c000100 01514f00 05026e73 c06fc00c 000c0001 0001514f 00131073 65637572 69747974 7261696e 696e67c0 43c00c00 0c000100 01514f00 10026e73 0a676966 74626173 6b6574c0 43c00c00 0c000100 01514f00 12026e73 08736563 75726974 79036765 6ec046c0 0c000c00 01000151 4f000a07 626f7571 756574c0 43c00c00 0c000100 01514f00 100d696e 76657374 69676174 696f6ec0 43c00c00 0c000100 01514f00 0f026e73 056e7a69 7069036f 7267c046 c00c000c 00010001 514f000c 046d6169 6c046e65 7275c043 c00c000c 00010001 514f0002 c03ac00c 000c0001 0001514f 0010026e 730a7374 6f726577 61746368 c043c00c 000c0001 0001514f 0002c0d2 c00c000c 00010001 514f0005 026e73c0 56c00c00 0c000100 01514f00 07046d61 696cc056 c00c000c 00010001 514f0010 026e730a 73656375 72696361 7264c043 c00c000c 00010001 514f000f 026e7309 756e6465 72686f75 72c043c0 0c000c00 01000151 4f000603 626363c0 43c00c00 0c000100 01514f00 0b087365 63757269 7479c128 c00c000c 00010001 514f0010 0d627572 676c6172 616c6172 6d73c043 c00c000c 00010001 514f000b 026e7305 73616665 73c043c0 0c000c00 01000151 4f000502 6e73c1f7 c00c000c 00010001 514f0013 10636f75 70657263 6f6e7375 6c74696e 67c043c0 0c000c00 01000151 4f00110e 73656375 72697479 67756172 6473c043 c00c000c 00010001 514f000c 026e7306 67756172 6473c043 c00c000c 00010001 514f0007 04617369 73c128c0 0c000c00 01000151 4f0002c1 3fc00c00 0c000100 01514f00 02c0b6c0 0c000c00 01000151 4f000805 6d616769 63c043c0 0c000c00 01000151 4f000704 6d61696c c1e5c00c 000c0001 0001514f 0005026e 73c103c0 0c000c00 01000151 4f0002c1 22c00c00 0c000100 01514f00 05026e73 c0edc00c 000c0001 0001514f 0007046d 61696cc2 2dc00c00 0c000100 01514f00 05026e73 c1e5c00c 000c0001 0001514f 0005026e 73c20ec0 0c000c00 01000151 4f000502 6e73c271 c00c000c 00010001 514f0010 0d636f76 65727463 616d6572 6173c043 c00c000c 00010001 514f0005 026e73c1 3fc00c00 0c000100 01514f00 13026e73 0d636f76 65727463 616d6572 6173c043 c00c000c 00010001 514f000b 08626f75 71756574 73c043c0 0c000c00 01000151 4f000d0a 636f6e63 656e7472 6963c043 c00c000c 00010001 514f0005 026e73c0 94c00c00 0c000100 01514f00 07046d61 696cc252 c00c000c 00010001 514f0011 0e726574 61696c73 65637572 697479c0 43c00c00 0c000100 01514f00 10026e73 0a636f6e 63656e74 726963c0 43c00c00 0c000100 01514f00 0d046d61 696c056d 61676963 c043c00c 000c0001 0001514f 000c096e 7a616e67 6c696e67 c043c00c 000c0001 0001514f 0005026e 73c252c0 0c000c00 01000151 4f000f02 6e73096e 7a616e67 6c696e67 c043c00c 000c0001 0001514f 0007046d 61696cc1 63c00c00 0c000100 01514f00 08057377 696674c0 43c00c00 0c000100 01514f00 11046d61 696c0973 656c6563 74697665 c043c00c 000c0001 0001514f 000f026e 7309666f 72656672 6f6e74c0 43c00c00 0c000100 01514f00 11046d61 696c096e 7a616e67 6c696e67 c043c00c 000c0001 0001514f 00090667 75617264 73c043c0 0c000c00 01000151 4f001104 6d61696c 096e7a64 65736967 6e73c043 c00c000c 00010001 514f0002 c163c00c 000c0001 0001514f 0018026e 73127365 63757269 74796d61 6e616765 6d656e74 c043c00c 000c0001 0001514f 0012046d 61696c0a 776f6f6c 776f7274 6873c043 c00c000c 00010001 514f0012 046d6169 6c0a636f 6e63656e. +0.008599 read fd=5 buflen=973 read=EAGAIN +0.000251 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.714967 select=1 rfds=[5] wfds=[] efds=[] +0.113339 read fd=5 buflen=973 read=OK 74726963 c043c00c 000c0001 0001514f 000c0973 656c6563 74697665 c043c00c 000c0001 0001514f 00181573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 0001514f 000b026e 73057377 696674c0 43c00c00 0c000100 01514f00 0d046d61 696c0573 77696674 c043c00c 000c0001 0001514f 0013026e 73097365 63757265 6e657403 6e6574c0 46c00c00 0c000100 01514f00 17147072 69766174 65696e76 65737469 67617469 6f6ec043 c00c000c 00010001 514f001a 026e7314 70726976 61746569 6e766573 74696761 74696f6e c043c00c 000c0001 0001514f 00090665 74726164 65c043c0 0c000c00 01000151 4f001b02 6e731573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 0001514f 000e046d 61696c06 616e7365 7474c043 c00c000c 00010001 514f000e 03667470 07776172 72656e74 c043c00c 000c0001 0001514f 0014026e 730e7265 7461696c 73656375 72697479 c043c00c 000c0001 0001514f 001a046d 61696c12 73656375 72697479 6d616e61 67656d65 6e74c043 c00c000c 00010001 514f000b 026e7305 6d616769 63c043c0 0c000c00 01000151 4f001104 6d61696c 09666f72 6566726f 6e74c043 c00c000c 00010001 514f0007 046d6169 6cc1b1c0 0c000c00 01000151 4f0002c1 b1c00c00 0c000100 01514f00 0f026e73 096e7a64 65736967 6e73c043 c00c000c 00010001 514f0002 c22dc00c 000c0001 0001514f 000f026e 73097365 6c656374 697665c0 43c00c00 0c000100 01514f00 0c09666f 72656672 6f6e74c0 43c00c00 0c000100 01514f00 15127365 63757269 74796d61 6e616765 6d656e74 c043c00c 000c0001 0001514f 0002c1cd c00c000c 00010001 514f0010 09736563 7572656e 6574036e 6574c046 c00c000c 00010001 514f001d 046d6169 6c157370 65636961 6c696e76 65737469 67617469 6f6e73c0 43c00c00 0c000100 01514f00 0c096e7a 64657369 676e73c0 43c00c00 0c000100 01514f00 0c026e73 06657472 616465c0 43c00c00 0c000100 01514f00 07046d61 696cc122 c00c000c 00010001 514f0007 046d6169 6cc1cdc0 0c000c00 01000151 4f000a02 6e730461 736973c1 28c00c00 0c000100 01514f00 0e026e73 08626f75 71756574 73c043c0 0c000c00 01000151 4f0002c0 6f013002 39390332 30330769 6e2d6164 64720461 72706100 00020001 000545c2 0002c037 01300239 39033230 3307696e 2d616464 72046172 70610000 02000100 0545c200 11036e73 31077761 696b6174 6f026163 c046c037 00010001 0001514a 0004cb63 00fe036e 73310777 61696b61 746f0261 63c04600 01000100 02a2c200 048cc880 0d. +0.005794 sendto fd=4 addr=172.18.45.6:53 312f0100 00010000 00000000 026e7308 73656375 72697479 02636f02 6e7a0000 010001. sendto=35 +0.002525 sendto fd=4 addr=172.18.45.6:53 31300100 00010000 00000000 05746574 72610263 6f026e7a 00000100 01. sendto=29 +0.001084 sendto fd=4 addr=172.18.45.6:53 31310100 00010000 00000000 046d6169 6c056167 61746502 636f026e 7a000001 0001. sendto=34 +0.001089 sendto fd=4 addr=172.18.45.6:53 31320100 00010000 00000000 026e7305 61676174 6502636f 026e7a00 00010001. sendto=32 +0.001018 sendto fd=4 addr=172.18.45.6:53 31330100 00010000 00000000 10736563 75726974 79747261 696e696e 6702636f 026e7a00 00010001. sendto=40 +0.001076 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 026e730a 67696674 6261736b 65740263 6f026e7a 00000100 01. sendto=37 +0.001062 sendto fd=4 addr=172.18.45.6:53 31350100 00010000 00000000 026e7308 73656375 72697479 0367656e 026e7a00 00010001. sendto=36 +0.001055 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 07626f75 71756574 02636f02 6e7a0000 010001. sendto=31 +0.001003 sendto fd=4 addr=172.18.45.6:53 31370100 00010000 00000000 0d696e76 65737469 67617469 6f6e0263 6f026e7a 00000100 01. sendto=37 +0.001169 sendto fd=4 addr=172.18.45.6:53 31380100 00010000 00000000 026e7305 6e7a6970 69036f72 67026e7a 00000100 01. sendto=33 +0.001084 sendto fd=4 addr=172.18.45.6:53 31390100 00010000 00000000 046d6169 6c046e65 72750263 6f026e7a 00000100 01. sendto=33 +0.001052 sendto fd=4 addr=172.18.45.6:53 313a0100 00010000 00000000 08736563 75726974 7902636f 026e7a00 00010001. sendto=32 +0.001060 sendto fd=4 addr=172.18.45.6:53 313b0100 00010000 00000000 026e730a 73746f72 65776174 63680263 6f026e7a 00000100 01. sendto=37 +0.001385 sendto fd=4 addr=172.18.45.6:53 313c0100 00010000 00000000 08736563 75726974 79036765 6e026e7a 00000100 01. sendto=33 +0.001319 sendto fd=4 addr=172.18.45.6:53 313d0100 00010000 00000000 026e7305 74657472 6102636f 026e7a00 00010001. sendto=32 +0.001428 sendto fd=4 addr=172.18.45.6:53 313e0100 00010000 00000000 046d6169 6c057465 74726102 636f026e 7a000001 0001. sendto=34 +0.001373 sendto fd=4 addr=172.18.45.6:53 313f0100 00010000 00000000 026e730a 73656375 72696361 72640263 6f026e7a 00000100 01. sendto=37 +0.001407 sendto fd=4 addr=172.18.45.6:53 31400100 00010000 00000000 026e7309 756e6465 72686f75 7202636f 026e7a00 00010001. sendto=36 +0.001454 sendto fd=4 addr=172.18.45.6:53 31410100 00010000 00000000 03626363 02636f02 6e7a0000 010001. sendto=27 +0.001405 sendto fd=4 addr=172.18.45.6:53 31420100 00010000 00000000 08736563 75726974 79036f72 67026e7a 00000100 01. sendto=33 +0.001386 sendto fd=4 addr=172.18.45.6:53 31430100 00010000 00000000 0d627572 676c6172 616c6172 6d730263 6f026e7a 00000100 01. sendto=37 +0.001405 sendto fd=4 addr=172.18.45.6:53 31440100 00010000 00000000 026e7305 73616665 7302636f 026e7a00 00010001. sendto=32 +0.001163 sendto fd=4 addr=172.18.45.6:53 31450100 00010000 00000000 026e7308 73656375 72697479 036f7267 026e7a00 00010001. sendto=36 +0.001110 sendto fd=4 addr=172.18.45.6:53 31460100 00010000 00000000 10636f75 70657263 6f6e7375 6c74696e 6702636f 026e7a00 00010001. sendto=40 +0.001091 sendto fd=4 addr=172.18.45.6:53 31470100 00010000 00000000 0e736563 75726974 79677561 72647302 636f026e 7a000001 0001. sendto=38 +0.001272 sendto fd=4 addr=172.18.45.6:53 31480100 00010000 00000000 026e7306 67756172 64730263 6f026e7a 00000100 01. sendto=33 +0.001067 sendto fd=4 addr=172.18.45.6:53 31490100 00010000 00000000 04617369 73036f72 67026e7a 00000100 01. sendto=29 +0.001036 sendto fd=4 addr=172.18.45.6:53 314a0100 00010000 00000000 046e6572 7502636f 026e7a00 00010001. sendto=28 +0.001025 sendto fd=4 addr=172.18.45.6:53 314b0100 00010000 00000000 0a676966 74626173 6b657402 636f026e 7a000001 0001. sendto=34 +0.001078 sendto fd=4 addr=172.18.45.6:53 314c0100 00010000 00000000 056d6167 69630263 6f026e7a 00000100 01. sendto=29 +0.001042 sendto fd=4 addr=172.18.45.6:53 314d0100 00010000 00000000 046d6169 6c036263 6302636f 026e7a00 00010001. sendto=32 +0.001065 sendto fd=4 addr=172.18.45.6:53 314e0100 00010000 00000000 026e730d 696e7665 73746967 6174696f 6e02636f 026e7a00 00010001. sendto=40 +0.001280 sendto fd=4 addr=172.18.45.6:53 314f0100 00010000 00000000 056e7a69 7069036f 7267026e 7a000001 0001. sendto=30 +0.001047 sendto fd=4 addr=172.18.45.6:53 31500100 00010000 00000000 026e7307 626f7571 75657402 636f026e 7a000001 0001. sendto=34 +0.001278 sendto fd=4 addr=172.18.45.6:53 31510100 00010000 00000000 046d6169 6c057361 66657302 636f026e 7a000001 0001. sendto=34 +0.001384 sendto fd=4 addr=172.18.45.6:53 31520100 00010000 00000000 026e7303 62636302 636f026e 7a000001 0001. sendto=30 +0.001308 sendto fd=4 addr=172.18.45.6:53 31530100 00010000 00000000 026e730d 62757267 6c617261 6c61726d 7302636f 026e7a00 00010001. sendto=40 +0.001515 sendto fd=4 addr=172.18.45.6:53 31540100 00010000 00000000 026e730e 73656375 72697479 67756172 64730263 6f026e7a 00000100 01. sendto=41 +0.001383 sendto fd=4 addr=172.18.45.6:53 31550100 00010000 00000000 0d636f76 65727463 616d6572 61730263 6f026e7a 00000100 01. sendto=37 +0.001401 sendto fd=4 addr=172.18.45.6:53 31560100 00010000 00000000 026e7304 6e657275 02636f02 6e7a0000 010001. sendto=31 +0.001323 sendto fd=4 addr=172.18.45.6:53 31570100 00010000 00000000 026e730d 636f7665 72746361 6d657261 7302636f 026e7a00 00010001. sendto=40 +0.001388 sendto fd=4 addr=172.18.45.6:53 31580100 00010000 00000000 08626f75 71756574 7302636f 026e7a00 00010001. sendto=32 +0.001467 sendto fd=4 addr=172.18.45.6:53 31590100 00010000 00000000 0a636f6e 63656e74 72696302 636f026e 7a000001 0001. sendto=34 +0.001366 sendto fd=4 addr=172.18.45.6:53 315a0100 00010000 00000000 026e7310 73656375 72697479 74726169 6e696e67 02636f02 6e7a0000 010001. sendto=43 +0.001416 sendto fd=4 addr=172.18.45.6:53 315b0100 00010000 00000000 046d6169 6c10636f 75706572 636f6e73 756c7469 6e670263 6f026e7a 00000100 01. sendto=45 +0.001440 sendto fd=4 addr=172.18.45.6:53 315c0100 00010000 00000000 0e726574 61696c73 65637572 69747902 636f026e 7a000001 0001. sendto=38 +0.001438 sendto fd=4 addr=172.18.45.6:53 315d0100 00010000 00000000 026e730a 636f6e63 656e7472 69630263 6f026e7a 00000100 01. sendto=37 +0.001523 sendto fd=4 addr=172.18.45.6:53 315e0100 00010000 00000000 046d6169 6c056d61 67696302 636f026e 7a000001 0001. sendto=34 +0.001394 sendto fd=4 addr=172.18.45.6:53 315f0100 00010000 00000000 096e7a61 6e676c69 6e670263 6f026e7a 00000100 01. sendto=33 +0.001388 sendto fd=4 addr=172.18.45.6:53 31600100 00010000 00000000 026e7310 636f7570 6572636f 6e73756c 74696e67 02636f02 6e7a0000 010001. sendto=43 +0.001439 sendto fd=4 addr=172.18.45.6:53 31610100 00010000 00000000 026e7309 6e7a616e 676c696e 6702636f 026e7a00 00010001. sendto=36 +0.001369 sendto fd=4 addr=172.18.45.6:53 31620100 00010000 00000000 046d6169 6c0a7374 6f726577 61746368 02636f02 6e7a0000 010001. sendto=39 +0.001556 sendto fd=4 addr=172.18.45.6:53 31630100 00010000 00000000 05737769 66740263 6f026e7a 00000100 01. sendto=29 +0.001365 sendto fd=4 addr=172.18.45.6:53 31640100 00010000 00000000 046d6169 6c097365 6c656374 69766502 636f026e 7a000001 0001. sendto=38 +0.001401 sendto fd=4 addr=172.18.45.6:53 31650100 00010000 00000000 026e7309 666f7265 66726f6e 7402636f 026e7a00 00010001. sendto=36 +0.001427 sendto fd=4 addr=172.18.45.6:53 31660100 00010000 00000000 046d6169 6c096e7a 616e676c 696e6702 636f026e 7a000001 0001. sendto=38 +0.001542 sendto fd=4 addr=172.18.45.6:53 31670100 00010000 00000000 06677561 72647302 636f026e 7a000001 0001. sendto=30 +0.001362 sendto fd=4 addr=172.18.45.6:53 31680100 00010000 00000000 046d6169 6c096e7a 64657369 676e7302 636f026e 7a000001 0001. sendto=38 +0.001390 sendto fd=4 addr=172.18.45.6:53 31690100 00010000 00000000 0a73746f 72657761 74636802 636f026e 7a000001 0001. sendto=34 +0.001440 sendto fd=4 addr=172.18.45.6:53 316a0100 00010000 00000000 026e7312 73656375 72697479 6d616e61 67656d65 6e740263 6f026e7a 00000100 01. sendto=45 +0.001484 sendto fd=4 addr=172.18.45.6:53 316b0100 00010000 00000000 046d6169 6c0a776f 6f6c776f 72746873 02636f02 6e7a0000 010001. sendto=39 +0.001522 sendto fd=4 addr=172.18.45.6:53 316c0100 00010000 00000000 046d6169 6c0a636f 6e63656e 74726963 02636f02 6e7a0000 010001. sendto=39 +0.001418 sendto fd=4 addr=172.18.45.6:53 316d0100 00010000 00000000 0973656c 65637469 76650263 6f026e7a 00000100 01. sendto=33 +0.001842 sendto fd=4 addr=172.18.45.6:53 316e0100 00010000 00000000 15737065 6369616c 696e7665 73746967 6174696f 6e730263 6f026e7a 00000100 01. sendto=45 +0.001742 sendto fd=4 addr=172.18.45.6:53 316f0100 00010000 00000000 026e7305 73776966 7402636f 026e7a00 00010001. sendto=32 +0.001516 sendto fd=4 addr=172.18.45.6:53 31700100 00010000 00000000 046d6169 6c057377 69667402 636f026e 7a000001 0001. sendto=34 +0.001513 sendto fd=4 addr=172.18.45.6:53 31710100 00010000 00000000 026e7309 73656375 72656e65 74036e65 74026e7a 00000100 01. sendto=37 +0.001670 sendto fd=4 addr=172.18.45.6:53 31720100 00010000 00000000 14707269 76617465 696e7665 73746967 6174696f 6e02636f 026e7a00 00010001. sendto=44 +0.001599 sendto fd=4 addr=172.18.45.6:53 31730100 00010000 00000000 026e7314 70726976 61746569 6e766573 74696761 74696f6e 02636f02 6e7a0000 010001. sendto=47 +0.001618 sendto fd=4 addr=172.18.45.6:53 31740100 00010000 00000000 06657472 61646502 636f026e 7a000001 0001. sendto=30 +0.001483 sendto fd=4 addr=172.18.45.6:53 31750100 00010000 00000000 026e7315 73706563 69616c69 6e766573 74696761 74696f6e 7302636f 026e7a00 00010001. sendto=48 +0.001612 sendto fd=4 addr=172.18.45.6:53 31760100 00010000 00000000 046d6169 6c06616e 73657474 02636f02 6e7a0000 010001. sendto=35 +0.001604 sendto fd=4 addr=172.18.45.6:53 31770100 00010000 00000000 03667470 07776172 72656e74 02636f02 6e7a0000 010001. sendto=35 +0.001537 sendto fd=4 addr=172.18.45.6:53 31780100 00010000 00000000 026e730e 72657461 696c7365 63757269 74790263 6f026e7a 00000100 01. sendto=41 +0.001577 sendto fd=4 addr=172.18.45.6:53 31790100 00010000 00000000 046d6169 6c127365 63757269 74796d61 6e616765 6d656e74 02636f02 6e7a0000 010001. sendto=47 +0.001807 sendto fd=4 addr=172.18.45.6:53 317a0100 00010000 00000000 026e7305 6d616769 6302636f 026e7a00 00010001. sendto=32 +0.001481 sendto fd=4 addr=172.18.45.6:53 317b0100 00010000 00000000 046d6169 6c09666f 72656672 6f6e7402 636f026e 7a000001 0001. sendto=38 +0.001548 sendto fd=4 addr=172.18.45.6:53 317c0100 00010000 00000000 046d6169 6c0a7365 63757269 63617264 02636f02 6e7a0000 010001. sendto=39 +0.001498 sendto fd=4 addr=172.18.45.6:53 317d0100 00010000 00000000 0a736563 75726963 61726402 636f026e 7a000001 0001. sendto=34 +0.001636 sendto fd=4 addr=172.18.45.6:53 317e0100 00010000 00000000 026e7309 6e7a6465 7369676e 7302636f 026e7a00 00010001. sendto=36 +0.001520 sendto fd=4 addr=172.18.45.6:53 317f0100 00010000 00000000 05736166 65730263 6f026e7a 00000100 01. sendto=29 +0.001506 sendto fd=4 addr=172.18.45.6:53 31800100 00010000 00000000 026e7309 73656c65 63746976 6502636f 026e7a00 00010001. sendto=36 +0.001523 sendto fd=4 addr=172.18.45.6:53 31810100 00010000 00000000 09666f72 6566726f 6e740263 6f026e7a 00000100 01. sendto=33 +0.001493 sendto fd=4 addr=172.18.45.6:53 31820100 00010000 00000000 12736563 75726974 796d616e 6167656d 656e7402 636f026e 7a000001 0001. sendto=42 +0.001667 sendto fd=4 addr=172.18.45.6:53 31830100 00010000 00000000 09756e64 6572686f 75720263 6f026e7a 00000100 01. sendto=33 +0.001533 sendto fd=4 addr=172.18.45.6:53 31840100 00010000 00000000 09736563 7572656e 6574036e 6574026e 7a000001 0001. sendto=34 +0.001495 sendto fd=4 addr=172.18.45.6:53 31850100 00010000 00000000 046d6169 6c157370 65636961 6c696e76 65737469 67617469 6f6e7302 636f026e 7a000001 0001. sendto=50 +0.001627 sendto fd=4 addr=172.18.45.6:53 31860100 00010000 00000000 096e7a64 65736967 6e730263 6f026e7a 00000100 01. sendto=33 +0.001653 sendto fd=4 addr=172.18.45.6:53 31870100 00010000 00000000 026e7306 65747261 64650263 6f026e7a 00000100 01. sendto=33 +0.001512 sendto fd=4 addr=172.18.45.6:53 31880100 00010000 00000000 046d6169 6c056e7a 69706903 6f726702 6e7a0000 010001. sendto=35 +0.001512 sendto fd=4 addr=172.18.45.6:53 31890100 00010000 00000000 046d6169 6c09756e 64657268 6f757202 636f026e 7a000001 0001. sendto=38 +0.001541 sendto fd=4 addr=172.18.45.6:53 318a0100 00010000 00000000 026e7304 61736973 036f7267 026e7a00 00010001. sendto=32 +0.001581 sendto fd=4 addr=172.18.45.6:53 318b0100 00010000 00000000 026e7308 626f7571 75657473 02636f02 6e7a0000 010001. sendto=35 +0.001520 sendto fd=4 addr=172.18.45.6:53 318c0100 00010000 00000000 05616761 74650263 6f026e7a 00000100 01. sendto=29 +0.001525 read fd=5 buflen=2433 read=EAGAIN +0.000154 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.463947 select=1 rfds=[4] wfds=[] efds=[] +0.000380 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312f8180 00010001 00020002 026e7308 73656375 72697479 02636f02 6e7a0000 010001c0 0c000100 01000151 4a0004cb 6300fe08 73656375 72697479 02636f02 6e7a0000 02000100 01514a00 02c00cc0 33000200 01000151 4a001103 6e733107 7761696b 61746f02 6163c03f c00c0001 00010001 514a0004 cb6300fe c05b0001 00010002 a2c20004 8cc8800d. +0.001006 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31308180 00010001 00020002 05746574 72610263 6f026e7a 00000100 01c00c00 01000100 01515100 04cb6300 fec00c00 02000100 01515100 05026e73 c00cc00c 00020001 00015151 0013036e 73310777 61696b61 746f0261 63026e7a 00c03900 01000100 01407100 04cb6300 fec04a00 01000100 02a2c200 048cc880 0d. +0.001541 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31318180 00010001 00020002 046d6169 6c056167 61746502 636f026e 7a000001 0001c00c 00010001 0001514c 0004cb63 00fe0561 67617465 02636f02 6e7a0000 02000100 01514c00 05026e73 c032c032 00020001 0001514c 0011036e 73310777 61696b61 746f0261 63c03bc0 49000100 01000140 6c0004cb 6300fec0 5a000100 010002a2 c200048c c8800d. +0.001291 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31328180 00010001 00020002 026e7305 61676174 6502636f 026e7a00 00010001 c00c0001 00010001 30660004 cb6300fe 05616761 74650263 6f026e7a 00000200 01000151 4c0002c0 0cc03000 02000100 01514c00 11036e73 31077761 696b6174 6f026163 c039c00c 00010001 00013066 0004cb63 00fec055 00010001 0002a2c2 00048cc8 800d. +0.001292 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31338180 00010001 00020002 10736563 75726974 79747261 696e696e 6702636f 026e7a00 00010001 c00c0001 00010001 514c0004 cb6300fe c00c0002 00010001 514c0005 026e73c0 0cc00c00 02000100 01514c00 13036e73 31077761 696b6174 6f026163 026e7a00 c0440001 00010001 406c0004 cb6300fe c0550001 00010002 a2c20004 8cc8800d. +0.001315 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31348180 00010001 00020002 026e730a 67696674 6261736b 65740263 6f026e7a 00000100 01c00c00 01000100 01514f00 04cb6300 fe0a6769 66746261 736b6574 02636f02 6e7a0000 02000100 01514f00 02c00cc0 35000200 01000151 4f001103 6e733107 7761696b 61746f02 6163c043 c00c0001 00010001 514f0004 cb6300fe c05f0001 00010002 a2c20004 8cc8800d. +0.001316 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31358180 00010001 00020002 026e7308 73656375 72697479 0367656e 026e7a00 00010001 c00c0001 00010001 514c0004 cb6300fe 08736563 75726974 79036765 6e026e7a 00000200 01000151 4c0002c0 0cc03400 02000100 01514c00 11036e73 31077761 696b6174 6f026163 c041c00c 00010001 0001514c 0004cb63 00fec05d 00010001 0002a2c2 00048cc8 800d. +0.001354 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31368180 00010001 00020002 07626f75 71756574 02636f02 6e7a0000 010001c0 0c000100 01000151 4c0004cb 6300fec0 0c000200 01000151 4c000502 6e73c00c c00c0002 00010001 514c0013 036e7331 07776169 6b61746f 02616302 6e7a00c0 3b000100 01000140 6c0004cb 6300fec0 4c000100 010002a2 c200048c c8800d. +0.001244 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31378180 00010001 00020002 0d696e76 65737469 67617469 6f6e0263 6f026e7a 00000100 01c00c00 01000100 01515100 04cb6300 fec00c00 02000100 01515100 05026e73 c00cc00c 00020001 00015151 0013036e 73310777 61696b61 746f0261 63026e7a 00c04100 01000100 01407100 04cb6300 fec05200 01000100 02a2c200 048cc880 0d. +0.001200 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31388180 00010001 00020002 026e7305 6e7a6970 69036f72 67026e7a 00000100 01c00c00 01000100 01515100 04cb6300 fe056e7a 69706903 6f726702 6e7a0000 02000100 01515100 02c00cc0 31000200 01000151 51001103 6e733107 7761696b 61746f02 6163c03b c00c0001 00010001 51510004 cb6300fe c0570001 00010002 a2c20004 8cc8800d. +0.001223 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31398180 00010001 00020002 046d6169 6c046e65 72750263 6f026e7a 00000100 01c00c00 01000100 01514c00 04cb6300 fe046e65 72750263 6f026e7a 00000200 01000151 51000502 6e73c031 c0310002 00010001 51510011 036e7331 07776169 6b61746f 026163c0 39c04700 01000100 01407100 04cb6300 fec05800 01000100 02a2c200 048cc880 0d. +0.001353 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313a8180 00010001 00020002 08736563 75726974 7902636f 026e7a00 00010001 c00c0001 00010001 514a0004 cb6300fe c00c0002 00010001 514a0005 026e73c0 0cc00c00 02000100 01514a00 13036e73 31077761 696b6174 6f026163 026e7a00 c03c0001 00010001 514a0004 cb6300fe c04d0001 00010002 a2c20004 8cc8800d. +0.001193 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313b8583 00010000 00010000 026e730a 73746f72 65776174 63680263 6f026e7a 00000100 0102636f 026e7a00 00060001 00000222 002c046e 73393907 7761696b 61746f02 6163c028 03736f61 c03b7727 6ec50000 0e100000 07080027 8d000001 5180. +0.001027 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313c8180 00010001 00020002 08736563 75726974 79036765 6e026e7a 00000100 01c00c00 01000100 01514c00 04cb6300 fec00c00 02000100 01514c00 05026e73 c00cc00c 00020001 0001514c 0013036e 73310777 61696b61 746f0261 63026e7a 00c03d00 01000100 01514c00 04cb6300 fec04e00 01000100 02a2c200 048cc880 0d. +0.026055 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313d8180 00010001 00020002 026e7305 74657472 6102636f 026e7a00 00010001 c00c0001 00010001 306b0004 cb6300fe 05746574 72610263 6f026e7a 00000200 01000151 510002c0 0cc03000 02000100 01515100 11036e73 31077761 696b6174 6f026163 c039c00c 00010001 0001306b 0004cb63 00fec055 00010001 0002a2c2 00048cc8 800d. +0.001134 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313e8180 00010001 00020002 046d6169 6c057465 74726102 636f026e 7a000001 0001c00c 00010001 00015151 0004cb63 00fe0574 65747261 02636f02 6e7a0000 02000100 01515100 05026e73 c032c032 00020001 00015151 0011036e 73310777 61696b61 746f0261 63c03bc0 49000100 01000130 6b0004cb 6300fec0 5a000100 010002a2 c200048c c8800d. +0.001247 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313f8180 00010001 00020002 026e730a 73656375 72696361 72640263 6f026e7a 00000100 01c00c00 01000100 01515200 04cb6300 fe0a7365 63757269 63617264 02636f02 6e7a0000 02000100 01515200 02c00cc0 35000200 01000151 52001103 6e733107 7761696b 61746f02 6163c043 c00c0001 00010001 51520004 cb6300fe c05f0001 00010002 a2c20004 8cc8800d. +0.001158 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31408180 00010001 00020002 026e7309 756e6465 72686f75 7202636f 026e7a00 00010001 c00c0001 00010001 51510004 cb6300fe 09756e64 6572686f 75720263 6f026e7a 00000200 01000151 510002c0 0cc03400 02000100 01515100 11036e73 31077761 696b6174 6f026163 c041c00c 00010001 00015151 0004cb63 00fec05d 00010001 0002a2c2 00048cc8 800d. +0.001137 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31418180 00010001 00020002 03626363 02636f02 6e7a0000 010001c0 0c000100 01000151 4c0004cb 6300fec0 0c000200 01000151 4f000502 6e73c00c c00c0002 00010001 514f0013 036e7331 07776169 6b61746f 02616302 6e7a00c0 37000100 01000140 6f0004cb 6300fec0 48000100 010002a2 c200048c c8800d. +0.001061 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31428180 00010001 00020002 08736563 75726974 79036f72 67026e7a 00000100 01c00c00 01000100 01514c00 04cb6300 fec00c00 02000100 01514c00 05026e73 c00cc00c 00020001 0001514c 0013036e 73310777 61696b61 746f0261 63026e7a 00c03d00 01000100 01406c00 04cb6300 fec04e00 01000100 02a2c200 048cc880 0d. +0.001163 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31438180 00010001 00020002 0d627572 676c6172 616c6172 6d730263 6f026e7a 00000100 01c00c00 01000100 01514c00 04cb6300 fec00c00 02000100 01514c00 05026e73 c00cc00c 00020001 0001514c 0013036e 73310777 61696b61 746f0261 63026e7a 00c04100 01000100 01406c00 04cb6300 fec05200 01000100 02a2c200 048cc880 0d. +0.001131 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31448583 00010000 00010000 026e7305 73616665 7302636f 026e7a00 00010001 05736166 65730263 6f026e7a 00000600 01000002 27002e03 6e733104 69687567 036e6574 c0290373 6f610469 687567c0 26772768 a9000151 8000002a 30001275 000002a3 00. +0.000894 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31458180 00010001 00020002 026e7308 73656375 72697479 036f7267 026e7a00 00010001 c00c0001 00010001 30660004 cb6300fe 08736563 75726974 79036f72 67026e7a 00000200 01000151 4c0002c0 0cc03400 02000100 01514c00 11036e73 31077761 696b6174 6f026163 c041c00c 00010001 00013066 0004cb63 00fec05d 00010001 0002a2c2 00048cc8 800d. +0.001127 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31468180 00010001 00020002 10636f75 70657263 6f6e7375 6c74696e 6702636f 026e7a00 00010001 c00c0001 00010001 514f0004 cb6300fe c00c0002 00010001 51520005 026e73c0 0cc00c00 02000100 01515200 13036e73 31077761 696b6174 6f026163 026e7a00 c0440001 00010001 40720004 cb6300fe c0550001 00010002 a2c20004 8cc8800d. +0.001215 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31478180 00010001 00020002 0e736563 75726974 79677561 72647302 636f026e 7a000001 0001c00c 00010001 0001514f 0004cb63 00fec00c 00020001 0001514f 0005026e 73c00cc0 0c000200 01000151 4f001303 6e733107 7761696b 61746f02 6163026e 7a00c042 00010001 0001406f 0004cb63 00fec053 00010001 0002a2c2 00048cc8 800d. +0.001099 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31488180 00010001 00020002 026e7306 67756172 64730263 6f026e7a 00000100 01c00c00 01000100 01514f00 04cb6300 fe066775 61726473 02636f02 6e7a0000 02000100 01514f00 02c00cc0 31000200 01000151 4f001103 6e733107 7761696b 61746f02 6163c03b c00c0001 00010001 514f0004 cb6300fe c0570001 00010002 a2c20004 8cc8800d. +0.001123 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31498180 00010001 00020002 04617369 73036f72 67026e7a 00000100 01c00c00 01000100 01514f00 04cb6300 fec00c00 02000100 01514f00 05026e73 c00cc00c 00020001 0001514f 0013036e 73310777 61696b61 746f0261 63026e7a 00c03900 01000100 01406f00 04cb6300 fec04a00 01000100 02a2c200 048cc880 0d. +0.001033 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 314a8180 00010001 00020002 046e6572 7502636f 026e7a00 00010001 c00c0001 00010001 514f0004 cb6300fe c00c0002 00010001 51510005 026e73c0 0cc00c00 02000100 01515100 13036e73 31077761 696b6174 6f026163 026e7a00 c0380001 00010001 40710004 cb6300fe c0490001 00010002 a2c20004 8cc8800d. +0.001109 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 314b8180 00010001 00020002 0a676966 74626173 6b657402 636f026e 7a000001 0001c00c 00010001 0001514f 0004cb63 00fec00c 00020001 0001514f 0005026e 73c00cc0 0c000200 01000151 4f001303 6e733107 7761696b 61746f02 6163026e 7a00c03e 00010001 0001514f 0004cb63 00fec04f 00010001 0002a2c2 00048cc8 800d. +0.001126 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 314c8180 00010001 00020002 056d6167 69630263 6f026e7a 00000100 01c00c00 01000100 01514f00 04cb6300 fec00c00 02000100 01515100 05026e73 c00cc00c 00020001 00015151 0013036e 73310777 61696b61 746f0261 63026e7a 00c03900 01000100 01407100 04cb6300 fec04a00 01000100 02a2c200 048cc880 0d. +0.001034 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 314d8180 00010001 00020002 046d6169 6c036263 6302636f 026e7a00 00010001 c00c0001 00010001 514f0004 cb6300fe 03626363 02636f02 6e7a0000 02000100 01514f00 05026e73 c030c030 00020001 0001514f 0011036e 73310777 61696b61 746f0261 63c037c0 45000100 01000140 6f0004cb 6300fec0 56000100 010002a2 c200048c c8800d. +0.001118 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 314e8180 00010001 00020002 026e730d 696e7665 73746967 6174696f 6e02636f 026e7a00 00010001 c00c0001 00010001 306b0004 cb6300fe 0d696e76 65737469 67617469 6f6e0263 6f026e7a 00000200 01000151 510002c0 0cc03800 02000100 01515100 11036e73 31077761 696b6174 6f026163 c049c00c 00010001 0001306b 0004cb63 00fec065 00010001 0002a2c2 00048cc8 800d. +0.001270 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 314f8180 00010001 00020002 056e7a69 7069036f 7267026e 7a000001 0001c00c 00010001 0001514f 0004cb63 00fec00c 00020001 00015151 0005026e 73c00cc0 0c000200 01000151 51001303 6e733107 7761696b 61746f02 6163026e 7a00c03a 00010001 00015151 0004cb63 00fec04b 00010001 0002a2c2 00048cc8 800d. +0.001059 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31508180 00010001 00020002 026e7307 626f7571 75657402 636f026e 7a000001 0001c00c 00010001 00013066 0004cb63 00fe0762 6f757175 65740263 6f026e7a 00000200 01000151 4c0002c0 0cc03200 02000100 01514c00 11036e73 31077761 696b6174 6f026163 c03dc00c 00010001 00013066 0004cb63 00fec059 00010001 0002a2c2 00048cc8 800d. +0.001142 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000280 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.398497 select=1 rfds=[4] wfds=[] efds=[] +0.000524 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31518583 00010000 00010000 046d6169 6c057361 66657302 636f026e 7a000001 00010573 61666573 02636f02 6e7a0000 06000100 00022700 2e036e73 31046968 7567036e 6574c02b 03736f61 04696875 67c02877 2768a900 01518000 002a3000 12750000 02a300. +0.000719 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000326 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.396928 select=1 rfds=[4] wfds=[] efds=[] +0.002842 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31528180 00010001 00020002 026e7303 62636302 636f026e 7a000001 0001c00c 00010001 00013069 0004cb63 00fe0362 63630263 6f026e7a 00000200 01000151 4f0002c0 0cc02e00 02000100 01514f00 11036e73 31077761 696b6174 6f026163 c035c00c 00010001 00013069 0004cb63 00fec051 00010001 0002a2c2 00048cc8 800d. +0.000884 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000295 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.392907 select=1 rfds=[4] wfds=[] efds=[] +0.003411 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31538180 00010001 00020002 026e730d 62757267 6c617261 6c61726d 7302636f 026e7a00 00010001 c00c0001 00010001 30660004 cb6300fe 0d627572 676c6172 616c6172 6d730263 6f026e7a 00000200 01000151 4c0002c0 0cc03800 02000100 01514c00 11036e73 31077761 696b6174 6f026163 c049c00c 00010001 00013066 0004cb63 00fec065 00010001 0002a2c2 00048cc8 800d. +0.000997 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000330 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.388169 select=1 rfds=[4] wfds=[] efds=[] +0.003160 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31548180 00010001 00020002 026e730e 73656375 72697479 67756172 64730263 6f026e7a 00000100 01c00c00 01000100 01306900 04cb6300 fe0e7365 63757269 74796775 61726473 02636f02 6e7a0000 02000100 01514f00 02c00cc0 39000200 01000151 4f001103 6e733107 7761696b 61746f02 6163c04b c00c0001 00010001 30690004 cb6300fe c0670001 00010002 a2c20004 8cc8800d. +0.001023 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000298 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.383688 select=1 rfds=[4] wfds=[] efds=[] +0.003221 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31558180 00010001 00020002 0d636f76 65727463 616d6572 61730263 6f026e7a 00000100 01c00c00 01000100 01515200 04cb6300 fec00c00 02000100 01515200 05026e73 c00cc00c 00020001 00015152 0013036e 73310777 61696b61 746f0261 63026e7a 00c04100 01000100 01515200 04cb6300 fec05200 01000100 02a2c200 048cc880 0d. +0.000929 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000291 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.379247 select=1 rfds=[4] wfds=[] efds=[] +0.002946 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31568180 00010001 00020002 026e7304 6e657275 02636f02 6e7a0000 010001c0 0c000100 01000130 6b0004cb 6300fe04 6e657275 02636f02 6e7a0000 02000100 01515100 02c00cc0 2f000200 01000151 51001103 6e733107 7761696b 61746f02 6163c037 c00c0001 00010001 306b0004 cb6300fe c0530001 00010002 a2c20004 8cc8800d. +0.000895 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000294 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.375112 select=1 rfds=[4] wfds=[] efds=[] +0.003284 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31578180 00010001 00020002 026e730d 636f7665 72746361 6d657261 7302636f 026e7a00 00010001 c00c0001 00010001 51520004 cb6300fe 0d636f76 65727463 616d6572 61730263 6f026e7a 00000200 01000151 520002c0 0cc03800 02000100 01515200 11036e73 31077761 696b6174 6f026163 c049c00c 00010001 00015152 0004cb63 00fec065 00010001 0002a2c2 00048cc8 800d. +0.001002 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000295 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.370531 select=1 rfds=[4] wfds=[] efds=[] +0.003077 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31588180 00010001 00020002 08626f75 71756574 7302636f 026e7a00 00010001 c00c0001 00010001 51530004 cb6300fe c00c0002 00010001 51530013 036e7331 07776169 6b61746f 02616302 6e7a00c0 0c000200 01000151 53000502 6e73c00c c03c0001 00010002 a2c20004 8cc8800d c05b0001 00010001 51530004 cb6300fe. +0.000868 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000322 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.366264 select=1 rfds=[4] wfds=[] efds=[] +0.003188 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31598180 00010001 00020002 0a636f6e 63656e74 72696302 636f026e 7a000001 0001c00c 00010001 0001514f 0004cb63 00fec00c 00020001 00015152 0005026e 73c00cc0 0c000200 01000151 52001303 6e733107 7761696b 61746f02 6163026e 7a00c03e 00010001 00014072 0004cb63 00fec04f 00010001 0002a2c2 00048cc8 800d. +0.000883 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000292 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.361901 select=1 rfds=[4] wfds=[] efds=[] +0.003497 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 315a8180 00010001 00020002 026e7310 73656375 72697479 74726169 6e696e67 02636f02 6e7a0000 010001c0 0c000100 01000130 660004cb 6300fe10 73656375 72697479 74726169 6e696e67 02636f02 6e7a0000 02000100 01514c00 02c00cc0 3b000200 01000151 4c001103 6e733107 7761696b 61746f02 6163c04f c00c0001 00010001 30660004 cb6300fe c06b0001 00010002 a2c20004 8cc8800d. +0.001031 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000343 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.357030 select=1 rfds=[4] wfds=[] efds=[] +0.003250 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 315b8180 00010001 00020002 046d6169 6c10636f 75706572 636f6e73 756c7469 6e670263 6f026e7a 00000100 01c00c00 01000100 01515200 04cb6300 fe10636f 75706572 636f6e73 756c7469 6e670263 6f026e7a 00000200 01000151 52000502 6e73c03d c03d0002 00010001 51520011 036e7331 07776169 6b61746f 026163c0 51c05f00 01000100 01407200 04cb6300 fec07000 01000100 02a2c200 048cc880 0d. +0.001063 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000296 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.352421 select=1 rfds=[4] wfds=[] efds=[] +0.003258 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 315c8180 00010001 00020002 0e726574 61696c73 65637572 69747902 636f026e 7a000001 0001c00c 00010001 0001514f 0004cb63 00fec00c 00020001 00015151 0005026e 73c00cc0 0c000200 01000151 51001303 6e733107 7761696b 61746f02 6163026e 7a00c042 00010001 00014071 0004cb63 00fec053 00010001 0002a2c2 00048cc8 800d. +0.000908 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000289 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.347966 select=1 rfds=[4] wfds=[] efds=[] +0.003170 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 315d8180 00010001 00020002 026e730a 636f6e63 656e7472 69630263 6f026e7a 00000100 01c00c00 01000100 01306c00 04cb6300 fe0a636f 6e63656e 74726963 02636f02 6e7a0000 02000100 01515200 02c00cc0 35000200 01000151 52001103 6e733107 7761696b 61746f02 6163c043 c00c0001 00010001 306c0004 cb6300fe c05f0001 00010002 a2c20004 8cc8800d. +0.000963 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000324 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.343509 select=1 rfds=[4] wfds=[] efds=[] +0.003025 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 315e8180 00010001 00020002 046d6169 6c056d61 67696302 636f026e 7a000001 0001c00c 00010001 0001514f 0004cb63 00fe056d 61676963 02636f02 6e7a0000 02000100 01515100 05026e73 c032c032 00020001 00015151 0011036e 73310777 61696b61 746f0261 63c03bc0 49000100 01000140 710004cb 6300fec0 5a000100 010002a2 c200048c c8800d. +0.000934 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000292 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.339258 select=1 rfds=[4] wfds=[] efds=[] +0.003113 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 315f8180 00010001 00020002 096e7a61 6e676c69 6e670263 6f026e7a 00000100 01c00c00 01000100 01514f00 04cb6300 fec00c00 02000100 01514f00 05026e73 c00cc00c 00020001 0001514f 0013036e 73310777 61696b61 746f0261 63026e7a 00c03d00 01000100 01514f00 04cb6300 fec04e00 01000100 02a2c200 048cc880 0d. +0.000877 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000320 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.334948 select=1 rfds=[4] wfds=[] efds=[] +0.004222 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31608180 00010001 00020002 026e7310 636f7570 6572636f 6e73756c 74696e67 02636f02 6e7a0000 010001c0 0c000100 01000130 6c0004cb 6300fe10 636f7570 6572636f 6e73756c 74696e67 02636f02 6e7a0000 02000100 01515200 02c00cc0 3b000200 01000151 52001103 6e733107 7761696b 61746f02 6163c04f c00c0001 00010001 306c0004 cb6300fe c06b0001 00010002 a2c20004 8cc8800d. +0.001034 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000296 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.329396 select=1 rfds=[4] wfds=[] efds=[] +0.008279 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 05000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000837 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000405 close fd=4 close=OK +0.000415 close fd=5 close=OK +0.000167 adns-1.5.0~rc1/regress/case-brokenmail.sys0000664000175000017500000005167312422540543016633 0ustar ianianadnstest default -0x400 :0x0|15,0x1010000|15 broken-mail.test.iwj.relativity.greenend.org.uk. 256/broken-mail.test.iwj.relativity.greenend.org.uk. 0x104/broken-mail.test.iwj.relativity.greenend.org.uk. start 934726868.117908 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000425 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000059 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000043 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 0b62726f 6b656e2d 6d61696c 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=65 +0.001836 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 0b62726f 6b656e2d 6d61696c 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=65 +0.002502 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 0b62726f 6b656e2d 6d61696c 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=65 +0.001986 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 0b62726f 6b656e2d 6d61696c 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=65 +0.002269 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 0b62726f 6b656e2d 6d61696c 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=65 +0.001950 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 0b62726f 6b656e2d 6d61696c 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=65 +0.001914 select max=5 rfds=[4] wfds=[] efds=[] to=1.987543 select=1 rfds=[4] wfds=[] efds=[] +0.000654 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010004 00010005 0b62726f 6b656e2d 6d61696c 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 0f000100 00003c00 38001404 686f7374 0b62726f 6b656e2d 64656c67 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 0f000100 00003c00 10001e03 31373202 31380234 35023336 00c00c00 0f000100 00003c00 0e002809 636e616d 652d7074 72c060c0 0c000f00 01000000 3c000e00 0a096d61 6e796164 647273c0 60c06000 02000100 00003c00 06036e73 30c069c0 c9000100 01000000 3c0004ac 122d23c0 c9000100 01000000 3c0004ac 122d06c0 c9000100 01000000 3c0004ac 122d01c0 c9000100 01000000 3c00047f 000001c0 e1000100 01000151 800004ac 122d06. +0.001320 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010004 00010005 0b62726f 6b656e2d 6d61696c 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 0f000100 00003c00 10001e03 31373202 31380234 35023336 00c00c00 0f000100 00003c00 31002809 636e616d 652d7074 72047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 000f0001 0000003c 000e000a 096d616e 79616464 7273c075 c00c000f 00010000 003c0015 00140468 6f73740b 62726f6b 656e2d64 656c67c0 75c07500 02000100 00003c00 06036e73 30c07ec0 a8000100 01000000 3c0004ac 122d23c0 a8000100 01000000 3c0004ac 122d06c0 a8000100 01000000 3c0004ac 122d01c0 a8000100 01000000 3c00047f 000001c0 e1000100 01000151 800004ac 122d06. +0.001688 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 03313732 02313802 34350233 36000001 0001. sendto=30 +0.000653 sendto fd=4 addr=172.18.45.6:53 31280100 00010000 00000000 09636e61 6d652d70 74720474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=63 +0.000825 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.001147 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010004 00010005 0b62726f 6b656e2d 6d61696c 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 0f000100 00003c00 31002809 636e616d 652d7074 72047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 000f0001 0000003c 000e000a 096d616e 79616464 7273c059 c00c000f 00010000 003c0015 00140468 6f73740b 62726f6b 656e2d64 656c67c0 59c00c00 0f000100 00003c00 10001e03 31373202 31380234 35023336 00c05900 02000100 00003c00 06036e73 30c062c0 8c000100 01000000 3c0004ac 122d23c0 8c000100 01000000 3c0004ac 122d06c0 8c000100 01000000 3c0004ac 122d01c0 8c000100 01000000 3c00047f 000001c0 e1000100 01000151 800004ac 122d06. +0.001330 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228580 00010004 00010005 0b62726f 6b656e2d 6d61696c 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 0f000100 00003c00 31000a09 6d616e79 61646472 73047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 000f0001 0000003c 00150014 04686f73 740b6272 6f6b656e 2d64656c 67c059c0 0c000f00 01000000 3c001000 1e033137 32023138 02343502 333600c0 0c000f00 01000000 3c000e00 2809636e 616d652d 707472c0 59c05900 02000100 00003c00 06036e73 30c062c0 4f000100 01000000 3c0004ac 122d23c0 4f000100 01000000 3c0004ac 122d06c0 4f000100 01000000 3c0004ac 122d01c0 4f000100 01000000 3c00047f 000001c0 e1000100 01000151 800004ac 122d06. +0.001524 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.001003 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 03313732 02313802 34350233 36000001 0001. sendto=30 +0.000569 sendto fd=4 addr=172.18.45.6:53 31300100 00010000 00000000 09636e61 6d652d70 74720474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=63 +0.000842 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238580 00010004 00010005 0b62726f 6b656e2d 6d61696c 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 0f000100 00003c00 38001404 686f7374 0b62726f 6b656e2d 64656c67 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 0f000100 00003c00 10001e03 31373202 31380234 35023336 00c00c00 0f000100 00003c00 0e002809 636e616d 652d7074 72c060c0 0c000f00 01000000 3c000e00 0a096d61 6e796164 647273c0 60c06000 02000100 00003c00 06036e73 30c069c0 c9000100 01000000 3c0004ac 122d23c0 c9000100 01000000 3c0004ac 122d06c0 c9000100 01000000 3c0004ac 122d01c0 c9000100 01000000 3c00047f 000001c0 e1000100 01000151 800004ac 122d06. +0.001306 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248580 00010004 00010005 0b62726f 6b656e2d 6d61696c 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 0f000100 00003c00 10001e03 31373202 31380234 35023336 00c00c00 0f000100 00003c00 31002809 636e616d 652d7074 72047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 000f0001 0000003c 000e000a 096d616e 79616464 7273c075 c00c000f 00010000 003c0015 00140468 6f73740b 62726f6b 656e2d64 656c67c0 75c07500 02000100 00003c00 06036e73 30c07ec0 a8000100 01000000 3c0004ac 122d23c0 a8000100 01000000 3c0004ac 122d06c0 a8000100 01000000 3c0004ac 122d01c0 a8000100 01000000 3c00047f 000001c0 e1000100 01000151 800004ac 122d06. +0.001507 sendto fd=4 addr=172.18.45.6:53 31320100 00010000 00000000 03313732 02313802 34350233 36000001 0001. sendto=30 +0.000637 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 09636e61 6d652d70 74720474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=63 +0.000932 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000931 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268583 00010000 00000000 03313732 02313802 34350233 36000001 0001. +0.000242 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31288580 00010002 00010001 09636e61 6d652d70 74720474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000000 3c002903 70747204 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c04b0001 00010000 003c0004 ac122d25 c04f0002 00010000 003c0006 036e7330 c058c090 00010001 00015180 0004ac12 2d06. +0.000737 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8583 00010000 00000000 03313732 02313802 34350233 36000001 0001. +0.000223 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31308580 00010002 00010001 09636e61 6d652d70 74720474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000000 3c002903 70747204 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c04b0001 00010000 003c0004 ac122d25 c04f0002 00010000 003c0006 036e7330 c058c090 00010001 00015180 0004ac12 2d06. +0.000756 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31328583 00010000 00000000 03313732 02313802 34350233 36000001 0001. +0.000291 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31348580 00010002 00010001 09636e61 6d652d70 74720474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000000 3c002903 70747204 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c04b0001 00010000 003c0004 ac122d25 c04f0002 00010000 003c0006 036e7330 c058c090 00010001 00015180 0004ac12 2d06. +0.000726 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000162 select max=5 rfds=[4] wfds=[] efds=[] to=1.980649 select=0 rfds=[] wfds=[] efds=[] +2.-04341 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000794 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000608 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000695 select max=5 rfds=[4] wfds=[] efds=[] to=1.997903 select=0 rfds=[] wfds=[] efds=[] +2.007910 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000823 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000611 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000571 select max=5 rfds=[4] wfds=[] efds=[] to=1.997995 select=0 rfds=[] wfds=[] efds=[] +2.007991 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000694 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000579 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000571 select max=5 rfds=[4] wfds=[] efds=[] to=1.998156 select=0 rfds=[] wfds=[] efds=[] +2.008157 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000655 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000749 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000606 select max=5 rfds=[4] wfds=[] efds=[] to=1.997990 select=0 rfds=[] wfds=[] efds=[] +2.007995 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000836 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000612 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000631 select max=5 rfds=[4] wfds=[] efds=[] to=1.997921 select=0 rfds=[] wfds=[] efds=[] +2.007925 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000699 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000725 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000606 select max=5 rfds=[4] wfds=[] efds=[] to=1.997970 select=0 rfds=[] wfds=[] efds=[] +2.007965 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000739 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000582 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000570 select max=5 rfds=[4] wfds=[] efds=[] to=1.998109 select=0 rfds=[] wfds=[] efds=[] +2.008104 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000641 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000598 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000716 select max=5 rfds=[4] wfds=[] efds=[] to=1.998045 select=0 rfds=[] wfds=[] efds=[] +2.008043 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000646 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000576 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000594 select max=5 rfds=[4] wfds=[] efds=[] to=1.998184 select=0 rfds=[] wfds=[] efds=[] +2.008190 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000673 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000578 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000572 select max=5 rfds=[4] wfds=[] efds=[] to=1.998177 select=0 rfds=[] wfds=[] efds=[] +2.008168 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000659 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000577 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000571 select max=5 rfds=[4] wfds=[] efds=[] to=1.998193 select=0 rfds=[] wfds=[] efds=[] +2.008199 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000653 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000604 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000573 select max=5 rfds=[4] wfds=[] efds=[] to=1.998170 select=0 rfds=[] wfds=[] efds=[] +2.008181 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000699 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000589 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000758 select max=5 rfds=[4] wfds=[] efds=[] to=1.997954 select=0 rfds=[] wfds=[] efds=[] +2.008126 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000684 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000582 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=70 +0.000578 select max=5 rfds=[4] wfds=[] efds=[] to=1.998156 select=0 rfds=[] wfds=[] efds=[] +2.007969 close fd=4 close=OK +0.000812 adns-1.5.0~rc1/regress/case-arf-text.sys0000664000175000017500000000227012422510661016225 0ustar ianian./adnsresfilter default start 969137967.465922 fcntl fd=0 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000132 fcntl fd=0 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000049 fcntl fd=1 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000034 fcntl fd=1 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000033 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.004099 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000057 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000034 select max=2 rfds=[0] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +2.095986 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000177 read fd=0 buflen=512 read=OK 74657874 206f6e6c 790a. +0.000121 write fd=1 74657874 206f6e6c 790a. write=10 +0.000636 select max=2 rfds=[0] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +0.349329 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000085 read fd=0 buflen=512 read=OK . +0.000064 fcntl fd=0 cmd=F_GETFL fcntl=O_NONBLOCK|... +0.000043 fcntl fd=0 cmd=F_SETFL ~O_NONBLOCK&... fcntl=OK +0.000065 fcntl fd=1 cmd=F_GETFL fcntl=O_NONBLOCK|... +0.000036 fcntl fd=1 cmd=F_SETFL ~O_NONBLOCK&... fcntl=OK +0.000032 close fd=6 close=OK +0.000117 adns-1.5.0~rc1/regress/case-datapluscname.err0000664000175000017500000000000012421042026017245 0ustar ianianadns-1.5.0~rc1/regress/case-flags10.sys0000664000175000017500000000044612422540543015735 0ustar ianianadnstest default :0x0|1 ,aaaaaaaaaa/chiark.greenend.org.uk start 929580072.670441 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000191 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000084 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000061 close fd=4 close=OK +0.000001 adns-1.5.0~rc1/regress/case-longdomsrch1.err0000664000175000017500000000000012421042026017024 0ustar ianianadns-1.5.0~rc1/regress/case-ptrbaddom.sys0000664000175000017500000000227112422540543016452 0ustar ianianadnstest default :0x0|12,0x10000|12 37.45.18.172.in-addr.arpa.test.iwj.relativity.greenend.org.uk. start 951960654.608219 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000194 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000055 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000035 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 02333702 34350231 38033137 3207696e 2d616464 72046172 70610474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001. sendto=79 +0.002131 select max=5 rfds=[4] wfds=[] efds=[] to=1.997869 select=1 rfds=[4] wfds=[] efds=[] +0.000258 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00010001 02333702 34350231 38033137 3207696e 2d616464 72046172 70610474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00 01000000 3c002903 70747204 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c05f0002 00010000 003c0006 036e7330 c068c090 00010001 00015180 0004ac12 2d06. +0.001324 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000133 close fd=4 close=OK +0.000187 adns-1.5.0~rc1/regress/case-datapluscname.out0000664000175000017500000000752612421042026017310 0ustar ianianadns debug: using nameserver 172.18.45.6 170.99.219.194.in-addr.arpa flags 292 type 1 A(-) submitted 170.99.219.194.in-addr.arpa flags 292 type 2 NS(raw) submitted 170.99.219.194.in-addr.arpa flags 292 type 5 CNAME(-) submitted 170.99.219.194.in-addr.arpa flags 292 type 6 SOA(raw) submitted 170.99.219.194.in-addr.arpa flags 292 type 12 PTR(raw) submitted 170.99.219.194.in-addr.arpa flags 292 type 13 HINFO(-) submitted 170.99.219.194.in-addr.arpa flags 292 type 15 MX(raw) submitted 170.99.219.194.in-addr.arpa flags 292 type 16 TXT(-) submitted 170.99.219.194.in-addr.arpa flags 292 type 17 RP(raw) submitted 170.99.219.194.in-addr.arpa flags 292 type 65537 A(addr) submitted 170.99.219.194.in-addr.arpa flags 292 type 65538 NS(+addr) submitted 170.99.219.194.in-addr.arpa flags 292 type 65548 PTR(checked) submitted 170.99.219.194.in-addr.arpa flags 292 type 65551 MX(+addr) submitted 170.99.219.194.in-addr.arpa flags 292 type 131078 SOA(822) submitted 170.99.219.194.in-addr.arpa flags 292 type 131089 RP(822) submitted adns debug: ignoring CNAME (to 170.168.99.219.194.in-addr.arpa) coexisting with RR (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(raw), NS=172.18.45.6) adns debug: ignoring RR with an unexpected owner 170.168.99.219.194.in-addr.arpa (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(raw), NS=172.18.45.6) adns debug: ignoring CNAME (to 170.168.99.219.194.in-addr.arpa) coexisting with RR (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(checked), NS=172.18.45.6) adns debug: ignoring RR with an unexpected owner 170.168.99.219.194.in-addr.arpa (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(checked), NS=172.18.45.6) 170.99.219.194.in-addr.arpa flags 292 type A(-): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type NS(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type SOA(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type PTR(raw): OK; nrrs=1; cname=$; owner=170.99.219.194.in-addr.arpa; ttl=171727 proxy.scoplife.gr 170.99.219.194.in-addr.arpa flags 292 type HINFO(-): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type MX(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type TXT(-): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type RP(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type NS(+addr): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type MX(+addr): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type SOA(822): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type RP(822): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type A(addr): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type PTR(checked): OK; nrrs=1; cname=$; owner=170.99.219.194.in-addr.arpa; ttl=171727 proxy.scoplife.gr 170.99.219.194.in-addr.arpa flags 292 type CNAME(-): OK; nrrs=1; cname=$; owner=170.99.219.194.in-addr.arpa; ttl=171726 170.168.99.219.194.in-addr.arpa rc=0 adns-1.5.0~rc1/regress/hcommon.c0000664000175000017500000002050512421044560014626 0ustar ianian#include #include #include #include #include #include #include #include #include #include #include "harness.h" #include "internal.h" vbuf vb; FILE *Toutputfile= 0; struct timeval currenttime; const struct Terrno Terrnos[]= { { "EBADF", EBADF }, { "EAGAIN", EAGAIN }, { "EINPROGRESS", EINPROGRESS }, { "EINTR", EINTR }, { "EINVAL", EINVAL }, { "EMSGSIZE", EMSGSIZE }, { "ENOBUFS", ENOBUFS }, { "ENOENT", ENOENT }, { "ENOPROTOOPT", ENOPROTOOPT }, { "ENOSPC", ENOSPC }, { "EWOULDBLOCK", EWOULDBLOCK }, { "EHOSTUNREACH", EHOSTUNREACH }, { "ECONNRESET", ECONNRESET }, { "ECONNREFUSED", ECONNREFUSED }, { "EPIPE", EPIPE }, { "ENOTSOCK", ENOTSOCK }, { 0, 0 } }; static vbuf vbw; int Hgettimeofday(struct timeval *tv, struct timezone *tz) { Tensurerecordfile(); Tmust("gettimeofday","tz",!tz); *tv= currenttime; return 0; } int Hwritev(int fd, const struct iovec *vector, size_t count) { size_t i; vbw.used= 0; for (i=0; iiov_base,vector->iov_len)) Tnomem(); } return Hwrite(fd,vbw.buf,vbw.used); } void Qselect( int max , const fd_set *rfds , const fd_set *wfds , const fd_set *efds , struct timeval *to ) { vb.used= 0; Tvba("select"); Tvbf(" max=%d",max); Tvbf(" rfds="); Tvbfdset(max,rfds); Tvbf(" wfds="); Tvbfdset(max,wfds); Tvbf(" efds="); Tvbfdset(max,efds); if (to) Tvbf(" to=%ld.%06ld",(long)to->tv_sec,(long)to->tv_usec); else Tvba(" to=null"); Q_vb(); } #ifdef HAVE_POLL void Qpoll( const struct pollfd *fds , int nfds , int timeout ) { vb.used= 0; Tvba("poll"); Tvbf(" fds="); Tvbpollfds(fds,nfds); Tvbf(" timeout=%d",timeout); Q_vb(); } #endif void Qsocket( int domain , int type ) { vb.used= 0; Tvba("socket"); Tvbf(domain==AF_INET ? " domain=AF_INET" : domain==AF_INET6 ? " domain=AF_INET6" : " domain=AF_???"); Tvbf(type==SOCK_STREAM ? " type=SOCK_STREAM" : " type=SOCK_DGRAM"); Q_vb(); } void Qfcntl( int fd , int cmd , long arg ) { vb.used= 0; Tvba("fcntl"); Tvbf(" fd=%d",fd); if (cmd == F_SETFL) { Tvbf(" cmd=F_SETFL %s",arg & O_NONBLOCK ? "O_NONBLOCK|..." : "~O_NONBLOCK&..."); } else if (cmd == F_GETFL) { Tvba(" cmd=F_GETFL"); } else { Tmust("cmd","F_GETFL/F_SETFL",0); } Q_vb(); } void Qconnect( int fd , const struct sockaddr *addr , int addrlen ) { vb.used= 0; Tvba("connect"); Tvbf(" fd=%d",fd); Tvba(" addr="); Tvbaddr(addr,addrlen); Q_vb(); } void Qbind( int fd , const struct sockaddr *addr , int addrlen ) { vb.used= 0; Tvba("bind"); Tvbf(" fd=%d",fd); Tvba(" addr="); Tvbaddr(addr,addrlen); Q_vb(); } void Qlisten( int fd , int backlog ) { vb.used= 0; Tvba("listen"); Tvbf(" fd=%d",fd); Tvbf(" backlog=%d",backlog); Q_vb(); } void Qclose( int fd ) { vb.used= 0; Tvba("close"); Tvbf(" fd=%d",fd); Q_vb(); } void Qsendto( int fd , const void *msg , int msglen , const struct sockaddr *addr , int addrlen ) { vb.used= 0; Tvba("sendto"); Tvbf(" fd=%d",fd); Tvba(" addr="); Tvbaddr(addr,addrlen); Tvbbytes(msg,msglen); Q_vb(); } void Qrecvfrom( int fd , int buflen , int addrlen ) { vb.used= 0; Tvba("recvfrom"); Tvbf(" fd=%d",fd); Tvbf(" buflen=%lu",(unsigned long)buflen); Q_vb(); } void Qread( int fd , size_t buflen ) { vb.used= 0; Tvba("read"); Tvbf(" fd=%d",fd); Tvbf(" buflen=%lu",(unsigned long)buflen); Q_vb(); } void Qwrite( int fd , const void *buf , size_t len ) { vb.used= 0; Tvba("write"); Tvbf(" fd=%d",fd); Tvbbytes(buf,len); Q_vb(); } void Tvbaddr(const struct sockaddr *addr, int len) { char buf[ADNS_ADDR2TEXT_BUFLEN]; int err, port; int sz= sizeof(buf); err= adns_addr2text(addr, 0, buf,&sz, &port); assert(!err); Tvbf(strchr(buf, ':') ? "[%s]:%d" : "%s:%d", buf,port); } void Tvbbytes(const void *buf, int len) { const byte *bp; int i; if (!len) { Tvba("\n ."); return; } for (i=0, bp=buf; i0) { Tvba(comma); Tvbf("{fd=%d, events=",fds->fd); Tvbpollevents(fds->events); Tvba(", revents="); Tvbpollevents(fds->revents); Tvba("}"); comma= ", "; nfds--; fds++; } Tvba("]"); } void Tvberrno(int e) { const struct Terrno *te; for (te= Terrnos; te->n && te->v != e; te++); assert(te->n); Tvba(te->n); } void Tvba(const char *str) { if (!adns__vbuf_appendstr(&vb,str)) Tnomem(); } void Tvbvf(const char *fmt, va_list al) { char buf[1000]; buf[sizeof(buf)-2]= '\t'; vsnprintf(buf,sizeof(buf),fmt,al); assert(buf[sizeof(buf)-2] == '\t'); Tvba(buf); } void Tvbf(const char *fmt, ...) { va_list al; va_start(al,fmt); Tvbvf(fmt,al); va_end(al); } void Tmust(const char *call, const char *arg, int cond) { if (cond) return; fprintf(stderr,"adns test harness: case not handled: system call %s, arg %s",call,arg); exit(-1); } void Tfailed(const char *why) { fprintf(stderr,"adns test harness: failure: %s: %s\n",why,strerror(errno)); exit(-1); } void Tnomem(void) { Tfailed("unable to malloc/realloc"); } void Toutputerr(void) { Tfailed("write error on test harness output"); } struct malloced { struct malloced *next, *back; size_t sz; unsigned long count; struct { double d; long ul; void *p; void (*fp)(void); } data; }; static unsigned long malloccount, mallocfailat; static struct { struct malloced *head, *tail; } mallocedlist; #define MALLOCHSZ ((char*)&mallocedlist.head->data - (char*)mallocedlist.head) void *Hmalloc(size_t sz) { struct malloced *newnode; const char *mfavar; char *ep; assert(sz); newnode= malloc(MALLOCHSZ + sz); if (!newnode) Tnomem(); LIST_LINK_TAIL(mallocedlist,newnode); newnode->sz= sz; newnode->count= ++malloccount; if (!mallocfailat) { mfavar= getenv("ADNS_REGRESS_MALLOCFAILAT"); if (mfavar) { mallocfailat= strtoul(mfavar,&ep,10); if (!mallocfailat || *ep) Tfailed("ADNS_REGRESS_MALLOCFAILAT bad value"); } else { mallocfailat= ~0UL; } } assert(newnode->count != mallocfailat); memset(&newnode->data,0xc7,sz); return &newnode->data; } void Hfree(void *ptr) { struct malloced *oldnode; if (!ptr) return; oldnode= (void*)((char*)ptr - MALLOCHSZ); LIST_UNLINK(mallocedlist,oldnode); memset(&oldnode->data,0x38,oldnode->sz); free(oldnode); } void *Hrealloc(void *op, size_t nsz) { struct malloced *oldnode; void *np; size_t osz; if (op) { oldnode= (void*)((char*)op - MALLOCHSZ); osz= oldnode->sz; } else { osz= 0; } np= Hmalloc(nsz); memcpy(np,op, osz>nsz ? nsz : osz); Hfree(op); return np; } void Hexit(int rv) { struct malloced *loopnode; Tshutdown(); adns__vbuf_free(&vb); adns__vbuf_free(&vbw); if (mallocedlist.head) { fprintf(stderr,"adns test harness: memory leaked:"); for (loopnode=mallocedlist.head; loopnode; loopnode=loopnode->next) fprintf(stderr," %lu",loopnode->count); putc('\n',stderr); if (ferror(stderr)) exit(-1); } exit(rv); } pid_t Hgetpid(void) { return 2264; /* just some number */ } adns-1.5.0~rc1/regress/case-alr-norm.sys0000664000175000017500000004307312422510661016230 0ustar ianian./adnslogres default start 969140608.116717 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000127 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000061 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000037 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.001715 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00020002 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00220573 66657265 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 02343502 31380331 37320769 6e2d6164 64720461 72706100 00020001 00015180 0006036e 7330c03c c0580002 00010001 51800006 036e7331 c03cc07a 00010001 00015180 0004ac12 2d06c08c 00010001 00015180 0004ac12 2d01. +0.000718 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=50 +0.000790 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010001 00020002 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001c00c 00010001 00015180 0004ac12 2d010a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000002 00010001 51800006 036e7330 c042c042 00020001 00015180 0006036e 7331c042 c0680001 00010001 51800004 ac122d06 c07a0001 00010001 51800004 ac122d01. +0.000564 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000109 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000093 sendto fd=6 addr=172.18.45.6:53 31210100 00010000 00000000 01310130 01300331 32370769 6e2d6164 64720461 72706100 000c0001. sendto=40 +0.000753 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010001 00010001 01310130 01300331 32370769 6e2d6164 64720461 72706100 000c0001 c00c000c 00010009 3a80000b 096c6f63 616c686f 73740003 31323707 696e2d61 64647204 61727061 00000200 0100093a 800002c0 34c03400 01000100 093a8000 047f0000 01. +0.000417 sendto fd=6 addr=172.18.45.6:53 31220100 00010000 00000000 096c6f63 616c686f 73740000 010001. sendto=27 +0.000530 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228580 00010001 00010001 096c6f63 616c686f 73740000 010001c0 0c000100 0100093a 8000047f 000001c0 0c000200 0100093a 800002c0 0cc00c00 01000100 093a8000 047f0000 01. +0.000306 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000089 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000088 sendto fd=6 addr=172.18.45.6:53 31230100 00010000 00000000 02313403 32303602 33300331 37320769 6e2d6164 64720461 72706100 000c0001. sendto=44 +0.000689 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238580 00010001 00010001 02313403 32303602 33300331 37320769 6e2d6164 64720461 72706100 000c0001 c00c000c 00010000 003c002a 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000332 30360233 30033137 3207696e 2d616464 72046172 70610000 02000100 00003c00 20036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c08500 01000100 01518000 04ac122d 06. +0.000622 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.001722 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000087 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000205 sendto fd=6 addr=172.18.45.6:53 31250100 00010000 00000000 01310130 01300331 32370769 6e2d6164 64720461 72706100 000c0001. sendto=40 +0.000699 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258580 00010001 00010001 01310130 01300331 32370769 6e2d6164 64720461 72706100 000c0001 c00c000c 00010009 3a80000b 096c6f63 616c686f 73740003 31323707 696e2d61 64647204 61727061 00000200 0100093a 800002c0 34c03400 01000100 093a8000 047f0000 01. +0.000420 sendto fd=6 addr=172.18.45.6:53 31260100 00010000 00000000 096c6f63 616c686f 73740000 010001. sendto=27 +0.000532 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268580 00010001 00010001 096c6f63 616c686f 73740000 010001c0 0c000100 0100093a 8000047f 000001c0 0c000200 0100093a 800002c0 0cc00c00 01000100 093a8000 047f0000 01. +0.000307 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000094 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000187 sendto fd=6 addr=172.18.45.6:53 31270100 00010000 00000000 01330234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.000634 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278583 00010000 00010000 01330234 35023138 03313732 07696e2d 61646472 04617270 6100000c 00010234 35023138 03313732 07696e2d 61646472 04617270 61000006 00010001 51800041 036e7330 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 0a686f73 746d6173 746572c0 50000000 2800001c 2000000e 1000093a 80000151 80. +0.000506 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000099 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000184 sendto fd=6 addr=172.18.45.6:53 31280100 00010000 00000000 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.000711 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31288580 00010001 00020002 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00220573 66657265 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 02343502 31380331 37320769 6e2d6164 64720461 72706100 00020001 00015180 0006036e 7330c03c c0580002 00010001 51800006 036e7331 c03cc07a 00010001 00015180 0004ac12 2d06c08c 00010001 00015180 0004ac12 2d01. +0.000624 sendto fd=6 addr=172.18.45.6:53 31290100 00010000 00000000 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=50 +0.000748 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298580 00010001 00020002 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001c00c 00010001 00015180 0004ac12 2d010a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000002 00010001 51800006 036e7330 c042c042 00020001 00015180 0006036e 7331c042 c0680001 00010001 51800004 ac122d06 c07a0001 00010001 51800004 ac122d01. +0.000564 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000106 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000192 sendto fd=6 addr=172.18.45.6:53 312a0100 00010000 00000000 01380234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.001229 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8580 00010001 00020002 01380234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 0023066b 61646174 680a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00023435 02313803 31373207 696e2d61 64647204 61727061 00000200 01000151 80000603 6e7330c0 3dc05900 02000100 01518000 06036e73 31c03dc0 7b000100 01000151 800004ac 122d06c0 8d000100 01000151 800004ac 122d01. +0.000628 sendto fd=6 addr=172.18.45.6:53 312b0100 00010000 00000000 066b6164 6174680a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=51 +0.000678 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8580 00010001 00020002 066b6164 6174680a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000100 01000151 800004ac 122d080a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 02000100 01518000 06036e73 30c043c0 43000200 01000151 80000603 6e7331c0 43c06900 01000100 01518000 04ac122d 06c07b00 01000100 01518000 04ac122d 01. +0.000565 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000127 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000202 sendto fd=6 addr=172.18.45.6:53 312c0100 00010000 00000000 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.001807 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8580 00010001 00020002 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00220573 66657265 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 02343502 31380331 37320769 6e2d6164 64720461 72706100 00020001 00015180 0006036e 7330c03c c0580002 00010001 51800006 036e7331 c03cc07a 00010001 00015180 0004ac12 2d06c08c 00010001 00015180 0004ac12 2d01. +0.000626 sendto fd=6 addr=172.18.45.6:53 312d0100 00010000 00000000 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=50 +0.000658 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8580 00010001 00020002 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001c00c 00010001 00015180 0004ac12 2d010a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000002 00010001 51800006 036e7330 c042c042 00020001 00015180 0006036e 7331c042 c0680001 00010001 51800004 ac122d06 c07a0001 00010001 51800004 ac122d01. +0.000577 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000107 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000197 sendto fd=6 addr=172.18.45.6:53 312e0100 00010000 00000000 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.000710 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8580 00010001 00020002 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00220573 66657265 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 02343502 31380331 37320769 6e2d6164 64720461 72706100 00020001 00015180 0006036e 7330c03c c0580002 00010001 51800006 036e7331 c03cc07a 00010001 00015180 0004ac12 2d06c08c 00010001 00015180 0004ac12 2d01. +0.000620 sendto fd=6 addr=172.18.45.6:53 312f0100 00010000 00000000 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=50 +0.000670 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 312f8580 00010001 00020002 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001c00c 00010001 00015180 0004ac12 2d010a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000002 00010001 51800006 036e7330 c042c042 00020001 00015180 0006036e 7331c042 c0680001 00010001 51800004 ac122d06 c07a0001 00010001 51800004 ac122d01. +0.000559 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000103 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000233 sendto fd=6 addr=172.18.45.6:53 31300100 00010000 00000000 01360234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.000750 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31308580 00010001 00020002 01360234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00250864 6176656e 616e740a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0002 34350231 38033137 3207696e 2d616464 72046172 70610000 02000100 01518000 06036e73 30c03fc0 5b000200 01000151 80000603 6e7331c0 3fc07d00 01000100 01518000 04ac122d 06c08f00 01000100 01518000 04ac122d 01. +0.000629 sendto fd=6 addr=172.18.45.6:53 31310100 00010000 00000000 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=53 +0.000663 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31318580 00010001 00020002 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 01000100 01518000 04ac122d 060a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000200 01000151 80000603 6e7330c0 45c04500 02000100 01518000 06036e73 31c045c0 6b000100 01000151 800004ac 122d06c0 7d000100 01000151 800004ac 122d01. +0.000568 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000135 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000191 select max=7 rfds=[6] wfds=[] efds=[] to=1.977525 select=0 rfds=[] wfds=[] efds=[] +2.-23059 select max=7 rfds=[6] wfds=[] efds=[] to=0.000584 select=0 rfds=[] wfds=[] efds=[] +0.010000 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000486 select max=7 rfds=[6] wfds=[] efds=[] to=1.999514 select=0 rfds=[] wfds=[] efds=[] +2.-00572 select max=7 rfds=[6] wfds=[] efds=[] to=0.000086 select=0 rfds=[] wfds=[] efds=[] +0.009958 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000479 select max=7 rfds=[6] wfds=[] efds=[] to=1.999521 select=0 rfds=[] wfds=[] efds=[] +2.-00545 select max=7 rfds=[6] wfds=[] efds=[] to=0.000066 select=0 rfds=[] wfds=[] efds=[] +0.009996 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000496 select max=7 rfds=[6] wfds=[] efds=[] to=1.999504 select=0 rfds=[] wfds=[] efds=[] +2.-00576 select max=7 rfds=[6] wfds=[] efds=[] to=0.000080 select=0 rfds=[] wfds=[] efds=[] +0.009954 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000461 select max=7 rfds=[6] wfds=[] efds=[] to=1.999539 select=0 rfds=[] wfds=[] efds=[] +2.-00527 select max=7 rfds=[6] wfds=[] efds=[] to=0.000066 select=0 rfds=[] wfds=[] efds=[] +0.009999 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000493 select max=7 rfds=[6] wfds=[] efds=[] to=1.999507 select=0 rfds=[] wfds=[] efds=[] +2.-00574 select max=7 rfds=[6] wfds=[] efds=[] to=0.000081 select=0 rfds=[] wfds=[] efds=[] +0.009952 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000509 select max=7 rfds=[6] wfds=[] efds=[] to=1.999491 select=0 rfds=[] wfds=[] efds=[] +2.-00575 select max=7 rfds=[6] wfds=[] efds=[] to=0.000066 select=0 rfds=[] wfds=[] efds=[] +0.009998 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000559 select max=7 rfds=[6] wfds=[] efds=[] to=1.999441 select=0 rfds=[] wfds=[] efds=[] +2.-00607 select max=7 rfds=[6] wfds=[] efds=[] to=0.000048 select=0 rfds=[] wfds=[] efds=[] +0.009927 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000496 select max=7 rfds=[6] wfds=[] efds=[] to=1.999504 select=0 rfds=[] wfds=[] efds=[] +2.-00576 select max=7 rfds=[6] wfds=[] efds=[] to=0.000080 select=0 rfds=[] wfds=[] efds=[] +0.010004 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000483 select max=7 rfds=[6] wfds=[] efds=[] to=1.999517 select=0 rfds=[] wfds=[] efds=[] +2.-00587 select max=7 rfds=[6] wfds=[] efds=[] to=0.000104 select=0 rfds=[] wfds=[] efds=[] +0.010011 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000494 select max=7 rfds=[6] wfds=[] efds=[] to=1.999506 select=0 rfds=[] wfds=[] efds=[] +2.-00549 select max=7 rfds=[6] wfds=[] efds=[] to=0.000055 select=0 rfds=[] wfds=[] efds=[] +0.009922 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000477 select max=7 rfds=[6] wfds=[] efds=[] to=1.999523 select=0 rfds=[] wfds=[] efds=[] +2.-00552 select max=7 rfds=[6] wfds=[] efds=[] to=0.000075 select=0 rfds=[] wfds=[] efds=[] +0.010061 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000476 select max=7 rfds=[6] wfds=[] efds=[] to=1.999524 select=0 rfds=[] wfds=[] efds=[] +2.-00617 select max=7 rfds=[6] wfds=[] efds=[] to=0.000141 select=0 rfds=[] wfds=[] efds=[] +0.009958 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000464 select max=7 rfds=[6] wfds=[] efds=[] to=1.999536 select=0 rfds=[] wfds=[] efds=[] +2.-00542 select max=7 rfds=[6] wfds=[] efds=[] to=0.000078 select=0 rfds=[] wfds=[] efds=[] +0.010010 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000440 select max=7 rfds=[6] wfds=[] efds=[] to=1.999560 select=0 rfds=[] wfds=[] efds=[] +2.-00527 select max=7 rfds=[6] wfds=[] efds=[] to=0.000087 select=0 rfds=[] wfds=[] efds=[] +0.009959 close fd=6 close=OK +0.002651 adns-1.5.0~rc1/regress/case-aaaa-sort.sys0000664000175000017500000000351512422540543016350 0ustar ianian./adnstest distorted :0x0|28 maddr.dnserr.distorted.org.uk start 1401871954.600653 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000061 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000032 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000026 sendto fd=6 addr=172.29.199.224:53 311f0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000195 select max=7 rfds=[6] wfds=[] efds=[] to=1.999805 select=1 rfds=[6] wfds=[] efds=[] +0.004328 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 311f8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0 12000200 01000038 40000d07 76616d70 69726502 6e73c012 c0120002 00010000 38400009 06726164 697573c0 ebc01200 02000100 00384000 0d0a7465 6c656361 73746572 c0ebc012 00020001 00003840 000c0970 72656369 73696f6e c0ebc0fc 00010001 00003840 00043e31 cc92c0fc 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0e3 00010001 00003840 00043e31 cc96c0e3 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c12a 00010001 00003840 0004d40d c646c12a 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c111 00010001 00003840 0004d40d c647c111 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000428 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000092 close fd=6 close=OK +0.000520 adns-1.5.0~rc1/regress/case-longlab1.sys0000664000175000017500000000054212422540543016174 0ustar ianianadnstest default :0x0|1 1/hyrndrobwlxxxxxxxxxxlllantysiliogogllanfairpwllgwyngyllgogerychw.relativity.greenend.org.uk. start 951955261.286712 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000128 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000053 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000033 close fd=4 close=OK +0.000238 adns-1.5.0~rc1/regress/case-rootqueryall.sys0000664000175000017500000010054612422510662017243 0ustar ianianadnstest default -0x400,s . 1/. start 924364450.165424 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000220 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000087 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000070 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 00000100 01. sendto=17 +0.001746 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 00000200 01. sendto=17 +0.001194 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 00000500 01. sendto=17 +0.000783 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 00000600 01. sendto=17 +0.000728 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 00000c00 01. sendto=17 +0.000726 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 00000d00 01. sendto=17 +0.001290 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 00000f00 01. sendto=17 +0.000771 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 00001000 01. sendto=17 +0.000843 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 00001100 01. sendto=17 +0.000778 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 00000100 01. sendto=17 +0.000728 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 00000200 01. sendto=17 +0.001454 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 00000f00 01. sendto=17 +0.000725 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 00000600 01. sendto=17 +0.000731 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 00001100 01. sendto=17 +0.000871 sendto fd=4 addr=172.18.45.6:53 312f0100 00010000 00000000 00000100 01. sendto=17 +0.000737 sendto fd=4 addr=172.18.45.6:53 31300100 00010000 00000000 00000200 01. sendto=17 +0.000727 sendto fd=4 addr=172.18.45.6:53 31310100 00010000 00000000 00000500 01. sendto=17 +0.000732 sendto fd=4 addr=172.18.45.6:53 31320100 00010000 00000000 00000600 01. sendto=17 +0.000781 sendto fd=4 addr=172.18.45.6:53 31330100 00010000 00000000 00000c00 01. sendto=17 +0.000733 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 00000d00 01. sendto=17 +0.000739 sendto fd=4 addr=172.18.45.6:53 31350100 00010000 00000000 00000f00 01. sendto=17 +0.000736 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 00001000 01. sendto=17 +0.000837 sendto fd=4 addr=172.18.45.6:53 31370100 00010000 00000000 00001100 01. sendto=17 +0.000734 sendto fd=4 addr=172.18.45.6:53 31390100 00010000 00000000 00000100 01. sendto=17 +0.000730 sendto fd=4 addr=172.18.45.6:53 313a0100 00010000 00000000 00000200 01. sendto=17 +0.001465 sendto fd=4 addr=172.18.45.6:53 313c0100 00010000 00000000 00000f00 01. sendto=17 +0.000732 sendto fd=4 addr=172.18.45.6:53 313d0100 00010000 00000000 00000600 01. sendto=17 +0.000734 sendto fd=4 addr=172.18.45.6:53 313e0100 00010000 00000000 00001100 01. sendto=17 +0.000764 select max=5 rfds=[4] wfds=[] efds=[] to=1.975451 select=1 rfds=[4] wfds=[] efds=[] +0.006067 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 0001000d 0000000d 00000200 01000002 00010004 a9df0014 01450c52 4f4f542d 53455256 45525303 4e455400 00000200 010004a9 df000401 49c01e00 00020001 0004a9df 00040146 c01e0000 02000100 04a9df00 040147c0 1e000002 00010004 a9df0004 014ac01e 00000200 010004a9 df000401 4bc01e00 00020001 0004a9df 0004014c c01e0000 02000100 04a9df00 04014dc0 1e000002 00010004 a9df0004 0141c01e 00000200 010004a9 df000401 48c01e00 00020001 0004a9df 00040142 c01e0000 02000100 04a9df00 040143c0 1e000002 00010004 a9df0004 0144c01e c01c0001 00010009 29a00004 c0cbe60a c03b0001 00010009 2c0f0004 c0249411 c04a0001 00010009 29a00004 c00505f1 c0590001 00010009 29a00004 c0702404 c0680001 00010005 fb5f0004 c629000a c0770001 00010005 fb5f0004 c1000e81 c0860001 00010005 fb5f0004 c620400c c0950001 00010005 fb5f0004 ca0c1b21 c0a40001 00010009 29a00004 c6290004 c0b30001 00010009 29a00004 803f0235 c0c20001 00010009 29a00004 8009006b c0d10001 00010009 29a00004 c021040c c0e00001 00010009 29a00004 80080a5a. +0.002235 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000583 select max=5 rfds=[4] wfds=[] efds=[] to=1.966566 select=1 rfds=[4] wfds=[] efds=[] +0.014201 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228180 00010001 000d000d 00000600 01000006 00010000 d445003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 51800000 02000100 04a9df00 040145c0 1e000002 00010004 a9df0004 0149c01e 00000200 010004a9 df000401 46c01e00 00020001 0004a9df 00040147 c01e0000 02000100 04a9df00 04014ac0 1e000002 00010004 a9df0004 014bc01e 00000200 010004a9 df000401 4cc01e00 00020001 0004a9df 0004014d c01e0000 02000100 04a9df00 02c01c00 00020001 0004a9df 00040148 c01e0000 02000100 04a9df00 040142c0 1e000002 00010004 a9df0004 0143c01e 00000200 010004a9 df000401 44c01ec0 65000100 01000929 a00004c0 cbe60ac0 74000100 0100092c 0f0004c0 249411c0 83000100 01000929 a00004c0 0505f1c0 92000100 01000929 a00004c0 702404c0 a1000100 010005fb 5f0004c6 29000ac0 b0000100 010005fb 5f0004c1 000e81c0 bf000100 010005fb 5f0004c6 20400cc0 ce000100 010005fb 5f0004ca 0c1b21c0 1c000100 01000929 a00004c6 290004c0 ea000100 01000929 a0000480 3f0235c0 f9000100 01000929 a0000480 09006bc1 08000100 01000929 a00004c0 21040cc1 17000100 01000929 a0000480 080a5a. +0.002439 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000260 select max=5 rfds=[4] wfds=[] efds=[] to=1.949666 select=1 rfds=[4] wfds=[] efds=[] +0.048060 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8180 0001000d 0000000d 00000200 01000002 00010004 a9df0014 01490c52 4f4f542d 53455256 45525303 4e455400 00000200 010004a9 df000401 46c01e00 00020001 0004a9df 00040147 c01e0000 02000100 04a9df00 04014ac0 1e000002 00010004 a9df0004 014bc01e 00000200 010004a9 df000401 4cc01e00 00020001 0004a9df 0004014d c01e0000 02000100 04a9df00 040141c0 1e000002 00010004 a9df0004 0148c01e 00000200 010004a9 df000401 42c01e00 00020001 0004a9df 00040143 c01e0000 02000100 04a9df00 040144c0 1e000002 00010004 a9df0004 0145c01e c01c0001 00010009 2c0f0004 c0249411 c03b0001 00010009 29a00004 c00505f1 c04a0001 00010009 29a00004 c0702404 c0590001 00010005 fb5f0004 c629000a c0680001 00010005 fb5f0004 c1000e81 c0770001 00010005 fb5f0004 c620400c c0860001 00010005 fb5f0004 ca0c1b21 c0950001 00010009 29a00004 c6290004 c0a40001 00010009 29a00004 803f0235 c0b30001 00010009 29a00004 8009006b c0c20001 00010009 29a00004 c021040c c0d10001 00010009 29a00004 80080a5a c0e00001 00010009 29a00004 c0cbe60a. +0.008066 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.001199 select max=5 rfds=[4] wfds=[] efds=[] to=1.892341 select=1 rfds=[4] wfds=[] efds=[] +0.051265 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010001 000d000d 00000600 01000006 00010000 c9a7003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 51800000 02000100 04a9df00 040149c0 1e000002 00010004 a9df0004 0146c01e 00000200 010004a9 df000401 47c01e00 00020001 0004a9df 0004014a c01e0000 02000100 04a9df00 04014bc0 1e000002 00010004 a9df0004 014cc01e 00000200 010004a9 df000401 4dc01e00 00020001 0004a9df 0002c01c 00000200 010004a9 df000401 48c01e00 00020001 0004a9df 00040142 c01e0000 02000100 04a9df00 040143c0 1e000002 00010004 a9df0004 0144c01e 00000200 010004a9 df000401 45c01ec0 65000100 0100092c 0f0004c0 249411c0 74000100 01000929 a00004c0 0505f1c0 83000100 01000929 a00004c0 702404c0 92000100 010005fb 5f0004c6 29000ac0 a1000100 010005fb 5f0004c1 000e81c0 b0000100 010005fb 5f0004c6 20400cc0 bf000100 010005fb 5f0004ca 0c1b21c0 1c000100 01000929 a00004c6 290004c0 db000100 01000929 a0000480 3f0235c0 ea000100 01000929 a0000480 09006bc0 f9000100 01000929 a00004c0 21040cc1 08000100 01000929 a0000480 080a5ac1 17000100 01000929 a00004c0 cbe60a. +0.002462 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000257 select max=5 rfds=[4] wfds=[] efds=[] to=1.838357 select=1 rfds=[4] wfds=[] efds=[] +0.022221 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31308180 0001000d 0000000d 00000200 01000002 00010004 a9df0014 01460c52 4f4f542d 53455256 45525303 4e455400 00000200 010004a9 df000401 47c01e00 00020001 0004a9df 0004014a c01e0000 02000100 04a9df00 04014bc0 1e000002 00010004 a9df0004 014cc01e 00000200 010004a9 df000401 4dc01e00 00020001 0004a9df 00040141 c01e0000 02000100 04a9df00 040148c0 1e000002 00010004 a9df0004 0142c01e 00000200 010004a9 df000401 43c01e00 00020001 0004a9df 00040144 c01e0000 02000100 04a9df00 040145c0 1e000002 00010004 a9df0004 0149c01e c01c0001 00010009 29a00004 c00505f1 c03b0001 00010009 29a00004 c0702404 c04a0001 00010005 fb5f0004 c629000a c0590001 00010005 fb5f0004 c1000e81 c0680001 00010005 fb5f0004 c620400c c0770001 00010005 fb5f0004 ca0c1b21 c0860001 00010009 29a00004 c6290004 c0950001 00010009 29a00004 803f0235 c0a40001 00010009 29a00004 8009006b c0b30001 00010009 29a00004 c021040c c0c20001 00010009 29a00004 80080a5a c0d10001 00010009 29a00004 c0cbe60a c0e00001 00010009 2c0f0004 c0249411. +0.002373 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000502 select max=5 rfds=[4] wfds=[] efds=[] to=1.813261 select=1 rfds=[4] wfds=[] efds=[] +0.014045 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31328180 00010001 000d000d 00000600 01000006 00010000 bf91003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 51800000 02000100 04a9df00 040146c0 1e000002 00010004 a9df0004 0147c01e 00000200 010004a9 df000401 4ac01e00 00020001 0004a9df 0004014b c01e0000 02000100 04a9df00 04014cc0 1e000002 00010004 a9df0004 014dc01e 00000200 010004a9 df0002c0 1c000002 00010004 a9df0004 0148c01e 00000200 010004a9 df000401 42c01e00 00020001 0004a9df 00040143 c01e0000 02000100 04a9df00 040144c0 1e000002 00010004 a9df0004 0145c01e 00000200 010004a9 df000401 49c01ec0 65000100 01000929 a00004c0 0505f1c0 74000100 01000929 a00004c0 702404c0 83000100 010005fb 5f0004c6 29000ac0 92000100 010005fb 5f0004c1 000e81c0 a1000100 010005fb 5f0004c6 20400cc0 b0000100 010005fb 5f0004ca 0c1b21c0 1c000100 01000929 a00004c6 290004c0 cc000100 01000929 a0000480 3f0235c0 db000100 01000929 a0000480 09006bc0 ea000100 01000929 a00004c0 21040cc0 f9000100 01000929 a0000480 080a5ac1 08000100 01000929 a00004c0 cbe60ac1 17000100 0100092c 0f0004c0 249411. +0.002429 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000266 select max=5 rfds=[4] wfds=[] efds=[] to=1.796521 select=1 rfds=[4] wfds=[] efds=[] +0.054212 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313a8180 0001000d 0000000d 00000200 01000002 00010004 a9df0014 01470c52 4f4f542d 53455256 45525303 4e455400 00000200 010004a9 df000401 4ac01e00 00020001 0004a9df 0004014b c01e0000 02000100 04a9df00 04014cc0 1e000002 00010004 a9df0004 014dc01e 00000200 010004a9 df000401 41c01e00 00020001 0004a9df 00040148 c01e0000 02000100 04a9df00 040142c0 1e000002 00010004 a9df0004 0143c01e 00000200 010004a9 df000401 44c01e00 00020001 0004a9df 00040145 c01e0000 02000100 04a9df00 040149c0 1e000002 00010004 a9df0004 0146c01e c01c0001 00010009 29a00004 c0702404 c03b0001 00010005 fb5f0004 c629000a c04a0001 00010005 fb5f0004 c1000e81 c0590001 00010005 fb5f0004 c620400c c0680001 00010005 fb5f0004 ca0c1b21 c0770001 00010009 29a00004 c6290004 c0860001 00010009 29a00004 803f0235 c0950001 00010009 29a00004 8009006b c0a40001 00010009 29a00004 c021040c c0b30001 00010009 29a00004 80080a5a c0c20001 00010009 29a00004 c0cbe60a c0d10001 00010009 2c0f0004 c0249411 c0e00001 00010009 29a00004 c00505f1. +0.002233 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.001175 select max=5 rfds=[4] wfds=[] efds=[] to=1.738901 select=1 rfds=[4] wfds=[] efds=[] +0.025228 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313d8180 00010001 000d000d 00000600 01000006 00010000 b5fc003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 51800000 02000100 04a9df00 040147c0 1e000002 00010004 a9df0004 014ac01e 00000200 010004a9 df000401 4bc01e00 00020001 0004a9df 0004014c c01e0000 02000100 04a9df00 04014dc0 1e000002 00010004 a9df0002 c01c0000 02000100 04a9df00 040148c0 1e000002 00010004 a9df0004 0142c01e 00000200 010004a9 df000401 43c01e00 00020001 0004a9df 00040144 c01e0000 02000100 04a9df00 040145c0 1e000002 00010004 a9df0004 0149c01e 00000200 010004a9 df000401 46c01ec0 65000100 01000929 a00004c0 702404c0 74000100 010005fb 5f0004c6 29000ac0 83000100 010005fb 5f0004c1 000e81c0 92000100 010005fb 5f0004c6 20400cc0 a1000100 010005fb 5f0004ca 0c1b21c0 1c000100 01000929 a00004c6 290004c0 bd000100 01000929 a0000480 3f0235c0 cc000100 01000929 a0000480 09006bc0 db000100 01000929 a00004c0 21040cc0 ea000100 01000929 a0000480 080a5ac0 f9000100 01000929 a00004c0 cbe60ac1 08000100 0100092c 0f0004c0 249411c1 17000100 01000929 a00004c0 0505f1. +0.002484 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000259 select max=5 rfds=[4] wfds=[] efds=[] to=1.710930 select=0 rfds=[] wfds=[] efds=[] +2.-273743 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 00000100 01. sendto=17 +0.001383 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 00000500 01. sendto=17 +0.001121 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 00000c00 01. sendto=17 +0.000743 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 00000d00 01. sendto=17 +0.000688 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 00000f00 01. sendto=17 +0.000684 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 00001000 01. sendto=17 +0.000683 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 00001100 01. sendto=17 +0.000683 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 00000100 01. sendto=17 +0.001364 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 00000f00 01. sendto=17 +0.000681 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 00001100 01. sendto=17 +0.000684 sendto fd=4 addr=172.18.45.6:53 312f0100 00010000 00000000 00000100 01. sendto=17 +0.000733 sendto fd=4 addr=172.18.45.6:53 31310100 00010000 00000000 00000500 01. sendto=17 +0.000710 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31330100 00010000 00000000 00000c00 01. sendto=17 +0.000723 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 00000d00 01. sendto=17 +0.000688 sendto fd=4 addr=172.18.45.6:53 31350100 00010000 00000000 00000f00 01. sendto=17 +0.000685 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 00001000 01. sendto=17 +0.000685 sendto fd=4 addr=172.18.45.6:53 31370100 00010000 00000000 00001100 01. sendto=17 +0.000687 sendto fd=4 addr=172.18.45.6:53 31390100 00010000 00000000 00000100 01. sendto=17 +0.001366 sendto fd=4 addr=172.18.45.6:53 313c0100 00010000 00000000 00000f00 01. sendto=17 +0.000825 sendto fd=4 addr=172.18.45.6:53 313e0100 00010000 00000000 00001100 01. sendto=17 +0.000681 select max=5 rfds=[4] wfds=[] efds=[] to=1.983502 select=0 rfds=[] wfds=[] efds=[] +2.-06971 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 00000100 01. sendto=17 +0.001460 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 00000500 01. sendto=17 +0.001113 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 00000c00 01. sendto=17 +0.000732 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 00000d00 01. sendto=17 +0.000691 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 00000f00 01. sendto=17 +0.000684 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 00001000 01. sendto=17 +0.000688 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 00001100 01. sendto=17 +0.000688 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 00000100 01. sendto=17 +0.001370 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 00000f00 01. sendto=17 +0.000716 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 00001100 01. sendto=17 +0.000687 sendto fd=4 addr=172.18.45.6:53 312f0100 00010000 00000000 00000100 01. sendto=17 +0.000682 sendto fd=4 addr=172.18.45.6:53 31310100 00010000 00000000 00000500 01. sendto=17 +0.000709 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31330100 00010000 00000000 00000c00 01. sendto=17 +0.000720 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 00000d00 01. sendto=17 +0.000689 sendto fd=4 addr=172.18.45.6:53 31350100 00010000 00000000 00000f00 01. sendto=17 +0.000686 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 00001000 01. sendto=17 +0.000683 sendto fd=4 addr=172.18.45.6:53 31370100 00010000 00000000 00001100 01. sendto=17 +0.000687 sendto fd=4 addr=172.18.45.6:53 31390100 00010000 00000000 00000100 01. sendto=17 +0.001387 sendto fd=4 addr=172.18.45.6:53 313c0100 00010000 00000000 00000f00 01. sendto=17 +0.000683 sendto fd=4 addr=172.18.45.6:53 313e0100 00010000 00000000 00001100 01. sendto=17 +0.000682 select max=5 rfds=[4] wfds=[] efds=[] to=1.983562 select=0 rfds=[] wfds=[] efds=[] +2.-06911 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 00000100 01. sendto=17 +0.001256 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 00000500 01. sendto=17 +0.000762 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 00000c00 01. sendto=17 +0.000685 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 00000d00 01. sendto=17 +0.000686 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 00000f00 01. sendto=17 +0.000680 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 00001000 01. sendto=17 +0.000680 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 00001100 01. sendto=17 +0.000680 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 00000100 01. sendto=17 +0.001397 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 00000f00 01. sendto=17 +0.000683 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 00001100 01. sendto=17 +0.000800 sendto fd=4 addr=172.18.45.6:53 312f0100 00010000 00000000 00000100 01. sendto=17 +0.000684 sendto fd=4 addr=172.18.45.6:53 31310100 00010000 00000000 00000500 01. sendto=17 +0.000689 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31330100 00010000 00000000 00000c00 01. sendto=17 +0.000742 sendto fd=4 addr=172.18.45.6:53 31340100 00010000 00000000 00000d00 01. sendto=17 +0.000690 sendto fd=4 addr=172.18.45.6:53 31350100 00010000 00000000 00000f00 01. sendto=17 +0.002905 sendto fd=4 addr=172.18.45.6:53 31360100 00010000 00000000 00001000 01. sendto=17 +0.000746 sendto fd=4 addr=172.18.45.6:53 31370100 00010000 00000000 00001100 01. sendto=17 +0.000721 sendto fd=4 addr=172.18.45.6:53 31390100 00010000 00000000 00000100 01. sendto=17 +0.001361 sendto fd=4 addr=172.18.45.6:53 313c0100 00010000 00000000 00000f00 01. sendto=17 +0.000679 sendto fd=4 addr=172.18.45.6:53 313e0100 00010000 00000000 00001100 01. sendto=17 +0.000678 select max=5 rfds=[4] wfds=[] efds=[] to=1.981795 select=1 rfds=[4] wfds=[] efds=[] +0.010527 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238180 00010000 00010000 00000c00 01000006 00010000 0258003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000578 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000147 select max=5 rfds=[4] wfds=[] efds=[] to=1.970543 select=1 rfds=[4] wfds=[] efds=[] +0.014036 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298180 00010000 00010000 00000100 01000006 00010000 0258003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000625 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000126 select max=5 rfds=[4] wfds=[] efds=[] to=1.955756 select=1 rfds=[4] wfds=[] efds=[] +0.023928 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312f8180 00010000 00010000 00000100 01000006 00010000 0258003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000572 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000147 select max=5 rfds=[4] wfds=[] efds=[] to=1.931109 select=1 rfds=[4] wfds=[] efds=[] +0.004638 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31338180 00010000 00010000 00000c00 01000006 00010000 0258003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000569 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000120 select max=5 rfds=[4] wfds=[] efds=[] to=1.925782 select=1 rfds=[4] wfds=[] efds=[] +0.003203 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31348180 00010000 00010000 00000d00 01000006 00010000 0258003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000598 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000341 select max=5 rfds=[4] wfds=[] efds=[] to=1.921640 select=1 rfds=[4] wfds=[] efds=[] +0.024117 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31398180 00010000 00010000 00000100 01000006 00010000 0258003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000570 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.004905 select max=5 rfds=[4] wfds=[] efds=[] to=1.892048 select=1 rfds=[4] wfds=[] efds=[] +0.002074 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313c8180 00010000 00010000 00000f00 01000006 00010000 0258003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000566 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000121 select max=5 rfds=[4] wfds=[] efds=[] to=1.889287 select=1 rfds=[4] wfds=[] efds=[] +0.160358 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313e8180 00010000 00010000 00001100 01000006 00010000 0258003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000591 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000127 select max=5 rfds=[4] wfds=[] efds=[] to=1.728211 select=1 rfds=[4] wfds=[] efds=[] +1.-133482 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010000 00010000 00000100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000623 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000132 select max=5 rfds=[4] wfds=[] efds=[] to=0.860938 select=1 rfds=[4] wfds=[] efds=[] +0.028946 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010000 00010000 00000500 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000593 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000124 select max=5 rfds=[4] wfds=[] efds=[] to=0.831275 select=1 rfds=[4] wfds=[] efds=[] +0.039651 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238580 00010000 00010000 00000c00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000624 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000160 select max=5 rfds=[4] wfds=[] efds=[] to=0.790840 select=1 rfds=[4] wfds=[] efds=[] +0.029121 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248580 00010000 00010000 00000d00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000596 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000124 select max=5 rfds=[4] wfds=[] efds=[] to=0.760999 select=1 rfds=[4] wfds=[] efds=[] +0.162355 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268580 00010000 00010000 00001000 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000596 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000155 select max=5 rfds=[4] wfds=[] efds=[] to=0.597893 select=1 rfds=[4] wfds=[] efds=[] +0.027725 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278580 00010000 00010000 00001100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000589 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000124 select max=5 rfds=[4] wfds=[] efds=[] to=0.569455 select=1 rfds=[4] wfds=[] efds=[] +0.027796 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298580 00010000 00010000 00000100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000716 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000199 select max=5 rfds=[4] wfds=[] efds=[] to=0.540744 select=1 rfds=[4] wfds=[] efds=[] +0.028676 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8580 00010000 00010000 00000f00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000588 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000122 select max=5 rfds=[4] wfds=[] efds=[] to=0.511358 select=1 rfds=[4] wfds=[] efds=[] +0.029928 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8580 00010000 00010000 00000c00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000588 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000211 select max=5 rfds=[4] wfds=[] efds=[] to=0.480631 select=1 rfds=[4] wfds=[] efds=[] +0.039073 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8580 00010000 00010000 00001100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000777 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000144 select max=5 rfds=[4] wfds=[] efds=[] to=0.440637 select=1 rfds=[4] wfds=[] efds=[] +0.028603 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31318580 00010000 00010000 00000500 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000583 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000123 select max=5 rfds=[4] wfds=[] efds=[] to=0.411328 select=1 rfds=[4] wfds=[] efds=[] +0.028684 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312f8580 00010000 00010000 00000100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000603 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000152 select max=5 rfds=[4] wfds=[] efds=[] to=0.381889 select=1 rfds=[4] wfds=[] efds=[] +0.029562 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258580 00010000 00010000 00000f00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000584 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000124 select max=5 rfds=[4] wfds=[] efds=[] to=0.361302 select=1 rfds=[4] wfds=[] efds=[] +0.029558 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31338580 00010000 00010000 00000c00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000618 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000151 select max=5 rfds=[4] wfds=[] efds=[] to=0.330975 select=1 rfds=[4] wfds=[] efds=[] +0.039234 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31378580 00010000 00010000 00001100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000585 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000124 select max=5 rfds=[4] wfds=[] efds=[] to=0.291032 select=1 rfds=[4] wfds=[] efds=[] +0.029095 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238580 00010000 00010000 00000c00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000602 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000180 select max=5 rfds=[4] wfds=[] efds=[] to=0.261155 select=1 rfds=[4] wfds=[] efds=[] +0.029292 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31348580 00010000 00010000 00000d00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000601 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000149 select max=5 rfds=[4] wfds=[] efds=[] to=0.231113 select=1 rfds=[4] wfds=[] efds=[] +1.-967500 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31368580 00010000 00010000 00001000 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000602 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000153 select max=5 rfds=[4] wfds=[] efds=[] to=0.197858 select=1 rfds=[4] wfds=[] efds=[] +0.026021 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31398580 00010000 00010000 00000100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000599 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000150 select max=5 rfds=[4] wfds=[] efds=[] to=0.171088 select=1 rfds=[4] wfds=[] efds=[] +0.039664 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 313b8580 00010000 00010000 00000c00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000600 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000172 select max=5 rfds=[4] wfds=[] efds=[] to=0.130652 select=1 rfds=[4] wfds=[] efds=[] +0.029223 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31358580 00010000 00010000 00000f00 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303 4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c02b7726 f4400000 07080000 03840009 3a800001 5180. +0.000583 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000127 close fd=4 close=OK +0.000982 adns-1.5.0~rc1/regress/case-longdomsrch1.out0000664000175000017500000000121712421042026017056 0ustar ianianadns debug: using nameserver 172.18.45.6 0rndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk flags 1 type 1 A(-) submitted 0rndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk flags 1 type A(-): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 rc=0 adns-1.5.0~rc1/regress/case-bogus-sortlist.err0000664000175000017500000000004112421042026017431 0ustar ianianadns failure: init: errno=EINVAL adns-1.5.0~rc1/regress/case-ptr-aaaa.out0000664000175000017500000000051712421042026016146 0ustar ianianadns debug: using nameserver 172.29.199.224 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa flags 0 type 65548 PTR(checked) submitted 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa flags 0 type PTR(checked): OK; nrrs=1; cname=$; owner=$; ttl=14400 stratocaster.distorted.org.uk rc=0 adns-1.5.0~rc1/regress/case-aaaa-simple.err0000664000175000017500000000000012421042026016576 0ustar ianianadns-1.5.0~rc1/regress/case-manyptrwrongrem.sys0000664000175000017500000013214112422510661017747 0ustar ianianadnstest manyptrwrong -0x400 292/254.0.99.203.in-addr.arpa start 933286859.476326 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000271 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000083 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000062 sendto fd=4 addr=140.200.128.13:53 311f0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 010001. sendto=43 +0.001694 sendto fd=4 addr=140.200.128.13:53 31200100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 020001. sendto=43 +0.001119 sendto fd=4 addr=140.200.128.13:53 31210100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 050001. sendto=43 +0.001130 sendto fd=4 addr=140.200.128.13:53 31220100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 060001. sendto=43 +0.001150 sendto fd=4 addr=140.200.128.13:53 31230100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.001229 sendto fd=4 addr=140.200.128.13:53 31240100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0d0001. sendto=43 +0.001161 sendto fd=4 addr=140.200.128.13:53 31250100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.001179 sendto fd=4 addr=140.200.128.13:53 31260100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 100001. sendto=43 +0.001152 sendto fd=4 addr=140.200.128.13:53 31270100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 110001. sendto=43 +0.001143 sendto fd=4 addr=140.200.128.13:53 31290100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 010001. sendto=43 +0.001191 sendto fd=4 addr=140.200.128.13:53 312a0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 020001. sendto=43 +0.001150 sendto fd=4 addr=140.200.128.13:53 312b0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.001220 sendto fd=4 addr=140.200.128.13:53 312c0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.001148 sendto fd=4 addr=140.200.128.13:53 312d0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 060001. sendto=43 +0.001183 sendto fd=4 addr=140.200.128.13:53 312e0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 110001. sendto=43 +0.001193 select max=5 rfds=[4] wfds=[] efds=[] to=1.981958 select=1 rfds=[4] wfds=[] efds=[] +0.502250 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 311f8500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 01000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.001383 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000487 select max=5 rfds=[4] wfds=[] efds=[] to=1.479532 select=1 rfds=[4] wfds=[] efds=[] +1.-892259 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31218500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 05000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000890 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000419 select max=5 rfds=[4] wfds=[] efds=[] to=1.370482 select=1 rfds=[4] wfds=[] efds=[] +0.038604 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31228500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 06000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000852 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000399 select max=5 rfds=[4] wfds=[] efds=[] to=1.330627 select=1 rfds=[4] wfds=[] efds=[] +0.038734 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31208500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 02000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000835 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000354 select max=5 rfds=[4] wfds=[] efds=[] to=1.294103 select=1 rfds=[4] wfds=[] efds=[] +0.038824 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31248500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0d000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000863 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000406 select max=5 rfds=[4] wfds=[] efds=[] to=1.254010 select=1 rfds=[4] wfds=[] efds=[] +0.129111 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31238300 00010013 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000151 80001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 00015180 00080574 65747261 c043c00c 000c0001 00015180 000d046d 61696c05 61676174 65c043c0 0c000c00 01000151 80000502 6e73c06f c00c000c 00010001 51800013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 01000151 80001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 01000151 80001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 01518000 0a07626f 75717565 74c043c0 0c000c00 01000151 8000100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 01000151 80000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 00015180 000c046d 61696c04 6e657275 c043c00c 000c0001 00015180 0002c03a c00c000c 00010001 51800010 026e730a 73746f72 65776174 6368c043 c00c000c 00010001 51800002 c0d2c00c 000c0001 00015180 0005026e 73c056c0 0c000c00 01000151 80000704 6d61696c c056c00c 000c0001 00015180 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 00015180 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 01518000 06036263 63c043. +0.003324 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.001351 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000068 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000060 connect fd=5 addr=140.200.128.13:53 connect=EINPROGRESS +0.000280 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000124 select max=6 rfds=[4] wfds=[5] efds=[] to=1.122082 select=1 rfds=[4] wfds=[] efds=[] +0.034396 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31268500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 10000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000862 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000377 select max=6 rfds=[4] wfds=[5] efds=[] to=1.086447 select=1 rfds=[4] wfds=[] efds=[] +0.038752 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31258500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000842 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000365 select max=6 rfds=[4] wfds=[5] efds=[] to=1.048819 select=1 rfds=[4] wfds=[] efds=[] +0.038761 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31278500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 11000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000834 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000362 select max=6 rfds=[4] wfds=[5] efds=[] to=1.010005 select=1 rfds=[4] wfds=[] efds=[] +0.038783 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31298500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 01000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000832 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000411 select max=6 rfds=[4] wfds=[5] efds=[] to=0.971170 select=1 rfds=[4] wfds=[] efds=[] +0.139078 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 312b8300 00010013 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000151 80001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 00015180 00080574 65747261 c043c00c 000c0001 00015180 000d046d 61696c05 61676174 65c043c0 0c000c00 01000151 80000502 6e73c06f c00c000c 00010001 51800013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 01000151 80001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 01000151 80001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 01518000 0a07626f 75717565 74c043c0 0c000c00 01000151 8000100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 01000151 80000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 00015180 000c046d 61696c04 6e657275 c043c00c 000c0001 00015180 0002c03a c00c000c 00010001 51800010 026e730a 73746f72 65776174 6368c043 c00c000c 00010001 51800002 c0d2c00c 000c0001 00015180 0005026e 73c056c0 0c000c00 01000151 80000704 6d61696c c056c00c 000c0001 00015180 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 00015180 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 01518000 06036263 63c043. +0.002995 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000416 select max=6 rfds=[4] wfds=[5] efds=[] to=0.828681 select=1 rfds=[4] wfds=[] efds=[] +0.036200 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 312c8500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000832 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000371 select max=6 rfds=[4] wfds=[5] efds=[] to=0.791278 select=1 rfds=[4] wfds=[] efds=[] +0.038747 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 312a8500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 02000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000836 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000364 select max=6 rfds=[4] wfds=[5] efds=[] to=0.754849 select=1 rfds=[4] wfds=[] efds=[] +0.038774 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 312d8500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 06000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000832 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000430 select max=6 rfds=[4] wfds=[5] efds=[] to=0.715996 select=1 rfds=[4] wfds=[] efds=[] +0.038729 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 312e8500 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 11000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000837 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000373 select max=6 rfds=[4] wfds=[5] efds=[] to=13.539402 select=1 rfds=[] wfds=[5] efds=[] +0.008807 read fd=5 buflen=1 read=EAGAIN +0.000213 write fd=5 002b3123 01000001 00000000 00000332 35340130 02393903 32303307 696e2d61 64647204 61727061 00000c00 01. write=45 +0.000894 write fd=5 002b312b 01000001 00000000 00000332 35340130 02393903 32303307 696e2d61 64647204 61727061 00000c00 01. write=45 +0.000449 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.529039 select=1 rfds=[5] wfds=[] efds=[] +1.-90216 read fd=5 buflen=2 read=OK 097f. +0.000334 read fd=5 buflen=2431 read=OK 31238500 0001005e 00020002 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000151 80001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 00015180 00080574 65747261 c043c00c 000c0001 00015180 000d046d 61696c05 61676174 65c043c0 0c000c00 01000151 80000502 6e73c06f c00c000c 00010001 51800013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 01000151 80001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 01000151 80001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 01518000 0a07626f 75717565 74c043c0 0c000c00 01000151 8000100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 01000151 80000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 00015180 000c046d 61696c04 6e657275 c043c00c 000c0001 00015180 0002c03a c00c000c 00010001 51800010 026e730a 73746f72 65776174 6368c043 c00c000c 00010001 51800002 c0d2c00c 000c0001 00015180 0005026e 73c056c0 0c000c00 01000151 80000704 6d61696c c056c00c 000c0001 00015180 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 00015180 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 01518000 06036263 63c043c0 0c000c00 01000151 80000b08 73656375 72697479 c128c00c 000c0001 00015180 00100d62 7572676c 6172616c 61726d73 c043c00c 000c0001 00015180 000b026e 73057361 666573c0 43c00c00 0c000100 01518000 05026e73 c1f7c00c 000c0001 00015180 00131063 6f757065 72636f6e 73756c74 696e67c0 43c00c00 0c000100 01518000 110e7365 63757269 74796775 61726473 c043c00c 000c0001 00015180 000c026e 73066775 61726473 c043c00c 000c0001 00015180 00070461 736973c1 28c00c00 0c000100 01518000 02c13fc0 0c000c00 01000151 800002c0 b6c00c00 0c000100 01518000 08056d61 676963c0 43c00c00 0c000100 01518000 07046d61 696cc1e5 c00c000c 00010001 51800005 026e73c1 03c00c00 0c000100 01518000 02c122c0 0c000c00 01000151 80000502 6e73c0ed c00c000c 00010001 51800007 046d6169 6cc22dc0 0c000c00 01000151 80000502 6e73c1e5 c00c000c 00010001 51800005 026e73c2 0ec00c00 0c000100 01518000 05026e73 c271c00c 000c0001 00015180 00100d63 6f766572 7463616d 65726173 c043c00c 000c0001 00015180 0005026e 73c13fc0 0c000c00 01000151 80001302 6e730d63 6f766572 7463616d 65726173 c043c00c 000c0001 00015180 000b0862 6f757175 657473c0 43c00c00 0c000100 01518000 0d0a636f 6e63656e 74726963 c043c00c 000c0001 00015180 0005026e 73c094c0 0c000c00 01000151 80000704 6d61696c c252c00c 000c0001 00015180 00110e72 65746169 6c736563 75726974 79c043c0 0c000c00 01000151 80001002 6e730a63 6f6e6365 6e747269 63c043c0 0c000c00 01000151 80000d04 6d61696c 056d6167 6963c043 c00c000c 00010001 5180000c 096e7a61 6e676c69 6e67c043 c00c000c 00010001 51800005 026e73c2 52c00c00 0c000100 01518000 0f026e73 096e7a61 6e676c69 6e67c043 c00c000c 00010001 51800007 046d6169 6cc163c0 0c000c00 01000151 80000805 73776966 74c043c0 0c000c00 01000151 80001104 6d61696c 0973656c 65637469 7665c043 c00c000c 00010001 5180000f 026e7309 666f7265 66726f6e 74c043c0 0c000c00 01000151 80001104 6d61696c 096e7a61 6e676c69 6e67c043 c00c000c 00010001 51800009 06677561 726473c0 43c00c00 0c000100 01518000 11046d61 696c096e 7a646573 69676e73 c043c00c 000c0001 00015180 0002c163 c00c000c 00010001 51800018 026e7312 73656375 72697479 6d616e61 67656d65 6e74c043 c00c000c 00010001 51800012 046d6169 6c0a776f 6f6c776f 72746873 c043c00c 000c0001 00015180 0012046d 61696c0a 636f6e63 656e. +0.009121 read fd=5 buflen=973 read=EAGAIN +0.000255 select max=6 rfds=[4,5] wfds=[] efds=[5] to=28.609545 select=1 rfds=[5] wfds=[] efds=[] +1.-260444 read fd=5 buflen=973 read=OK 74726963 c043c00c 000c0001 00015180 000c0973 656c6563 74697665 c043c00c 000c0001 00015180 00181573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 00015180 000b026e 73057377 696674c0 43c00c00 0c000100 01518000 0d046d61 696c0573 77696674 c043c00c 000c0001 00015180 0013026e 73097365 63757265 6e657403 6e6574c0 46c00c00 0c000100 01518000 17147072 69766174 65696e76 65737469 67617469 6f6ec043 c00c000c 00010001 5180001a 026e7314 70726976 61746569 6e766573 74696761 74696f6e c043c00c 000c0001 00015180 00090665 74726164 65c043c0 0c000c00 01000151 80001b02 6e731573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 00015180 000e046d 61696c06 616e7365 7474c043 c00c000c 00010001 5180000e 03667470 07776172 72656e74 c043c00c 000c0001 00015180 0014026e 730e7265 7461696c 73656375 72697479 c043c00c 000c0001 00015180 001a046d 61696c12 73656375 72697479 6d616e61 67656d65 6e74c043 c00c000c 00010001 5180000b 026e7305 6d616769 63c043c0 0c000c00 01000151 80001104 6d61696c 09666f72 6566726f 6e74c043 c00c000c 00010001 51800007 046d6169 6cc1b1c0 0c000c00 01000151 800002c1 b1c00c00 0c000100 01518000 0f026e73 096e7a64 65736967 6e73c043 c00c000c 00010001 51800002 c22dc00c 000c0001 00015180 000f026e 73097365 6c656374 697665c0 43c00c00 0c000100 01518000 0c09666f 72656672 6f6e74c0 43c00c00 0c000100 01518000 15127365 63757269 74796d61 6e616765 6d656e74 c043c00c 000c0001 00015180 0002c1cd c00c000c 00010001 51800010 09736563 7572656e 6574036e 6574c046 c00c000c 00010001 5180001d 046d6169 6c157370 65636961 6c696e76 65737469 67617469 6f6e73c0 43c00c00 0c000100 01518000 0c096e7a 64657369 676e73c0 43c00c00 0c000100 01518000 0c026e73 06657472 616465c0 43c00c00 0c000100 01518000 07046d61 696cc122 c00c000c 00010001 51800007 046d6169 6cc1cdc0 0c000c00 01000151 80000a02 6e730461 736973c1 28c00c00 0c000100 01518000 0e026e73 08626f75 71756574 73c043c0 0c000c00 01000151 800002c0 6f013002 39390332 30330769 6e2d6164 64720461 72706100 00020001 00015180 0002c037 01300239 39033230 3307696e 2d616464 72046172 70610000 02000100 01518000 11036e73 31077761 696b6174 6f026163 c046c037 00010001 00015180 0004cb63 00fe036e 73310777 61696b61 746f0261 63c04600 01000100 01518000 048cc880 0d. +0.005825 read fd=5 buflen=2433 read=EAGAIN +0.018754 select max=6 rfds=[4,5] wfds=[] efds=[5] to=28.145272 select=1 rfds=[5] wfds=[] efds=[] +0.355726 read fd=5 buflen=2433 read=OK 097f312b 85000001 005e0002 00020332 35340130 02393903 32303307 696e2d61 64647204 61727061 00000c00 01c00c00 0c000100 01518000 13026e73 08736563 75726974 7902636f 026e7a00 c00c000c 00010001 51800008 05746574 7261c043 c00c000c 00010001 5180000d 046d6169 6c056167 617465c0 43c00c00 0c000100 01518000 05026e73 c06fc00c 000c0001 00015180 00131073 65637572 69747974 7261696e 696e67c0 43c00c00 0c000100 01518000 10026e73 0a676966 74626173 6b6574c0 43c00c00 0c000100 01518000 12026e73 08736563 75726974 79036765 6ec046c0 0c000c00 01000151 80000a07 626f7571 756574c0 43c00c00 0c000100 01518000 100d696e 76657374 69676174 696f6ec0 43c00c00 0c000100 01518000 0f026e73 056e7a69 7069036f 7267c046 c00c000c 00010001 5180000c 046d6169 6c046e65 7275c043 c00c000c 00010001 51800002 c03ac00c 000c0001 00015180 0010026e 730a7374 6f726577 61746368 c043c00c 000c0001 00015180 0002c0d2 c00c000c 00010001 51800005 026e73c0 56c00c00 0c000100 01518000 07046d61 696cc056 c00c000c 00010001 51800010 026e730a 73656375 72696361 7264c043 c00c000c 00010001 5180000f 026e7309 756e6465 72686f75 72c043c0 0c000c00 01000151 80000603 626363c0 43c00c00 0c000100 01518000 0b087365 63757269 7479c128 c00c000c 00010001 51800010 0d627572 676c6172 616c6172 6d73c043 c00c000c 00010001 5180000b 026e7305 73616665 73c043c0 0c000c00 01000151 80000502 6e73c1f7 c00c000c 00010001 51800013 10636f75 70657263 6f6e7375 6c74696e 67c043c0 0c000c00 01000151 8000110e 73656375 72697479 67756172 6473c043 c00c000c 00010001 5180000c 026e7306 67756172 6473c043 c00c000c 00010001 51800007 04617369 73c128c0 0c000c00 01000151 800002c1 3fc00c00 0c000100 01518000 02c0b6c0 0c000c00 01000151 80000805 6d616769 63c043c0 0c000c00 01000151 80000704 6d61696c c1e5c00c 000c0001 00015180 0005026e 73c103c0 0c000c00 01000151 800002c1 22c00c00 0c000100 01518000 05026e73 c0edc00c 000c0001 00015180 0007046d 61696cc2 2dc00c00 0c000100 01518000 05026e73 c1e5c00c 000c0001 00015180 0005026e 73c20ec0 0c000c00 01000151 80000502 6e73c271 c00c000c 00010001 51800010 0d636f76 65727463 616d6572 6173c043 c00c000c 00010001 51800005 026e73c1 3fc00c00 0c000100 01518000 13026e73 0d636f76 65727463 616d6572 6173c043 c00c000c 00010001 5180000b 08626f75 71756574 73c043c0 0c000c00 01000151 80000d0a 636f6e63 656e7472 6963c043 c00c000c 00010001 51800005 026e73c0 94c00c00 0c000100 01518000 07046d61 696cc252 c00c000c 00010001 51800011 0e726574 61696c73 65637572 697479c0 43c00c00 0c000100 01518000 10026e73 0a636f6e 63656e74 726963c0 43c00c00 0c000100 01518000 0d046d61 696c056d 61676963 c043c00c 000c0001 00015180 000c096e 7a616e67 6c696e67 c043c00c 000c0001 00015180 0005026e 73c252c0 0c000c00 01000151 80000f02 6e73096e 7a616e67 6c696e67 c043c00c 000c0001 00015180 0007046d 61696cc1 63c00c00 0c000100 01518000 08057377 696674c0 43c00c00 0c000100 01518000 11046d61 696c0973 656c6563 74697665 c043c00c 000c0001 00015180 000f026e 7309666f 72656672 6f6e74c0 43c00c00 0c000100 01518000 11046d61 696c096e 7a616e67 6c696e67 c043c00c 000c0001 00015180 00090667 75617264 73c043c0 0c000c00 01000151 80001104 6d61696c 096e7a64 65736967 6e73c043 c00c000c 00010001 51800002 c163c00c 000c0001 00015180 0018026e 73127365 63757269 74796d61 6e616765 6d656e74 c043c00c 000c0001 00015180 0012046d 61696c0a 776f6f6c 776f7274 6873c043 c00c000c 00010001 51800012 046d6169 6c0a636f 6e63656e. +0.008610 read fd=5 buflen=973 read=EAGAIN +0.000242 select max=6 rfds=[4,5] wfds=[] efds=[5] to=27.780694 select=1 rfds=[5] wfds=[] efds=[] +1.-129629 read fd=5 buflen=973 read=OK 74726963 c043c00c 000c0001 00015180 000c0973 656c6563 74697665 c043c00c 000c0001 00015180 00181573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 00015180 000b026e 73057377 696674c0 43c00c00 0c000100 01518000 0d046d61 696c0573 77696674 c043c00c 000c0001 00015180 0013026e 73097365 63757265 6e657403 6e6574c0 46c00c00 0c000100 01518000 17147072 69766174 65696e76 65737469 67617469 6f6ec043 c00c000c 00010001 5180001a 026e7314 70726976 61746569 6e766573 74696761 74696f6e c043c00c 000c0001 00015180 00090665 74726164 65c043c0 0c000c00 01000151 80001b02 6e731573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 00015180 000e046d 61696c06 616e7365 7474c043 c00c000c 00010001 5180000e 03667470 07776172 72656e74 c043c00c 000c0001 00015180 0014026e 730e7265 7461696c 73656375 72697479 c043c00c 000c0001 00015180 001a046d 61696c12 73656375 72697479 6d616e61 67656d65 6e74c043 c00c000c 00010001 5180000b 026e7305 6d616769 63c043c0 0c000c00 01000151 80001104 6d61696c 09666f72 6566726f 6e74c043 c00c000c 00010001 51800007 046d6169 6cc1b1c0 0c000c00 01000151 800002c1 b1c00c00 0c000100 01518000 0f026e73 096e7a64 65736967 6e73c043 c00c000c 00010001 51800002 c22dc00c 000c0001 00015180 000f026e 73097365 6c656374 697665c0 43c00c00 0c000100 01518000 0c09666f 72656672 6f6e74c0 43c00c00 0c000100 01518000 15127365 63757269 74796d61 6e616765 6d656e74 c043c00c 000c0001 00015180 0002c1cd c00c000c 00010001 51800010 09736563 7572656e 6574036e 6574c046 c00c000c 00010001 5180001d 046d6169 6c157370 65636961 6c696e76 65737469 67617469 6f6e73c0 43c00c00 0c000100 01518000 0c096e7a 64657369 676e73c0 43c00c00 0c000100 01518000 0c026e73 06657472 616465c0 43c00c00 0c000100 01518000 07046d61 696cc122 c00c000c 00010001 51800007 046d6169 6cc1cdc0 0c000c00 01000151 80000a02 6e730461 736973c1 28c00c00 0c000100 01518000 0e026e73 08626f75 71756574 73c043c0 0c000c00 01000151 800002c0 6f013002 39390332 30330769 6e2d6164 64720461 72706100 00020001 00015180 0002c037 01300239 39033230 3307696e 2d616464 72046172 70610000 02000100 01518000 11036e73 31077761 696b6174 6f026163 c046c037 00010001 00015180 0004cb63 00fe036e 73310777 61696b61 746f0261 63c04600 01000100 01518000 048cc880 0d. +0.005848 sendto fd=4 addr=140.200.128.13:53 312f0100 00010000 00000000 026e7308 73656375 72697479 02636f02 6e7a0000 010001. sendto=35 +0.002592 sendto fd=4 addr=140.200.128.13:53 31300100 00010000 00000000 05746574 72610263 6f026e7a 00000100 01. sendto=29 +0.000963 sendto fd=4 addr=140.200.128.13:53 31310100 00010000 00000000 046d6169 6c056167 61746502 636f026e 7a000001 0001. sendto=34 +0.000973 sendto fd=4 addr=140.200.128.13:53 31320100 00010000 00000000 026e7305 61676174 6502636f 026e7a00 00010001. sendto=32 +0.000977 sendto fd=4 addr=140.200.128.13:53 31330100 00010000 00000000 10736563 75726974 79747261 696e696e 6702636f 026e7a00 00010001. sendto=40 +0.001007 sendto fd=4 addr=140.200.128.13:53 31340100 00010000 00000000 026e730a 67696674 6261736b 65740263 6f026e7a 00000100 01. sendto=37 +0.001027 sendto fd=4 addr=140.200.128.13:53 31350100 00010000 00000000 026e7308 73656375 72697479 0367656e 026e7a00 00010001. sendto=36 +0.000989 sendto fd=4 addr=140.200.128.13:53 31360100 00010000 00000000 07626f75 71756574 02636f02 6e7a0000 010001. sendto=31 +0.000946 sendto fd=4 addr=140.200.128.13:53 31370100 00010000 00000000 0d696e76 65737469 67617469 6f6e0263 6f026e7a 00000100 01. sendto=37 +0.000996 sendto fd=4 addr=140.200.128.13:53 31380100 00010000 00000000 026e7305 6e7a6970 69036f72 67026e7a 00000100 01. sendto=33 +0.000972 sendto fd=4 addr=140.200.128.13:53 31390100 00010000 00000000 046d6169 6c046e65 72750263 6f026e7a 00000100 01. sendto=33 +0.000980 sendto fd=4 addr=140.200.128.13:53 313a0100 00010000 00000000 08736563 75726974 7902636f 026e7a00 00010001. sendto=32 +0.000958 sendto fd=4 addr=140.200.128.13:53 313b0100 00010000 00000000 026e730a 73746f72 65776174 63680263 6f026e7a 00000100 01. sendto=37 +0.001038 sendto fd=4 addr=140.200.128.13:53 313c0100 00010000 00000000 08736563 75726974 79036765 6e026e7a 00000100 01. sendto=33 +0.001003 sendto fd=4 addr=140.200.128.13:53 313d0100 00010000 00000000 026e7305 74657472 6102636f 026e7a00 00010001. sendto=32 +0.000972 sendto fd=4 addr=140.200.128.13:53 313e0100 00010000 00000000 046d6169 6c057465 74726102 636f026e 7a000001 0001. sendto=34 +0.000983 sendto fd=4 addr=140.200.128.13:53 313f0100 00010000 00000000 026e730a 73656375 72696361 72640263 6f026e7a 00000100 01. sendto=37 +0.000996 sendto fd=4 addr=140.200.128.13:53 31400100 00010000 00000000 026e7309 756e6465 72686f75 7202636f 026e7a00 00010001. sendto=36 +0.000989 sendto fd=4 addr=140.200.128.13:53 31410100 00010000 00000000 03626363 02636f02 6e7a0000 010001. sendto=27 +0.000944 sendto fd=4 addr=140.200.128.13:53 31420100 00010000 00000000 08736563 75726974 79036f72 67026e7a 00000100 01. sendto=33 +0.001001 sendto fd=4 addr=140.200.128.13:53 31430100 00010000 00000000 0d627572 676c6172 616c6172 6d730263 6f026e7a 00000100 01. sendto=37 +0.001213 sendto fd=4 addr=140.200.128.13:53 31440100 00010000 00000000 026e7305 73616665 7302636f 026e7a00 00010001. sendto=32 +0.001241 sendto fd=4 addr=140.200.128.13:53 31450100 00010000 00000000 026e7308 73656375 72697479 036f7267 026e7a00 00010001. sendto=36 +0.001489 sendto fd=4 addr=140.200.128.13:53 31460100 00010000 00000000 10636f75 70657263 6f6e7375 6c74696e 6702636f 026e7a00 00010001. sendto=40 +0.001355 sendto fd=4 addr=140.200.128.13:53 31470100 00010000 00000000 0e736563 75726974 79677561 72647302 636f026e 7a000001 0001. sendto=38 +0.001389 sendto fd=4 addr=140.200.128.13:53 31480100 00010000 00000000 026e7306 67756172 64730263 6f026e7a 00000100 01. sendto=33 +0.001299 sendto fd=4 addr=140.200.128.13:53 31490100 00010000 00000000 04617369 73036f72 67026e7a 00000100 01. sendto=29 +0.001325 sendto fd=4 addr=140.200.128.13:53 314a0100 00010000 00000000 046e6572 7502636f 026e7a00 00010001. sendto=28 +0.001328 sendto fd=4 addr=140.200.128.13:53 314b0100 00010000 00000000 0a676966 74626173 6b657402 636f026e 7a000001 0001. sendto=34 +0.001356 sendto fd=4 addr=140.200.128.13:53 314c0100 00010000 00000000 056d6167 69630263 6f026e7a 00000100 01. sendto=29 +0.001307 sendto fd=4 addr=140.200.128.13:53 314d0100 00010000 00000000 046d6169 6c036263 6302636f 026e7a00 00010001. sendto=32 +0.001375 sendto fd=4 addr=140.200.128.13:53 314e0100 00010000 00000000 026e730d 696e7665 73746967 6174696f 6e02636f 026e7a00 00010001. sendto=40 +0.001386 sendto fd=4 addr=140.200.128.13:53 314f0100 00010000 00000000 056e7a69 7069036f 7267026e 7a000001 0001. sendto=30 +0.001327 sendto fd=4 addr=140.200.128.13:53 31500100 00010000 00000000 026e7307 626f7571 75657402 636f026e 7a000001 0001. sendto=34 +0.001327 sendto fd=4 addr=140.200.128.13:53 31510100 00010000 00000000 046d6169 6c057361 66657302 636f026e 7a000001 0001. sendto=34 +0.001405 sendto fd=4 addr=140.200.128.13:53 31520100 00010000 00000000 026e7303 62636302 636f026e 7a000001 0001. sendto=30 +0.001360 sendto fd=4 addr=140.200.128.13:53 31530100 00010000 00000000 026e730d 62757267 6c617261 6c61726d 7302636f 026e7a00 00010001. sendto=40 +0.001401 sendto fd=4 addr=140.200.128.13:53 31540100 00010000 00000000 026e730e 73656375 72697479 67756172 64730263 6f026e7a 00000100 01. sendto=41 +0.001460 sendto fd=4 addr=140.200.128.13:53 31550100 00010000 00000000 0d636f76 65727463 616d6572 61730263 6f026e7a 00000100 01. sendto=37 +0.001355 sendto fd=4 addr=140.200.128.13:53 31560100 00010000 00000000 026e7304 6e657275 02636f02 6e7a0000 010001. sendto=31 +0.001384 sendto fd=4 addr=140.200.128.13:53 31570100 00010000 00000000 026e730d 636f7665 72746361 6d657261 7302636f 026e7a00 00010001. sendto=40 +0.001389 sendto fd=4 addr=140.200.128.13:53 31580100 00010000 00000000 08626f75 71756574 7302636f 026e7a00 00010001. sendto=32 +0.001386 sendto fd=4 addr=140.200.128.13:53 31590100 00010000 00000000 0a636f6e 63656e74 72696302 636f026e 7a000001 0001. sendto=34 +0.001352 sendto fd=4 addr=140.200.128.13:53 315a0100 00010000 00000000 026e7310 73656375 72697479 74726169 6e696e67 02636f02 6e7a0000 010001. sendto=43 +0.001418 sendto fd=4 addr=140.200.128.13:53 315b0100 00010000 00000000 046d6169 6c10636f 75706572 636f6e73 756c7469 6e670263 6f026e7a 00000100 01. sendto=45 +0.001422 sendto fd=4 addr=140.200.128.13:53 315c0100 00010000 00000000 0e726574 61696c73 65637572 69747902 636f026e 7a000001 0001. sendto=38 +0.001320 sendto fd=4 addr=140.200.128.13:53 315d0100 00010000 00000000 026e730a 636f6e63 656e7472 69630263 6f026e7a 00000100 01. sendto=37 +0.001391 sendto fd=4 addr=140.200.128.13:53 315e0100 00010000 00000000 046d6169 6c056d61 67696302 636f026e 7a000001 0001. sendto=34 +0.001430 sendto fd=4 addr=140.200.128.13:53 315f0100 00010000 00000000 096e7a61 6e676c69 6e670263 6f026e7a 00000100 01. sendto=33 +0.001373 sendto fd=4 addr=140.200.128.13:53 31600100 00010000 00000000 026e7310 636f7570 6572636f 6e73756c 74696e67 02636f02 6e7a0000 010001. sendto=43 +0.001399 sendto fd=4 addr=140.200.128.13:53 31610100 00010000 00000000 026e7309 6e7a616e 676c696e 6702636f 026e7a00 00010001. sendto=36 +0.001403 sendto fd=4 addr=140.200.128.13:53 31620100 00010000 00000000 046d6169 6c0a7374 6f726577 61746368 02636f02 6e7a0000 010001. sendto=39 +0.001431 sendto fd=4 addr=140.200.128.13:53 31630100 00010000 00000000 05737769 66740263 6f026e7a 00000100 01. sendto=29 +0.001341 sendto fd=4 addr=140.200.128.13:53 31640100 00010000 00000000 046d6169 6c097365 6c656374 69766502 636f026e 7a000001 0001. sendto=38 +0.001383 sendto fd=4 addr=140.200.128.13:53 31650100 00010000 00000000 026e7309 666f7265 66726f6e 7402636f 026e7a00 00010001. sendto=36 +0.001398 sendto fd=4 addr=140.200.128.13:53 31660100 00010000 00000000 046d6169 6c096e7a 616e676c 696e6702 636f026e 7a000001 0001. sendto=38 +0.001396 sendto fd=4 addr=140.200.128.13:53 31670100 00010000 00000000 06677561 72647302 636f026e 7a000001 0001. sendto=30 +0.001338 sendto fd=4 addr=140.200.128.13:53 31680100 00010000 00000000 046d6169 6c096e7a 64657369 676e7302 636f026e 7a000001 0001. sendto=38 +0.001383 sendto fd=4 addr=140.200.128.13:53 31690100 00010000 00000000 0a73746f 72657761 74636802 636f026e 7a000001 0001. sendto=34 +0.001411 sendto fd=4 addr=140.200.128.13:53 316a0100 00010000 00000000 026e7312 73656375 72697479 6d616e61 67656d65 6e740263 6f026e7a 00000100 01. sendto=45 +0.001441 sendto fd=4 addr=140.200.128.13:53 316b0100 00010000 00000000 046d6169 6c0a776f 6f6c776f 72746873 02636f02 6e7a0000 010001. sendto=39 +0.001416 sendto fd=4 addr=140.200.128.13:53 316c0100 00010000 00000000 046d6169 6c0a636f 6e63656e 74726963 02636f02 6e7a0000 010001. sendto=39 +0.001440 sendto fd=4 addr=140.200.128.13:53 316d0100 00010000 00000000 0973656c 65637469 76650263 6f026e7a 00000100 01. sendto=33 +0.001390 sendto fd=4 addr=140.200.128.13:53 316e0100 00010000 00000000 15737065 6369616c 696e7665 73746967 6174696f 6e730263 6f026e7a 00000100 01. sendto=45 +0.001803 sendto fd=4 addr=140.200.128.13:53 316f0100 00010000 00000000 026e7305 73776966 7402636f 026e7a00 00010001. sendto=32 +0.001450 sendto fd=4 addr=140.200.128.13:53 31700100 00010000 00000000 046d6169 6c057377 69667402 636f026e 7a000001 0001. sendto=34 +0.001516 sendto fd=4 addr=140.200.128.13:53 31710100 00010000 00000000 026e7309 73656375 72656e65 74036e65 74026e7a 00000100 01. sendto=37 +0.001511 sendto fd=4 addr=140.200.128.13:53 31720100 00010000 00000000 14707269 76617465 696e7665 73746967 6174696f 6e02636f 026e7a00 00010001. sendto=44 +0.001585 sendto fd=4 addr=140.200.128.13:53 31730100 00010000 00000000 026e7314 70726976 61746569 6e766573 74696761 74696f6e 02636f02 6e7a0000 010001. sendto=47 +0.001571 sendto fd=4 addr=140.200.128.13:53 31740100 00010000 00000000 06657472 61646502 636f026e 7a000001 0001. sendto=30 +0.001459 sendto fd=4 addr=140.200.128.13:53 31750100 00010000 00000000 026e7315 73706563 69616c69 6e766573 74696761 74696f6e 7302636f 026e7a00 00010001. sendto=48 +0.001537 sendto fd=4 addr=140.200.128.13:53 31760100 00010000 00000000 046d6169 6c06616e 73657474 02636f02 6e7a0000 010001. sendto=35 +0.001466 sendto fd=4 addr=140.200.128.13:53 31770100 00010000 00000000 03667470 07776172 72656e74 02636f02 6e7a0000 010001. sendto=35 +0.001485 sendto fd=4 addr=140.200.128.13:53 31780100 00010000 00000000 026e730e 72657461 696c7365 63757269 74790263 6f026e7a 00000100 01. sendto=41 +0.001528 sendto fd=4 addr=140.200.128.13:53 31790100 00010000 00000000 046d6169 6c127365 63757269 74796d61 6e616765 6d656e74 02636f02 6e7a0000 010001. sendto=47 +0.001593 sendto fd=4 addr=140.200.128.13:53 317a0100 00010000 00000000 026e7305 6d616769 6302636f 026e7a00 00010001. sendto=32 +0.001465 sendto fd=4 addr=140.200.128.13:53 317b0100 00010000 00000000 046d6169 6c09666f 72656672 6f6e7402 636f026e 7a000001 0001. sendto=38 +0.001473 sendto fd=4 addr=140.200.128.13:53 317c0100 00010000 00000000 046d6169 6c0a7365 63757269 63617264 02636f02 6e7a0000 010001. sendto=39 +0.001525 sendto fd=4 addr=140.200.128.13:53 317d0100 00010000 00000000 0a736563 75726963 61726402 636f026e 7a000001 0001. sendto=34 +0.001499 sendto fd=4 addr=140.200.128.13:53 317e0100 00010000 00000000 026e7309 6e7a6465 7369676e 7302636f 026e7a00 00010001. sendto=36 +0.001489 sendto fd=4 addr=140.200.128.13:53 317f0100 00010000 00000000 05736166 65730263 6f026e7a 00000100 01. sendto=29 +0.001441 sendto fd=4 addr=140.200.128.13:53 31800100 00010000 00000000 026e7309 73656c65 63746976 6502636f 026e7a00 00010001. sendto=36 +0.001542 sendto fd=4 addr=140.200.128.13:53 31810100 00010000 00000000 09666f72 6566726f 6e740263 6f026e7a 00000100 01. sendto=33 +0.001473 sendto fd=4 addr=140.200.128.13:53 31820100 00010000 00000000 12736563 75726974 796d616e 6167656d 656e7402 636f026e 7a000001 0001. sendto=42 +0.001525 sendto fd=4 addr=140.200.128.13:53 31830100 00010000 00000000 09756e64 6572686f 75720263 6f026e7a 00000100 01. sendto=33 +0.001469 sendto fd=4 addr=140.200.128.13:53 31840100 00010000 00000000 09736563 7572656e 6574036e 6574026e 7a000001 0001. sendto=34 +0.001535 sendto fd=4 addr=140.200.128.13:53 31850100 00010000 00000000 046d6169 6c157370 65636961 6c696e76 65737469 67617469 6f6e7302 636f026e 7a000001 0001. sendto=50 +0.001597 sendto fd=4 addr=140.200.128.13:53 31860100 00010000 00000000 096e7a64 65736967 6e730263 6f026e7a 00000100 01. sendto=33 +0.001526 sendto fd=4 addr=140.200.128.13:53 31870100 00010000 00000000 026e7306 65747261 64650263 6f026e7a 00000100 01. sendto=33 +0.001451 sendto fd=4 addr=140.200.128.13:53 31880100 00010000 00000000 046d6169 6c056e7a 69706903 6f726702 6e7a0000 010001. sendto=35 +0.001513 sendto fd=4 addr=140.200.128.13:53 31890100 00010000 00000000 046d6169 6c09756e 64657268 6f757202 636f026e 7a000001 0001. sendto=38 +0.001508 sendto fd=4 addr=140.200.128.13:53 318a0100 00010000 00000000 026e7304 61736973 036f7267 026e7a00 00010001. sendto=32 +0.001491 sendto fd=4 addr=140.200.128.13:53 318b0100 00010000 00000000 026e7308 626f7571 75657473 02636f02 6e7a0000 010001. sendto=35 +0.001507 sendto fd=4 addr=140.200.128.13:53 318c0100 00010000 00000000 05616761 74650263 6f026e7a 00000100 01. sendto=29 +0.001445 read fd=5 buflen=2433 read=EAGAIN +0.000151 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.866584 select=1 rfds=[4] wfds=[] efds=[] +1.-544428 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31308500 00010001 00020002 05746574 72610263 6f026e7a 00000100 01c00c00 01000100 01518000 04cb6300 fec00c00 02000100 01518000 05026e73 c00cc00c 00020001 00015180 0013036e 73310777 61696b61 746f0261 63026e7a 00c03900 01000100 01518000 04cb6300 fec04a00 01000100 01518000 048cc880 0d. +0.000996 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000668 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.409348 select=1 rfds=[4] wfds=[] efds=[] +0.038307 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31318500 00010001 00020002 046d6169 6c056167 61746502 636f026e 7a000001 0001c00c 00010001 00015180 0004cb63 00fe0561 67617465 02636f02 6e7a0000 02000100 01518000 11036e73 31077761 696b6174 6f026163 c03bc032 00020001 00015180 0005026e 73c032c0 49000100 01000151 8000048c c8800dc0 66000100 01000151 800004cb 6300fe. +0.000984 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000506 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.369551 select=1 rfds=[4] wfds=[] efds=[] +0.048503 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 312f8500 00010001 00020002 026e7308 73656375 72697479 02636f02 6e7a0000 010001c0 0c000100 01000151 800004cb 6300fe08 73656375 72697479 02636f02 6e7a0000 02000100 01518000 11036e73 31077761 696b6174 6f026163 c03fc033 00020001 00015180 0002c00c c04d0001 00010001 51800004 8cc8800d c00c0001 00010001 51800004 cb6300fe. +0.000997 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000452 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.319599 select=1 rfds=[4] wfds=[] efds=[] +0.038521 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31348500 00010001 00020002 026e730a 67696674 6261736b 65740263 6f026e7a 00000100 01c00c00 01000100 01518000 04cb6300 fe0a6769 66746261 736b6574 02636f02 6e7a0000 02000100 01518000 11036e73 31077761 696b6174 6f026163 c043c035 00020001 00015180 0002c00c c0510001 00010001 51800004 8cc8800d c00c0001 00010001 51800004 cb6300fe. +0.001008 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000490 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.279580 select=1 rfds=[4] wfds=[] efds=[] +0.048476 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31358500 00010001 00020002 026e7308 73656375 72697479 0367656e 026e7a00 00010001 c00c0001 00010001 51800004 cb6300fe 08736563 75726974 79036765 6e026e7a 00000200 01000151 80001103 6e733107 7761696b 61746f02 6163c041 c0340002 00010001 51800002 c00cc04f 00010001 00015180 00048cc8 800dc00c 00010001 00015180 0004cb63 00fe. +0.000998 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000439 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.229667 select=1 rfds=[4] wfds=[] efds=[] +0.038524 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31368500 00010001 00020002 07626f75 71756574 02636f02 6e7a0000 010001c0 0c000100 01000151 800004cb 6300fec0 0c000200 01000151 80000502 6e73c00c c00c0002 00010001 51800013 036e7331 07776169 6b61746f 02616302 6e7a00c0 3b000100 01000151 800004cb 6300fec0 4c000100 01000151 8000048c c8800d. +0.000911 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000464 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.189768 select=1 rfds=[4] wfds=[] efds=[] +0.038708 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31328500 00010001 00020002 026e7305 61676174 6502636f 026e7a00 00010001 c00c0001 00010001 51800004 cb6300fe 05616761 74650263 6f026e7a 00000200 01000151 80001103 6e733107 7761696b 61746f02 6163c039 c0300002 00010001 51800002 c00cc047 00010001 00015180 00048cc8 800dc00c 00010001 00015180 0004cb63 00fe. +0.000951 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000436 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.149673 select=1 rfds=[4] wfds=[] efds=[] +0.048494 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31338500 00010001 00020002 10736563 75726974 79747261 696e696e 6702636f 026e7a00 00010001 c00c0001 00010001 51800004 cb6300fe c00c0002 00010001 51800005 026e73c0 0cc00c00 02000100 01518000 13036e73 31077761 696b6174 6f026163 026e7a00 c0440001 00010001 51800004 cb6300fe c0550001 00010001 51800004 8cc8800d. +0.000991 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000442 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.099746 select=1 rfds=[4] wfds=[] efds=[] +0.038540 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31378500 00010001 00020002 0d696e76 65737469 67617469 6f6e0263 6f026e7a 00000100 01c00c00 01000100 01518000 04cb6300 fec00c00 02000100 01518000 05026e73 c00cc00c 00020001 00015180 0013036e 73310777 61696b61 746f0261 63026e7a 00c04100 01000100 01518000 04cb6300 fec05200 01000100 01518000 048cc880 0d. +0.000944 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000437 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.059825 select=1 rfds=[4] wfds=[] efds=[] +0.038599 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 31388500 00010001 00020002 026e7305 6e7a6970 69036f72 67026e7a 00000100 01c00c00 01000100 01518000 04cb6300 fe056e7a 69706903 6f726702 6e7a0000 02000100 01518000 11036e73 31077761 696b6174 6f026163 c03bc031 00020001 00015180 0002c00c c0490001 00010001 51800004 8cc8800d c00c0001 00010001 51800004 cb6300fe. +0.000960 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000445 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.019821 select=1 rfds=[4] wfds=[] efds=[] +0.048560 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 313a8500 00010001 00020002 08736563 75726974 7902636f 026e7a00 00010001 c00c0001 00010001 51800004 cb6300fe c00c0002 00010001 51800013 036e7331 07776169 6b61746f 02616302 6e7a00c0 0c000200 01000151 80000502 6e73c00c c03c0001 00010001 51800004 8cc8800d c05b0001 00010001 51800004 cb6300fe. +0.000913 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000471 select max=6 rfds=[4,5] wfds=[] efds=[5] to=0.969877 select=1 rfds=[4] wfds=[] efds=[] +0.028575 recvfrom fd=4 buflen=512 recvfrom=OK addr=140.200.128.13:53 313b8503 00010000 00010000 026e730a 73746f72 65776174 63680263 6f026e7a 00000100 0102636f 026e7a00 00060001 00015180 002c046e 73393907 7761696b 61746f02 6163c028 03736f61 c03b7727 6ec50000 0e100000 07080027 8d000001 5180. +0.000739 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.023574 close fd=4 close=OK +0.000464 close fd=5 close=OK +0.000179 adns-1.5.0~rc1/regress/case-unknown-flags-harmless.out0000664000175000017500000000032612423157063021075 0ustar ianianadns debug: using nameserver 172.18.45.6 chiark.greenend.org.uk flags 1074266112 type 1 A(-) submitted chiark.greenend.org.uk flags 1074266112 type A(-): OK; nrrs=1; cname=$; owner=$; ttl=3600 212.13.197.229 rc=0 adns-1.5.0~rc1/regress/case-tcpallfail.sys0000664000175000017500000000250012422510662016603 0ustar ianianadnstest anarres -0x400 2/test.iwj.relativity.greenend.org.uk. start 962142174.403028 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000120 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000053 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000034 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.000479 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000036 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000031 connect fd=5 addr=172.18.45.2:53 connect=EINPROGRESS +0.000182 select max=6 rfds=[4] wfds=[5] efds=[] to=13.999272 select=1 rfds=[] wfds=[5] efds=[] +0.000862 read fd=5 buflen=1 read=ECONNREFUSED +0.000087 close fd=5 close=OK +0.000109 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000103 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.000392 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000037 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000030 connect fd=5 addr=172.18.45.2:53 connect=EINPROGRESS +0.000127 select max=6 rfds=[4] wfds=[5] efds=[] to=13.999414 select=1 rfds=[] wfds=[5] efds=[] +0.000339 read fd=5 buflen=1 read=ECONNREFUSED +0.000075 close fd=5 close=OK +0.000084 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000098 close fd=4 close=OK +0.000879 adns-1.5.0~rc1/regress/case-2ndservtcp.sys0000664000175000017500000001645612422540543016602 0ustar ianianadnstest 2ndserver :0x0|12 trunc.test.iwj.relativity.greenend.org.uk start 940100083.268555 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000169 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000053 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000040 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001. sendto=59 +0.001167 select max=5 rfds=[4] wfds=[] efds=[] to=1.998833 select=0 rfds=[] wfds=[] efds=[] +2.-01463 select max=5 rfds=[4] wfds=[] efds=[] to=0.000296 select=0 rfds=[] wfds=[] efds=[] +0.009912 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001. sendto=59 +0.001357 select max=5 rfds=[4] wfds=[] efds=[] to=1.998643 select=1 rfds=[4] wfds=[] efds=[] +0.000126 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8380 00010008 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00 01000000 3c004704 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e01 30047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0131 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0132 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0133 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0134 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0135 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0136 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0137 c069. +0.002022 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.000905 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000041 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000038 connect fd=5 addr=172.18.45.36:53 connect=EINPROGRESS +0.000162 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000062 select max=6 rfds=[4] wfds=[5] efds=[] to=13.996770 select=1 rfds=[] wfds=[5] efds=[] +1.-14443 read fd=5 buflen=1 read=EHOSTUNREACH +0.000193 close fd=5 close=OK +0.000146 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.000678 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000041 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000039 connect fd=5 addr=172.18.45.6:53 connect=EINPROGRESS +0.000455 select max=6 rfds=[4] wfds=[5] efds=[] to=13.998787 select=1 rfds=[] wfds=[5] efds=[] +0.000135 read fd=5 buflen=1 read=EAGAIN +0.000062 write fd=5 003b311f 01000001 00000000 00000574 72756e63 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000c00 01. write=61 +0.004082 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.005381 select=1 rfds=[5] wfds=[] efds=[] +0.000149 read fd=5 buflen=2 read=OK 0638. +0.000210 read fd=5 buflen=1592 read=OK 311f8580 0001001e 00010001 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00 01000000 3c004704 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e01 30047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0131 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0132 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0133 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0134 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0135 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0136 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0137 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0138 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0139 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0231 30c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3131c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023132c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023133 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0231 34c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3135c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023136c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023137 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0231 38c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3139c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023230c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023231 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0232 32c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3233c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023234c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023235 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0232 36c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3237c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023238c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023239 c069c069 00020001 0000003c 0006036e 7330c072 036e7330 c0720001 00010001 51800004 ac122d06. +0.006071 read fd=5 buflen=1594 read=EAGAIN +0.005347 close fd=4 close=OK +0.004675 close fd=5 close=OK +0.000433 adns-1.5.0~rc1/regress/case-flags10.out0000664000175000017500000000005612421042026015713 0ustar ianianadns debug: using nameserver 172.18.45.6 rc=3 adns-1.5.0~rc1/regress/hack-query-ids0000775000175000017500000000061112421042026015565 0ustar ianian#! /usr/bin/perl @seq = sort { $a <=> $b } map { hex } @ARGV; while () { print; if (/^ (sendto fd=\d+|recvfrom=OK) addr=([0-9.]+|\[0-9a-f:]+\]).*:53/) { my $line = ; if ($line !~ /^ ([0-9a-f]{4})(.*)$/s) { print $line; next; } my $qq = hex $1; for my $q (@seq) { $qq++ if $qq >= $q; } printf " %04x%s", ($qq & 0xffff), $2; } } adns-1.5.0~rc1/regress/case-manyptrwrong.err0000664000175000017500000000000012421042026017173 0ustar ianianadns-1.5.0~rc1/regress/case-adh-norm.out0000664000175000017500000000006212421042026016160 0ustar ianianchiark.greenend.org.uk A INET 195.224.76.132 rc=0 adns-1.5.0~rc1/regress/case-manyptrwrongrty.out0000664000175000017500000001401412421042026017763 0ustar ianianadns debug: using nameserver 172.18.45.6 254.0.99.203.in-addr.arpa flags 292 type 1 A(-) submitted 254.0.99.203.in-addr.arpa flags 292 type 2 NS(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 5 CNAME(-) submitted 254.0.99.203.in-addr.arpa flags 292 type 6 SOA(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 12 PTR(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 13 HINFO(-) submitted 254.0.99.203.in-addr.arpa flags 292 type 15 MX(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 16 TXT(-) submitted 254.0.99.203.in-addr.arpa flags 292 type 17 RP(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 65537 A(addr) submitted 254.0.99.203.in-addr.arpa flags 292 type 65538 NS(+addr) submitted 254.0.99.203.in-addr.arpa flags 292 type 65548 PTR(checked) submitted 254.0.99.203.in-addr.arpa flags 292 type 65551 MX(+addr) submitted 254.0.99.203.in-addr.arpa flags 292 type 131078 SOA(822) submitted 254.0.99.203.in-addr.arpa flags 292 type 131089 RP(822) submitted 254.0.99.203.in-addr.arpa flags 292 type A(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539 254.0.99.203.in-addr.arpa flags 292 type NS(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539 254.0.99.203.in-addr.arpa flags 292 type SOA(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=540 adns debug: TCP connected (NS=172.18.45.6) 254.0.99.203.in-addr.arpa flags 292 type HINFO(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=540 254.0.99.203.in-addr.arpa flags 292 type MX(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=540 254.0.99.203.in-addr.arpa flags 292 type TXT(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539 254.0.99.203.in-addr.arpa flags 292 type RP(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539 254.0.99.203.in-addr.arpa flags 292 type PTR(raw): OK; nrrs=94; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86351 ns.security.co.nz tetra.co.nz mail.agate.co.nz ns.agate.co.nz securitytraining.co.nz ns.giftbasket.co.nz ns.security.gen.nz bouquet.co.nz investigation.co.nz ns.nzipi.org.nz mail.neru.co.nz security.co.nz ns.storewatch.co.nz security.gen.nz ns.tetra.co.nz mail.tetra.co.nz ns.securicard.co.nz ns.underhour.co.nz bcc.co.nz security.org.nz burglaralarms.co.nz ns.safes.co.nz ns.security.org.nz couperconsulting.co.nz securityguards.co.nz ns.guards.co.nz asis.org.nz neru.co.nz giftbasket.co.nz magic.co.nz mail.bcc.co.nz ns.investigation.co.nz nzipi.org.nz ns.bouquet.co.nz mail.safes.co.nz ns.bcc.co.nz ns.burglaralarms.co.nz ns.securityguards.co.nz covertcameras.co.nz ns.neru.co.nz ns.covertcameras.co.nz bouquets.co.nz concentric.co.nz ns.securitytraining.co.nz mail.couperconsulting.co.nz retailsecurity.co.nz ns.concentric.co.nz mail.magic.co.nz nzangling.co.nz ns.couperconsulting.co.nz ns.nzangling.co.nz mail.storewatch.co.nz swift.co.nz mail.selective.co.nz ns.forefront.co.nz mail.nzangling.co.nz guards.co.nz mail.nzdesigns.co.nz storewatch.co.nz ns.securitymanagement.co.nz mail.woolworths.co.nz mail.concentric.co.nz selective.co.nz specialinvestigations.co.nz ns.swift.co.nz mail.swift.co.nz ns.securenet.net.nz privateinvestigation.co.nz ns.privateinvestigation.co.nz etrade.co.nz ns.specialinvestigations.co.nz mail.ansett.co.nz ftp.warrent.co.nz ns.retailsecurity.co.nz mail.securitymanagement.co.nz ns.magic.co.nz mail.forefront.co.nz mail.securicard.co.nz securicard.co.nz ns.nzdesigns.co.nz safes.co.nz ns.selective.co.nz forefront.co.nz securitymanagement.co.nz underhour.co.nz securenet.net.nz mail.specialinvestigations.co.nz nzdesigns.co.nz ns.etrade.co.nz mail.nzipi.org.nz mail.underhour.co.nz ns.asis.org.nz ns.bouquets.co.nz agate.co.nz 254.0.99.203.in-addr.arpa flags 292 type NS(+addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539 254.0.99.203.in-addr.arpa flags 292 type MX(+addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=540 254.0.99.203.in-addr.arpa flags 292 type SOA(822): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=540 254.0.99.203.in-addr.arpa flags 292 type RP(822): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539 254.0.99.203.in-addr.arpa flags 292 type A(addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539 254.0.99.203.in-addr.arpa flags 292 type PTR(checked): Inconsistent resource records in DNS; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86351 adns debug: reply not found, id 3151, query owner mail.safes.co.nz (NS=172.18.45.6) adns debug: reply not found, id 3152, query owner ns.bcc.co.nz (NS=172.18.45.6) adns debug: reply not found, id 3153, query owner ns.burglaralarms.co.nz (NS=172.18.45.6) adns debug: reply not found, id 3154, query owner ns.securityguards.co.nz (NS=172.18.45.6) adns debug: reply not found, id 3155, query owner covertcameras.co.nz (NS=172.18.45.6) adns debug: reply not found, id 3156, query owner ns.neru.co.nz (NS=172.18.45.6) adns debug: reply not found, id 3157, query owner ns.covertcameras.co.nz (NS=172.18.45.6) adns debug: reply not found, id 3158, query owner bouquets.co.nz (NS=172.18.45.6) adns debug: reply not found, id 3159, query owner concentric.co.nz (NS=172.18.45.6) adns debug: reply not found, id 315a, query owner ns.securitytraining.co.nz (NS=172.18.45.6) adns debug: reply not found, id 315b, query owner mail.couperconsulting.co.nz (NS=172.18.45.6) adns debug: reply not found, id 315c, query owner retailsecurity.co.nz (NS=172.18.45.6) adns debug: reply not found, id 315d, query owner ns.concentric.co.nz (NS=172.18.45.6) adns debug: reply not found, id 315e, query owner mail.magic.co.nz (NS=172.18.45.6) adns debug: reply not found, id 315f, query owner nzangling.co.nz (NS=172.18.45.6) adns debug: reply not found, id 3160, query owner ns.couperconsulting.co.nz (NS=172.18.45.6) 254.0.99.203.in-addr.arpa flags 292 type CNAME(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 rc=0 adns-1.5.0~rc1/regress/case-unkopts.err0000664000175000017500000000000012423157063016141 0ustar ianianadns-1.5.0~rc1/regress/case-unknown-flags-type.err0000664000175000017500000000000012423157063020206 0ustar ianianadns-1.5.0~rc1/regress/case-timeout.sys0000664000175000017500000000775612422540543016201 0ustar ianianadnstest noserver :0x0|1 chiark.greenend.org.uk start 912889153.349504 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000193 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000088 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000072 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000617 select max=5 rfds=[4] wfds=[] efds=[] to=1.999383 select=0 rfds=[] wfds=[] efds=[] +2.008683 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000406 select max=5 rfds=[4] wfds=[] efds=[] to=1.999594 select=0 rfds=[] wfds=[] efds=[] +2.009544 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000428 select max=5 rfds=[4] wfds=[] efds=[] to=1.999572 select=0 rfds=[] wfds=[] efds=[] +2.009567 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000449 select max=5 rfds=[4] wfds=[] efds=[] to=1.999551 select=0 rfds=[] wfds=[] efds=[] +2.009551 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000381 select max=5 rfds=[4] wfds=[] efds=[] to=1.999619 select=0 rfds=[] wfds=[] efds=[] +2.009614 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000383 select max=5 rfds=[4] wfds=[] efds=[] to=1.999617 select=0 rfds=[] wfds=[] efds=[] +2.009622 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000387 select max=5 rfds=[4] wfds=[] efds=[] to=1.999613 select=0 rfds=[] wfds=[] efds=[] +2.009603 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000404 select max=5 rfds=[4] wfds=[] efds=[] to=1.999596 select=0 rfds=[] wfds=[] efds=[] +2.009607 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000468 select max=5 rfds=[4] wfds=[] efds=[] to=1.999532 select=0 rfds=[] wfds=[] efds=[] +2.009526 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000431 select max=5 rfds=[4] wfds=[] efds=[] to=1.999569 select=0 rfds=[] wfds=[] efds=[] +2.009564 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000429 select max=5 rfds=[4] wfds=[] efds=[] to=1.999571 select=0 rfds=[] wfds=[] efds=[] +2.009586 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000479 select max=5 rfds=[4] wfds=[] efds=[] to=1.999521 select=0 rfds=[] wfds=[] efds=[] +2.009511 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000430 select max=5 rfds=[4] wfds=[] efds=[] to=1.999570 select=0 rfds=[] wfds=[] efds=[] +2.009571 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000440 select max=5 rfds=[4] wfds=[] efds=[] to=1.999560 select=0 rfds=[] wfds=[] efds=[] +2.009564 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000439 select max=5 rfds=[4] wfds=[] efds=[] to=1.999561 select=0 rfds=[] wfds=[] efds=[] +2.009554 close fd=4 close=OK +0.000267 adns-1.5.0~rc1/regress/case-addr-multi-af.sys0000664000175000017500000016645012422540543017136 0ustar ianian./adnstest distorted :0x1010000|1,0x1010000|15,0x3010000|1,0x3010000|15 maddr.dnserr.distorted.org.uk mx.dnserr.distorted.org.uk 0x400/maddr.dnserr.distorted.org.uk 0x400/mx.dnserr.distorted.org.uk 0x800/maddr.dnserr.distorted.org.uk 0x800/mx.dnserr.distorted.org.uk 0xc00/maddr.dnserr.distorted.org.uk 0xc00/mx.dnserr.distorted.org.uk start 1402445458.222480 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000026 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000012 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000010 sendto fd=6 addr=172.29.199.224:53 31200100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001. sendto=47 +0.000089 sendto fd=6 addr=172.29.199.224:53 31210100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001. sendto=47 +0.000043 sendto fd=6 addr=172.29.199.224:53 31230100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001. sendto=47 +0.000040 sendto fd=6 addr=172.29.199.224:53 31240100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000031 sendto fd=6 addr=172.29.199.224:53 31250100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001. sendto=47 +0.000040 sendto fd=6 addr=172.29.199.224:53 31270100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 00010001. sendto=44 +0.000038 sendto fd=6 addr=172.29.199.224:53 31280100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001. sendto=44 +0.000035 sendto fd=6 addr=172.29.199.224:53 312a0100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 00010001. sendto=44 +0.000041 sendto fd=6 addr=172.29.199.224:53 312b0100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 001c0001. sendto=44 +0.000030 sendto fd=6 addr=172.29.199.224:53 312c0100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001. sendto=44 +0.000036 sendto fd=6 addr=172.29.199.224:53 312e0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001. sendto=47 +0.000041 sendto fd=6 addr=172.29.199.224:53 312f0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001. sendto=47 +0.000038 sendto fd=6 addr=172.29.199.224:53 31310100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001. sendto=47 +0.000043 sendto fd=6 addr=172.29.199.224:53 31320100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001. sendto=47 +0.000039 sendto fd=6 addr=172.29.199.224:53 31340100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 00010001. sendto=44 +0.000039 sendto fd=6 addr=172.29.199.224:53 31350100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001. sendto=44 +0.000037 sendto fd=6 addr=172.29.199.224:53 31370100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 00010001. sendto=44 +0.000039 sendto fd=6 addr=172.29.199.224:53 31380100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001. sendto=44 +0.000037 sendto fd=6 addr=172.29.199.224:53 313a0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000045 sendto fd=6 addr=172.29.199.224:53 313b0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001. sendto=47 +0.000038 sendto fd=6 addr=172.29.199.224:53 313d0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000054 sendto fd=6 addr=172.29.199.224:53 313e0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001. sendto=47 +0.000039 sendto fd=6 addr=172.29.199.224:53 31400100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 001c0001. sendto=44 +0.000040 sendto fd=6 addr=172.29.199.224:53 31410100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001. sendto=44 +0.000038 sendto fd=6 addr=172.29.199.224:53 31430100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 001c0001. sendto=44 +0.000039 sendto fd=6 addr=172.29.199.224:53 31440100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001. sendto=44 +0.000038 sendto fd=6 addr=172.29.199.224:53 31460100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001. sendto=47 +0.000046 sendto fd=6 addr=172.29.199.224:53 31470100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000031 sendto fd=6 addr=172.29.199.224:53 31480100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001. sendto=47 +0.000039 sendto fd=6 addr=172.29.199.224:53 314a0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001. sendto=47 +0.000041 sendto fd=6 addr=172.29.199.224:53 314b0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000031 sendto fd=6 addr=172.29.199.224:53 314c0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001. sendto=47 +0.000038 sendto fd=6 addr=172.29.199.224:53 314e0100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 00010001. sendto=44 +0.000039 sendto fd=6 addr=172.29.199.224:53 314f0100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 001c0001. sendto=44 +0.000033 sendto fd=6 addr=172.29.199.224:53 31500100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001. sendto=44 +0.000040 sendto fd=6 addr=172.29.199.224:53 31520100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 00010001. sendto=44 +0.000039 sendto fd=6 addr=172.29.199.224:53 31530100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 001c0001. sendto=44 +0.000029 sendto fd=6 addr=172.29.199.224:53 31540100 00010000 00000000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001. sendto=44 +0.000038 select max=7 rfds=[6] wfds=[] efds=[] to=1.998489 select=1 rfds=[6] wfds=[] efds=[] +0.002108 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31208580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004c0 000202c0 0c000100 01000038 400004c6 336401c0 0c000100 01000038 400004c6 336402c0 0c000100 01000038 400004cb 007101c0 0c000100 01000038 400004cb 007102c0 0c000100 01000038 400004c0 000201c0 12000200 01000038 40000d07 76616d70 69726502 6e73c012 c0120002 00010000 3840000d 0a74656c 65636173 746572c0 a3c01200 02000100 00384000 09067261 64697573 c0a3c012 00020001 00003840 000c0970 72656369 73696f6e c0a3c0cd 00010001 00003840 00043e31 cc92c0cd 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c09b 00010001 00003840 00043e31 cc96c09b 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c0e2 00010001 00003840 0004d40d c646c0e2 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0b4 00010001 00003840 0004d40d c647c0b4 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000161 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31218580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469 7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275 00000038 40. +0.000082 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000013 select max=7 rfds=[6] wfds=[] efds=[] to=1.996257 select=1 rfds=[6] wfds=[] efds=[] +0.000270 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31238580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004c6 336401c0 0c000100 01000038 400004c6 336402c0 0c000100 01000038 400004cb 007101c0 0c000100 01000038 400004cb 007102c0 0c000100 01000038 400004c0 000201c0 0c000100 01000038 400004c0 000202c0 12000200 01000038 40000f09 70726563 6973696f 6e026e73 c012c012 00020001 00003840 000a0776 616d7069 7265c0a5 c0120002 00010000 3840000d 0a74656c 65636173 746572c0 a5c01200 02000100 00384000 09067261 64697573 c0a5c0e5 00010001 00003840 00043e31 cc92c0e5 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0b6 00010001 00003840 00043e31 cc96c0b6 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c09b 00010001 00003840 0004d40d c646c09b 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0cc 00010001 00003840 0004d40d c647c0cc 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000125 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000028 select max=7 rfds=[6] wfds=[] efds=[] to=1.995834 select=1 rfds=[6] wfds=[] efds=[] +0.005597 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31248580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0 12000200 01000038 40000d07 76616d70 69726502 6e73c012 c0120002 00010000 3840000c 09707265 63697369 6f6ec0eb c0120002 00010000 38400009 06726164 697573c0 ebc01200 02000100 00384000 0d0a7465 6c656361 73746572 c0ebc114 00010001 00003840 00043e31 cc92c114 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0e3 00010001 00003840 00043e31 cc96c0e3 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c0fc 00010001 00003840 0004d40d c646c0fc 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c129 00010001 00003840 0004d40d c647c129 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000159 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000046 select max=7 rfds=[6] wfds=[] efds=[] to=1.990103 select=1 rfds=[6] wfds=[] efds=[] +0.000396 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31258580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469 7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275 00000038 40. +0.000049 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000035 select max=7 rfds=[6] wfds=[] efds=[] to=1.989663 select=1 rfds=[6] wfds=[] efds=[] +0.000161 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31278580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 00010001 c00f0006 00010000 3840002a 06726164 697573c0 160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000 3840. +0.000069 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000019 select max=7 rfds=[6] wfds=[] efds=[] to=1.989452 select=1 rfds=[6] wfds=[] efds=[] +0.000179 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31288580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001 c00c000f 00010000 38400009 00450461 616161c0 0fc00c00 0f000100 00384000 0a004505 6d616464 72c00fc0 0c000f00 01000038 40000900 46046164 6472c00f c00c000f 00010000 38400006 00450161 c00fc00f 00020001 00003840 000f0970 72656369 73696f6e 026e73c0 0fc00f00 02000100 00384000 0a077661 6d706972 65c094c0 0f000200 01000038 40000d0a 74656c65 63617374 6572c094 c00f0002 00010000 38400009 06726164 697573c0 94c07a00 01000100 00384000 04c63364 10c03a00 1c000100 00384000 1020010d b8000000 00000000 00000000 01c04f00 01000100 00384000 04c63364 02c04f00 01000100 00384000 04cb0071 01c04f00 01000100 00384000 04cb0071 02c04f00 01000100 00384000 04c00002 01c04f00 01000100 00384000 04c00002 02c04f00 01000100 00384000 04c63364 01. +0.000167 sendto fd=6 addr=172.29.199.224:53 31560100 00010000 00000000 04616161 6106646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=46 +0.000104 sendto fd=6 addr=172.29.199.224:53 31580100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=46 +0.000083 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000029 select max=7 rfds=[6] wfds=[] efds=[] to=1.988925 select=1 rfds=[6] wfds=[] efds=[] +0.000192 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 312a8580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 00010001 c00f0006 00010000 3840002a 06726164 697573c0 160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000 3840. +0.000070 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000020 select max=7 rfds=[6] wfds=[] efds=[] to=1.988643 select=1 rfds=[6] wfds=[] efds=[] +0.000123 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 312b8580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 001c0001 c00f0006 00010000 3840002a 06726164 697573c0 160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000 3840. +0.000069 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000019 select max=7 rfds=[6] wfds=[] efds=[] to=1.988503 select=1 rfds=[6] wfds=[] efds=[] +0.000159 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 312c8580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001 c00c000f 00010000 3840000a 0045056d 61646472 c00fc00c 000f0001 00003840 00090046 04616464 72c00fc0 0c000f00 01000038 40000600 450161c0 0fc00c00 0f000100 00384000 09004504 61616161 c00fc00f 00020001 00003840 00100a74 656c6563 61737465 72026e73 c00fc00f 00020001 00003840 000c0970 72656369 73696f6e c095c00f 00020001 00003840 00090672 61646975 73c095c0 0f000200 01000038 40000a07 76616d70 697265c0 95c06500 01000100 00384000 04c63364 10c07700 1c000100 00384000 1020010d b8000000 00000000 00000000 01c03a00 01000100 00384000 04cb0071 01c03a00 01000100 00384000 04cb0071 02c03a00 01000100 00384000 04c00002 01c03a00 01000100 00384000 04c00002 02c03a00 01000100 00384000 04c63364 01c03a00 01000100 00384000 04c63364 02. +0.000169 sendto fd=6 addr=172.29.199.224:53 315a0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000079 sendto fd=6 addr=172.29.199.224:53 315c0100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=46 +0.000058 sendto fd=6 addr=172.29.199.224:53 315d0100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b00001c 0001. sendto=46 +0.000045 sendto fd=6 addr=172.29.199.224:53 315f0100 00010000 00000000 01610664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=43 +0.000058 sendto fd=6 addr=172.29.199.224:53 31610100 00010000 00000000 04616161 6106646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=46 +0.000077 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 312e8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004cb 007102c0 0c000100 01000038 400004c0 000201c0 0c000100 01000038 400004c0 000202c0 0c000100 01000038 400004c6 336401c0 0c000100 01000038 400004c6 336402c0 0c000100 01000038 400004cb 007101c0 12000200 01000038 40000c06 72616469 7573026e 73c012c0 12000200 01000038 40000d0a 74656c65 63617374 6572c0a2 c0120002 00010000 3840000a 0776616d 70697265 c0a2c012 00020001 00003840 000c0970 72656369 73696f6e c0a2c09b 00010001 00003840 00043e31 cc92c09b 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0cc 00010001 00003840 00043e31 cc96c0cc 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c0e2 00010001 00003840 0004d40d c646c0e2 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0b3 00010001 00003840 0004d40d c647c0b3 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000176 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 312f8580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469 7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275 00000038 40. +0.000085 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31318580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004c0 000201c0 0c000100 01000038 400004c0 000202c0 0c000100 01000038 400004c6 336401c0 0c000100 01000038 400004c6 336402c0 0c000100 01000038 400004cb 007101c0 0c000100 01000038 400004cb 007102c0 12000200 01000038 40000c06 72616469 7573026e 73c012c0 12000200 01000038 40000a07 76616d70 697265c0 a2c01200 02000100 00384000 0c097072 65636973 696f6ec0 a2c01200 02000100 00384000 0d0a7465 6c656361 73746572 c0a2c09b 00010001 00003840 00043e31 cc92c09b 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0b3 00010001 00003840 00043e31 cc96c0b3 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c0c9 00010001 00003840 0004d40d c646c0c9 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0e1 00010001 00003840 0004d40d c647c0e1 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000175 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000044 select max=7 rfds=[6] wfds=[] efds=[] to=1.987536 select=1 rfds=[6] wfds=[] efds=[] +0.000757 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31328580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469 7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275 00000038 40. +0.000072 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31348580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 00010001 c00f0006 00010000 3840002a 06726164 697573c0 160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000 3840. +0.000058 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000020 select max=7 rfds=[6] wfds=[] efds=[] to=1.986707 select=1 rfds=[6] wfds=[] efds=[] +0.000275 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31358580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001 c00c000f 00010000 38400009 00460461 646472c0 0fc00c00 0f000100 00384000 06004501 61c00fc0 0c000f00 01000038 40000900 45046161 6161c00f c00c000f 00010000 3840000a 0045056d 61646472 c00fc00f 00020001 00003840 000f0970 72656369 73696f6e 026e73c0 0fc00f00 02000100 00384000 0d0a7465 6c656361 73746572 c094c00f 00020001 00003840 000a0776 616d7069 7265c094 c00f0002 00010000 38400009 06726164 697573c0 94c04f00 01000100 00384000 04c63364 10c06100 1c000100 00384000 1020010d b8000000 00000000 00000000 01c07600 01000100 00384000 04c00002 02c07600 01000100 00384000 04c63364 01c07600 01000100 00384000 04c63364 02c07600 01000100 00384000 04cb0071 01c07600 01000100 00384000 04cb0071 02c07600 01000100 00384000 04c00002 01. +0.000186 sendto fd=6 addr=172.29.199.224:53 31630100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=46 +0.000086 sendto fd=6 addr=172.29.199.224:53 31650100 00010000 00000000 04616161 6106646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=46 +0.000072 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31378580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 00010001 c00f0006 00010000 3840002a 06726164 697573c0 160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000 3840. +0.000094 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000019 select max=7 rfds=[6] wfds=[] efds=[] to=1.986051 select=1 rfds=[6] wfds=[] efds=[] +0.000294 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31388580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001 c00c000f 00010000 38400006 00450161 c00fc00c 000f0001 00003840 00090045 04616161 61c00fc0 0c000f00 01000038 40000a00 45056d61 646472c0 0fc00c00 0f000100 00384000 09004604 61646472 c00fc00f 00020001 00003840 000f0970 72656369 73696f6e 026e73c0 0fc00f00 02000100 00384000 09067261 64697573 c094c00f 00020001 00003840 000a0776 616d7069 7265c094 c00f0002 00010000 3840000d 0a74656c 65636173 746572c0 94c03a00 01000100 00384000 04c63364 10c04c00 1c000100 00384000 1020010d b8000000 00000000 00000000 01c06100 01000100 00384000 04c63364 01c06100 01000100 00384000 04c63364 02c06100 01000100 00384000 04cb0071 01c06100 01000100 00384000 04cb0071 02c06100 01000100 00384000 04c00002 01c06100 01000100 00384000 04c00002 02. +0.000183 sendto fd=6 addr=172.29.199.224:53 31670100 00010000 00000000 04616161 6106646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=46 +0.000083 sendto fd=6 addr=172.29.199.224:53 31690100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=46 +0.000093 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 313a8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 12000200 01000038 40000c06 72616469 7573026e 73c012c0 12000200 01000038 40000d0a 74656c65 63617374 6572c0ea c0120002 00010000 3840000a 0776616d 70697265 c0eac012 00020001 00003840 000c0970 72656369 73696f6e c0eac0e3 00010001 00003840 00043e31 cc92c0e3 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c114 00010001 00003840 00043e31 cc96c114 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c12a 00010001 00003840 0004d40d c646c12a 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0fb 00010001 00003840 0004d40d c647c0fb 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000202 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 313b8580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469 7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275 00000038 40. +0.000095 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000018 select max=7 rfds=[6] wfds=[] efds=[] to=1.985203 select=1 rfds=[6] wfds=[] efds=[] +0.001040 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 313d8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0 12000200 01000038 40000d07 76616d70 69726502 6e73c012 c0120002 00010000 38400009 06726164 697573c0 ebc01200 02000100 00384000 0d0a7465 6c656361 73746572 c0ebc012 00020001 00003840 000c0970 72656369 73696f6e c0ebc0fc 00010001 00003840 00043e31 cc92c0fc 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0e3 00010001 00003840 00043e31 cc96c0e3 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c12a 00010001 00003840 0004d40d c646c12a 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c111 00010001 00003840 0004d40d c647c111 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000235 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 313e8580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469 7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275 00000038 40. +0.000091 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31408580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 001c0001 c00f0006 00010000 3840002a 06726164 697573c0 160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000 3840. +0.000058 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31418580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001 c00c000f 00010000 38400009 00450461 616161c0 0fc00c00 0f000100 00384000 0a004505 6d616464 72c00fc0 0c000f00 01000038 40000900 46046164 6472c00f c00c000f 00010000 38400006 00450161 c00fc00f 00020001 00003840 000d0776 616d7069 7265026e 73c00fc0 0f000200 01000038 40000d0a 74656c65 63617374 6572c092 c00f0002 00010000 38400009 06726164 697573c0 92c00f00 02000100 00384000 0c097072 65636973 696f6ec0 92c07a00 01000100 00384000 04c63364 10c03a00 1c000100 00384000 1020010d b8000000 00000000 00000000 01c04f00 01000100 00384000 04c63364 02c04f00 01000100 00384000 04cb0071 01c04f00 01000100 00384000 04cb0071 02c04f00 01000100 00384000 04c00002 01c04f00 01000100 00384000 04c00002 02c04f00 01000100 00384000 04c63364 01. +0.000157 sendto fd=6 addr=172.29.199.224:53 316b0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000087 sendto fd=6 addr=172.29.199.224:53 316d0100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b00001c 0001. sendto=46 +0.000060 sendto fd=6 addr=172.29.199.224:53 316f0100 00010000 00000000 01610664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=43 +0.000057 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31438580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 001c0001 c00f0006 00010000 3840002a 06726164 697573c0 160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000 3840. +0.000057 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000019 select max=7 rfds=[6] wfds=[] efds=[] to=1.983552 select=1 rfds=[6] wfds=[] efds=[] +0.000477 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31448580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001 c00c000f 00010000 3840000a 0045056d 61646472 c00fc00c 000f0001 00003840 00090046 04616464 72c00fc0 0c000f00 01000038 40000600 450161c0 0fc00c00 0f000100 00384000 09004504 61616161 c00fc00f 00020001 00003840 00100a74 656c6563 61737465 72026e73 c00fc00f 00020001 00003840 00090672 61646975 73c095c0 0f000200 01000038 40000a07 76616d70 697265c0 95c00f00 02000100 00384000 0c097072 65636973 696f6ec0 95c06500 01000100 00384000 04c63364 10c07700 1c000100 00384000 1020010d b8000000 00000000 00000000 01c03a00 01000100 00384000 04cb0071 01c03a00 01000100 00384000 04cb0071 02c03a00 01000100 00384000 04c00002 01c03a00 01000100 00384000 04c00002 02c03a00 01000100 00384000 04c63364 01c03a00 01000100 00384000 04c63364 02. +0.000172 sendto fd=6 addr=172.29.199.224:53 31710100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000093 sendto fd=6 addr=172.29.199.224:53 31730100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b00001c 0001. sendto=46 +0.000059 sendto fd=6 addr=172.29.199.224:53 31750100 00010000 00000000 01610664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=43 +0.000058 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31468580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004cb 007102c0 0c000100 01000038 400004c0 000201c0 0c000100 01000038 400004c0 000202c0 0c000100 01000038 400004c6 336401c0 0c000100 01000038 400004c6 336402c0 0c000100 01000038 400004cb 007101c0 12000200 01000038 40000c06 72616469 7573026e 73c012c0 12000200 01000038 40000c09 70726563 6973696f 6ec0a2c0 12000200 01000038 40000a07 76616d70 697265c0 a2c01200 02000100 00384000 0d0a7465 6c656361 73746572 c0a2c09b 00010001 00003840 00043e31 cc92c09b 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0cb 00010001 00003840 00043e31 cc96c0cb 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c0b3 00010001 00003840 0004d40d c646c0b3 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0e1 00010001 00003840 0004d40d c647c0e1 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000188 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31478580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 12000200 01000038 40000d07 76616d70 69726502 6e73c012 c0120002 00010000 3840000c 09707265 63697369 6f6ec0eb c0120002 00010000 38400009 06726164 697573c0 ebc01200 02000100 00384000 0d0a7465 6c656361 73746572 c0ebc114 00010001 00003840 00043e31 cc92c114 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0e3 00010001 00003840 00043e31 cc96c0e3 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c0fc 00010001 00003840 0004d40d c646c0fc 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c129 00010001 00003840 0004d40d c647c129 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000242 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31488580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469 7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275 00000038 40. +0.000093 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 314a8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004c0 000201c0 0c000100 01000038 400004c0 000202c0 0c000100 01000038 400004c6 336401c0 0c000100 01000038 400004c6 336402c0 0c000100 01000038 400004cb 007101c0 0c000100 01000038 400004cb 007102c0 12000200 01000038 40000d07 76616d70 69726502 6e73c012 c0120002 00010000 38400009 06726164 697573c0 a3c01200 02000100 00384000 0c097072 65636973 696f6ec0 a3c01200 02000100 00384000 0d0a7465 6c656361 73746572 c0a3c0b4 00010001 00003840 00043e31 cc92c0b4 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c09b 00010001 00003840 00043e31 cc96c09b 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c0c9 00010001 00003840 0004d40d c646c0c9 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0e1 00010001 00003840 0004d40d c647c0e1 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000176 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 314b8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 12000200 01000038 4000100a 74656c65 63617374 6572026e 73c012c0 12000200 01000038 40000a07 76616d70 697265c0 eec01200 02000100 00384000 09067261 64697573 c0eec012 00020001 00003840 000c0970 72656369 73696f6e c0eec115 00010001 00003840 00043e31 cc92c115 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0ff 00010001 00003840 00043e31 cc96c0ff 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c12a 00010001 00003840 0004d40d c646c12a 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0e3 00010001 00003840 0004d40d c647c0e3 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000241 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 314c8580 00010000 00010000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 0f0001c0 12000600 01000038 40002a06 72616469 7573c019 0a686f73 746d6173 746572c0 19780bf8 6a000151 8000000e 10001275 00000038 40. +0.000089 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 314e8580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 00010001 c00f0006 00010000 3840002a 06726164 697573c0 160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000 3840. +0.000056 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000019 select max=7 rfds=[6] wfds=[] efds=[] to=1.981853 select=1 rfds=[6] wfds=[] efds=[] +0.000959 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 314f8580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 001c0001 c00f0006 00010000 3840002a 06726164 697573c0 160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000 3840. +0.000072 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31508580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001 c00c000f 00010000 38400009 00460461 646472c0 0fc00c00 0f000100 00384000 06004501 61c00fc0 0c000f00 01000038 40000900 45046161 6161c00f c00c000f 00010000 3840000a 0045056d 61646472 c00fc00f 00020001 00003840 000f0970 72656369 73696f6e 026e73c0 0fc00f00 02000100 00384000 0a077661 6d706972 65c094c0 0f000200 01000038 40000906 72616469 7573c094 c00f0002 00010000 3840000d 0a74656c 65636173 746572c0 94c04f00 01000100 00384000 04c63364 10c06100 1c000100 00384000 1020010d b8000000 00000000 00000000 01c07600 01000100 00384000 04c00002 02c07600 01000100 00384000 04c63364 01c07600 01000100 00384000 04c63364 02c07600 01000100 00384000 04cb0071 01c07600 01000100 00384000 04cb0071 02c07600 01000100 00384000 04c00002 01. +0.000160 sendto fd=6 addr=172.29.199.224:53 31770100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=46 +0.000087 sendto fd=6 addr=172.29.199.224:53 31780100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b00001c 0001. sendto=46 +0.000045 sendto fd=6 addr=172.29.199.224:53 317a0100 00010000 00000000 01610664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=43 +0.000059 sendto fd=6 addr=172.29.199.224:53 317c0100 00010000 00000000 04616161 6106646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=46 +0.000060 sendto fd=6 addr=172.29.199.224:53 317e0100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000069 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31528580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 00010001 c00f0006 00010000 3840002a 06726164 697573c0 160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000 3840. +0.000057 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31538580 00010000 00010000 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 001c0001 c00f0006 00010000 3840002a 06726164 697573c0 160a686f 73746d61 73746572 c016780b f86a0001 51800000 0e100012 75000000 3840. +0.000058 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000019 select max=7 rfds=[6] wfds=[] efds=[] to=1.980388 select=1 rfds=[6] wfds=[] efds=[] +0.000215 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31548580 00010004 00040008 026d7806 646e7365 72720964 6973746f 72746564 036f7267 02756b00 000f0001 c00c000f 00010000 38400006 00450161 c00fc00c 000f0001 00003840 00090045 04616161 61c00fc0 0c000f00 01000038 40000a00 45056d61 646472c0 0fc00c00 0f000100 00384000 09004604 61646472 c00fc00f 00020001 00003840 000f0970 72656369 73696f6e 026e73c0 0fc00f00 02000100 00384000 09067261 64697573 c094c00f 00020001 00003840 000d0a74 656c6563 61737465 72c094c0 0f000200 01000038 40000a07 76616d70 697265c0 94c03a00 01000100 00384000 04c63364 10c04c00 1c000100 00384000 1020010d b8000000 00000000 00000000 01c06100 01000100 00384000 04c63364 01c06100 01000100 00384000 04c63364 02c06100 01000100 00384000 04cb0071 01c06100 01000100 00384000 04cb0071 02c06100 01000100 00384000 04c00002 01c06100 01000100 00384000 04c00002 02. +0.000173 sendto fd=6 addr=172.29.199.224:53 31800100 00010000 00000000 01610664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=43 +0.000068 sendto fd=6 addr=172.29.199.224:53 31820100 00010000 00000000 04616161 6106646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=46 +0.000059 sendto fd=6 addr=172.29.199.224:53 31840100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000067 sendto fd=6 addr=172.29.199.224:53 31860100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=46 +0.000062 sendto fd=6 addr=172.29.199.224:53 31870100 00010000 00000000 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b00001c 0001. sendto=46 +0.000044 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000015 select max=7 rfds=[6] wfds=[] efds=[] to=1.989220 select=1 rfds=[6] wfds=[] efds=[] +0.000156 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31568580 00010000 00010000 04616161 6106646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001c011 00060001 00003840 002a0672 61646975 73c0180a 686f7374 6d617374 6572c018 780bf86a 00015180 00000e10 00127500 00003840. +0.000082 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000022 select max=7 rfds=[6] wfds=[] efds=[] to=1.988960 select=1 rfds=[6] wfds=[] efds=[] +0.000271 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31588580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004c633 6411c011 00020001 00003840 000f0970 72656369 73696f6e 026e73c0 11c01100 02000100 00384000 09067261 64697573 c054c011 00020001 00003840 000d0a74 656c6563 61737465 72c054c0 11000200 01000038 40000a07 76616d70 697265c0 54c06500 01000100 00384000 043e31cc 92c06500 1c000100 00384000 10200104 701f091b 98000000 00000000 02c09300 01000100 00384000 043e31cc 96c09300 1c000100 00384000 10200104 701f091b 98000000 00000000 06c04a00 01000100 00384000 04d40dc6 46c04a00 1c000100 00384000 1020010b a8000001 d9000000 00000000 06c07a00 01000100 00384000 04d40dc6 47c07a00 1c000100 00384000 1020010b a8000001 d9000000 00000000 07. +0.000285 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 315a8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0 12000200 01000038 40000c06 72616469 7573026e 73c012c0 12000200 01000038 40000d0a 74656c65 63617374 6572c0ea c0120002 00010000 3840000c 09707265 63697369 6f6ec0ea c0120002 00010000 3840000a 0776616d 70697265 c0eac0e3 00010001 00003840 00043e31 cc92c0e3 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c12c 00010001 00003840 00043e31 cc96c12c 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c114 00010001 00003840 0004d40d c646c114 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0fb 00010001 00003840 0004d40d c647c0fb 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000369 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 315c8580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004c633 6411c011 00020001 00003840 000c0672 61646975 73026e73 c011c011 00020001 00003840 000c0970 72656369 73696f6e c051c011 00020001 00003840 000d0a74 656c6563 61737465 72c051c0 11000200 01000038 40000a07 76616d70 697265c0 51c04a00 01000100 00384000 043e31cc 92c04a00 1c000100 00384000 10200104 701f091b 98000000 00000000 02c09300 01000100 00384000 043e31cc 96c09300 1c000100 00384000 10200104 701f091b 98000000 00000000 06c06200 01000100 00384000 04d40dc6 46c06200 1c000100 00384000 1020010b a8000001 d9000000 00000000 06c07a00 01000100 00384000 04d40dc6 47c07a00 1c000100 00384000 1020010b a8000001 d9000000 00000000 07. +0.000309 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000020 select max=7 rfds=[6] wfds=[] efds=[] to=1.988741 select=1 rfds=[6] wfds=[] efds=[] +0.000441 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 315d8580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b00001c 0001c00c 001c0001 00003840 00102001 0db80000 00000000 00000000 0002c011 00020001 00003840 000f0970 72656369 73696f6e 026e73c0 11c01100 02000100 00384000 0a077661 6d706972 65c060c0 11000200 01000038 40000d0a 74656c65 63617374 6572c060 c0110002 00010000 38400009 06726164 697573c0 60c0a000 01000100 00384000 043e31cc 92c0a000 1c000100 00384000 10200104 701f091b 98000000 00000000 02c07100 01000100 00384000 043e31cc 96c07100 1c000100 00384000 10200104 701f091b 98000000 00000000 06c05600 01000100 00384000 04d40dc6 46c05600 1c000100 00384000 1020010b a8000001 d9000000 00000000 06c08700 01000100 00384000 04d40dc6 47c08700 1c000100 00384000 1020010b a8000001 d9000000 00000000 07. +0.000200 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 315f8580 00010000 00010000 01610664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0e000600 01000038 40002a06 72616469 7573c015 0a686f73 746d6173 746572c0 15780bf8 6a000151 8000000e 10001275 00000038 40. +0.000135 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31618580 00010000 00010000 04616161 6106646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001c011 00060001 00003840 002a0672 61646975 73c0180a 686f7374 6d617374 6572c018 780bf86a 00015180 00000e10 00127500 00003840. +0.000151 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31638580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004c633 6411c011 00020001 00003840 000d0776 616d7069 7265026e 73c011c0 11000200 01000038 40000c09 70726563 6973696f 6ec052c0 11000200 01000038 40000906 72616469 7573c052 c0110002 00010000 3840000d 0a74656c 65636173 746572c0 52c07b00 01000100 00384000 043e31cc 92c07b00 1c000100 00384000 10200104 701f091b 98000000 00000000 02c04a00 01000100 00384000 043e31cc 96c04a00 1c000100 00384000 10200104 701f091b 98000000 00000000 06c06300 01000100 00384000 04d40dc6 46c06300 1c000100 00384000 1020010b a8000001 d9000000 00000000 06c09000 01000100 00384000 04d40dc6 47c09000 1c000100 00384000 1020010b a8000001 d9000000 00000000 07. +0.000277 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31658580 00010000 00010000 04616161 6106646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001c011 00060001 00003840 002a0672 61646975 73c0180a 686f7374 6d617374 6572c018 780bf86a 00015180 00000e10 00127500 00003840. +0.000135 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31678580 00010000 00010000 04616161 6106646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001c011 00060001 00003840 002a0672 61646975 73c0180a 686f7374 6d617374 6572c018 780bf86a 00015180 00000e10 00127500 00003840. +0.000049 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000099 select max=7 rfds=[6] wfds=[] efds=[] to=1.990153 select=1 rfds=[6] wfds=[] efds=[] +0.000667 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31698580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004c633 6411c011 00020001 00003840 000c0672 61646975 73026e73 c011c011 00020001 00003840 000a0776 616d7069 7265c051 c0110002 00010000 3840000d 0a74656c 65636173 746572c0 51c01100 02000100 00384000 0c097072 65636973 696f6ec0 51c04a00 01000100 00384000 043e31cc 92c04a00 1c000100 00384000 10200104 701f091b 98000000 00000000 02c06200 01000100 00384000 043e31cc 96c06200 1c000100 00384000 10200104 701f091b 98000000 00000000 06c09100 01000100 00384000 04d40dc6 46c09100 1c000100 00384000 1020010b a8000001 d9000000 00000000 06c07800 01000100 00384000 04d40dc6 47c07800 1c000100 00384000 1020010b a8000001 d9000000 00000000 07. +0.000262 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 316b8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 12000200 01000038 40000f09 70726563 6973696f 6e026e73 c012c012 00020001 00003840 00090672 61646975 73c0edc0 12000200 01000038 40000d0a 74656c65 63617374 6572c0ed c0120002 00010000 3840000a 0776616d 70697265 c0edc0fe 00010001 00003840 00043e31 cc92c0fe 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c12c 00010001 00003840 00043e31 cc96c12c 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c0e3 00010001 00003840 0004d40d c646c0e3 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c113 00010001 00003840 0004d40d c647c113 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000306 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 316d8580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b00001c 0001c00c 001c0001 00003840 00102001 0db80000 00000000 00000000 0002c011 00020001 00003840 000f0970 72656369 73696f6e 026e73c0 11c01100 02000100 00384000 09067261 64697573 c060c011 00020001 00003840 000d0a74 656c6563 61737465 72c060c0 11000200 01000038 40000a07 76616d70 697265c0 60c07100 01000100 00384000 043e31cc 92c07100 1c000100 00384000 10200104 701f091b 98000000 00000000 02c09f00 01000100 00384000 043e31cc 96c09f00 1c000100 00384000 10200104 701f091b 98000000 00000000 06c05600 01000100 00384000 04d40dc6 46c05600 1c000100 00384000 1020010b a8000001 d9000000 00000000 06c08600 01000100 00384000 04d40dc6 47c08600 1c000100 00384000 1020010b a8000001 d9000000 00000000 07. +0.000302 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 316f8580 00010000 00010000 01610664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0e000600 01000038 40002a06 72616469 7573c015 0a686f73 746d6173 746572c0 15780bf8 6a000151 8000000e 10001275 00000038 40. +0.000145 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31718580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 12000200 01000038 40000d07 76616d70 69726502 6e73c012 c0120002 00010000 38400009 06726164 697573c0 ebc01200 02000100 00384000 0d0a7465 6c656361 73746572 c0ebc012 00020001 00003840 000c0970 72656369 73696f6e c0ebc0fc 00010001 00003840 00043e31 cc92c0fc 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0e3 00010001 00003840 00043e31 cc96c0e3 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c12a 00010001 00003840 0004d40d c646c12a 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c111 00010001 00003840 0004d40d c647c111 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000327 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31738580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b00001c 0001c00c 001c0001 00003840 00102001 0db80000 00000000 00000000 0002c011 00020001 00003840 000c0672 61646975 73026e73 c011c011 00020001 00003840 000c0970 72656369 73696f6e c05dc011 00020001 00003840 000a0776 616d7069 7265c05d c0110002 00010000 3840000d 0a74656c 65636173 746572c0 5dc05600 01000100 00384000 043e31cc 92c05600 1c000100 00384000 10200104 701f091b 98000000 00000000 02c08600 01000100 00384000 043e31cc 96c08600 1c000100 00384000 10200104 701f091b 98000000 00000000 06c06e00 01000100 00384000 04d40dc6 46c06e00 1c000100 00384000 1020010b a8000001 d9000000 00000000 06c09c00 01000100 00384000 04d40dc6 47c09c00 1c000100 00384000 1020010b a8000001 d9000000 00000000 07. +0.000280 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31758580 00010000 00010000 01610664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0e000600 01000038 40002a06 72616469 7573c015 0a686f73 746d6173 746572c0 15780bf8 6a000151 8000000e 10001275 00000038 40. +0.000135 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31778580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004c633 6411c011 00020001 00003840 00100a74 656c6563 61737465 72026e73 c011c011 00020001 00003840 000c0970 72656369 73696f6e c055c011 00020001 00003840 000a0776 616d7069 7265c055 c0110002 00010000 38400009 06726164 697573c0 55c09400 01000100 00384000 043e31cc 92c09400 1c000100 00384000 10200104 701f091b 98000000 00000000 02c07e00 01000100 00384000 043e31cc 96c07e00 1c000100 00384000 10200104 701f091b 98000000 00000000 06c06600 01000100 00384000 04d40dc6 46c06600 1c000100 00384000 1020010b a8000001 d9000000 00000000 06c04a00 01000100 00384000 04d40dc6 47c04a00 1c000100 00384000 1020010b a8000001 d9000000 00000000 07. +0.000261 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31788580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b00001c 0001c00c 001c0001 00003840 00102001 0db80000 00000000 00000000 0002c011 00020001 00003840 00100a74 656c6563 61737465 72026e73 c011c011 00020001 00003840 000a0776 616d7069 7265c061 c0110002 00010000 3840000c 09707265 63697369 6f6ec061 c0110002 00010000 38400009 06726164 697573c0 61c0a000 01000100 00384000 043e31cc 92c0a000 1c000100 00384000 10200104 701f091b 98000000 00000000 02c07200 01000100 00384000 043e31cc 96c07200 1c000100 00384000 10200104 701f091b 98000000 00000000 06c08800 01000100 00384000 04d40dc6 46c08800 1c000100 00384000 1020010b a8000001 d9000000 00000000 06c05600 01000100 00384000 04d40dc6 47c05600 1c000100 00384000 1020010b a8000001 d9000000 00000000 07. +0.000272 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 317a8580 00010000 00010000 01610664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0e000600 01000038 40002a06 72616469 7573c015 0a686f73 746d6173 746572c0 15780bf8 6a000151 8000000e 10001275 00000038 40. +0.000049 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 317c8580 00010000 00010000 04616161 6106646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001c011 00060001 00003840 002a0672 61646975 73c0180a 686f7374 6d617374 6572c018 780bf86a 00015180 00000e10 00127500 00003840. +0.000123 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 317e8580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 12000200 01000038 40000f09 70726563 6973696f 6e026e73 c012c012 00020001 00003840 000a0776 616d7069 7265c0ed c0120002 00010000 3840000d 0a74656c 65636173 746572c0 edc01200 02000100 00384000 09067261 64697573 c0edc12d 00010001 00003840 00043e31 cc92c12d 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0fe 00010001 00003840 00043e31 cc96c0fe 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c0e3 00010001 00003840 0004d40d c646c0e3 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c114 00010001 00003840 0004d40d c647c114 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000294 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31808580 00010000 00010000 01610664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0e000600 01000038 40002a06 72616469 7573c015 0a686f73 746d6173 746572c0 15780bf8 6a000151 8000000e 10001275 00000038 40. +0.000075 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31828580 00010000 00010000 04616161 6106646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001c011 00060001 00003840 002a0672 61646975 73c0180a 686f7374 6d617374 6572c018 780bf86a 00015180 00000e10 00127500 00003840. +0.000041 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000026 select max=7 rfds=[6] wfds=[] efds=[] to=1.992946 select=1 rfds=[6] wfds=[] efds=[] +0.000486 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31848580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 03000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000001c0 0c001c00 01000038 40001020 010db800 01000000 00000000 000002c0 0c001c00 01000038 40001020 010db800 02000000 00000000 000001c0 12000200 01000038 40000d07 76616d70 69726502 6e73c012 c0120002 00010000 3840000c 09707265 63697369 6f6ec0eb c0120002 00010000 38400009 06726164 697573c0 ebc01200 02000100 00384000 0d0a7465 6c656361 73746572 c0ebc114 00010001 00003840 00043e31 cc92c114 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0e3 00010001 00003840 00043e31 cc96c0e3 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c0fc 00010001 00003840 0004d40d c646c0fc 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c129 00010001 00003840 0004d40d c647c129 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000144 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31868580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004c633 6411c011 00020001 00003840 000c0672 61646975 73026e73 c011c011 00020001 00003840 000d0a74 656c6563 61737465 72c051c0 11000200 01000038 40000c09 70726563 6973696f 6ec051c0 11000200 01000038 40000a07 76616d70 697265c0 51c04a00 01000100 00384000 043e31cc 92c04a00 1c000100 00384000 10200104 701f091b 98000000 00000000 02c09300 01000100 00384000 043e31cc 96c09300 1c000100 00384000 10200104 701f091b 98000000 00000000 06c07b00 01000100 00384000 04d40dc6 46c07b00 1c000100 00384000 1020010b a8000001 d9000000 00000000 06c06200 01000100 00384000 04d40dc6 47c06200 1c000100 00384000 1020010b a8000001 d9000000 00000000 07. +0.000128 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31878580 00010001 00040008 04616464 7206646e 73657272 09646973 746f7274 6564036f 72670275 6b00001c 0001c00c 001c0001 00003840 00102001 0db80000 00000000 00000000 0002c011 00020001 00003840 00100a74 656c6563 61737465 72026e73 c011c011 00020001 00003840 00090672 61646975 73c061c0 11000200 01000038 40000a07 76616d70 697265c0 61c01100 02000100 00384000 0c097072 65636973 696f6ec0 61c07200 01000100 00384000 043e31cc 92c07200 1c000100 00384000 10200104 701f091b 98000000 00000000 02c08700 01000100 00384000 043e31cc 96c08700 1c000100 00384000 10200104 701f091b 98000000 00000000 06c09d00 01000100 00384000 04d40dc6 46c09d00 1c000100 00384000 1020010b a8000001 d9000000 00000000 06c05600 01000100 00384000 04d40dc6 47c05600 1c000100 00384000 1020010b a8000001 d9000000 00000000 07. +0.000110 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000024 close fd=6 close=OK +0.000143 adns-1.5.0~rc1/regress/case-addr-multi-af.out0000664000175000017500000002337412421042026017114 0ustar ianianadns debug: using nameserver 172.29.199.224 maddr.dnserr.distorted.org.uk flags 0 type 65537 A(addr) submitted maddr.dnserr.distorted.org.uk flags 0 type 65551 MX(+addr) submitted maddr.dnserr.distorted.org.uk flags 0 type 65537 A(addr) submitted maddr.dnserr.distorted.org.uk flags 0 type 65551 MX(+addr) submitted mx.dnserr.distorted.org.uk flags 0 type 65537 A(addr) submitted mx.dnserr.distorted.org.uk flags 0 type 65551 MX(+addr) submitted mx.dnserr.distorted.org.uk flags 0 type 65537 A(addr) submitted mx.dnserr.distorted.org.uk flags 0 type 65551 MX(+addr) submitted maddr.dnserr.distorted.org.uk flags 1024 type 65537 A(addr) submitted maddr.dnserr.distorted.org.uk flags 1024 type 65551 MX(+addr) submitted maddr.dnserr.distorted.org.uk flags 1024 type 65537 A(addr) submitted maddr.dnserr.distorted.org.uk flags 1024 type 65551 MX(+addr) submitted mx.dnserr.distorted.org.uk flags 1024 type 65537 A(addr) submitted mx.dnserr.distorted.org.uk flags 1024 type 65551 MX(+addr) submitted mx.dnserr.distorted.org.uk flags 1024 type 65537 A(addr) submitted mx.dnserr.distorted.org.uk flags 1024 type 65551 MX(+addr) submitted maddr.dnserr.distorted.org.uk flags 2048 type 65537 A(addr) submitted maddr.dnserr.distorted.org.uk flags 2048 type 65551 MX(+addr) submitted maddr.dnserr.distorted.org.uk flags 2048 type 65537 A(addr) submitted maddr.dnserr.distorted.org.uk flags 2048 type 65551 MX(+addr) submitted mx.dnserr.distorted.org.uk flags 2048 type 65537 A(addr) submitted mx.dnserr.distorted.org.uk flags 2048 type 65551 MX(+addr) submitted mx.dnserr.distorted.org.uk flags 2048 type 65537 A(addr) submitted mx.dnserr.distorted.org.uk flags 2048 type 65551 MX(+addr) submitted maddr.dnserr.distorted.org.uk flags 3072 type 65537 A(addr) submitted maddr.dnserr.distorted.org.uk flags 3072 type 65551 MX(+addr) submitted maddr.dnserr.distorted.org.uk flags 3072 type 65537 A(addr) submitted maddr.dnserr.distorted.org.uk flags 3072 type 65551 MX(+addr) submitted mx.dnserr.distorted.org.uk flags 3072 type 65537 A(addr) submitted mx.dnserr.distorted.org.uk flags 3072 type 65551 MX(+addr) submitted mx.dnserr.distorted.org.uk flags 3072 type 65537 A(addr) submitted mx.dnserr.distorted.org.uk flags 3072 type 65551 MX(+addr) submitted maddr.dnserr.distorted.org.uk flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 maddr.dnserr.distorted.org.uk flags 0 type A(addr): OK; nrrs=6; cname=$; owner=$; ttl=14400 INET 198.51.100.1 INET 198.51.100.2 INET 192.0.2.2 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 maddr.dnserr.distorted.org.uk flags 0 type A(addr): OK; nrrs=12; cname=$; owner=$; ttl=14400 INET 198.51.100.1 INET 198.51.100.2 INET6 2001:db8:2::1 INET6 2001:db8:2::2 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 INET6 2001:db8:3::1 INET6 2001:db8:3::2 INET6 2001:db8:1::1 INET6 2001:db8:1::2 maddr.dnserr.distorted.org.uk flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 mx.dnserr.distorted.org.uk flags 0 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 mx.dnserr.distorted.org.uk flags 0 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 maddr.dnserr.distorted.org.uk flags 1024 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 maddr.dnserr.distorted.org.uk flags 1024 type A(addr): OK; nrrs=6; cname=$; owner=$; ttl=14400 INET 198.51.100.1 INET 198.51.100.2 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 INET 203.0.113.1 maddr.dnserr.distorted.org.uk flags 1024 type A(addr): OK; nrrs=6; cname=$; owner=$; ttl=14400 INET 198.51.100.1 INET 198.51.100.2 INET 192.0.2.1 INET 192.0.2.2 INET 203.0.113.1 INET 203.0.113.2 maddr.dnserr.distorted.org.uk flags 1024 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 mx.dnserr.distorted.org.uk flags 1024 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 mx.dnserr.distorted.org.uk flags 1024 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 maddr.dnserr.distorted.org.uk flags 2048 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 maddr.dnserr.distorted.org.uk flags 2048 type A(addr): OK; nrrs=6; cname=$; owner=$; ttl=14400 INET6 2001:db8:2::2 INET6 2001:db8:2::1 INET6 2001:db8:3::1 INET6 2001:db8:3::2 INET6 2001:db8:1::1 INET6 2001:db8:1::2 maddr.dnserr.distorted.org.uk flags 2048 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 maddr.dnserr.distorted.org.uk flags 2048 type A(addr): OK; nrrs=6; cname=$; owner=$; ttl=14400 INET6 2001:db8:2::1 INET6 2001:db8:2::2 INET6 2001:db8:3::1 INET6 2001:db8:3::2 INET6 2001:db8:1::1 INET6 2001:db8:1::2 mx.dnserr.distorted.org.uk flags 2048 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 mx.dnserr.distorted.org.uk flags 2048 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 maddr.dnserr.distorted.org.uk flags 3072 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 maddr.dnserr.distorted.org.uk flags 3072 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 maddr.dnserr.distorted.org.uk flags 3072 type A(addr): OK; nrrs=12; cname=$; owner=$; ttl=14400 INET 198.51.100.1 INET 198.51.100.2 INET6 2001:db8:2::1 INET6 2001:db8:2::2 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 INET 203.0.113.1 INET6 2001:db8:1::2 INET6 2001:db8:3::1 INET6 2001:db8:3::2 INET6 2001:db8:1::1 maddr.dnserr.distorted.org.uk flags 3072 type A(addr): OK; nrrs=12; cname=$; owner=$; ttl=14400 INET 198.51.100.1 INET 198.51.100.2 INET6 2001:db8:2::1 INET6 2001:db8:2::2 INET 192.0.2.1 INET 192.0.2.2 INET 203.0.113.1 INET 203.0.113.2 INET6 2001:db8:3::1 INET6 2001:db8:3::2 INET6 2001:db8:1::1 INET6 2001:db8:1::2 mx.dnserr.distorted.org.uk flags 3072 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 mx.dnserr.distorted.org.uk flags 3072 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=14400 mx.dnserr.distorted.org.uk flags 0 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.2 INET 198.51.100.1 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 ) 69 a.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.16 ) 69 aaaa.dnserr.distorted.org.uk permfail 301 nodata "No such data" ( ) 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.17 ) mx.dnserr.distorted.org.uk flags 0 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.1 INET 198.51.100.2 INET6 2001:db8:2::1 INET6 2001:db8:2::2 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 INET6 2001:db8:3::2 INET6 2001:db8:1::1 INET6 2001:db8:1::2 INET6 2001:db8:3::1 ) 69 a.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.16 ) 69 aaaa.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::1 ) 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.17 INET6 2001:db8::2 ) mx.dnserr.distorted.org.uk flags 1024 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400 69 a.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.16 ) 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.1 INET 198.51.100.2 INET 192.0.2.2 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 ) 69 aaaa.dnserr.distorted.org.uk permfail 301 nodata "No such data" ( ) 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.17 ) mx.dnserr.distorted.org.uk flags 1024 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400 69 a.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.16 ) 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.1 INET 198.51.100.2 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 ) 69 aaaa.dnserr.distorted.org.uk permfail 301 nodata "No such data" ( ) 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.17 ) mx.dnserr.distorted.org.uk flags 2048 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8:2::1 INET6 2001:db8:2::2 INET6 2001:db8:1::1 INET6 2001:db8:1::2 INET6 2001:db8:3::1 INET6 2001:db8:3::2 ) 69 aaaa.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::1 ) 69 a.dnserr.distorted.org.uk permfail 301 nodata "No such data" ( ) 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::2 ) mx.dnserr.distorted.org.uk flags 2048 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8:2::1 INET6 2001:db8:2::2 INET6 2001:db8:1::2 INET6 2001:db8:3::1 INET6 2001:db8:3::2 INET6 2001:db8:1::1 ) 69 aaaa.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::1 ) 69 a.dnserr.distorted.org.uk permfail 301 nodata "No such data" ( ) 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::2 ) mx.dnserr.distorted.org.uk flags 3072 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400 69 a.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.16 ) 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.1 INET 198.51.100.2 INET6 2001:db8:2::1 INET6 2001:db8:2::2 INET 192.0.2.2 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET6 2001:db8:3::1 INET6 2001:db8:3::2 INET6 2001:db8:1::1 INET6 2001:db8:1::2 ) 69 aaaa.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::1 ) 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.17 INET6 2001:db8::2 ) mx.dnserr.distorted.org.uk flags 3072 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=14400 69 a.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.16 ) 69 maddr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.1 INET 198.51.100.2 INET6 2001:db8:2::2 INET6 2001:db8:2::1 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 INET6 2001:db8:3::1 INET6 2001:db8:3::2 INET6 2001:db8:1::1 INET6 2001:db8:1::2 ) 69 aaaa.dnserr.distorted.org.uk ok 0 ok "OK" ( INET6 2001:db8::1 ) 70 addr.dnserr.distorted.org.uk ok 0 ok "OK" ( INET 198.51.100.17 INET6 2001:db8::2 ) rc=0 adns-1.5.0~rc1/regress/case-unknown5.out0000664000175000017500000000012012421042026016232 0ustar ianianpop.chiark.greenend.org.uk TYPE5 \# 15 0c736572 76696365 2d6e616d 65 c0 10 rc=0 adns-1.5.0~rc1/regress/init-distorted.text0000664000175000017500000000017412421042026016665 0ustar ianiannameserver 172.29.199.224 sortlist 198.51.100.0/24 2001:db8:2::/48 0/0 ::/0 search dnserr.distorted.org.uk distorted.org.uk adns-1.5.0~rc1/regress/case-longdomsrch1b.out0000664000175000017500000000116112421042026017216 0ustar ianianadns debug: using nameserver 172.18.45.6 1xxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk flags 1 type 1 A(-) submitted 1xxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk flags 1 type A(-): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 rc=0 adns-1.5.0~rc1/regress/case-v6-transport-simple.sys0000664000175000017500000002102312422510662020345 0ustar ianian./adnstest distorted-v6 -0x400 www.distorted.org.uk start 1402047441.083542 socket domain=AF_INET6 type=SOCK_DGRAM socket=6 +0.000065 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000031 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000026 sendto fd=6 addr=[2001:ba8:1d9::1]:53 311f0100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=38 +0.000733 sendto fd=6 addr=[2001:ba8:1d9::1]:53 31200100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b000002 0001. sendto=38 +0.000302 sendto fd=6 addr=[2001:ba8:1d9::1]:53 31210100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b000005 0001. sendto=38 +0.000357 sendto fd=6 addr=[2001:ba8:1d9::1]:53 31220100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b000006 0001. sendto=38 +0.000275 sendto fd=6 addr=[2001:ba8:1d9::1]:53 31230100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b00000c 0001. sendto=38 +0.000260 sendto fd=6 addr=[2001:ba8:1d9::1]:53 31240100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b00000d 0001. sendto=38 +0.000257 sendto fd=6 addr=[2001:ba8:1d9::1]:53 31250100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b00000f 0001. sendto=38 +0.000254 sendto fd=6 addr=[2001:ba8:1d9::1]:53 31260100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b000010 0001. sendto=38 +0.000272 sendto fd=6 addr=[2001:ba8:1d9::1]:53 31270100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b000011 0001. sendto=38 +0.000253 sendto fd=6 addr=[2001:ba8:1d9::1]:53 31290100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=38 +0.000255 sendto fd=6 addr=[2001:ba8:1d9::1]:53 312a0100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b000002 0001. sendto=38 +0.000253 sendto fd=6 addr=[2001:ba8:1d9::1]:53 312c0100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b00000f 0001. sendto=38 +0.000343 sendto fd=6 addr=[2001:ba8:1d9::1]:53 312d0100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b000006 0001. sendto=38 +0.000269 sendto fd=6 addr=[2001:ba8:1d9::1]:53 312e0100 00010000 00000000 03777777 09646973 746f7274 6564036f 72670275 6b000011 0001. sendto=38 +0.000267 select max=7 rfds=[6] wfds=[] efds=[] to=1.995650 select=1 rfds=[6] wfds=[] efds=[] +0.118752 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 311f8580 00010001 00040008 03777777 09646973 746f7274 6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004ac1d c7b4c010 00020001 00003840 00100a74 656c6563 61737465 72026e73 c010c010 00020001 00003840 000a0776 616d7069 7265c04d c0100002 00010000 38400009 06726164 697573c0 4dc01000 02000100 00384000 0c097072 65636973 696f6ec0 4dc07400 01000100 00384000 04ac1dc7 01c07400 1c000100 00384000 10200104 70974000 01000000 00000000 01c05e00 01000100 00384000 04ac1dc7 05c05e00 1c000100 00384000 10200104 70974000 01000000 00000000 05c08900 01000100 00384000 04ac1dc7 b2c08900 1c000100 00384000 1020010b a801d900 02000000 00000000 02c04200 01000100 00384000 04ac1dc7 b3c04200 1c000100 00384000 1020010b a801d900 02000000 00000000 03. +0.000346 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 31208580 00010000 00010000 03777777 09646973 746f7274 6564036f 72670275 6b000002 0001c010 00060001 00003840 002a0672 61646975 73c0100a 686f7374 6d617374 6572c010 780bfb99 00015180 00000e10 00127500 00003840. +0.000138 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 31218580 00010000 00010000 03777777 09646973 746f7274 6564036f 72670275 6b000005 0001c010 00060001 00003840 002a0672 61646975 73c0100a 686f7374 6d617374 6572c010 780bfb99 00015180 00000e10 00127500 00003840. +0.000108 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 31228580 00010000 00010000 03777777 09646973 746f7274 6564036f 72670275 6b000006 0001c010 00060001 00003840 002a0672 61646975 73c0100a 686f7374 6d617374 6572c010 780bfb99 00015180 00000e10 00127500 00003840. +0.000131 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 31238580 00010000 00010000 03777777 09646973 746f7274 6564036f 72670275 6b00000c 0001c010 00060001 00003840 002a0672 61646975 73c0100a 686f7374 6d617374 6572c010 780bfb99 00015180 00000e10 00127500 00003840. +0.000154 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000033 select max=7 rfds=[6] wfds=[] efds=[] to=1.877915 select=1 rfds=[6] wfds=[] efds=[] +0.000368 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 31248580 00010000 00010000 03777777 09646973 746f7274 6564036f 72670275 6b00000d 0001c010 00060001 00003840 002a0672 61646975 73c0100a 686f7374 6d617374 6572c010 780bfb99 00015180 00000e10 00127500 00003840. +0.000117 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000034 select max=7 rfds=[6] wfds=[] efds=[] to=1.877653 select=1 rfds=[6] wfds=[] efds=[] +0.000616 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 31258580 00010000 00010000 03777777 09646973 746f7274 6564036f 72670275 6b00000f 0001c010 00060001 00003840 002a0672 61646975 73c0100a 686f7374 6d617374 6572c010 780bfb99 00015180 00000e10 00127500 00003840. +0.000114 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 31268580 00010000 00010000 03777777 09646973 746f7274 6564036f 72670275 6b000010 0001c010 00060001 00003840 002a0672 61646975 73c0100a 686f7374 6d617374 6572c010 780bfb99 00015180 00000e10 00127500 00003840. +0.000106 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 31278580 00010000 00010000 03777777 09646973 746f7274 6564036f 72670275 6b000011 0001c010 00060001 00003840 002a0672 61646975 73c0100a 686f7374 6d617374 6572c010 780bfb99 00015180 00000e10 00127500 00003840. +0.000107 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000031 select max=7 rfds=[6] wfds=[] efds=[] to=1.877458 select=1 rfds=[6] wfds=[] efds=[] +0.000101 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 31298580 00010001 00040008 03777777 09646973 746f7274 6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004ac1d c7b4c010 00020001 00003840 00100a74 656c6563 61737465 72026e73 c010c010 00020001 00003840 000a0776 616d7069 7265c04d c0100002 00010000 38400009 06726164 697573c0 4dc01000 02000100 00384000 0c097072 65636973 696f6ec0 4dc07400 01000100 00384000 04ac1dc7 01c07400 1c000100 00384000 10200104 70974000 01000000 00000000 01c05e00 01000100 00384000 04ac1dc7 05c05e00 1c000100 00384000 10200104 70974000 01000000 00000000 05c08900 01000100 00384000 04ac1dc7 b2c08900 1c000100 00384000 1020010b a801d900 02000000 00000000 02c04200 01000100 00384000 04ac1dc7 b3c04200 1c000100 00384000 1020010b a801d900 02000000 00000000 03. +0.000273 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000043 select max=7 rfds=[6] wfds=[] efds=[] to=1.877296 select=1 rfds=[6] wfds=[] efds=[] +0.000239 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 312a8580 00010000 00010000 03777777 09646973 746f7274 6564036f 72670275 6b000002 0001c010 00060001 00003840 002a0672 61646975 73c0100a 686f7374 6d617374 6572c010 780bfb99 00015180 00000e10 00127500 00003840. +0.000113 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 312c8580 00010000 00010000 03777777 09646973 746f7274 6564036f 72670275 6b00000f 0001c010 00060001 00003840 002a0672 61646975 73c0100a 686f7374 6d617374 6572c010 780bfb99 00015180 00000e10 00127500 00003840. +0.000108 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 312d8580 00010000 00010000 03777777 09646973 746f7274 6564036f 72670275 6b000006 0001c010 00060001 00003840 002a0672 61646975 73c0100a 686f7374 6d617374 6572c010 780bfb99 00015180 00000e10 00127500 00003840. +0.000104 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000069 select max=7 rfds=[6] wfds=[] efds=[] to=1.877528 select=1 rfds=[6] wfds=[] efds=[] +0.000094 recvfrom fd=6 buflen=512 recvfrom=OK addr=[2001:ba8:1d9::1]:53 312e8580 00010000 00010000 03777777 09646973 746f7274 6564036f 72670275 6b000011 0001c010 00060001 00003840 002a0672 61646975 73c0100a 686f7374 6d617374 6572c010 780bfb99 00015180 00000e10 00127500 00003840. +0.000106 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000032 close fd=6 close=OK +0.000110 adns-1.5.0~rc1/regress/case-comprinf.sys0000664000175000017500000000207512422540543016315 0ustar ianianadnstest default :0x0|12 37.45.18.172.in-addr.arpa. start 951961094.184850 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000134 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000053 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000035 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 02333702 34350231 38033137 3207696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000960 select max=5 rfds=[4] wfds=[] efds=[] to=1.999040 select=1 rfds=[4] wfds=[] efds=[] +0.000200 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010002 00010001 02333702 34350231 38033137 3207696e 2d616464 72046172 70610000 0c0001c0 0c000500 01000151 80003f02 33370234 35023138 03313732 07696e2d 61646472 04617270 61047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c037 000c0001 0000003c 00060370 7472c082 c0510002 00010000 003c0006 036e7330 c05ac094 00010001 00015180 0004ac12 2d06. +0.000624 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000222 close fd=4 close=OK +0.000197 adns-1.5.0~rc1/regress/case-ptr-aaaa-caps.sys0000664000175000017500000000653512422540543017117 0ustar ianian./adnstest default :0x10000|12 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.D.1.0.8.A.B.0.1.0.0.2.IP6.ARPA start 1406162686.218685 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000153 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000069 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000058 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 01340130 01300130 01300130 01300130 01300130 01300130 01300130 01300130 01320130 01300130 01390144 01310130 01380141 01420130 01310130 01300132 03495036 04415250 4100000c 0001. sendto=90 +0.000569 select max=7 rfds=[6] wfds=[] efds=[] to=1.999431 select=1 rfds=[6] wfds=[] efds=[] +0.227524 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010001 00040008 01340130 01300130 01300130 01300130 01300130 01300130 01300130 01300130 01320130 01300130 01390144 01310130 01380141 01420130 01310130 01300132 03495036 04415250 4100000c 0001c00c 000c0001 000034cc 00240c73 74726174 6f636173 74657204 636f6c6f 09646973 746f7274 6564036f 72670275 6b00c034 00020001 000034cc 000c0970 72656369 73696f6e c078c034 00020001 000034cc 00090672 61646975 73c078c0 34000200 01000034 cc000a07 76616d70 697265c0 78c03400 02000100 0034cc00 0d0a7465 6c656361 73746572 c078c0ae 00010001 000034cc 00043e31 cc92c0ae 001c0001 000034cc 00102001 04701f09 1b980000 00000000 0002c0c3 00010001 000034cc 00043e31 cc96c0c3 001c0001 000034cc 00102001 04701f09 1b980000 00000000 0006c096 00010001 000034cc 0004d40d c646c096 001c0001 000034cc 00102001 0ba80000 01d90000 00000000 0006c0d9 00010001 000034cc 0004d40d c647c0d9 001c0001 000034cc 00102001 0ba80000 01d90000 00000000 0007. +0.000594 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 0c737472 61746f63 61737465 7204636f 6c6f0964 6973746f 72746564 036f7267 02756b00 001c0001. sendto=52 +0.000187 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000064 select max=7 rfds=[6] wfds=[] efds=[] to=1.999155 select=1 rfds=[6] wfds=[] efds=[] +0.002970 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010001 0006000c 0c737472 61746f63 61737465 7204636f 6c6f0964 6973746f 72746564 036f7267 02756b00 001c0001 c00c001c 00010000 34cc0010 20010ba8 01d90002 00000000 00000004 c01e0002 00010000 34cc000f 09707265 63697369 6f6e026e 73c01ec0 1e000200 01000034 cc000906 72616469 7573c066 c01e0002 00010000 34cc0012 0f6d7974 6869632d 62656173 74732d32 c066c01e 00020001 000034cc 000d0a74 656c6563 61737465 72c066c0 1e000200 01000034 cc00120f 6d797468 69632d62 65617374 732d31c0 66c01e00 02000100 0034cc00 09066368 6961726b c066c0e1 00010001 000034cc 0004d40d c5e5c0e1 001c0001 000034cc 00102001 0ba801e3 00000000 00000000 0000c077 00010001 000034cc 00043e31 cc92c077 001c0001 000034cc 00102001 04701f09 1b980000 00000000 0002c05c 00010001 000034cc 0004d40d c646c05c 001c0001 000034cc 00102001 0ba80000 01d90000 00000000 0006c0aa 00010001 000034cc 0004d40d c647c0aa 001c0001 000034cc 00102001 0ba80000 01d90000 00000000 0007c0c3 00010001 000034cc 00044538 adbec0c3 001c0001 000034cc 00102600 3c000000 0000f03c 91fffe96 beacc08c 00010001 000034cc 00045d5d 8043c08c 001c0001 000034cc 00102a00 10980000 00801000 00000000 0010. +0.000940 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000110 close fd=6 close=OK +0.000199 adns-1.5.0~rc1/regress/case-longdomsrch1b.sys0000664000175000017500000000423112422540543017236 0ustar ianianadnstest ndots100 :0x0|1 1/1xxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk start 951956136.566877 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000137 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000060 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000038 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 13317878 786c6c6c 616e7479 73696c69 6f676f67 3f6c6c61 6e666169 7270776c 6c677779 6e67796c 6c676f67 65727963 68777972 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 3f6c6c61 6e666169 7270776c 6c677779 6e67796c 6c676f67 65727963 68777972 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 3f6c6c61 6e666169 7270776c 6c677779 6e67796c 6c676f67 65727963 68777972 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00010001. sendto=256 +0.004128 select max=5 rfds=[4] wfds=[] efds=[] to=1.995872 select=1 rfds=[4] wfds=[] efds=[] +0.000232 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218583 00010000 00010000 13317878 786c6c6c 616e7479 73696c69 6f676f67 3f6c6c61 6e666169 7270776c 6c677779 6e67796c 6c676f67 65727963 68777972 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 3f6c6c61 6e666169 7270776c 6c677779 6e67796c 6c676f67 65727963 68777972 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 3f6c6c61 6e666169 7270776c 6c677779 6e67796c 6c676f67 65727963 68777972 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00010001 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00060001 00015180 0027036e 7330c100 0a686f73 746d6173 746572c1 00000000 2d00001c 2000000e 1000093a 80000151 80. +0.001145 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000155 close fd=4 close=OK +0.000161 adns-1.5.0~rc1/regress/case-tcpblock.out0000664000175000017500000000563212421042026016264 0ustar ianianadns debug: using nameserver 172.18.45.2 test.iwj.relativity.greenend.org.uk. flags 2 type 1 A(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 2 NS(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 5 CNAME(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 6 SOA(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 12 PTR(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 13 HINFO(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 15 MX(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 16 TXT(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 17 RP(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65537 A(addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65538 NS(+addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65548 PTR(checked) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65551 MX(+addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 131078 SOA(822) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 131089 RP(822) submitted test.iwj.relativity.greenend.org.uk. flags 2 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 adns debug: TCP connected (NS=172.18.45.2) test.iwj.relativity.greenend.org.uk. flags 2 type A(-): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type NS(raw): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type CNAME(-): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type SOA(raw): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type PTR(raw): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type HINFO(-): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type MX(raw): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type TXT(-): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type RP(raw): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type NS(+addr): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type MX(+addr): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type SOA(822): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type RP(822): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 test.iwj.relativity.greenend.org.uk. flags 2 type A(addr): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 rc=0 adns-1.5.0~rc1/regress/case-abbrev.sys0000664000175000017500000002176012422510661015741 0ustar ianianadnstest default -0x400 ,a/greenend.org.uk start 929580078.542974 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000202 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000086 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000061 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000623 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000425 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500 01. sendto=33 +0.000371 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000369 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00 01. sendto=33 +0.000369 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00 01. sendto=33 +0.000414 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000371 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000 01. sendto=33 +0.000368 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000368 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=33 +0.000367 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200 01. sendto=33 +0.000733 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00 01. sendto=33 +0.000378 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600 01. sendto=33 +0.000391 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=33 +0.000467 select max=5 rfds=[4] wfds=[] efds=[] to=1.993986 select=1 rfds=[4] wfds=[] efds=[] +0.005183 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61 73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180. +0.000588 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000147 select max=5 rfds=[4] wfds=[] efds=[] to=1.988691 select=1 rfds=[4] wfds=[] efds=[] +0.004348 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010002 00000002 08677265 656e656e 64036f72 6702756b 00000200 01c00c00 02000100 01518000 11036e73 310a7265 6c617469 76697479 c00cc00c 00020001 00015180 0006036e 7330c031 c02d0001 00010001 51800004 ac122d41 c04a0001 00010001 51800004 ac122d06. +0.000642 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000247 select max=5 rfds=[4] wfds=[] efds=[] to=1.983879 select=1 rfds=[4] wfds=[] efds=[] +0.002737 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00000500 01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61 73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180. +0.000541 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000099 select max=5 rfds=[4] wfds=[] efds=[] to=1.980873 select=1 rfds=[4] wfds=[] efds=[] +0.005000 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228580 00010001 00020002 08677265 656e656e 64036f72 6702756b 00000600 01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61 73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180c00c 00020001 00015180 0011036e 73310a72 656c6174 69766974 79c00cc0 0c000200 01000151 80000603 6e7330c0 6ac06600 01000100 01518000 04ac122d 41c08300 01000100 01518000 04ac122d 06. +0.000913 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000195 select max=5 rfds=[4] wfds=[] efds=[] to=1.975134 select=1 rfds=[4] wfds=[] efds=[] +0.002529 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00000c00 01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61 73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180. +0.000541 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000100 select max=5 rfds=[4] wfds=[] efds=[] to=1.972333 select=1 rfds=[4] wfds=[] efds=[] +0.003175 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00000d00 01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61 73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180. +0.000538 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000122 select max=5 rfds=[4] wfds=[] efds=[] to=1.968912 select=1 rfds=[4] wfds=[] efds=[] +0.005109 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258580 00010001 00020003 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 0f000100 01518000 0b000a06 63686961 726bc00c c00c0002 00010001 51800011 036e7331 0a72656c 61746976 697479c0 0cc00c00 02000100 01518000 06036e73 30c048c0 2f000100 01000151 800004c3 e04c84c0 44000100 01000151 800004ac 122d41c0 61000100 01000151 800004ac 122d06. +0.000826 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000173 select max=5 rfds=[4] wfds=[] efds=[] to=1.963175 select=1 rfds=[4] wfds=[] efds=[] +0.002746 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00001000 01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61 73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180. +0.000539 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000127 select max=5 rfds=[4] wfds=[] efds=[] to=1.960131 select=1 rfds=[4] wfds=[] efds=[] +0.003161 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61 73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180. +0.000537 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000098 select max=5 rfds=[4] wfds=[] efds=[] to=1.956703 select=1 rfds=[4] wfds=[] efds=[] +0.003055 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61 73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180. +0.000537 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000126 select max=5 rfds=[4] wfds=[] efds=[] to=1.953352 select=1 rfds=[4] wfds=[] efds=[] +0.004322 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8580 00010002 00000002 08677265 656e656e 64036f72 6702756b 00000200 01c00c00 02000100 01518000 11036e73 300a7265 6c617469 76697479 c00cc00c 00020001 00015180 0006036e 7331c031 c02d0001 00010001 51800004 ac122d06 c04a0001 00010001 51800004 ac122d41. +0.000638 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.003678 select max=5 rfds=[4] wfds=[] efds=[] to=1.945447 select=1 rfds=[4] wfds=[] efds=[] +0.005215 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8580 00010001 00020003 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 0f000100 01518000 0b000a06 63686961 726bc00c c00c0002 00010001 51800011 036e7330 0a72656c 61746976 697479c0 0cc00c00 02000100 01518000 06036e73 31c048c0 2f000100 01000151 800004c3 e04c84c0 44000100 01000151 800004ac 122d06c0 61000100 01000151 800004ac 122d41. +0.000822 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000197 select max=5 rfds=[4] wfds=[] efds=[] to=1.939591 select=1 rfds=[4] wfds=[] efds=[] +0.004484 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8580 00010001 00020002 08677265 656e656e 64036f72 6702756b 00000600 01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61 73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180c00c 00020001 00015180 0011036e 73300a72 656c6174 69766974 79c00cc0 0c000200 01000151 80000603 6e7331c0 6ac06600 01000100 01518000 04ac122d 06c08300 01000100 01518000 04ac122d 41. +0.000910 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000223 select max=5 rfds=[4] wfds=[] efds=[] to=1.934365 select=1 rfds=[4] wfds=[] efds=[] +0.002704 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61 73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180. +0.000537 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000099 close fd=4 close=OK +0.000153 adns-1.5.0~rc1/regress/case-dh-ptr-aaaa.sys0000664000175000017500000000564512422510661016563 0ustar ianian./adnshost distorted -i2001:ba8:1d9:2::4 start 1401919808.588362 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000058 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000031 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000026 sendto fd=6 addr=172.29.199.224:53 311f0100 00010000 00000000 01340130 01300130 01300130 01300130 01300130 01300130 01300130 01300130 01320130 01300130 01390164 01310130 01380161 01620130 01310130 01300132 03697036 04617270 6100000c 0001. sendto=90 +0.000233 select max=7 rfds=[6] wfds=[] efds=[] to=1.999767 select=1 rfds=[6] wfds=[] efds=[] +0.004488 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 311f8580 00010001 00040008 01340130 01300130 01300130 01300130 01300130 01300130 01300130 01300130 01320130 01300130 01390164 01310130 01380161 01620130 01310130 01300132 03697036 04617270 6100000c 0001c00c 000c0001 00003840 001f0c73 74726174 6f636173 74657209 64697374 6f727465 64036f72 6702756b 00c03400 02000100 00384000 0d0a7465 6c656361 73746572 c073c034 00020001 00003840 00090672 61646975 73c073c0 34000200 01000038 40000c09 70726563 6973696f 6ec073c0 34000200 01000038 40000a07 76616d70 697265c0 73c0aa00 01000100 00384000 04ac1dc7 01c0aa00 1c000100 00384000 10200104 70974000 01000000 00000000 01c0d700 01000100 00384000 04ac1dc7 05c0d700 1c000100 00384000 10200104 70974000 01000000 00000000 05c0bf00 01000100 00384000 04ac1dc7 b2c0bf00 1c000100 00384000 1020010b a801d900 02000000 00000000 02c09100 01000100 00384000 04ac1dc7 b3c09100 1c000100 00384000 1020010b a801d900 02000000 00000000 03. +0.000405 sendto fd=6 addr=172.29.199.224:53 31200100 00010000 00000000 0c737472 61746f63 61737465 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000175 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000040 select max=7 rfds=[6] wfds=[] efds=[] to=1.999380 select=1 rfds=[6] wfds=[] efds=[] +0.002002 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31208580 00010001 00040008 0c737472 61746f63 61737465 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010ba801 d9000200 00000000 000004c0 19000200 01000038 4000100a 74656c65 63617374 6572026e 73c019c0 19000200 01000038 40000c09 70726563 6973696f 6ec062c0 19000200 01000038 40000906 72616469 7573c062 c0190002 00010000 3840000a 0776616d 70697265 c062c08b 00010001 00003840 0004ac1d c701c08b 001c0001 00003840 00102001 04709740 00010000 00000000 0001c0a0 00010001 00003840 0004ac1d c705c0a0 001c0001 00003840 00102001 04709740 00010000 00000000 0005c073 00010001 00003840 0004ac1d c7b2c073 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0002c057 00010001 00003840 0004ac1d c7b3c057 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0003. +0.000280 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000051 close fd=6 close=OK +0.000134 adns-1.5.0~rc1/regress/case-ptr-aaaa-mismatch.sys0000664000175000017500000000574612422540543020001 0ustar ianian./adnstest distorted :0x10000|12 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.b.d.0.1.0.0.2.ip6.arpa start 1401919322.902230 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000061 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000031 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000026 sendto fd=6 addr=172.29.199.224:53 311f0100 00010000 00000000 01340130 01300130 01300130 01300130 01300130 01300130 01300130 01300130 01320130 01300130 01390164 01310130 01380162 01640130 01310130 01300132 03697036 04617270 6100000c 0001. sendto=90 +0.000410 select max=7 rfds=[6] wfds=[] efds=[] to=1.999590 select=1 rfds=[6] wfds=[] efds=[] +0.003725 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 311f8580 00010001 00040008 01340130 01300130 01300130 01300130 01300130 01300130 01300130 01300130 01320130 01300130 01390164 01310130 01380162 01640130 01310130 01300132 03697036 04617270 6100000c 0001c00c 000c0001 00003840 001f0c73 74726174 6f636173 74657209 64697374 6f727465 64036f72 6702756b 00c03400 02000100 00384000 0c097072 65636973 696f6ec0 73c03400 02000100 00384000 0d0a7465 6c656361 73746572 c073c034 00020001 00003840 00090672 61646975 73c073c0 34000200 01000038 40000a07 76616d70 697265c0 73c0c200 01000100 00384000 04ac1dc7 01c0c200 1c000100 00384000 10200104 70974000 01000000 00000000 01c0d700 01000100 00384000 04ac1dc7 05c0d700 1c000100 00384000 10200104 70974000 01000000 00000000 05c09100 01000100 00384000 04ac1dc7 b2c09100 1c000100 00384000 1020010b a801d900 02000000 00000000 02c0a900 01000100 00384000 04ac1dc7 b3c0a900 1c000100 00384000 1020010b a801d900 02000000 00000000 03. +0.000340 sendto fd=6 addr=172.29.199.224:53 31200100 00010000 00000000 0c737472 61746f63 61737465 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000244 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000035 select max=7 rfds=[6] wfds=[] efds=[] to=1.999381 select=1 rfds=[6] wfds=[] efds=[] +0.001587 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31208580 00010001 00040008 0c737472 61746f63 61737465 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010ba801 d9000200 00000000 000004c0 19000200 01000038 40000c06 72616469 7573026e 73c019c0 19000200 01000038 40000a07 76616d70 697265c0 5ec01900 02000100 00384000 0c097072 65636973 696f6ec0 5ec01900 02000100 00384000 0d0a7465 6c656361 73746572 c05ec057 00010001 00003840 0004ac1d c701c057 001c0001 00003840 00102001 04709740 00010000 00000000 0001c06f 00010001 00003840 0004ac1d c705c06f 001c0001 00003840 00102001 04709740 00010000 00000000 0005c085 00010001 00003840 0004ac1d c7b2c085 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0002c09d 00010001 00003840 0004ac1d c7b3c09d 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0003. +0.000289 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000048 close fd=6 close=OK +0.000546 adns-1.5.0~rc1/regress/case-srvsort.out0000664000175000017500000000527512421042026016210 0ustar ianian_srv._tcp.test.iwj.relativity.greenend.org.uk SRV 10 66 10066 davenant.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 400 20400 anarres.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 200 20200 norway.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 100 20100 nxdomain.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 10 66 10066 davenant.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 400 20400 anarres.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 100 20100 nxdomain.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 200 20200 norway.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 10 66 10066 davenant.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 400 20400 anarres.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 200 20200 norway.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 100 20100 nxdomain.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 10 66 10066 davenant.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 200 20200 norway.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 400 20400 anarres.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 100 20100 nxdomain.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 10 66 10066 davenant.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 200 20200 norway.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 400 20400 anarres.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 100 20100 nxdomain.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 10 66 10066 davenant.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 400 20400 anarres.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 100 20100 nxdomain.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 200 20200 norway.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 10 66 10066 davenant.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 100 20100 nxdomain.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 200 20200 norway.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 400 20400 anarres.relativity.greenend.org.uk rc=0 adns-1.5.0~rc1/regress/case-rootqueryall-as.out0000664000175000017500000001277012421042026017627 0ustar ianianadns debug: using nameserver 172.18.45.6 . flags 0 type 1 A(-) submitted . flags 0 type 2 NS(raw) submitted . flags 0 type 5 CNAME(-) submitted . flags 0 type 6 SOA(raw) submitted . flags 0 type 12 PTR(raw) submitted . flags 0 type 13 HINFO(-) submitted . flags 0 type 15 MX(raw) submitted . flags 0 type 16 TXT(-) submitted . flags 0 type 17 RP(raw) submitted . flags 0 type 65537 A(addr) submitted . flags 0 type 65538 NS(+addr) submitted . flags 0 type 65548 PTR(checked) submitted . flags 0 type 65551 MX(+addr) submitted . flags 0 type 131078 SOA(822) submitted . flags 0 type 131089 RP(822) submitted . flags 1 type 1 A(-) submitted . flags 1 type 2 NS(raw) submitted . flags 1 type 5 CNAME(-) submitted . flags 1 type 6 SOA(raw) submitted . flags 1 type 12 PTR(raw) submitted . flags 1 type 13 HINFO(-) submitted . flags 1 type 15 MX(raw) submitted . flags 1 type 16 TXT(-) submitted . flags 1 type 17 RP(raw) submitted . flags 1 type 65537 A(addr) submitted . flags 1 type 65538 NS(+addr) submitted . flags 1 type 65548 PTR(checked) submitted . flags 1 type 65551 MX(+addr) submitted . flags 1 type 131078 SOA(822) submitted . flags 1 type 131089 RP(822) submitted . flags 0 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 . flags 1 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 . flags 0 type A(-): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 0 type NS(raw): OK; nrrs=13; cname=$; owner=$; ttl=518399 E.ROOT-SERVERS.NET I.ROOT-SERVERS.NET F.ROOT-SERVERS.NET G.ROOT-SERVERS.NET J.ROOT-SERVERS.NET K.ROOT-SERVERS.NET L.ROOT-SERVERS.NET M.ROOT-SERVERS.NET A.ROOT-SERVERS.NET H.ROOT-SERVERS.NET B.ROOT-SERVERS.NET C.ROOT-SERVERS.NET D.ROOT-SERVERS.NET . flags 0 type SOA(raw): OK; nrrs=1; cname=$; owner=$; ttl=82079 A.ROOT-SERVERS.NET hostmaster.INTERNIC.NET 1999071300 1800 900 604800 86400 . flags 0 type PTR(raw): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 0 type HINFO(-): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 0 type MX(raw): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 0 type TXT(-): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 0 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 0 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 0 type NS(+addr): OK; nrrs=13; cname=$; owner=$; ttl=518399 I.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.36.148.17 ) F.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.5.5.241 ) G.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.112.36.4 ) J.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.10 ) K.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 193.0.14.129 ) L.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.32.64.12 ) M.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 202.12.27.33 ) A.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.4 ) H.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.63.2.53 ) B.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.9.0.107 ) C.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.33.4.12 ) D.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.8.10.90 ) E.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.203.230.10 ) . flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 0 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=77975 A.ROOT-SERVERS.NET hostmaster@INTERNIC.NET 1999071300 1800 900 604800 86400 . flags 0 type RP(822): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 1 type A(-): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 1 type NS(raw): OK; nrrs=13; cname=$; owner=$; ttl=518399 F.ROOT-SERVERS.NET G.ROOT-SERVERS.NET J.ROOT-SERVERS.NET K.ROOT-SERVERS.NET L.ROOT-SERVERS.NET M.ROOT-SERVERS.NET A.ROOT-SERVERS.NET H.ROOT-SERVERS.NET B.ROOT-SERVERS.NET C.ROOT-SERVERS.NET D.ROOT-SERVERS.NET E.ROOT-SERVERS.NET I.ROOT-SERVERS.NET . flags 1 type SOA(raw): OK; nrrs=1; cname=$; owner=$; ttl=74076 A.ROOT-SERVERS.NET hostmaster.INTERNIC.NET 1999071300 1800 900 604800 86400 . flags 1 type PTR(raw): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 1 type HINFO(-): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 1 type MX(raw): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 1 type TXT(-): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 1 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 1 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 1 type NS(+addr): OK; nrrs=13; cname=$; owner=$; ttl=518399 G.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.112.36.4 ) J.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.10 ) K.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 193.0.14.129 ) L.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.32.64.12 ) M.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 202.12.27.33 ) A.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 198.41.0.4 ) H.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.63.2.53 ) B.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.9.0.107 ) C.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.33.4.12 ) D.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 128.8.10.90 ) E.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.203.230.10 ) I.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.36.148.17 ) F.ROOT-SERVERS.NET ok 0 ok "OK" ( INET 192.5.5.241 ) . flags 1 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 1 type SOA(822): OK; nrrs=1; cname=$; owner=$; ttl=70372 A.ROOT-SERVERS.NET hostmaster@INTERNIC.NET 1999071300 1800 900 604800 86400 . flags 1 type RP(822): No such data; nrrs=0; cname=$; owner=$; ttl=599 . flags 0 type CNAME(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400 . flags 1 type CNAME(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400 rc=0 adns-1.5.0~rc1/regress/case-ptrbaddom.out0000664000175000017500000000111212421042026016424 0ustar ianianadns debug: using nameserver 172.18.45.6 37.45.18.172.in-addr.arpa.test.iwj.relativity.greenend.org.uk. flags 0 type 12 PTR(raw) submitted 37.45.18.172.in-addr.arpa.test.iwj.relativity.greenend.org.uk. flags 0 type 65548 PTR(checked) submitted 37.45.18.172.in-addr.arpa.test.iwj.relativity.greenend.org.uk. flags 0 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 37.45.18.172.in-addr.arpa.test.iwj.relativity.greenend.org.uk. flags 0 type PTR(raw): OK; nrrs=1; cname=$; owner=$; ttl=60 ptr.test.iwj.relativity.greenend.org.uk rc=0 adns-1.5.0~rc1/regress/case-polltimeout.err0000664000175000017500000000000012421042026017001 0ustar ianianadns-1.5.0~rc1/regress/hredirect.h0000664000175000017500000000144612421044560015147 0ustar ianian#ifndef HREDIRECT_H_INCLUDED #define HREDIRECT_H_INCLUDED #include "hsyscalls.h" #undef select #define select Hselect #ifdef HAVE_POLL #undef poll #define poll Hpoll #endif #undef socket #define socket Hsocket #undef fcntl #define fcntl Hfcntl #undef connect #define connect Hconnect #undef bind #define bind Hbind #undef listen #define listen Hlisten #undef close #define close Hclose #undef sendto #define sendto Hsendto #undef recvfrom #define recvfrom Hrecvfrom #undef read #define read Hread #undef write #define write Hwrite #undef writev #define writev Hwritev #undef gettimeofday #define gettimeofday Hgettimeofday #undef getpid #define getpid Hgetpid #undef malloc #define malloc Hmalloc #undef free #define free Hfree #undef realloc #define realloc Hrealloc #undef exit #define exit Hexit #endif adns-1.5.0~rc1/regress/case-norm.out0000664000175000017500000000030512421042026015426 0ustar ianianadns debug: using nameserver 172.18.45.6 chiark.greenend.org.uk flags 0 type 1 A(-) submitted chiark.greenend.org.uk flags 0 type A(-): OK; nrrs=1; cname=$; owner=$; ttl=86400 195.224.76.132 rc=0 adns-1.5.0~rc1/regress/case-manyptrwrongrst.err0000664000175000017500000000000012421042026017724 0ustar ianianadns-1.5.0~rc1/regress/case-ptrbaddom2.out0000664000175000017500000000136012421042026016513 0ustar ianianadns debug: using nameserver 172.18.45.6 00.45.18.172.in-addr.arpa flags 0 type 65548 PTR(checked) submitted 6.945.18.172.in-addr.arpa flags 0 type 65548 PTR(checked) submitted 4.0.0.0.g.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa flags 0 type 65548 PTR(checked) submitted 00.45.18.172.in-addr.arpa flags 0 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 6.945.18.172.in-addr.arpa flags 0 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 4.0.0.0.g.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa flags 0 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 rc=0 adns-1.5.0~rc1/regress/case-longlab0.err0000664000175000017500000000000012421042026016122 0ustar ianianadns-1.5.0~rc1/regress/init-ndotsbad.text0000664000175000017500000000021312421042026016454 0ustar ianiannameserver 172.18.45.6 sortlist 127.0.0.1/32 172.18.45.0/28 172.18.45.0/24 search davenant.greenend.org.uk greenend.org.uk options ndots:X adns-1.5.0~rc1/regress/init-2ndserver.text0000664000175000017500000000014312421042026016572 0ustar ianiannameserver 172.18.45.36 nameserver 172.18.45.6 sortlist 127.0.0.1/32 172.18.45.0/28 172.18.45.0/24 adns-1.5.0~rc1/regress/case-child.err0000664000175000017500000000000012421042026015507 0ustar ianianadns-1.5.0~rc1/regress/gdbwrap0000775000175000017500000000136712421042026014376 0ustar ianian#!/bin/sh set -e # For example, put this in x.gdb # break adns__revparse_label # break adns__revparse_done # run # and then # ADNS_TEST_DEBUG='./gdbwrap -n x.gdb' ./r1test tcpptr # # gdbwrap can be passed arguments like # *.gdb passed to gdb with -x # -n exit with exit status 5 which makes r1test think "skipped" # # other arguments are taken to be the program name provided by # whatever has been told to use gdbwrap (eg r1test) while true; do case "$1" in *.gdb) xgdb="-x $1"; shift;; -n) x5='exit 5'; shift;; *) break;; esac done exe=$1; shift exec 5<&0 6>&1 7>&2 exec 0<>/dev/tty 1>&0 2>&0 set +e ex="set args <&5 >&6 2>&7" for a in "$@"; do ex="$ex '$a'" done gdb --return-child-result -ex "$ex" $xgdb $exe $x5 adns-1.5.0~rc1/regress/case-lockup.err0000664000175000017500000000000012421042026015721 0ustar ianianadns-1.5.0~rc1/regress/case-ndotsbad.out0000664000175000017500000000020112421042026016244 0ustar ianianadns debug: using nameserver 172.18.45.6 adns: :4: option `ndots:X' malformed or has bad value rc=2 adns-1.5.0~rc1/regress/case-unknown-flags-query.sys0000664000175000017500000000046712423157063020441 0ustar ianian./adnstest default -0x4000 :0x60000000|1 0x40180000/chiark.greenend.org.uk start 1414182790.489799 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000123 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000047 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000039 close fd=6 close=OK +0.000149 adns-1.5.0~rc1/regress/case-adh-cancel.err0000664000175000017500000000020312421042026016410 0ustar ianianadns debug: using nameserver 172.18.45.6 adns debug: reply not found, id 3120, query owner chiark.greenend.org.uk (NS=172.18.45.6) adns-1.5.0~rc1/regress/case-aaaa-sort.err0000664000175000017500000000000012421042026016274 0ustar ianianadns-1.5.0~rc1/regress/case-aaaa-simple.out0000664000175000017500000000034012421042026016624 0ustar ianianadns debug: using nameserver 172.29.199.224 stratocaster.distorted.org.uk flags 0 type 28 AAAA(-) submitted stratocaster.distorted.org.uk flags 0 type AAAA(-): OK; nrrs=1; cname=$; owner=$; ttl=14400 2001:ba8:1d9:2::4 rc=0 adns-1.5.0~rc1/regress/case-1stservbroken.err0000664000175000017500000000000012421042026017234 0ustar ianianadns-1.5.0~rc1/regress/case-alr-slow.out0000664000175000017500000000264012421042026016217 0ustar ianiansfere.relativity.greenend.org.uk - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/main/source/Release HTTP/1.0" 304 - localhost - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/contrib/source/Sources.gz HTTP/1.0" 304 - 172.30.206.14 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/contrib/source/Release HTTP/1.0" 304 - localhost - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/non-free/source/Sources.gz HTTP/1.0" 304 - 172.18.45.3 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/non-free/source/Release HTTP/1.0" 304 - sfere.relativity.greenend.org.uk - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79-3potato1.dsc HTTP/1.0" 200 604 kadath.relativity.greenend.org.uk - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79.orig.tar.gz HTTP/1.0" 200 34886 sfere.relativity.greenend.org.uk - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79.orig.tar.gz HTTP/1.0" 200 34886 sfere.relativity.greenend.org.uk - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79-3potato1.diff.gz HTTP/1.0" 200 7962 davenant.relativity.greenend.org.uk - - [16/Sep/2000:18:35:15 +0100] "GET / HTTP/1.0" 304 - rc=0 adns-1.5.0~rc1/regress/case-tcpblockwr.err0000664000175000017500000000000012421042027016577 0ustar ianianadns-1.5.0~rc1/regress/case-longdomsrch0.sys0000664000175000017500000000100512422540543017067 0ustar ianianadnstest ndots100 :0x0|1 1/10rndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk start 951956073.321566 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000131 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000056 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000034 close fd=4 close=OK +0.000340 adns-1.5.0~rc1/regress/case-tcpptr.err0000664000175000017500000000000012421042027015741 0ustar ianianadns-1.5.0~rc1/regress/case-longlab0.sys0000664000175000017500000000247612422540543016203 0ustar ianianadnstest default :0x0|1 1/yrndrobwlxxxxxxxxxxlllantysiliogogllanfairpwllgwyngyllgogerychw.relativity.greenend.org.uk. start 951955250.786132 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000123 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000055 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000034 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 3f79726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f676c 6c616e66 61697270 776c6c67 77796e67 796c6c67 6f676572 79636877 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00010001. sendto=108 +0.003243 select max=5 rfds=[4] wfds=[] efds=[] to=1.996757 select=1 rfds=[4] wfds=[] efds=[] +0.000534 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8583 00010000 00010000 3f79726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f676c 6c616e66 61697270 776c6c67 77796e67 796c6c67 6f676572 79636877 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00010001 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00060001 00015180 0027036e 7330c06c 0a686f73 746d6173 746572c0 6c000000 2d00001c 2000000e 1000093a 80000151 80. +0.000686 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000147 close fd=4 close=OK +0.000151 adns-1.5.0~rc1/regress/case-ptr-aaaa-mismatch.err0000664000175000017500000000000012421042027017716 0ustar ianianadns-1.5.0~rc1/regress/case-tcpptr.out0000664000175000017500000000043512421042027015774 0ustar ianianadns debug: using nameserver 172.18.45.6 6.45.18.172.in-addr.arpa flags 2 type 65548 PTR(checked) submitted adns debug: TCP connected (NS=172.18.45.6) 6.45.18.172.in-addr.arpa flags 2 type PTR(checked): OK; nrrs=1; cname=$; owner=$; ttl=86400 davenant.relativity.greenend.org.uk rc=0 adns-1.5.0~rc1/regress/case-srvqudom.sys0000664000175000017500000000707012422510662016357 0ustar ianian./adnshost default -Qq -t srv- srv.tcp.test.iwj.relativity.greenend.org.uk. spong. _foo._bar. _s*a._tcp.ucam.org. _s*a._tcp.pi&ckle.ucam.org start 1144349124.698466 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000082 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000049 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000042 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 03737276 03746370 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00002100 01. sendto=61 +0.000339 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 0573706f 6e670000 210001. sendto=23 +0.000194 sendto fd=6 addr=172.18.45.6:53 31210100 00010000 00000000 045f666f 6f045f62 61720000 210001. sendto=27 +0.000183 sendto fd=6 addr=172.18.45.6:53 31220100 00010000 00000000 045f732a 61045f74 63700475 63616d03 6f726700 00210001. sendto=36 +0.000224 sendto fd=6 addr=172.18.45.6:53 31230100 00010000 00000000 045f732a 61045f74 63700770 6926636b 6c650475 63616d03 6f726700 00210001. sendto=44 +0.000210 select max=7 rfds=[6] wfds=[] efds=[] to=1.998850 select=1 rfds=[6] wfds=[] efds=[] +0.005770 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8583 00010000 00010000 03737276 03746370 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00002100 01c01400 06000100 00000a00 27036e73 30c01d0a 686f7374 6d617374 6572c01d 0000003b 00000e10 00000078 0064c800 0000000a. +0.000206 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000068 select max=7 rfds=[6] wfds=[] efds=[] to=1.993145 select=1 rfds=[6] wfds=[] efds=[] +0.002367 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218183 00010000 00010000 045f666f 6f045f62 61720000 21000100 00060001 0000299a 00400141 0c524f4f 542d5345 52564552 53034e45 5400054e 53544c44 0c564552 49534947 4e2d4752 5303434f 4d007791 bfb50000 07080000 03840009 3a800001 5180. +0.000176 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000055 select max=7 rfds=[6] wfds=[] efds=[] to=1.990547 select=1 rfds=[6] wfds=[] efds=[] +0.000085 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228183 00010000 00010000 045f732a 61045f74 63700475 63616d03 6f726700 00210001 c0160006 00010000 0d94004c 0a736f61 2d6f7269 67696e02 6e730663 68696172 6b086772 65656e65 6e64036f 72670275 6b000f73 74756465 6e742d72 756e2d64 6e73c03e 00000121 00002a30 00000e10 00093a80 00000e10. +0.000186 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000058 select max=7 rfds=[6] wfds=[] efds=[] to=1.990218 select=1 rfds=[6] wfds=[] efds=[] +0.028718 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208183 00010000 00010000 0573706f 6e670000 21000100 00060001 00002a30 00400141 0c524f4f 542d5345 52564552 53034e45 5400054e 53544c44 0c564552 49534947 4e2d4752 5303434f 4d007791 bfb50000 07080000 03840009 3a800001 5180. +0.000172 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000052 select max=7 rfds=[6] wfds=[] efds=[] to=1.961877 select=1 rfds=[6] wfds=[] efds=[] +0.004777 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238183 00010000 00010000 045f732a 61045f74 63700770 6926636b 6c650475 63616d03 6f726700 00210001 04756361 6d036f72 67000006 00010000 0e10004c 0a736f61 2d6f7269 67696e02 6e730663 68696172 6b086772 65656e65 6e64036f 72670275 6b000f73 74756465 6e742d72 756e2d64 6e73c04e 00000121 00002a30 00000e10 00093a80 00000e10. +0.000218 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000055 close fd=6 close=OK +0.000078 adns-1.5.0~rc1/regress/case-srvha.err0000664000175000017500000000005112421042027015556 0ustar ianianadns debug: using nameserver 172.18.45.6 adns-1.5.0~rc1/regress/case-adh-cancel2.err0000664000175000017500000000005112421042027016474 0ustar ianianadns debug: using nameserver 172.18.45.6 adns-1.5.0~rc1/regress/case-search-as.sys0000664000175000017500000001156712422540543016354 0ustar ianianadnstest default :0x0|1 0x5/news 0x5/chiark 1/news 1/chiark start 931992052.232208 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000202 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000109 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000065 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001. sendto=47 +0.000696 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 06636869 61726b08 64617665 6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=49 +0.000559 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001. sendto=47 +0.000991 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 06636869 61726b08 64617665 6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=49 +0.000516 select max=5 rfds=[4] wfds=[] efds=[] to=1.997238 select=1 rfds=[4] wfds=[] efds=[] +0.019885 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010002 00030003 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000151 80002508 64617665 6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c03b0001 00010001 51800004 ac122d06 c0440002 00010001 51800006 036e7330 c044c044 00020001 00015180 0006036e 7331c044 c0440002 00010001 51800006 036e7332 c044c07c 00010001 00015180 0004ac12 2d06c08e 00010001 00015180 0004ac12 2d41c0a0 00010001 00015180 0004ac12 2d01. +0.001537 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000296 select max=5 rfds=[4] wfds=[] efds=[] to=1.976216 select=1 rfds=[4] wfds=[] efds=[] +0.001966 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208583 00010000 00010000 06636869 61726b08 64617665 6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01086772 65656e65 6e64036f 72670275 6b000006 00010001 5180002d 026e7306 63686961 726bc031 0a686f73 746d6173 746572c0 31772741 34000070 8000001c 2000093a 80000151 80. +0.000819 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000471 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000102 select max=5 rfds=[4] wfds=[] efds=[] to=1.973417 select=1 rfds=[4] wfds=[] efds=[] +0.006224 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010002 00030003 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000151 80002508 64617665 6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c03b0001 00010001 51800004 ac122d06 c0440002 00010001 51800006 036e7330 c044c044 00020001 00015180 0006036e 7331c044 c0440002 00010001 51800006 036e7332 c044c07c 00010001 00015180 0004ac12 2d06c08e 00010001 00015180 0004ac12 2d41c0a0 00010001 00015180 0004ac12 2d01. +0.001353 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000239 select max=5 rfds=[4] wfds=[] efds=[] to=1.966592 select=1 rfds=[4] wfds=[] efds=[] +0.001978 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228583 00010000 00010000 06636869 61726b08 64617665 6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01086772 65656e65 6e64036f 72670275 6b000006 00010001 5180002d 026e7306 63686961 726bc031 0a686f73 746d6173 746572c0 31772741 34000070 8000001c 2000093a 80000151 80. +0.000817 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000436 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000101 select max=5 rfds=[4] wfds=[] efds=[] to=1.987460 select=1 rfds=[4] wfds=[] efds=[] +0.004418 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d41. +0.000982 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000180 select max=5 rfds=[4] wfds=[] efds=[] to=1.993066 select=1 rfds=[4] wfds=[] efds=[] +0.003953 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d41. +0.000986 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000143 close fd=4 close=OK +0.000193 adns-1.5.0~rc1/regress/case-polltimeout.out0000664000175000017500000000031012421042027017025 0ustar ianianadns debug: using nameserver 172.18.45.36 chiark.greenend.org.uk flags 0 type 1 A(-) submitted chiark.greenend.org.uk flags 0 type A(-): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 rc=0 adns-1.5.0~rc1/regress/case-alr-slow.sys0000664000175000017500000004344412422510661016243 0ustar ianian./adnslogres default -c4 start 969140728.042464 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000132 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000055 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000036 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.001699 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00020002 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00220573 66657265 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 02343502 31380331 37320769 6e2d6164 64720461 72706100 00020001 00015180 0006036e 7330c03c c0580002 00010001 51800006 036e7331 c03cc07a 00010001 00015180 0004ac12 2d06c08c 00010001 00015180 0004ac12 2d01. +0.000712 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=50 +0.000793 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010001 00020002 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001c00c 00010001 00015180 0004ac12 2d010a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000002 00010001 51800006 036e7330 c042c042 00020001 00015180 0006036e 7331c042 c0680001 00010001 51800004 ac122d06 c07a0001 00010001 51800004 ac122d01. +0.000563 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000114 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000088 sendto fd=6 addr=172.18.45.6:53 31210100 00010000 00000000 01310130 01300331 32370769 6e2d6164 64720461 72706100 000c0001. sendto=40 +0.000861 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010001 00010001 01310130 01300331 32370769 6e2d6164 64720461 72706100 000c0001 c00c000c 00010009 3a80000b 096c6f63 616c686f 73740003 31323707 696e2d61 64647204 61727061 00000200 0100093a 800002c0 34c03400 01000100 093a8000 047f0000 01. +0.000418 sendto fd=6 addr=172.18.45.6:53 31220100 00010000 00000000 096c6f63 616c686f 73740000 010001. sendto=27 +0.000544 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228580 00010001 00010001 096c6f63 616c686f 73740000 010001c0 0c000100 0100093a 8000047f 000001c0 0c000200 0100093a 800002c0 0cc00c00 01000100 093a8000 047f0000 01. +0.000304 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000093 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000085 sendto fd=6 addr=172.18.45.6:53 31230100 00010000 00000000 02313403 32303602 33300331 37320769 6e2d6164 64720461 72706100 000c0001. sendto=44 +0.000662 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238580 00010001 00010001 02313403 32303602 33300331 37320769 6e2d6164 64720461 72706100 000c0001 c00c000c 00010000 003c002a 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000332 30360233 30033137 3207696e 2d616464 72046172 70610000 02000100 00003c00 20036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c08500 01000100 01518000 04ac122d 06. +0.000619 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000988 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000073 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000105 sendto fd=6 addr=172.18.45.6:53 31250100 00010000 00000000 01310130 01300331 32370769 6e2d6164 64720461 72706100 000c0001. sendto=40 +0.001370 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258580 00010001 00010001 01310130 01300331 32370769 6e2d6164 64720461 72706100 000c0001 c00c000c 00010009 3a80000b 096c6f63 616c686f 73740003 31323707 696e2d61 64647204 61727061 00000200 0100093a 800002c0 34c03400 01000100 093a8000 047f0000 01. +0.000427 sendto fd=6 addr=172.18.45.6:53 31260100 00010000 00000000 096c6f63 616c686f 73740000 010001. sendto=27 +0.000576 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268580 00010001 00010001 096c6f63 616c686f 73740000 010001c0 0c000100 0100093a 8000047f 000001c0 0c000200 0100093a 800002c0 0cc00c00 01000100 093a8000 047f0000 01. +0.000307 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000094 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000085 sendto fd=6 addr=172.18.45.6:53 31270100 00010000 00000000 01330234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.000604 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278583 00010000 00010000 01330234 35023138 03313732 07696e2d 61646472 04617270 6100000c 00010234 35023138 03313732 07696e2d 61646472 04617270 61000006 00010001 51800041 036e7330 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 0a686f73 746d6173 746572c0 50000000 2800001c 2000000e 1000093a 80000151 80. +0.000502 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000088 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000077 sendto fd=6 addr=172.18.45.6:53 31280100 00010000 00000000 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.000682 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31288580 00010001 00020002 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00220573 66657265 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 02343502 31380331 37320769 6e2d6164 64720461 72706100 00020001 00015180 0006036e 7330c03c c0580002 00010001 51800006 036e7331 c03cc07a 00010001 00015180 0004ac12 2d06c08c 00010001 00015180 0004ac12 2d01. +0.000618 sendto fd=6 addr=172.18.45.6:53 31290100 00010000 00000000 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=50 +0.000791 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298580 00010001 00020002 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001c00c 00010001 00015180 0004ac12 2d010a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000002 00010001 51800006 036e7330 c042c042 00020001 00015180 0006036e 7331c042 c0680001 00010001 51800004 ac122d06 c07a0001 00010001 51800004 ac122d01. +0.000561 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000108 select max=7 rfds=[6] wfds=[] efds=[] to=1.991325 select=0 rfds=[] wfds=[] efds=[] +2.-00943 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000465 select max=7 rfds=[6] wfds=[] efds=[] to=1.999535 select=0 rfds=[] wfds=[] efds=[] +2.-00565 select max=7 rfds=[6] wfds=[] efds=[] to=0.000100 select=0 rfds=[] wfds=[] efds=[] +0.010007 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000452 select max=7 rfds=[6] wfds=[] efds=[] to=1.999548 select=0 rfds=[] wfds=[] efds=[] +2.-00527 select max=7 rfds=[6] wfds=[] efds=[] to=0.000075 select=0 rfds=[] wfds=[] efds=[] +0.009951 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000482 select max=7 rfds=[6] wfds=[] efds=[] to=1.999518 select=0 rfds=[] wfds=[] efds=[] +2.-00551 select max=7 rfds=[6] wfds=[] efds=[] to=0.000069 select=0 rfds=[] wfds=[] efds=[] +0.009997 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000470 select max=7 rfds=[6] wfds=[] efds=[] to=1.999530 select=0 rfds=[] wfds=[] efds=[] +2.-00493 select max=7 rfds=[6] wfds=[] efds=[] to=0.000023 select=0 rfds=[] wfds=[] efds=[] +0.009900 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000440 select max=7 rfds=[6] wfds=[] efds=[] to=1.999560 select=0 rfds=[] wfds=[] efds=[] +2.-00521 select max=7 rfds=[6] wfds=[] efds=[] to=0.000081 select=0 rfds=[] wfds=[] efds=[] +0.010009 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000453 select max=7 rfds=[6] wfds=[] efds=[] to=1.999547 select=0 rfds=[] wfds=[] efds=[] +2.-00538 select max=7 rfds=[6] wfds=[] efds=[] to=0.000085 select=0 rfds=[] wfds=[] efds=[] +0.009962 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000465 select max=7 rfds=[6] wfds=[] efds=[] to=1.999535 select=0 rfds=[] wfds=[] efds=[] +2.-00544 select max=7 rfds=[6] wfds=[] efds=[] to=0.000079 select=0 rfds=[] wfds=[] efds=[] +0.010006 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000434 select max=7 rfds=[6] wfds=[] efds=[] to=1.999566 select=0 rfds=[] wfds=[] efds=[] +2.-00522 select max=7 rfds=[6] wfds=[] efds=[] to=0.000088 select=0 rfds=[] wfds=[] efds=[] +0.009963 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000449 select max=7 rfds=[6] wfds=[] efds=[] to=1.999551 select=0 rfds=[] wfds=[] efds=[] +2.-00525 select max=7 rfds=[6] wfds=[] efds=[] to=0.000076 select=0 rfds=[] wfds=[] efds=[] +0.010006 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000443 select max=7 rfds=[6] wfds=[] efds=[] to=1.999557 select=0 rfds=[] wfds=[] efds=[] +2.-00530 select max=7 rfds=[6] wfds=[] efds=[] to=0.000087 select=0 rfds=[] wfds=[] efds=[] +0.009961 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000461 select max=7 rfds=[6] wfds=[] efds=[] to=1.999539 select=0 rfds=[] wfds=[] efds=[] +2.-00539 select max=7 rfds=[6] wfds=[] efds=[] to=0.000078 select=0 rfds=[] wfds=[] efds=[] +0.010006 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000485 select max=7 rfds=[6] wfds=[] efds=[] to=1.999515 select=0 rfds=[] wfds=[] efds=[] +2.-00404 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000584 select max=7 rfds=[6] wfds=[] efds=[] to=1.999416 select=0 rfds=[] wfds=[] efds=[] +2.019228 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 06323036 2d31340b 62726f6b 656e2d7a 6f6e6504 74657374 0763756c 74757265 05646f74 61740261 74000001 0001. sendto=58 +0.000586 select max=7 rfds=[6] wfds=[] efds=[] to=1.999414 select=0 rfds=[] wfds=[] efds=[] +2.-00751 select max=7 rfds=[6] wfds=[] efds=[] to=0.000165 select=0 rfds=[] wfds=[] efds=[] +0.009979 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000185 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000085 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000118 sendto fd=6 addr=172.18.45.6:53 312a0100 00010000 00000000 01380234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.000517 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000061 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000075 sendto fd=6 addr=172.18.45.6:53 312b0100 00010000 00000000 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.000277 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000056 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000071 sendto fd=6 addr=172.18.45.6:53 312c0100 00010000 00000000 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.000277 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000057 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000244 sendto fd=6 addr=172.18.45.6:53 312d0100 00010000 00000000 01360234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.000290 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000058 select max=7 rfds=[6] wfds=[] efds=[] to=1.998017 select=1 rfds=[6] wfds=[] efds=[] +0.001322 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8580 00010001 00020002 01380234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 0023066b 61646174 680a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00023435 02313803 31373207 696e2d61 64647204 61727061 00000200 01000151 80000603 6e7330c0 3dc05900 02000100 01518000 06036e73 31c03dc0 7b000100 01000151 800004ac 122d06c0 8d000100 01000151 800004ac 122d01. +0.000775 sendto fd=6 addr=172.18.45.6:53 312e0100 00010000 00000000 066b6164 6174680a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=51 +0.000366 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8580 00010001 00020002 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00220573 66657265 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 02343502 31380331 37320769 6e2d6164 64720461 72706100 00020001 00015180 0006036e 7330c03c c0580002 00010001 51800006 036e7331 c03cc07a 00010001 00015180 0004ac12 2d06c08c 00010001 00015180 0004ac12 2d01. +0.000770 sendto fd=6 addr=172.18.45.6:53 312f0100 00010000 00000000 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=50 +0.000328 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8580 00010001 00020002 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00220573 66657265 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 02343502 31380331 37320769 6e2d6164 64720461 72706100 00020001 00015180 0006036e 7330c03c c0580002 00010001 51800006 036e7331 c03cc07a 00010001 00015180 0004ac12 2d06c08c 00010001 00015180 0004ac12 2d01. +0.000766 sendto fd=6 addr=172.18.45.6:53 31300100 00010000 00000000 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=50 +0.000326 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8580 00010001 00020002 01360234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00250864 6176656e 616e740a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0002 34350231 38033137 3207696e 2d616464 72046172 70610000 02000100 01518000 06036e73 30c03fc0 5b000200 01000151 80000603 6e7331c0 3fc07d00 01000100 01518000 04ac122d 06c08f00 01000100 01518000 04ac122d 01. +0.000605 sendto fd=6 addr=172.18.45.6:53 31310100 00010000 00000000 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=53 +0.000473 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000073 select max=7 rfds=[6] wfds=[] efds=[] to=1.995518 select=1 rfds=[6] wfds=[] efds=[] +0.001210 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8580 00010001 00020002 066b6164 6174680a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000100 01000151 800004ac 122d080a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 02000100 01518000 06036e73 30c043c0 43000200 01000151 80000603 6e7331c0 43c06900 01000100 01518000 04ac122d 06c07b00 01000100 01518000 04ac122d 01. +0.000754 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 312f8580 00010001 00020002 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001c00c 00010001 00015180 0004ac12 2d010a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000002 00010001 51800006 036e7330 c042c042 00020001 00015180 0006036e 7331c042 c0680001 00010001 51800004 ac122d06 c07a0001 00010001 51800004 ac122d01. +0.000613 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31308580 00010001 00020002 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001c00c 00010001 00015180 0004ac12 2d010a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000002 00010001 51800006 036e7330 c042c042 00020001 00015180 0006036e 7331c042 c0680001 00010001 51800004 ac122d06 c07a0001 00010001 51800004 ac122d01. +0.000633 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31318580 00010001 00020002 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 01000100 01518000 04ac122d 060a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000200 01000151 80000603 6e7330c0 45c04500 02000100 01518000 06036e73 31c045c0 6b000100 01000151 800004ac 122d06c0 7d000100 01000151 800004ac 122d01. +0.000596 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000128 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000108 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000082 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000080 close fd=6 close=OK +0.000176 adns-1.5.0~rc1/regress/case-search.sys0000664000175000017500000001166112422540543015746 0ustar ianianadnstest default -,s :0x0|1 0x5/news 0x5/chiark 1/news 1/chiark start 924360470.478357 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000200 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000084 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000067 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001. sendto=47 +0.001994 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 06636869 61726b08 64617665 6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=49 +0.001461 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001. sendto=47 +0.001029 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 06636869 61726b08 64617665 6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=49 +0.000984 select max=5 rfds=[4] wfds=[] efds=[] to=1.994532 select=1 rfds=[4] wfds=[] efds=[] +0.004691 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010002 00030003 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000151 80002508 64617665 6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c03b0001 00010001 51800004 ac122d06 c0440002 00010001 51800006 036e7330 c044c044 00020001 00015180 0006036e 7331c044 c0440002 00010001 51800006 036e7332 c044c07c 00010001 00015180 0004ac12 2d06c08e 00010001 00015180 0004ac12 2d41c0a0 00010001 00015180 0004ac12 2d01. +0.001460 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000295 select max=5 rfds=[4] wfds=[] efds=[] to=1.990080 select=1 rfds=[4] wfds=[] efds=[] +0.001032 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208583 00010000 00010000 06636869 61726b08 64617665 6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01086772 65656e65 6e64036f 72670275 6b000006 00010001 51800037 04646e73 3006656c 6d61696c 02636fc0 3e087269 63686172 646b0663 68696172 6bc03177 26f0bf00 00708000 001c2000 093a8000 015180. +0.000739 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000925 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000101 select max=5 rfds=[4] wfds=[] efds=[] to=1.988744 select=1 rfds=[4] wfds=[] efds=[] +0.005215 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010002 00030003 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000151 80002508 64617665 6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c03b0001 00010001 51800004 ac122d06 c0440002 00010001 51800006 036e7330 c044c044 00020001 00015180 0006036e 7331c044 c0440002 00010001 51800006 036e7332 c044c07c 00010001 00015180 0004ac12 2d06c08e 00010001 00015180 0004ac12 2d41c0a0 00010001 00015180 0004ac12 2d01. +0.001514 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000264 select max=5 rfds=[4] wfds=[] efds=[] to=1.982780 select=1 rfds=[4] wfds=[] efds=[] +0.000850 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228583 00010000 00010000 06636869 61726b08 64617665 6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01086772 65656e65 6e64036f 72670275 6b000006 00010001 51800037 04646e73 3006656c 6d61696c 02636fc0 3e087269 63686172 646b0663 68696172 6bc03177 26f0bf00 00708000 001c2000 093a8000 015180. +0.000739 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000884 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000101 select max=5 rfds=[4] wfds=[] efds=[] to=1.988668 select=1 rfds=[4] wfds=[] efds=[] +0.003228 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d41. +0.000828 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000194 select max=5 rfds=[4] wfds=[] efds=[] to=1.994026 select=1 rfds=[4] wfds=[] efds=[] +0.003357 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d41. +0.000828 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000155 close fd=4 close=OK +0.000171 adns-1.5.0~rc1/regress/checkall0000775000175000017500000000312312421042027014507 0ustar ianian#!/bin/sh # usage: checkall # runs all test cases # # This file is part of adns, which is # Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson # Copyright (C) 2014 Mark Wooding # Copyright (C) 1999-2000,2003,2006 Tony Finch # Copyright (C) 1991 Massachusetts Institute of Technology # (See the file INSTALL for full details.) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation. set -e : ${srcdir=.} failed='' passed='' skipped='' for f in $srcdir/case-*.sys do case="`echo \"$f\" | sed -e 's:^.*/::; s/^case-//; s/\.sys$//'`" set +e $srcdir/r1test $case rc=$? set -e case $rc in 0) passed="$passed $case" ;; 5) skipped="$skipped $case" ;; *) echo failed="$failed $case" echo ;; esac done if [ "x$failed" = x ] then echo " " if [ "x$skipped" = x ] then echo "all tests passed." else echo "all applicable tests passed (skipped:$skipped)" fi echo exit 0 fi echo >&2 " AT LEAST ONE TEST FAILED passed tests:${passed:- NONE} skipped tests:${skipped:- NONE} failed tests:$failed " exit 1 adns-1.5.0~rc1/regress/case-manyptrwrongrty.err0000664000175000017500000000000012421042027017733 0ustar ianianadns-1.5.0~rc1/regress/case-norecurse.err0000664000175000017500000000000012421042027016432 0ustar ianianadns-1.5.0~rc1/regress/case-v6-map.err0000664000175000017500000000000012421042027015533 0ustar ianianadns-1.5.0~rc1/regress/case-ptr-aaaa.err0000664000175000017500000000000012421042027016113 0ustar ianianadns-1.5.0~rc1/regress/case-unkopts.out0000664000175000017500000000113312423161435016166 0ustar ianianadns debug: using nameserver 172.18.45.6 adns: :5: unknown option `wombat' adns: :6: unknown configuration directive `stoat' adns: :7: unknown option `zorkmid' adns: :8: option adns_af has bad value or entry `dampstring' (option must be `any', or list of `ipv4',`ipv6') adns: :8: unknown option `spong' chiark.greenend.org.uk flags 0 type 1 A(-) submitted chiark.greenend.org.uk flags 0 type A(-): OK; nrrs=1; cname=$; owner=$; ttl=3600 212.13.197.229 rc=0 adns-1.5.0~rc1/regress/harness.h0000664000175000017500000000337112421042027014634 0ustar ianian#ifndef HARNESS_H_INCLUDED #define HARNESS_H_INCLUDED #include "internal.h" #include "hsyscalls.h" /* There is a Q function (Q for Question) for each such syscall; * it constructs a string representing the call, and calls Q_str * on it, or constructs it in vb and calls Q_vb; */ void Qselect( int max , const fd_set *rfds , const fd_set *wfds , const fd_set *efds , struct timeval *to ); #ifdef HAVE_POLL void Qpoll( const struct pollfd *fds , int nfds , int timeout ); #endif void Qsocket( int domain , int type ); void Qfcntl( int fd , int cmd , long arg ); void Qconnect( int fd , const struct sockaddr *addr , int addrlen ); void Qbind( int fd , const struct sockaddr *addr , int addrlen ); void Qlisten( int fd , int backlog ); void Qclose( int fd ); void Qsendto( int fd , const void *msg , int msglen , const struct sockaddr *addr , int addrlen ); void Qrecvfrom( int fd , int buflen , int addrlen ); void Qread( int fd , size_t buflen ); void Qwrite( int fd , const void *buf , size_t len ); void Q_vb(void); extern void Tshutdown(void); /* General help functions */ void Tfailed(const char *why); void Toutputerr(void); void Tnomem(void); void Tfsyscallr(const char *fmt, ...) PRINTFFORMAT(1,2); void Tensurerecordfile(void); void Tmust(const char *call, const char *arg, int cond); void Tvbf(const char *fmt, ...) PRINTFFORMAT(1,2); void Tvbvf(const char *fmt, va_list al); void Tvbfdset(int max, const fd_set *set); void Tvbpollfds(const struct pollfd *fds, int nfds); void Tvbaddr(const struct sockaddr *addr, int addrlen); void Tvbbytes(const void *buf, int len); void Tvberrno(int e); void Tvba(const char *str); /* Shared globals */ extern vbuf vb; extern struct timeval currenttime; extern const struct Terrno { const char *n; int v; } Terrnos[]; #endif adns-1.5.0~rc1/regress/case-norecurse.out0000664000175000017500000000560012421042027016464 0ustar ianianadns debug: using nameserver 172.18.45.6 4.204.50.158.in-addr.arpa flags 0 type 1 A(-) submitted 4.204.50.158.in-addr.arpa flags 0 type 2 NS(raw) submitted 4.204.50.158.in-addr.arpa flags 0 type 5 CNAME(-) submitted 4.204.50.158.in-addr.arpa flags 0 type 6 SOA(raw) submitted 4.204.50.158.in-addr.arpa flags 0 type 12 PTR(raw) submitted 4.204.50.158.in-addr.arpa flags 0 type 13adns debug: TCP connected (NS=172.18.45.6) HINFO(-) submitted 4.204.50.158.in-addr.arpa flags 0 type 15 MX(raw) submitted 4.204.50.158.in-addr.arpa flags 0 type 16 TXT(-) submitted 4.204.50.158.in-addr.arpa flags 0 type 17 RP(raw) submitted 4.204.50.158.in-addr.arpa flags 0 type 65537 A(addr) submitted 4.204.50.158.in-addr.arpa flags 0 type 65538 NS(+addr) submitted 4.204.50.158.in-addr.arpa flags 0 type 65548 PTR(checked) submitted 4.204.50.158.in-addr.arpa flags 0 type 65551 MX(+addr) submitted 4.204.50.158.in-addr.arpa flags 0 type 131078 SOA(822) submitted 4.204.50.158.in-addr.arpa flags 0 type 131089 RP(822) submitted 4.204.50.158.in-addr.arpa flags 0 type A(-): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type NS(raw): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type SOA(raw): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type HINFO(-): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type MX(raw): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type PTR(raw): OK; nrrs=23; cname=$; owner=$; ttl=77948 ns2.afp.com ns.afp.com news.afp.com ns2.afp.fr ns.afp.fr news.afp.fr ns2.agencefrancepresse.com news.agencefrancepresse.com ns2.agencefrancepresse.fr news.agencefrancepresse.fr ns2.agencefrance-presse.com news.agencefrance-presse.com ns2.agencefrance-presse.fr news.agencefrance-presse.fr ns2.imageforum.com news.imageforum.com ns2.imageforum.tm.fr news.imageforum.tm.fr ns2.ooh-lah-lah.com ns2.afpsciences.com ns2.afpdoc.com ns2.afp-notes.com ns2.afp-domino.com 4.204.50.158.in-addr.arpa flags 0 type TXT(-): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type NS(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type SOA(822): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type RP(822): No such data; nrrs=0; cname=$; owner=$; ttl=0 4.204.50.158.in-addr.arpa flags 0 type PTR(checked): Inconsistent resource records in DNS; nrrs=0; cname=$; owner=$; ttl=77948 4.204.50.158.in-addr.arpa flags 0 type CNAME(-): No such data; nrrs=0; cname=$; owner=$; ttl=0 rc=0 adns-1.5.0~rc1/regress/case-owner.err0000664000175000017500000000000012421042027015557 0ustar ianianadns-1.5.0~rc1/regress/init-ndots100.text0000664000175000017500000000021512421042027016231 0ustar ianiannameserver 172.18.45.6 sortlist 127.0.0.1/32 172.18.45.0/28 172.18.45.0/24 search davenant.greenend.org.uk greenend.org.uk options ndots:100 adns-1.5.0~rc1/regress/case-srvok.err0000664000175000017500000000005112421042027015577 0ustar ianianadns debug: using nameserver 172.18.45.6 adns-1.5.0~rc1/regress/case-mailboxes.out0000664000175000017500000000050112421042027016435 0ustar ianianadns debug: using nameserver 172.18.45.6 silly-rp.test.iwj.relativity.greenend.org.uk flags 0 type 131089 RP(822) submitted silly-rp.test.iwj.relativity.greenend.org.uk flags 0 type RP(822): OK; nrrs=6; cname=$; owner=$; ttl=60 . . i@ucam.org . i.j@ucam.org . "i..j"@ucam.org . ".i"@ucam.org . "i."@ucam.org . rc=0 adns-1.5.0~rc1/regress/case-unknownq.out0000664000175000017500000000016612421042027016341 0ustar ianianadns debug: using nameserver 172.18.45.6 davenant.relativity.greenend.org.uk. flags 0 type 32767 not implemented rc=0 adns-1.5.0~rc1/regress/case-longdom0.out0000664000175000017500000000122112421042027016171 0ustar ianianadns debug: using nameserver 172.18.45.6 0rndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk. flags 1 type 1 A(-) submitted 0rndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk. flags 1 type A(-): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 rc=0 adns-1.5.0~rc1/regress/case-longdom0.err0000664000175000017500000000000012421042027016144 0ustar ianianadns-1.5.0~rc1/regress/case-srvbaddom.err0000664000175000017500000000060312421042027016417 0ustar ianianadns debug: using nameserver 172.18.45.6 Error during DNS SRV lookup for srv.tcp.test.iwj.relativity.greenend.org.uk: Domain name is syntactically invalid Error during DNS SRV lookup for spong: Domain name is syntactically invalid _foo._bar does not exist _s*a._tcp.ucam.org does not exist Error during DNS SRV lookup for _s*a._tcp.pi&ckle.ucam.org: Domain name is syntactically invalid adns-1.5.0~rc1/regress/case-alr-norm.in0000664000175000017500000000243112421042027016004 0ustar ianian172.18.45.1 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/main/source/Release HTTP/1.0" 304 - 127.0.0.1 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/contrib/source/Sources.gz HTTP/1.0" 304 - 172.30.206.14 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/contrib/source/Release HTTP/1.0" 304 - 127.0.0.1 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/non-free/source/Sources.gz HTTP/1.0" 304 - 172.18.45.3 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/non-free/source/Release HTTP/1.0" 304 - 172.18.45.1 - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79-3potato1.dsc HTTP/1.0" 200 604 172.18.45.8 - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79.orig.tar.gz HTTP/1.0" 200 34886 172.18.45.1 - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79.orig.tar.gz HTTP/1.0" 200 34886 172.18.45.1 - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79-3potato1.diff.gz HTTP/1.0" 200 7962 172.18.45.6 - - [16/Sep/2000:18:35:15 +0100] "GET / HTTP/1.0" 304 - adns-1.5.0~rc1/regress/case-v6-transport-simple.err0000664000175000017500000000000012421042027020301 0ustar ianianadns-1.5.0~rc1/regress/case-norm.sys0000664000175000017500000000177712422540543015463 0ustar ianianadnstest default :0x0|1 chiark.greenend.org.uk start 912888966.802483 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000204 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000670 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000072 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000579 select max=5 rfds=[4] wfds=[] efds=[] to=1.999421 select=1 rfds=[4] wfds=[] efds=[] +0.006414 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d41. +0.000874 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000179 close fd=4 close=OK +0.000184 adns-1.5.0~rc1/regress/case-abbrevto.err0000664000175000017500000000000012421042027016231 0ustar ianianadns-1.5.0~rc1/regress/case-tcpmultipart.out0000664000175000017500000001054612421042027017214 0ustar ianianadns debug: using nameserver 172.31.80.9 132.76.224.195.in-addr.arpa flags 2 type 12 PTR(raw) submitted manymorerrs.test.culture.dotat.at. flags 2 type 12 PTR(raw) submitted 132.76.224.195.in-addr.arpa flags 2 type 12 PTR(raw) submitted adns debug: TCP connected (NS=172.31.80.9) 132.76.224.195.in-addr.arpa flags 2 type PTR(raw): OK; nrrs=1; cname=$; owner=$; ttl=86400 chiark.greenend.org.uk manymorerrs.test.culture.dotat.at. flags 2 type PTR(raw): OK; nrrs=60; cname=$; owner=$; ttl=86400 very-long-domain.to-ensure-truncation.00.test.culture.dotat.at very-long-domain.to-ensure-truncation.01.test.culture.dotat.at very-long-domain.to-ensure-truncation.02.test.culture.dotat.at very-long-domain.to-ensure-truncation.03.test.culture.dotat.at very-long-domain.to-ensure-truncation.04.test.culture.dotat.at very-long-domain.to-ensure-truncation.05.test.culture.dotat.at very-long-domain.to-ensure-truncation.06.test.culture.dotat.at very-long-domain.to-ensure-truncation.07.test.culture.dotat.at very-long-domain.to-ensure-truncation.08.test.culture.dotat.at very-long-domain.to-ensure-truncation.09.test.culture.dotat.at very-long-domain.to-ensure-truncation.10.test.culture.dotat.at very-long-domain.to-ensure-truncation.11.test.culture.dotat.at very-long-domain.to-ensure-truncation.12.test.culture.dotat.at very-long-domain.to-ensure-truncation.13.test.culture.dotat.at very-long-domain.to-ensure-truncation.14.test.culture.dotat.at very-long-domain.to-ensure-truncation.15.test.culture.dotat.at very-long-domain.to-ensure-truncation.16.test.culture.dotat.at very-long-domain.to-ensure-truncation.17.test.culture.dotat.at very-long-domain.to-ensure-truncation.18.test.culture.dotat.at very-long-domain.to-ensure-truncation.19.test.culture.dotat.at very-long-domain.to-ensure-truncation.20.test.culture.dotat.at very-long-domain.to-ensure-truncation.21.test.culture.dotat.at very-long-domain.to-ensure-truncation.22.test.culture.dotat.at very-long-domain.to-ensure-truncation.23.test.culture.dotat.at very-long-domain.to-ensure-truncation.24.test.culture.dotat.at very-long-domain.to-ensure-truncation.25.test.culture.dotat.at very-long-domain.to-ensure-truncation.26.test.culture.dotat.at very-long-domain.to-ensure-truncation.27.test.culture.dotat.at very-long-domain.to-ensure-truncation.28.test.culture.dotat.at very-long-domain.to-ensure-truncation.29.test.culture.dotat.at very-long-domain.to-ensure-truncation.30.test.culture.dotat.at very-long-domain.to-ensure-truncation.31.test.culture.dotat.at very-long-domain.to-ensure-truncation.32.test.culture.dotat.at very-long-domain.to-ensure-truncation.33.test.culture.dotat.at very-long-domain.to-ensure-truncation.34.test.culture.dotat.at very-long-domain.to-ensure-truncation.35.test.culture.dotat.at very-long-domain.to-ensure-truncation.36.test.culture.dotat.at very-long-domain.to-ensure-truncation.37.test.culture.dotat.at very-long-domain.to-ensure-truncation.38.test.culture.dotat.at very-long-domain.to-ensure-truncation.39.test.culture.dotat.at very-long-domain.to-ensure-truncation.40.test.culture.dotat.at very-long-domain.to-ensure-truncation.41.test.culture.dotat.at very-long-domain.to-ensure-truncation.42.test.culture.dotat.at very-long-domain.to-ensure-truncation.43.test.culture.dotat.at very-long-domain.to-ensure-truncation.44.test.culture.dotat.at very-long-domain.to-ensure-truncation.45.test.culture.dotat.at very-long-domain.to-ensure-truncation.46.test.culture.dotat.at very-long-domain.to-ensure-truncation.47.test.culture.dotat.at very-long-domain.to-ensure-truncation.48.test.culture.dotat.at very-long-domain.to-ensure-truncation.49.test.culture.dotat.at very-long-domain.to-ensure-truncation.50.test.culture.dotat.at very-long-domain.to-ensure-truncation.51.test.culture.dotat.at very-long-domain.to-ensure-truncation.52.test.culture.dotat.at very-long-domain.to-ensure-truncation.53.test.culture.dotat.at very-long-domain.to-ensure-truncation.54.test.culture.dotat.at very-long-domain.to-ensure-truncation.55.test.culture.dotat.at very-long-domain.to-ensure-truncation.56.test.culture.dotat.at very-long-domain.to-ensure-truncation.57.test.culture.dotat.at very-long-domain.to-ensure-truncation.58.test.culture.dotat.at very-long-domain.to-ensure-truncation.59.test.culture.dotat.at 132.76.224.195.in-addr.arpa flags 2 type PTR(raw): OK; nrrs=1; cname=$; owner=$; ttl=86400 chiark.greenend.org.uk rc=0 adns-1.5.0~rc1/regress/hsyscalls.i40000664000175000017500000001165112421042027015263 0ustar ianianm4_dnl hsyscalls.i4 m4_dnl (part of complex test harness, not of the library) m4_dnl - list of syscalls to override/log and their args m4_dnl This file is part of adns, which is m4_dnl Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson m4_dnl Copyright (C) 2014 Mark Wooding m4_dnl Copyright (C) 1999-2000,2003,2006 Tony Finch m4_dnl Copyright (C) 1991 Massachusetts Institute of Technology m4_dnl (See the file INSTALL for full details.) m4_dnl m4_dnl This program is free software; you can redistribute it and/or modify m4_dnl it under the terms of the GNU General Public License as published by m4_dnl the Free Software Foundation; either version 3, or (at your option) m4_dnl any later version. m4_dnl m4_dnl This program is distributed in the hope that it will be useful, m4_dnl but WITHOUT ANY WARRANTY; without even the implied warranty of m4_dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the m4_dnl GNU General Public License for more details. m4_dnl m4_dnl You should have received a copy of the GNU General Public License m4_dnl along with this program; if not, write to the Free Software Foundation. m4_dnl each system call has m4_dnl hm_syscall(,,) m4_dnl is one of m4_dnl hm_rv_must must succeed and return 0 m4_dnl hm_rv_any any nonnegative return allowed, -1 means see errno m4_dnl hm_rv_fd file descriptor is returned, -1 means see errno m4_dnl hm_rv_succfail returns 0 (ok) or -1 (see errno) m4_dnl hm_rv_len() returns length read/written, must be <=max, -1 => errno m4_dnl hm_rv_fcntl syscall is fcntl, do special processing m4_dnl is list of macros for arguments, each followed by hm_na m4_dnl hm_arg_nullptr(,) pointer of type type, must be null m4_dnl hm_arg_int() signed integer m4_dnl hm_arg_fdset_io(,) fd_set, max bit set is in max m4_dnl hm_arg_timeval_in_rel_null() struct timeval*, pass in, relative, may be null m4_dnl hm_arg_must(,,) must have correct value, or abort test m4_dnl hm_arg_socktype() SOCK_STREAM or SOCK_DGRAM (an int) m4_dnl hm_arg_addrfam() a supported address family m4_dnl hm_arg_ign(,) input parameter ignored m4_dnl hm_arg_fd() fd m4_dnl hm_arg_fcntl_cmd_arg(,) syscall is fcntl, do special processing m4_dnl hm_arg_addr_in(,) struct sockaddr*, length given by (an int) m4_dnl hm_arg_bytes_in(,,,) m4_dnl some data from caller; is of type pointer to const m4_dnl and points to bytes ( is of type ) m4_dnl hm_arg_bytes_out(,,,) m4_dnl buffer for data from syscall; is of type pointer to const m4_dnl and points to at least bytes ( is of type ) m4_dnl return value from syscall is supposed to be returned length m4_dnl hm_arg_addr_out(,) struct sockaddr*, length io at (an int*) hm_syscall( select, `hm_rv_any', ` hm_arg_int(max) hm_na hm_arg_fdset_io(rfds,max) hm_na hm_arg_fdset_io(wfds,max) hm_na hm_arg_fdset_io(efds,max) hm_na hm_arg_timeval_in_rel_null(to) hm_na ') #ifdef HAVE_POLL hm_syscall( poll, `hm_rv_any', ` hm_arg_pollfds_io(fds,nfds) hm_na hm_arg_int(timeout) hm_na ') #endif hm_syscall( socket, `hm_rv_fd', ` hm_arg_addrfam(domain) hm_na hm_arg_socktype(type) hm_na hm_arg_ign(int,protocol) hm_na ') hm_syscall( fcntl, `hm_rv_fcntl', ` hm_arg_fd(fd) hm_na hm_arg_fcntl_cmd_arg(cmd,arg) hm_na ') hm_syscall( connect, `hm_rv_succfail', ` hm_arg_fd(fd) hm_na hm_arg_addr_in(addr,addrlen) hm_na ') hm_syscall( bind, `hm_rv_succfail', ` hm_arg_fd(fd) hm_na hm_arg_addr_in(addr,addrlen) hm_na ') hm_syscall( listen, `hm_rv_succfail', ` hm_arg_fd(fd) hm_na hm_arg_int(backlog) hm_na ') hm_syscall( close, `hm_rv_succfail', ` hm_arg_fd(fd) hm_na ') hm_syscall( sendto, `hm_rv_any', ` hm_arg_fd(fd) hm_na hm_arg_bytes_in(void,msg,int,msglen) hm_na hm_arg_must(unsigned int,flags,0) hm_na hm_arg_addr_in(addr,addrlen) hm_na ') hm_syscall( recvfrom, `hm_rv_len(buflen)', ` hm_arg_fd(fd) hm_na hm_arg_bytes_out(void,buf,int,buflen) hm_na hm_arg_must(unsigned int,flags,0) hm_na hm_arg_addr_out(addr,addrlen) hm_na ') hm_syscall( read, `hm_rv_len(buflen)', ` hm_arg_fd(fd) hm_na hm_arg_bytes_out(void,buf,size_t,buflen) hm_na ') hm_syscall( write, `hm_rv_any', ` hm_arg_fd(fd) hm_na hm_arg_bytes_in(void,buf,size_t,len) hm_na ') hm_specsyscall(int, writev, `int fd, const struct iovec *vector, size_t count') hm_specsyscall(int, gettimeofday, `struct timeval *tv, struct timezone *tz') hm_specsyscall(pid_t, getpid, `void') hm_specsyscall(void*, malloc, `size_t sz') hm_specsyscall(void, free, `void *ptr') hm_specsyscall(void*, realloc, `void *op, size_t nsz') hm_specsyscall(void, exit, `int rv', NONRETURNING) adns-1.5.0~rc1/regress/addcases0000775000175000017500000000202112421042027014504 0ustar ianian#!/bin/sh # usage: ./addcases ... # # This file is part of adns, which is # Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson # Copyright (C) 2014 Mark Wooding # Copyright (C) 1999-2000,2003,2006 Tony Finch # Copyright (C) 1991 Massachusetts Institute of Technology # (See the file INSTALL for full details.) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation. set -e for f in "$@" do cvs add "case-$f".{sys,out,err} done adns-1.5.0~rc1/regress/init-distorted-v6.text0000664000175000017500000000017512421042027017220 0ustar ianiannameserver 2001:ba8:1d9::1 sortlist 198.51.100.0/24 2001:db8:2::/48 0/0 ::/0 search dnserr.distorted.org.uk distorted.org.uk adns-1.5.0~rc1/regress/case-alr-slow.in0000664000175000017500000000243112421042027016015 0ustar ianian172.18.45.1 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/main/source/Release HTTP/1.0" 304 - 127.0.0.1 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/contrib/source/Sources.gz HTTP/1.0" 304 - 172.30.206.14 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/contrib/source/Release HTTP/1.0" 304 - 127.0.0.1 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/non-free/source/Sources.gz HTTP/1.0" 304 - 172.18.45.3 - - [13/Sep/2000:23:00:26 +0100] "GET /mirror/debian-non-us/dists/stable/non-US/non-free/source/Release HTTP/1.0" 304 - 172.18.45.1 - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79-3potato1.dsc HTTP/1.0" 200 604 172.18.45.8 - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79.orig.tar.gz HTTP/1.0" 200 34886 172.18.45.1 - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79.orig.tar.gz HTTP/1.0" 200 34886 172.18.45.1 - - [13/Sep/2000:23:01:01 +0100] "GET /mirror/debian-ftp/dists/potato/main/source/devel/cvsweb_1.79-3potato1.diff.gz HTTP/1.0" 200 7962 172.18.45.6 - - [16/Sep/2000:18:35:15 +0100] "GET / HTTP/1.0" 304 - adns-1.5.0~rc1/regress/case-adh-cancel3.out0000664000175000017500000000000512421042027016513 0ustar ianianrc=0 adns-1.5.0~rc1/regress/case-ptr-aaaa-check.sys0000664000175000017500000000574612422540543017251 0ustar ianian./adnstest distorted :0x10000|12 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa start 1401919115.064959 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000064 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000031 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000027 sendto fd=6 addr=172.29.199.224:53 311f0100 00010000 00000000 01340130 01300130 01300130 01300130 01300130 01300130 01300130 01300130 01320130 01300130 01390164 01310130 01380161 01620130 01310130 01300132 03697036 04617270 6100000c 0001. sendto=90 +0.000266 select max=7 rfds=[6] wfds=[] efds=[] to=1.999734 select=1 rfds=[6] wfds=[] efds=[] +0.003844 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 311f8580 00010001 00040008 01340130 01300130 01300130 01300130 01300130 01300130 01300130 01300130 01320130 01300130 01390164 01310130 01380161 01620130 01310130 01300132 03697036 04617270 6100000c 0001c00c 000c0001 00003840 001f0c73 74726174 6f636173 74657209 64697374 6f727465 64036f72 6702756b 00c03400 02000100 00384000 0c097072 65636973 696f6ec0 73c03400 02000100 00384000 09067261 64697573 c073c034 00020001 00003840 000d0a74 656c6563 61737465 72c073c0 34000200 01000038 40000a07 76616d70 697265c0 73c0a900 01000100 00384000 04ac1dc7 01c0a900 1c000100 00384000 10200104 70974000 01000000 00000000 01c0d700 01000100 00384000 04ac1dc7 05c0d700 1c000100 00384000 10200104 70974000 01000000 00000000 05c09100 01000100 00384000 04ac1dc7 b2c09100 1c000100 00384000 1020010b a801d900 02000000 00000000 02c0be00 01000100 00384000 04ac1dc7 b3c0be00 1c000100 00384000 1020010b a801d900 02000000 00000000 03. +0.000334 sendto fd=6 addr=172.29.199.224:53 31200100 00010000 00000000 0c737472 61746f63 61737465 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000139 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000032 select max=7 rfds=[6] wfds=[] efds=[] to=1.999495 select=1 rfds=[6] wfds=[] efds=[] +0.001799 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31208580 00010001 00040008 0c737472 61746f63 61737465 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010ba801 d9000200 00000000 000004c0 19000200 01000038 40000d07 76616d70 69726502 6e73c019 c0190002 00010000 3840000d 0a74656c 65636173 746572c0 5fc01900 02000100 00384000 0c097072 65636973 696f6ec0 5fc01900 02000100 00384000 09067261 64697573 c05fc0a1 00010001 00003840 0004ac1d c701c0a1 001c0001 00003840 00102001 04709740 00010000 00000000 0001c057 00010001 00003840 0004ac1d c705c057 001c0001 00003840 00102001 04709740 00010000 00000000 0005c089 00010001 00003840 0004ac1d c7b2c089 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0002c070 00010001 00003840 0004ac1d c7b3c070 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0003. +0.000284 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000046 close fd=6 close=OK +0.000075 adns-1.5.0~rc1/regress/case-searchabs.sys0000664000175000017500000000475712422540543016444 0ustar ianianadnstest default :0x0|1 1/news.davenant start 924363451.882765 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000207 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000088 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000071 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 046e6577 73086461 76656e61 6e740000 010001. sendto=31 +0.001846 select max=5 rfds=[4] wfds=[] efds=[] to=1.998154 select=1 rfds=[4] wfds=[] efds=[] +0.004592 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8583 00010000 00010000 046e6577 73086461 76656e61 6e740000 01000100 00060001 00000248 003e0141 0c524f4f 542d5345 52564552 53034e45 54000a68 6f73746d 61737465 7208494e 5445524e 4943c039 7726f440 00000708 00000384 00093a80 00015180. +0.000697 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 046e6577 73086461 76656e61 6e740864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001. sendto=56 +0.001073 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000105 select max=5 rfds=[4] wfds=[] efds=[] to=1.998125 select=1 rfds=[4] wfds=[] efds=[] +0.003727 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208583 00010000 00010000 046e6577 73086461 76656e61 6e740864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80003704 646e7330 06656c6d 61696c02 636fc045 08726963 68617264 6b066368 6961726b c0387726 f0bf0000 70800000 1c200009 3a800001 5180. +0.000972 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001. sendto=47 +0.000965 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000105 select max=5 rfds=[4] wfds=[] efds=[] to=1.997958 select=1 rfds=[4] wfds=[] efds=[] +0.007222 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010002 00030003 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000151 80002508 64617665 6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c03b0001 00010001 51800004 ac122d06 c0440002 00010001 51800006 036e7330 c044c044 00020001 00015180 0006036e 7331c044 c0440002 00010001 51800006 036e7332 c044c07c 00010001 00015180 0004ac12 2d06c08e 00010001 00015180 0004ac12 2d41c0a0 00010001 00015180 0004ac12 2d01. +0.001124 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000295 close fd=4 close=OK +0.000221 adns-1.5.0~rc1/regress/case-ndots.err0000664000175000017500000000000012421042027015554 0ustar ianianadns-1.5.0~rc1/regress/case-v6-map.sys0000664000175000017500000000677112422540543015615 0ustar ianian./adnstest distorted :0x1010000|1,0x1010000|15,0x10000|1 0x1000/distorted.org.uk start 1402443121.225484 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000067 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000031 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000027 sendto fd=6 addr=172.29.199.224:53 31200100 00010000 00000000 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=34 +0.000188 sendto fd=6 addr=172.29.199.224:53 31210100 00010000 00000000 09646973 746f7274 6564036f 72670275 6b00000f 0001. sendto=34 +0.000110 sendto fd=6 addr=172.29.199.224:53 31230100 00010000 00000000 09646973 746f7274 6564036f 72670275 6b000001 0001. sendto=34 +0.000101 select max=7 rfds=[6] wfds=[] efds=[] to=1.999601 select=1 rfds=[6] wfds=[] efds=[] +0.001672 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31208580 00010001 00040008 09646973 746f7274 6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004ac1d c7b4c00c 00020001 00003840 000d0776 616d7069 7265026e 73c00cc0 0c000200 01000038 40000c09 70726563 6973696f 6ec046c0 0c000200 01000038 40000906 72616469 7573c046 c00c0002 00010000 3840000d 0a74656c 65636173 746572c0 46c06f00 01000100 00384000 04ac1dc7 01c06f00 1c000100 00384000 10200104 70974000 01000000 00000000 01c03e00 01000100 00384000 04ac1dc7 05c03e00 1c000100 00384000 10200104 70974000 01000000 00000000 05c05700 01000100 00384000 04ac1dc7 b2c05700 1c000100 00384000 1020010b a801d900 02000000 00000000 02c08400 01000100 00384000 04ac1dc7 b3c08400 1c000100 00384000 1020010b a801d900 02000000 00000000 03. +0.000436 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31218580 00010001 0004000a 09646973 746f7274 6564036f 72670275 6b00000f 0001c00c 000f0001 00003840 00090032 046d6169 6cc00cc0 0c000200 01000038 40000c06 72616469 7573026e 73c00cc0 0c000200 01000038 40000c09 70726563 6973696f 6ec04ac0 0c000200 01000038 40000a07 76616d70 697265c0 4ac00c00 02000100 00384000 0d0a7465 6c656361 73746572 c04ac030 00010001 00003840 0004ac1d c7b4c030 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0004c043 00010001 00003840 0004ac1d c701c043 001c0001 00003840 00102001 04709740 00010000 00000000 0001c073 00010001 00003840 0004ac1d c705c073 001c0001 00003840 00102001 04709740 00010000 00000000 0005c05b 00010001 00003840 0004ac1d c7b2c05b 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0002c089 00010001 00003840 0004ac1d c7b3c089 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0003. +0.000356 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31238580 00010001 00040008 09646973 746f7274 6564036f 72670275 6b000001 0001c00c 00010001 00003840 0004ac1d c7b4c00c 00020001 00003840 00100a74 656c6563 61737465 72026e73 c00cc00c 00020001 00003840 000a0776 616d7069 7265c049 c00c0002 00010000 3840000c 09707265 63697369 6f6ec049 c00c0002 00010000 38400009 06726164 697573c0 49c08800 01000100 00384000 04ac1dc7 01c08800 1c000100 00384000 10200104 70974000 01000000 00000000 01c05a00 01000100 00384000 04ac1dc7 05c05a00 1c000100 00384000 10200104 70974000 01000000 00000000 05c07000 01000100 00384000 04ac1dc7 b2c07000 1c000100 00384000 1020010b a801d900 02000000 00000000 02c03e00 01000100 00384000 04ac1dc7 b3c03e00 1c000100 00384000 1020010b a801d900 02000000 00000000 03. +0.000329 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000049 close fd=6 close=OK +0.000145 adns-1.5.0~rc1/regress/case-unknown5.err0000664000175000017500000000005112421042027016217 0ustar ianianadns debug: using nameserver 172.18.45.6 adns-1.5.0~rc1/regress/case-aaaa-simple.sys0000664000175000017500000000277112422540543016655 0ustar ianian./adnstest distorted :0x0|28 stratocaster.distorted.org.uk start 1401870460.843715 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000022 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000010 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000009 sendto fd=6 addr=172.29.199.224:53 311f0100 00010000 00000000 0c737472 61746f63 61737465 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000072 select max=7 rfds=[6] wfds=[] efds=[] to=1.999928 select=1 rfds=[6] wfds=[] efds=[] +0.001805 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 311f8580 00010001 00040008 0c737472 61746f63 61737465 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010ba801 d9000200 00000000 000004c0 19000200 01000038 40000d07 76616d70 69726502 6e73c019 c0190002 00010000 3840000d 0a74656c 65636173 746572c0 5fc01900 02000100 00384000 0c097072 65636973 696f6ec0 5fc01900 02000100 00384000 09067261 64697573 c05fc0a1 00010001 00003840 0004ac1d c701c0a1 001c0001 00003840 00102001 04709740 00010000 00000000 0001c057 00010001 00003840 0004ac1d c705c057 001c0001 00003840 00102001 04709740 00010000 00000000 0005c089 00010001 00003840 0004ac1d c7b2c089 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0002c070 00010001 00003840 0004ac1d c7b3c070 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0003. +0.000125 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000021 close fd=6 close=OK +0.000029 adns-1.5.0~rc1/regress/case-adh-cancel2.sys0000664000175000017500000000310212422510661016527 0ustar ianian./adnshost default -f -A4 start 969124594.885114 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000160 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000057 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000035 select max=7 rfds=[0,6] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +6.-286734 read fd=0 buflen=40 read=OK 2d2d6173 796e6368 2d696420 34320a. +0.000727 select max=7 rfds=[0,6] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +0.000147 read fd=0 buflen=40 read=OK 63686961 726b2e67 7265656e 656e642e 6f72672e 756b0a. +0.000129 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000802 select max=7 rfds=[0,6] wfds=[] efds=[] to=1.999198 select=1 rfds=[0,6] wfds=[] efds=[] +0.000135 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d01. +0.000553 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000195 read fd=0 buflen=40 read=OK 2d2d6361 6e63656c 2d696420 34320a. +0.000688 select max=7 rfds=[0,6] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +2.-11588 read fd=0 buflen=40 read=OK . +0.000089 close fd=6 close=OK +0.000149 adns-1.5.0~rc1/regress/case-unknownq.err0000664000175000017500000000000012421042027016305 0ustar ianianadns-1.5.0~rc1/regress/case-ptr-aaaa-check.err0000664000175000017500000000000012421042027017166 0ustar ianianadns-1.5.0~rc1/regress/case-arf-text.out0000664000175000017500000000000512421042027016203 0ustar ianianrc=0 adns-1.5.0~rc1/regress/case-alr-norm.err0000664000175000017500000000273512421042027016175 0ustar ianianadns debug: using nameserver 172.18.45.6 adnslogres: submitting 172.18.45.1 -> 1.45.18.172.in-addr.arpa. adnslogres: 1 in queue; checking 172.18.45.1 adnslogres: submitting 127.0.0.1 -> 1.0.0.127.in-addr.arpa. adnslogres: 1 in queue; checking 127.0.0.1 adnslogres: submitting 172.30.206.14 -> 14.206.30.172.in-addr.arpa. adnslogres: 1 in queue; checking 172.30.206.14 adnslogres: submitting 127.0.0.1 -> 1.0.0.127.in-addr.arpa. adnslogres: 2 in queue; checking 172.30.206.14 adnslogres: submitting 172.18.45.3 -> 3.45.18.172.in-addr.arpa. adnslogres: 3 in queue; checking 172.30.206.14 adnslogres: submitting 172.18.45.1 -> 1.45.18.172.in-addr.arpa. adnslogres: 4 in queue; checking 172.30.206.14 adnslogres: submitting 172.18.45.8 -> 8.45.18.172.in-addr.arpa. adnslogres: 5 in queue; checking 172.30.206.14 adnslogres: submitting 172.18.45.1 -> 1.45.18.172.in-addr.arpa. adnslogres: 6 in queue; checking 172.30.206.14 adnslogres: submitting 172.18.45.1 -> 1.45.18.172.in-addr.arpa. adnslogres: 7 in queue; checking 172.30.206.14 adnslogres: submitting 172.18.45.6 -> 6.45.18.172.in-addr.arpa. adnslogres: 8 in queue; checking 172.30.206.14 adnslogres: 8 in queue; checking 172.30.206.14 adnslogres: 7 in queue; checking 127.0.0.1 adnslogres: 6 in queue; checking 172.18.45.3 adnslogres: 5 in queue; checking 172.18.45.1 adnslogres: 4 in queue; checking 172.18.45.8 adnslogres: 3 in queue; checking 172.18.45.1 adnslogres: 2 in queue; checking 172.18.45.1 adnslogres: 1 in queue; checking 172.18.45.6 adns-1.5.0~rc1/regress/case-longdom0.sys0000664000175000017500000000436012422540543016216 0ustar ianianadnstest default :0x0|1 1/0rndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk. start 951955651.857473 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000126 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000056 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000036 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 2230726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f670a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=271 +0.003710 select max=5 rfds=[4] wfds=[] efds=[] to=1.996290 select=1 rfds=[4] wfds=[] efds=[] +0.000332 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8583 00010000 00010000 2230726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f670a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0100010a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 06000100 01518000 27036e73 30c10f0a 686f7374 6d617374 6572c10f 0000002d 00001c20 00000e10 00093a80 00015180. +0.001276 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000148 close fd=4 close=OK +0.000154 adns-1.5.0~rc1/regress/case-srvok.out0000664000175000017500000000100112421042027015612 0ustar ianian_srv._tcp.test.iwj.relativity.greenend.org.uk SRV 10 66 10066 davenant.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 200 20200 norway.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 400 20400 anarres.relativity.greenend.org.uk _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 100 20100 nxdomain.relativity.greenend.org.uk _jabber._tcp.jabber.org SRV 30 30 5269 jabber.org _sip._udp.voip.net.cam.ac.uk SRV 10 1 5060 sip.voip.net.cam.ac.uk rc=0 adns-1.5.0~rc1/regress/case-quote.err0000664000175000017500000000000012421042027015562 0ustar ianianadns-1.5.0~rc1/regress/case-longlab1.err0000664000175000017500000000000012421042027016124 0ustar ianianadns-1.5.0~rc1/regress/case-rr_addr-binary-compat.err0000664000175000017500000000000012421042027020605 0ustar ianianadns-1.5.0~rc1/regress/case-arf-norm.out0000664000175000017500000000000512421042027016172 0ustar ianianrc=0 adns-1.5.0~rc1/regress/case-search-as.err0000664000175000017500000000000012421042027016273 0ustar ianianadns-1.5.0~rc1/regress/case-trunc.err0000664000175000017500000000000012421042027015560 0ustar ianianadns-1.5.0~rc1/regress/case-ndots.sys0000664000175000017500000002523112422540543015626 0ustar ianianadnstest ndots -,s :0x0|1 5/newsx.davenant 5/news.davenant 5/news.davenant.greenend.org.uk 5/trunc.test.iwj.relativity 5/trunx.test.iwj.relativity 5/test.iwj.relativity start 924365863.351594 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000212 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000087 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000069 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 056e6577 73780864 6176656e 616e7408 64617665 6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=57 +0.003433 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 046e6577 73086461 76656e61 6e740864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001. sendto=56 +0.001694 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001. sendto=47 +0.001921 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790000 010001. sendto=43 +0.001042 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 05747275 6e780474 65737403 69776a0a 72656c61 74697669 74790000 010001. sendto=43 +0.002220 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 04746573 74036977 6a0a7265 6c617469 76697479 08646176 656e616e 74086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=62 +0.001132 select max=5 rfds=[4] wfds=[] efds=[] to=1.988558 select=1 rfds=[4] wfds=[] efds=[] +0.000225 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8583 00010000 00010000 056e6577 73780864 6176656e 616e7408 64617665 6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01086772 65656e65 6e64036f 72670275 6b000006 00010001 51800037 04646e73 3006656c 6d61696c 02636fc0 46087269 63686172 646b0663 68696172 6bc03977 26f0bf00 00708000 001c2000 093a8000 015180. +0.000801 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 056e6577 73780864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001. sendto=48 +0.001048 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208583 00010000 00010000 046e6577 73086461 76656e61 6e740864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80003704 646e7330 06656c6d 61696c02 636fc045 08726963 68617264 6b066368 6961726b c0387726 f0bf0000 70800000 1c200009 3a800001 5180. +0.000773 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001. sendto=47 +0.000440 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000105 select max=5 rfds=[4] wfds=[] efds=[] to=1.990293 select=1 rfds=[4] wfds=[] efds=[] +0.004269 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010002 00030003 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000151 80002508 64617665 6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c03b0001 00010001 51800004 ac122d06 c0440002 00010001 51800006 036e7330 c044c044 00020001 00015180 0006036e 7331c044 c0440002 00010001 51800006 036e7332 c044c07c 00010001 00015180 0004ac12 2d06c08e 00010001 00015180 0004ac12 2d41c0a0 00010001 00015180 0004ac12 2d01. +0.001122 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000283 select max=5 rfds=[4] wfds=[] efds=[] to=1.986540 select=1 rfds=[4] wfds=[] efds=[] +0.000988 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228583 00010000 00010000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790000 01000100 00060001 000000e3 003e0141 0c524f4f 542d5345 52564552 53034e45 54000a68 6f73746d 61737465 7208494e 5445524e 4943c045 7726f440 00000708 00000384 00093a80 00015180. +0.000665 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001. sendto=68 +0.000576 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000106 select max=5 rfds=[4] wfds=[] efds=[] to=1.985247 select=1 rfds=[4] wfds=[] efds=[] +0.001800 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238583 00010000 00010000 05747275 6e780474 65737403 69776a0a 72656c61 74697669 74790000 01000100 00060001 0000016b 003e0141 0c524f4f 542d5345 52564552 53034e45 54000a68 6f73746d 61737465 7208494e 5445524e 4943c045 7726f440 00000708 00000384 00093a80 00015180. +0.000671 sendto fd=4 addr=172.18.45.6:53 31280100 00010000 00000000 05747275 6e780474 65737403 69776a0a 72656c61 74697669 74790864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001. sendto=68 +0.000550 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000105 select max=5 rfds=[4] wfds=[] efds=[] to=1.984341 select=1 rfds=[4] wfds=[] efds=[] +0.002209 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248583 00010000 00010000 04746573 74036977 6a0a7265 6c617469 76697479 08646176 656e616e 74086772 65656e65 6e64036f 72670275 6b000001 00010867 7265656e 656e6403 6f726702 756b0000 06000100 01518000 3704646e 73300665 6c6d6169 6c02636f c04b0872 69636861 72646b06 63686961 726bc03e 7726f0bf 00007080 00001c20 00093a80 00015180. +0.000817 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=53 +0.000476 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000105 select max=5 rfds=[4] wfds=[] efds=[] to=1.982091 select=1 rfds=[4] wfds=[] efds=[] +0.001955 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258583 00010000 00010000 056e6577 73780864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80003704 646e7330 06656c6d 61696c02 636fc03d 08726963 68617264 6b066368 6961726b c0307726 f0bf0000 70800000 1c200009 3a800001 5180. +0.000729 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 056e6577 73780864 6176656e 616e7400 00010001. sendto=32 +0.000394 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000109 select max=5 rfds=[4] wfds=[] efds=[] to=1.978904 select=1 rfds=[4] wfds=[] efds=[] +0.005814 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268580 00010002 00030003 046e6577 73086461 76656e61 6e740867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000500 01000151 80002508 64617665 6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c03b0001 00010001 51800004 ac122d06 c0440002 00010001 51800006 036e7330 c044c044 00020001 00015180 0006036e 7331c044 c0440002 00010001 51800006 036e7332 c044c07c 00010001 00015180 0004ac12 2d06c08e 00010001 00015180 0004ac12 2d41c0a0 00010001 00015180 0004ac12 2d01. +0.001125 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000258 select max=5 rfds=[4] wfds=[] efds=[] to=1.981536 select=1 rfds=[4] wfds=[] efds=[] +0.001427 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278583 00010000 00010000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80003704 646e7330 06656c6d 61696c02 636fc051 08726963 68617264 6b066368 6961726b c0447726 f0bf0000 70800000 1c200009 3a800001 5180. +0.000823 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=59 +0.000507 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000106 select max=5 rfds=[4] wfds=[] efds=[] to=1.981820 select=1 rfds=[4] wfds=[] efds=[] +0.002135 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31288583 00010000 00010000 05747275 6e780474 65737403 69776a0a 72656c61 74697669 74790864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00 00010001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80003704 646e7330 06656c6d 61696c02 636fc051 08726963 68617264 6b066368 6961726b c0447726 f0bf0000 70800000 1c200009 3a800001 5180. +0.000844 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 05747275 6e780474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=59 +0.000505 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000103 select max=5 rfds=[4] wfds=[] efds=[] to=1.981768 select=1 rfds=[4] wfds=[] efds=[] +0.001673 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298580 00010000 00010000 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 00120000 0e100000 00780064 c8000000 003c. +0.000726 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000167 select max=5 rfds=[4] wfds=[] efds=[] to=1.982555 select=1 rfds=[4] wfds=[] efds=[] +0.001681 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8583 00010000 00010000 056e6577 73780864 6176656e 616e7400 00010001 00000600 01000000 af003e01 410c524f 4f542d53 45525645 5253034e 4554000a 686f7374 6d617374 65720849 4e544552 4e4943c0 3a7726f4 40000007 08000003 8400093a 80000151 80. +0.000598 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000116 select max=5 rfds=[4] wfds=[] efds=[] to=1.990016 select=1 rfds=[4] wfds=[] efds=[] +0.004585 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8580 00010000 00010000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 01000104 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00060001 0000003c 0027036e 7330c044 0a686f73 746d6173 746572c0 44000000 1200000e 10000000 780064c8 00000000 3c. +0.000786 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000146 select max=5 rfds=[4] wfds=[] efds=[] to=1.988070 select=1 rfds=[4] wfds=[] efds=[] +0.002234 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8583 00010000 00010000 05747275 6e780474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 01000104 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00060001 0000003c 0027036e 7330c044 0a686f73 746d6173 746572c0 44000000 1200000e 10000000 780064c8 00000000 3c. +0.000780 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000120 close fd=4 close=OK +0.000181 adns-1.5.0~rc1/regress/case-trunc.out0000664000175000017500000000034212421042027015610 0ustar ianianadns debug: using nameserver 172.18.45.6 trunc.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted trunc.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such data; nrrs=0; cname=$; owner=$; ttl=60 rc=0 adns-1.5.0~rc1/regress/case-unknown-flags-harmless.sys0000664000175000017500000000177212423157063021112 0ustar ianian./adnstest default -0x4000 :0x60000000|1 0x40080000/chiark.greenend.org.uk start 1414182720.022422 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000183 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000097 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000076 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000272 select max=7 rfds=[6] wfds=[] efds=[] to=1.999728 select=1 rfds=[6] wfds=[] efds=[] +0.102141 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010000 0e100004 d40dc5e5 c0130002 00010001 51800011 036e7331 0a72656c 61746976 697479c0 13c01300 02000100 01518000 06036e73 30c048c0 61000100 01000151 800004ac 122d06c0 44000100 01000151 800004ac 122d0b. +0.000252 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000070 close fd=6 close=OK +0.000138 adns-1.5.0~rc1/regress/case-comprinf.out0000664000175000017500000000043212421042027016272 0ustar ianianadns debug: using nameserver 172.18.45.6 37.45.18.172.in-addr.arpa. flags 0 type 12 PTR(raw) submitted 37.45.18.172.in-addr.arpa. flags 0 type PTR(raw): Found overly-long domain name; nrrs=0; cname=37.45.18.172.in-addr.arpa.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 rc=0 adns-1.5.0~rc1/regress/case-longdomsrch2.sys0000664000175000017500000000733512422540543017105 0ustar ianianadnstest ndots100 :0x0|1 1/xxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk start 951956143.624786 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000137 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000058 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000035 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 12787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f670a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0867 7265656e 656e6403 6f726702 756b0000 010001. sendto=271 +0.004067 select max=5 rfds=[4] wfds=[] efds=[] to=1.995933 select=1 rfds=[4] wfds=[] efds=[] +0.000223 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208583 00010000 00010000 12787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f670a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0867 7265656e 656e6403 6f726702 756b0000 01000108 67726565 6e656e64 036f7267 02756b00 00060001 00015180 002d026e 73066368 6961726b c10f0a68 6f73746d 61737465 72c10f77 35e86000 00708000 001c2000 093a8000 015180. +0.001177 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 12787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f670a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=255 +0.002348 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218583 00010000 00010000 12787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f670a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0100010a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 06000100 01518000 27036e73 30c0ff0a 686f7374 6d617374 6572c0ff 0000002d 00001c20 00000e10 00093a80 00015180. +0.001060 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000105 close fd=4 close=OK +0.000176 adns-1.5.0~rc1/regress/init-1stservto.text0000664000175000017500000000013712421042027016636 0ustar ianiannameserver 10.0.0.1 nameserver 172.18.45.6 sortlist 127.0.0.1/32 172.18.45.0/28 172.18.45.0/24 adns-1.5.0~rc1/regress/case-manyptrwrongrem.out0000664000175000017500000001127212421042027017734 0ustar ianianadns debug: using nameserver 140.200.128.13 254.0.99.203.in-addr.arpa flags 292 type 1 A(-) submitted 254.0.99.203.in-addr.arpa flags 292 type 2 NS(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 5 CNAME(-) submitted 254.0.99.203.in-addr.arpa flags 292 type 6 SOA(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 12 PTR(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 13 HINFO(-) submitted 254.0.99.203.in-addr.arpa flags 292 type 15 MX(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 16 TXT(-) submitted 254.0.99.203.in-addr.arpa flags 292 type 17 RP(raw) submitted 254.0.99.203.in-addr.arpa flags 292 type 65537 A(addr) submitted 254.0.99.203.in-addr.arpa flags 292 type 65538 NS(+addr) submitted 254.0.99.203.in-addr.arpa flags 292 type 65548 PTR(checked) submitted 254.0.99.203.in-addr.arpa flags 292 type 65551 MX(+addr) submitted 254.0.99.203.in-addr.arpa flags 292 type 131078 SOA(822) submitted 254.0.99.203.in-addr.arpa flags 292 type 131089 RP(822) submitted 254.0.99.203.in-addr.arpa flags 292 type A(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type CNAME(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type SOA(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type NS(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type HINFO(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type TXT(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type MX(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type RP(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type A(addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type MX(+addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type NS(+addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type SOA(822): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 254.0.99.203.in-addr.arpa flags 292 type RP(822): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 adns debug: TCP connected (NS=140.200.128.13) 254.0.99.203.in-addr.arpa flags 292 type PTR(raw): OK; nrrs=94; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400 ns.security.co.nz tetra.co.nz mail.agate.co.nz ns.agate.co.nz securitytraining.co.nz ns.giftbasket.co.nz ns.security.gen.nz bouquet.co.nz investigation.co.nz ns.nzipi.org.nz mail.neru.co.nz security.co.nz ns.storewatch.co.nz security.gen.nz ns.tetra.co.nz mail.tetra.co.nz ns.securicard.co.nz ns.underhour.co.nz bcc.co.nz security.org.nz burglaralarms.co.nz ns.safes.co.nz ns.security.org.nz couperconsulting.co.nz securityguards.co.nz ns.guards.co.nz asis.org.nz neru.co.nz giftbasket.co.nz magic.co.nz mail.bcc.co.nz ns.investigation.co.nz nzipi.org.nz ns.bouquet.co.nz mail.safes.co.nz ns.bcc.co.nz ns.burglaralarms.co.nz ns.securityguards.co.nz covertcameras.co.nz ns.neru.co.nz ns.covertcameras.co.nz bouquets.co.nz concentric.co.nz ns.securitytraining.co.nz mail.couperconsulting.co.nz retailsecurity.co.nz ns.concentric.co.nz mail.magic.co.nz nzangling.co.nz ns.couperconsulting.co.nz ns.nzangling.co.nz mail.storewatch.co.nz swift.co.nz mail.selective.co.nz ns.forefront.co.nz mail.nzangling.co.nz guards.co.nz mail.nzdesigns.co.nz storewatch.co.nz ns.securitymanagement.co.nz mail.woolworths.co.nz mail.concentric.co.nz selective.co.nz specialinvestigations.co.nz ns.swift.co.nz mail.swift.co.nz ns.securenet.net.nz privateinvestigation.co.nz ns.privateinvestigation.co.nz etrade.co.nz ns.specialinvestigations.co.nz mail.ansett.co.nz ftp.warrent.co.nz ns.retailsecurity.co.nz mail.securitymanagement.co.nz ns.magic.co.nz mail.forefront.co.nz mail.securicard.co.nz securicard.co.nz ns.nzdesigns.co.nz safes.co.nz ns.selective.co.nz forefront.co.nz securitymanagement.co.nz underhour.co.nz securenet.net.nz mail.specialinvestigations.co.nz nzdesigns.co.nz ns.etrade.co.nz mail.nzipi.org.nz mail.underhour.co.nz ns.asis.org.nz ns.bouquets.co.nz agate.co.nz 254.0.99.203.in-addr.arpa flags 292 type PTR(checked): Inconsistent resource records in DNS; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86399 rc=0 adns-1.5.0~rc1/regress/case-longlab0.out0000664000175000017500000000051312421042027016153 0ustar ianianadns debug: using nameserver 172.18.45.6 yrndrobwlxxxxxxxxxxlllantysiliogogllanfairpwllgwyngyllgogerychw.relativity.greenend.org.uk. flags 1 type 1 A(-) submitted yrndrobwlxxxxxxxxxxlllantysiliogogllanfairpwllgwyngyllgogerychw.relativity.greenend.org.uk. flags 1 type A(-): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 rc=0 adns-1.5.0~rc1/regress/case-ptr-aaaa-plain.sys0000664000175000017500000000342012422540543017262 0ustar ianian./adnstest distorted :0x0|12 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa start 1401918956.635299 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000060 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000032 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000026 sendto fd=6 addr=172.29.199.224:53 311f0100 00010000 00000000 01340130 01300130 01300130 01300130 01300130 01300130 01300130 01300130 01320130 01300130 01390164 01310130 01380161 01620130 01310130 01300132 03697036 04617270 6100000c 0001. sendto=90 +0.000219 select max=7 rfds=[6] wfds=[] efds=[] to=1.999781 select=1 rfds=[6] wfds=[] efds=[] +0.002107 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 311f8580 00010001 00040008 01340130 01300130 01300130 01300130 01300130 01300130 01300130 01300130 01320130 01300130 01390164 01310130 01380161 01620130 01310130 01300132 03697036 04617270 6100000c 0001c00c 000c0001 00003840 001f0c73 74726174 6f636173 74657209 64697374 6f727465 64036f72 6702756b 00c03400 02000100 00384000 0a077661 6d706972 65c073c0 34000200 01000038 40000d0a 74656c65 63617374 6572c073 c0340002 00010000 3840000c 09707265 63697369 6f6ec073 c0340002 00010000 38400009 06726164 697573c0 73c0d800 01000100 00384000 04ac1dc7 01c0d800 1c000100 00384000 10200104 70974000 01000000 00000000 01c09100 01000100 00384000 04ac1dc7 05c09100 1c000100 00384000 10200104 70974000 01000000 00000000 05c0c000 01000100 00384000 04ac1dc7 b2c0c000 1c000100 00384000 1020010b a801d900 02000000 00000000 02c0a700 01000100 00384000 04ac1dc7 b3c0a700 1c000100 00384000 1020010b a801d900 02000000 00000000 03. +0.000349 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000072 close fd=6 close=OK +0.000081 adns-1.5.0~rc1/regress/case-aaaa-sort.out0000664000175000017500000000044712421042027016333 0ustar ianianadns debug: using nameserver 172.29.199.224 maddr.dnserr.distorted.org.uk flags 0 type 28 AAAA(-) submitted maddr.dnserr.distorted.org.uk flags 0 type AAAA(-): OK; nrrs=6; cname=$; owner=$; ttl=14400 2001:db8:2::1 2001:db8:2::2 2001:db8:3::2 2001:db8:1::1 2001:db8:1::2 2001:db8:3::1 rc=0 adns-1.5.0~rc1/regress/case-formerr.out0000664000175000017500000000302212421042027016127 0ustar ianianadns debug: using nameserver 172.18.45.6 h.rndrobwlxxxxxxxxxxlllantysiliogogllanfairpwllgwyngyllgogerychw.relativity.greenend.org.uk. flags 1 type 1 A(-) submitted adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) adns warning: server cannot understand our query (Format Error) (NS=172.18.45.6) h.rndrobwlxxxxxxxxxxlllantysiliogogllanfairpwllgwyngyllgogerychw.relativity.greenend.org.uk. flags 1 type A(-): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 rc=0 adns-1.5.0~rc1/regress/case-polltimeout.sys0000664000175000017500000001043612422540543017055 0ustar ianianadnstest noserver -,p :0x0|1 chiark.greenend.org.uk start 931719968.733439 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000199 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000087 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000067 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000790 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009031 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000436 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009093 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000519 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.008993 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000500 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009010 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000486 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009050 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000485 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009014 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000485 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009045 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000451 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009050 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000483 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009042 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000433 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009083 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000521 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009017 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000442 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009058 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000510 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009012 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000436 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.009085 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000514 poll fds=[{fd=4, events=POLLIN, revents=0}] timeout=2000 poll=0 fds=[{fd=4, events=POLLIN, revents=0}] +2.008998 close fd=4 close=OK +0.000302 adns-1.5.0~rc1/regress/case-ndots.out0000664000175000017500000000216012421042027015604 0ustar ianianadns debug: using nameserver 172.18.45.6 newsx.davenant flags 5 type 1 A(-) submitted news.davenant flags 5 type 1 A(-) submitted news.davenant.greenend.org.uk flags 5 type 1 A(-) submitted trunc.test.iwj.relativity flags 5 type 1 A(-) submitted trunx.test.iwj.relativity flags 5 type 1 A(-) submitted test.iwj.relativity flags 5 type 1 A(-) submitted newsx.davenant flags 5 type A(-): No such domain; nrrs=0; cname=$; owner=newsx.davenant; ttl=175 news.davenant flags 5 type A(-): OK; nrrs=1; cname=davenant.relativity.greenend.org.uk; owner=news.davenant.greenend.org.uk; ttl=86400 172.18.45.6 news.davenant.greenend.org.uk flags 5 type A(-): OK; nrrs=1; cname=davenant.relativity.greenend.org.uk; owner=news.davenant.greenend.org.uk; ttl=86400 172.18.45.6 trunc.test.iwj.relativity flags 5 type A(-): No such data; nrrs=0; cname=$; owner=trunc.test.iwj.relativity.greenend.org.uk; ttl=60 trunx.test.iwj.relativity flags 5 type A(-): No such domain; nrrs=0; cname=$; owner=trunx.test.iwj.relativity; ttl=60 test.iwj.relativity flags 5 type A(-): No such data; nrrs=0; cname=$; owner=test.iwj.relativity.greenend.org.uk; ttl=60 rc=0 adns-1.5.0~rc1/regress/case-unknown-flags-init.err0000664000175000017500000000004112423157063020175 0ustar ianianadns failure: init: errno=ENOSYS adns-1.5.0~rc1/regress/case-ndots-as.out0000664000175000017500000000216212421042027016207 0ustar ianianadns debug: using nameserver 172.18.45.6 newsx.davenant flags 5 type 1 A(-) submitted news.davenant flags 5 type 1 A(-) submitted news.davenant.greenend.org.uk flags 5 type 1 A(-) submitted trunc.test.iwj.relativity flags 5 type 1 A(-) submitted trunx.test.iwj.relativity flags 5 type 1 A(-) submitted test.iwj.relativity flags 5 type 1 A(-) submitted news.davenant.greenend.org.uk flags 5 type A(-): OK; nrrs=1; cname=davenant.relativity.greenend.org.uk; owner=news.davenant.greenend.org.uk; ttl=86400 172.18.45.6 newsx.davenant flags 5 type A(-): No such domain; nrrs=0; cname=$; owner=newsx.davenant; ttl=86400 news.davenant flags 5 type A(-): OK; nrrs=1; cname=davenant.relativity.greenend.org.uk; owner=news.davenant.greenend.org.uk; ttl=86400 172.18.45.6 trunc.test.iwj.relativity flags 5 type A(-): No such data; nrrs=0; cname=$; owner=trunc.test.iwj.relativity.greenend.org.uk; ttl=60 trunx.test.iwj.relativity flags 5 type A(-): No such domain; nrrs=0; cname=$; owner=trunx.test.iwj.relativity; ttl=60 test.iwj.relativity flags 5 type A(-): No such data; nrrs=0; cname=$; owner=test.iwj.relativity.greenend.org.uk; ttl=60 rc=0 adns-1.5.0~rc1/regress/case-brokenmail.out0000664000175000017500000000573212421042027016610 0ustar ianianadns debug: using nameserver 172.18.45.6 broken-mail.test.iwj.relativity.greenend.org.uk. flags 0 type 15 MX(raw) submitted broken-mail.test.iwj.relativity.greenend.org.uk. flags 0 type 65551 MX(+addr) submitted broken-mail.test.iwj.relativity.greenend.org.uk. flags 256 type 15 MX(raw) submitted broken-mail.test.iwj.relativity.greenend.org.uk. flags 256 type 65551 MX(+addr) submitted broken-mail.test.iwj.relativity.greenend.org.uk. flags 260 type 15 MX(raw) submitted broken-mail.test.iwj.relativity.greenend.org.uk. flags 260 type 65551 MX(+addr) submitted broken-mail.test.iwj.relativity.greenend.org.uk. flags 0 type MX(raw): OK; nrrs=4; cname=$; owner=$; ttl=60 10 manyaddrs.test.iwj.relativity.greenend.org.uk 20 host.broken-delg.test.iwj.relativity.greenend.org.uk 30 172.18.45.36 40 cname-ptr.test.iwj.relativity.greenend.org.uk broken-mail.test.iwj.relativity.greenend.org.uk. flags 256 type MX(raw): OK; nrrs=4; cname=$; owner=$; ttl=60 10 manyaddrs.test.iwj.relativity.greenend.org.uk 20 host.broken-delg.test.iwj.relativity.greenend.org.uk 30 172.18.45.36 40 cname-ptr.test.iwj.relativity.greenend.org.uk broken-mail.test.iwj.relativity.greenend.org.uk. flags 260 type MX(raw): OK; nrrs=4; cname=$; owner=broken-mail.test.iwj.relativity.greenend.org.uk; ttl=60 10 manyaddrs.test.iwj.relativity.greenend.org.uk 20 host.broken-delg.test.iwj.relativity.greenend.org.uk 30 172.18.45.36 40 cname-ptr.test.iwj.relativity.greenend.org.uk broken-mail.test.iwj.relativity.greenend.org.uk. flags 0 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=30 10 manyaddrs.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 127.0.0.1 INET 172.18.45.6 INET 172.18.45.1 INET 172.18.45.35 ) 20 host.broken-delg.test.iwj.relativity.greenend.org.uk remotefail 30 timeout "DNS query timed out" ? 30 172.18.45.36 permfail 300 nxdomain "No such domain" ( ) 40 cname-ptr.test.iwj.relativity.greenend.org.uk misconfig 101 prohibitedcname "DNS alias found where canonical name wanted" ( ) broken-mail.test.iwj.relativity.greenend.org.uk. flags 256 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=30 10 manyaddrs.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 127.0.0.1 INET 172.18.45.6 INET 172.18.45.1 INET 172.18.45.35 ) 20 host.broken-delg.test.iwj.relativity.greenend.org.uk remotefail 30 timeout "DNS query timed out" ? 30 172.18.45.36 permfail 300 nxdomain "No such domain" ( ) 40 cname-ptr.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.37 ) broken-mail.test.iwj.relativity.greenend.org.uk. flags 260 type MX(+addr): OK; nrrs=4; cname=$; owner=broken-mail.test.iwj.relativity.greenend.org.uk; ttl=30 10 manyaddrs.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 127.0.0.1 INET 172.18.45.6 INET 172.18.45.1 INET 172.18.45.35 ) 20 host.broken-delg.test.iwj.relativity.greenend.org.uk remotefail 30 timeout "DNS query timed out" ? 30 172.18.45.36 permfail 300 nxdomain "No such domain" ( ) 40 cname-ptr.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.37 ) rc=0 adns-1.5.0~rc1/regress/case-flags9.sys0000664000175000017500000000201212422540543015654 0ustar ianianadnstest default :0x0|1 ,aaaaaaaaa/chiark.greenend.org.uk start 929580075.263215 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000212 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000083 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000060 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000625 select max=5 rfds=[4] wfds=[] efds=[] to=1.999375 select=1 rfds=[4] wfds=[] efds=[] +0.007374 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d41. +0.001238 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000228 close fd=4 close=OK +0.000205 adns-1.5.0~rc1/regress/init-bogus-sortlist.text0000664000175000017500000000022212421042027017657 0ustar ianiannameserver 172.18.45.6 sortlist 198.51.100.1/24 2001:db8:2::/10 0/32 ::/128 255.0.0.0 2/33 ::/129 search dnserr.distorted.org.uk distorted.org.uk adns-1.5.0~rc1/regress/case-unknown-flags-init.out0000664000175000017500000000000512423157063020214 0ustar ianianrc=2 adns-1.5.0~rc1/regress/case-tcpbreakin.sys0000664000175000017500000000634112422540543016622 0ustar ianianadnstest default :0x10000|12 2/6.45.18.172.in-addr.arpa start 957718868.938329 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000161 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000059 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000038 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.001056 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000238 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000055 connect fd=5 addr=172.18.45.6:53 connect=EINPROGRESS +0.000723 select max=6 rfds=[4] wfds=[5] efds=[] to=13.997928 select=1 rfds=[] wfds=[5] efds=[] +0.000536 read fd=5 buflen=1 read=EAGAIN +0.000118 write fd=5 002a311f 01000001 00000000 00000136 02343502 31380331 37320769 6e2d6164 64720461 72706100 000c0001. write=44 +0.001433 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.995841 select=1 rfds=[5] wfds=[] efds=[] +0.000260 read fd=5 buflen=2 read=OK 00d7. +0.000302 read fd=5 buflen=215 read=OK 311f8580 00010001 00030003 01360234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00250864 6176656e 616e740a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0002 34350231 38033137 3207696e 2d616464 72046172 70610000 02000100 01518000 06036e73 30c03fc0 5b000200 01000151 80000603 6e7331c0 3fc05b00 02000100 01518000 06036e73 32c03fc0 7d000100 01000151 800004ac 122d06c0 8f000100 01000151 800004ac 122d41c0 a1000100 01000151 800004ac 122d01. +0.001364 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=EMSGSIZE +0.000001 write fd=5 00353120 01000001 00000000 00000864 6176656e 616e740a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=EPIPE +0.001233 close fd=5 close=OK +0.000001 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=1 rfds=[] wfds=[] efds=[] +0.000118 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.001056 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000238 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000055 connect fd=5 addr=172.18.45.6:53 connect=EINPROGRESS +0.000723 select max=6 rfds=[4] wfds=[5] efds=[] to=13.997928 select=1 rfds=[] wfds=[5] efds=[] +0.000536 read fd=5 buflen=1 read=EAGAIN +0.000723 write fd=5 00353120 01000001 00000000 00000864 6176656e 616e740a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=44 +0.000001 select max=6 rfds=[4,5] wfds=[5] efds=[5] to=29.993649 select=1 rfds=[5] wfds=[] efds=[] +0.000260 read fd=5 buflen=217 read=OK 00c5 31208580 00010001 00030003 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 01000100 01518000 04ac122d 060a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000200 01000151 80000603 6e7330c0 45c04500 02000100 01518000 06036e73 31c045c0 45000200 01000151 80000603 6e7332c0 45c06b00 01000100 01518000 04ac122d 06c07d00 01000100 01518000 04ac122d 41c08f00 01000100 01518000 04ac122d 01. +0.001171 read fd=5 buflen=217 read=EAGAIN +0.000189 close fd=4 close=OK +0.000352 close fd=5 close=OK +0.000507 adns-1.5.0~rc1/regress/case-cnametocname.err0000664000175000017500000000000012421042027017057 0ustar ianianadns-1.5.0~rc1/regress/case-formerr.err0000664000175000017500000000000012421042027016101 0ustar ianianadns-1.5.0~rc1/regress/case-noinfto.err0000664000175000017500000000000012421042027016101 0ustar ianianadns-1.5.0~rc1/regress/case-tcpallfail.out0000664000175000017500000000610712421042027016575 0ustar ianianadns debug: using nameserver 172.18.45.2 test.iwj.relativity.greenend.org.uk. flags 2 type 1 A(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 2 NS(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 5 CNAME(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 6 SOA(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 12 PTR(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 13 HINFO(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 15 MX(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 16 TXT(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 17 RP(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65537 A(addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65538 NS(+addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65548 PTR(checked) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65551 MX(+addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 131078 SOA(822) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 131089 RP(822) submitted test.iwj.relativity.greenend.org.uk. flags 2 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 adns warning: TCP connection failed: connect/read: Connection refused (NS=172.18.45.2) adns warning: TCP connection failed: connect/read: Connection refused (NS=172.18.45.2) test.iwj.relativity.greenend.org.uk. flags 2 type A(-): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type NS(raw): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type CNAME(-): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type SOA(raw): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type PTR(raw): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type HINFO(-): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type MX(raw): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type TXT(-): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type RP(raw): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type NS(+addr): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type MX(+addr): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type SOA(822): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type RP(822): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 test.iwj.relativity.greenend.org.uk. flags 2 type A(addr): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604800 rc=0 adns-1.5.0~rc1/regress/Makefile.in0000664000175000017500000000610212423161435015067 0ustar ianian# regress/Makefile[.in] - regression test Makefile # # This file is part of adns, which is # Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson # Copyright (C) 2014 Mark Wooding # Copyright (C) 1999-2000,2003,2006 Tony Finch # Copyright (C) 1991 Massachusetts Institute of Technology # (See the file INSTALL for full details.) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation. srcdir= @srcdir@ VPATH= @srcdir@ PROGS_SYSDEP= @PROGS_HAVE_TSEARCH@ CLIENTS= adnstest adnshost adnslogres $(PROGS_SYSDEP) AUTOCHDRS= harness.h hsyscalls.h hredirect.h AUTOCSRCS= hrecord.c hplayback.c hcommon.c include ../settings.make include $(srcdir)/../src/adns.make DIRCFLAGS= -I../src -I$(srcdir) -I$(srcdir)/../src HCPPFLAGS= -DADNS_REGRESS_TEST -I. REDIRLIBOBJS= $(addsuffix _d.o, $(basename $(LIBOBJS))) HARNLOBJS= hcommon.o $(REDIRLIBOBJS) TARGETS= $(addsuffix _record, $(CLIENTS)) $(addsuffix _playback, $(CLIENTS)) ADH_OBJS= adh-main_c.o adh-opts_c.o adh-query_c.o ALL_OBJS= $(HARNLOBJS) dtest.o hrecord.o hplayback.o .PRECIOUS: $(AUTOCSRCS) $(AUTOCHDRS) all install uninstall: $(TARGETS) ALL_TESTS:=$(patsubst $(srcdir)/case-%.sys,%,$(wildcard $(srcdir)/case-*.sys)) check: $(TARGETS) $(addprefix check-,$(ALL_TESTS)) @echo @echo 'all tests passed or maybe skipped.' check-%: case-%.sys @srcdir=$(srcdir) $(srcdir)/r1test $* || test $? = 5 LINK_CMD= $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ %_record: %_c.o hrecord.o $(HARNLOBJS) $(LINK_CMD) %_playback: %_c.o hplayback.o $(HARNLOBJS) $(LINK_CMD) .SECONDARY: $(addsuffix _c.o, $(filter-out adnshost, $(CLIENTS))) # Without this, make will remove _c.o after building . # This wastes effort. (Debian bug #4073.) # # Also, it exposes us to a bug (in make 3.81, at least) which can # cause make to run the rule for building without building # _c.o! (Debian #756123.) # # See also Savannah #29620, http://savannah.gnu.org/bugs/index.php?29620 adnshost_%: $(ADH_OBJS) h%.o $(HARNLOBJS) $(LINK_CMD) %_d.o: $(srcdir)/../src/%.c hredirect.h $(CC) $(CFLAGS) $(HCPPFLAGS) -c -g -o $@ $< %_c.o: $(srcdir)/../client/%.c hredirect.h $(CC) $(CFLAGS) $(HCPPFLAGS) -I $(srcdir)/../src -c -g -o $@ $< $(ALL_OBJS): $(srcdir)/../src/adns.h $(srcdir)/../src/internal.h $(ALL_OBJS): harness.h hsyscalls.h $(ADH_OBJS): $(srcdir)/../client/adnshost.h %:: %.m4 hmacros.i4 hsyscalls.i4 $(M4) -P -I$(srcdir) $< >$@-a.new sed -e 's/hm_comma/,/g; s/hm_squote/'\''/g; /^[ ]*$$/d' <$@-a.new >$@-b.new @mv -f $@-b.new $(srcdir)/$@; rm -f $@-a.new adns-1.5.0~rc1/regress/case-adh-pipe.sys0000664000175000017500000000247712422510661016173 0ustar ianian./adnshost default -f -A4 start 969123801.904882 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000156 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000057 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000035 select max=7 rfds=[0,6] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +4.-792858 read fd=0 buflen=40 read=OK 63686961 726b2e67 7265656e 656e642e 6f72672e 756b0a. +0.000235 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000847 select max=7 rfds=[0,6] wfds=[] efds=[] to=1.999153 select=1 rfds=[6] wfds=[] efds=[] +0.000140 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e 64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669 7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180 0004ac12 2d06c070 00010001 00015180 0004ac12 2d01. +0.000548 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000184 select max=7 rfds=[0,6] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +0.715699 read fd=0 buflen=40 read=OK . +0.000090 close fd=6 close=OK +0.000134 adns-1.5.0~rc1/regress/case-norecurse3.out0000664000175000017500000000501512421042027016547 0ustar ianianadns debug: using nameserver 172.18.45.6 2.203.156.195.in-addr.arpa1 flags 0 type 1 A(-) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 2 NS(raw) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 5 CNAME(-) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 6 SOA(raw) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 12 PTR(raw) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 13 HINFO(-) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 15 MX(raw) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 16 TXT(-) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 17 RP(raw) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 65537 A(addr) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 65538 NS(+addr) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 65548 PTR(checked) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 65551 MX(+addr) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 131078 SOA(822) submitted 2.203.156.195.in-addr.arpa1 flags 0 type 131089 RP(822) submitted 2.203.156.195.in-addr.arpa1 flags 0 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 2.203.156.195.in-addr.arpa1 flags 0 type A(-): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type RP(822): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type SOA(822): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type MX(+addr): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type NS(+addr): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type A(addr): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type RP(raw): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type TXT(-): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type MX(raw): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type HINFO(-): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type PTR(raw): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type SOA(raw): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type CNAME(-): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 2.203.156.195.in-addr.arpa1 flags 0 type NS(raw): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 rc=0 adns-1.5.0~rc1/regress/case-timeout.err0000664000175000017500000000000012421042027016113 0ustar ianianadns-1.5.0~rc1/regress/case-ndotsbad.err0000664000175000017500000000004112421042027016230 0ustar ianianadns failure: init: errno=EINVAL adns-1.5.0~rc1/regress/case-unknown2.out0000664000175000017500000000026412421042027016241 0ustar ianianucam.org TYPE2 \# 12 06636869 61726b02 6e73c01a ucam.org TYPE2 \# 11 08636869 6d616572 61 c0 35 ucam.org TYPE2 \# 8 05726170 756ec035 ucam.org TYPE2 \# 9 06626563 6b6574c0 35 rc=0 adns-1.5.0~rc1/regress/init-manyptrwrong.text0000664000175000017500000000003212421042027017425 0ustar ianiannameserver 140.200.128.13 adns-1.5.0~rc1/regress/case-unkopts.sys0000664000175000017500000000174012423157063016203 0ustar ianian./adnstest unkopts :0x0|1 chiark.greenend.org.uk start 1414184606.322883 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000116 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000047 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000040 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000202 select max=7 rfds=[6] wfds=[] efds=[] to=1.999798 select=1 rfds=[6] wfds=[] efds=[] +0.002958 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001 c00c0001 00010000 0e100004 d40dc5e5 c0130002 00010001 51800011 036e7331 0a72656c 61746976 697479c0 13c01300 02000100 01518000 06036e73 30c048c0 61000100 01000151 800004ac 122d06c0 44000100 01000151 800004ac 122d0b. +0.000383 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000138 close fd=6 close=OK +0.000180 adns-1.5.0~rc1/regress/case-comprinf.err0000664000175000017500000000000012421042027016242 0ustar ianianadns-1.5.0~rc1/regress/case-unknown-flags-harmless.err0000664000175000017500000000000012423157063021043 0ustar ianianadns-1.5.0~rc1/regress/case-srvha.sys0000664000175000017500000001104212422510662015614 0ustar ianian./adnshost default -A4 -t srv _srv._tcp.test.iwj.relativity.greenend.org.uk. _jabber._tcp.jabber.org _sip._udp.voip.net.cam.ac.uk. start 1144348939.753711 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000080 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000050 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000042 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001. sendto=63 +0.000363 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 075f6a61 62626572 045f7463 70066a61 62626572 036f7267 00002100 01. sendto=41 +0.000218 sendto fd=6 addr=172.18.45.6:53 31210100 00010000 00000000 045f7369 70045f75 64700476 6f697003 6e657403 63616d02 61630275 6b000021 0001. sendto=46 +0.000211 select max=7 rfds=[6] wfds=[] efds=[] to=1.999208 select=1 rfds=[6] wfds=[] efds=[] +0.005339 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010004 00020004 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001c0 0c002100 01000000 0a002a00 1401904f b007616e 61727265 730a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 21000100 00000a00 29001400 c84ee806 6e6f7277 61790a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 00210001 0000000a 002b0014 00644e84 086e7864 6f6d6169 6e0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 21000100 00000a00 2b000a00 42275208 64617665 6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c0160002 00010000 000a0006 036e7330 c01fc016 00020001 0000000a 0021086e 732d7370 6f6e6702 34350331 37320231 3807696e 2d616464 72046172 70610007 616e6172 726573c0 1f000100 01000151 800004ac 122d0206 6e6f7277 6179c01f 00010001 00015180 0004ac12 2d280864 6176656e 616e74c0 1f000100 01000151 800004ac 122d06c1 24000100 01000151 800004ac 122d06. +0.000561 sendto fd=6 addr=172.18.45.6:53 31230100 00010000 00000000 086e7864 6f6d6169 6e0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=53 +0.000465 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010001 00040005 075f6a61 62626572 045f7463 70066a61 62626572 036f7267 00002100 01c00c00 21000100 0006a100 12001e00 1e149506 6a616262 6572036f 726700c0 19000200 0100001b b9001103 6e733107 6a657265 6d696503 636f6d00 c0190002 00010000 1bb90006 036e7332 c057c019 00020001 00001bb9 000c036e 73310562 6c616872 c05fc019 00020001 00001bb9 0010026e 73076f62 656c6973 6b036e65 7400c019 00010001 000000c5 0004d0f5 d462c053 00010001 00004107 0004d0f5 d41dc070 00010001 00004107 0004d0f5 d41ec082 00010001 00004109 00044051 6774c09a 00010001 00004109 00044761 e072. +0.000378 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000074 select max=7 rfds=[6] wfds=[] efds=[] to=1.992972 select=1 rfds=[6] wfds=[] efds=[] +0.000229 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218180 00010001 00070008 045f7369 70045f75 64700476 6f697003 6e657403 63616d02 61630275 6b000021 0001c00c 00210001 00015129 001e000a 000113c4 03736970 04766f69 70036e65 74036361 6d026163 02756b00 c01f0002 00010001 5129000a 03633031 03637369 c01fc01f 00020001 00015129 0009036e 73320269 63c023c0 1f000200 01000151 29000a04 646e7330 02636cc0 1fc01f00 02000100 01512900 0b04646e 73300365 6e67c01f c01f0002 00010001 51290007 04646e73 31c094c0 1f000200 01000151 29000f05 62697473 79036d69 74036564 7500c01f 00020001 00015129 000f0863 68696d61 65726103 637378c0 1f037369 70c01600 01000100 01512900 04836f08 aec06400 01000100 01512900 04836f0c 14c07a00 01000100 00fd0f00 049bc605 03c08f00 01000100 00540900 0480e800 13c0a500 01000100 01512900 0481a908 08c0bc00 01000100 00540900 0480e800 12c0cf00 01000100 00024b00 04124800 03c0ea00 01000100 01512900 04836f08 2a. +0.000486 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000135 select max=7 rfds=[6] wfds=[] efds=[] to=1.997672 select=1 rfds=[6] wfds=[] efds=[] +0.003660 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238583 00010000 00010000 086e7864 6f6d6169 6e0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c01500 06000100 01518000 27036e73 30c0150a 686f7374 6d617374 6572c015 00000075 00001c20 00000e10 00093a80 00015180. +0.000177 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000073 close fd=6 close=OK +0.006908 adns-1.5.0~rc1/regress/case-search.out0000664000175000017500000000116112421042027015722 0ustar ianianadns debug: using nameserver 172.18.45.6 news flags 5 type 1 A(-) submitted chiark flags 5 type 1 A(-) submitted news flags 1 type 1 A(-) submitted chiark flags 1 type 1 A(-) submitted news flags 5 type A(-): OK; nrrs=1; cname=davenant.relativity.greenend.org.uk; owner=news.davenant.greenend.org.uk; ttl=86400 172.18.45.6 chiark flags 5 type A(-): OK; nrrs=1; cname=$; owner=chiark.greenend.org.uk; ttl=86400 195.224.76.132 news flags 1 type A(-): OK; nrrs=1; cname=davenant.relativity.greenend.org.uk; owner=$; ttl=86400 172.18.45.6 chiark flags 1 type A(-): OK; nrrs=1; cname=$; owner=$; ttl=86400 195.224.76.132 rc=0 adns-1.5.0~rc1/regress/case-searchabs.out0000664000175000017500000000032012421042027016404 0ustar ianianadns debug: using nameserver 172.18.45.6 news.davenant flags 1 type 1 A(-) submitted news.davenant flags 1 type A(-): OK; nrrs=1; cname=davenant.relativity.greenend.org.uk; owner=$; ttl=584 172.18.45.6 rc=0 adns-1.5.0~rc1/regress/case-unknown-flags-type.sys0000664000175000017500000000046712423157063020255 0ustar ianian./adnstest default -0x4000 :0x70000000|1 0x40080000/chiark.greenend.org.uk start 1414182770.758670 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000142 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000080 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000060 close fd=6 close=OK +0.000170 adns-1.5.0~rc1/regress/case-1stservbroken.sys0000664000175000017500000001726012422540543017312 0ustar ianianadnstest 1stservbroken :0x0|12 trunc.test.iwj.relativity.greenend.org.uk start 940102940.701451 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000612 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000605 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000573 sendto fd=4 addr=172.18.45.2:53 311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001. sendto=59 +0.006374 select max=5 rfds=[4] wfds=[] efds=[] to=1.993626 select=1 rfds=[4] wfds=[] efds=[] +0.001402 recvfrom fd=4 buflen=512 recvfrom=ECONNREFUSED +0.000666 select max=5 rfds=[4] wfds=[] efds=[] to=1.991558 select=0 rfds=[] wfds=[] efds=[] +2.-02914 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001. sendto=59 +0.002262 select max=5 rfds=[4] wfds=[] efds=[] to=1.997738 select=1 rfds=[4] wfds=[] efds=[] +0.000973 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8380 00010008 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00 01000000 3c004704 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e01 30047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0131 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0132 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0133 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0134 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0135 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0136 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0137 c069. +0.004340 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.005126 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000742 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000604 connect fd=5 addr=172.18.45.2:53 connect=EINPROGRESS +0.000797 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000829 select max=6 rfds=[4] wfds=[5] efds=[] to=13.987562 select=1 rfds=[] wfds=[5] efds=[] +0.001172 read fd=5 buflen=1 read=OK . +0.001161 write fd=5 003b311f 01000001 00000000 00000574 72756e63 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000c00 01. write=61 +0.003598 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.981631 select=1 rfds=[5] wfds=[] efds=[] +0.001370 read fd=5 buflen=2 read=EPIPE +0.001699 close fd=5 close=OK +0.000687 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.004865 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000611 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000574 connect fd=5 addr=172.18.45.6:53 connect=EINPROGRESS +0.001082 select max=6 rfds=[4] wfds=[5] efds=[] to=13.992868 select=1 rfds=[] wfds=[5] efds=[] +0.001011 read fd=5 buflen=1 read=EAGAIN +0.000595 write fd=5 003b311f 01000001 00000000 00000574 72756e63 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000c00 01. write=61 +0.005087 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.964049 select=1 rfds=[5] wfds=[] efds=[] +0.001295 read fd=5 buflen=2 read=OK 0638. +0.000649 read fd=5 buflen=1592 read=OK 311f8580 0001001e 00010001 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00 01000000 3c004704 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e01 30047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0131 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0132 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0133 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0134 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0135 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0136 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0137 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0138 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0139 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0231 30c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3131c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023132c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023133 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0231 34c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3135c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023136c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023137 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0231 38c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3139c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023230c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023231 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0232 32c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3233c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023234c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023235 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0232 36c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3237c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023238c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023239 c069c069 00020001 0000003c 0006036e 7330c072 036e7330 c0720001 00010001 51800004 ac122d06. +0.009426 read fd=5 buflen=1594 read=EAGAIN +0.033394 close fd=4 close=OK +0.054384 close fd=5 close=OK +0.000977 adns-1.5.0~rc1/regress/case-manyptrwrongrem.err0000664000175000017500000000000012421042027017700 0ustar ianianadns-1.5.0~rc1/regress/hredirect.h.m40000664000175000017500000000260512421042027015460 0ustar ianianm4_dnl hredirect.h.m4 m4_dnl (part of complex test harness, not of the library) m4_dnl - redefinitions of system calls m4_dnl This file is part of adns, which is m4_dnl Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson m4_dnl Copyright (C) 2014 Mark Wooding m4_dnl Copyright (C) 1999-2000,2003,2006 Tony Finch m4_dnl Copyright (C) 1991 Massachusetts Institute of Technology m4_dnl (See the file INSTALL for full details.) m4_dnl m4_dnl This program is free software; you can redistribute it and/or modify m4_dnl it under the terms of the GNU General Public License as published by m4_dnl the Free Software Foundation; either version 3, or (at your option) m4_dnl any later version. m4_dnl m4_dnl This program is distributed in the hope that it will be useful, m4_dnl but WITHOUT ANY WARRANTY; without even the implied warranty of m4_dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the m4_dnl GNU General Public License for more details. m4_dnl m4_dnl You should have received a copy of the GNU General Public License m4_dnl along with this program; if not, write to the Free Software Foundation. m4_include(hmacros.i4) #ifndef HREDIRECT_H_INCLUDED #define HREDIRECT_H_INCLUDED #include "hsyscalls.h" hm_create_nothing m4_define(`hm_syscall', `#undef $1 #define $1 H$1') m4_define(`hm_specsyscall',`#undef $2 #define $2 H$2') m4_include(`hsyscalls.i4') #endif adns-1.5.0~rc1/regress/case-sillyrp.err0000664000175000017500000000000012421042027016123 0ustar ianianadns-1.5.0~rc1/regress/case-srvqudom.out0000664000175000017500000000000512421042027016331 0ustar ianianrc=6 adns-1.5.0~rc1/regress/case-trunc.sys0000664000175000017500000000206212422540543015627 0ustar ianianadnstest default :0x0|1 trunc.test.iwj.relativity.greenend.org.uk start 912888921.274801 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000207 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000321 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000443 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=59 +0.000682 select max=5 rfds=[4] wfds=[] efds=[] to=1.999318 select=1 rfds=[4] wfds=[] efds=[] +0.006406 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010000 00010000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 01000104 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 00060001 0000003c 0027036e 7330c044 0a686f73 746d6173 746572c0 44000000 0e00000e 10000000 780064c8 00000000 3c. +0.000839 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000141 close fd=4 close=OK +0.000157 adns-1.5.0~rc1/regress/case-manyptrwrong.sys0000664000175000017500000015361512422510662017255 0ustar ianianadnstest ncipher -0x400 254.0.99.203.in-addr.arpa start 933269010.293417 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000166 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000063 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000049 sendto fd=4 addr=195.224.55.129:53 311f0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 010001. sendto=43 +0.000861 sendto fd=4 addr=195.224.55.129:53 31200100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 020001. sendto=43 +0.000518 sendto fd=4 addr=195.224.55.129:53 31210100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 050001. sendto=43 +0.000511 sendto fd=4 addr=195.224.55.129:53 31220100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 060001. sendto=43 +0.000533 sendto fd=4 addr=195.224.55.129:53 31230100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000573 sendto fd=4 addr=195.224.55.129:53 31240100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0d0001. sendto=43 +0.000523 sendto fd=4 addr=195.224.55.129:53 31250100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.000518 sendto fd=4 addr=195.224.55.129:53 31260100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 100001. sendto=43 +0.000544 sendto fd=4 addr=195.224.55.129:53 31270100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 110001. sendto=43 +0.000509 sendto fd=4 addr=195.224.55.129:53 31290100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 010001. sendto=43 +0.000543 sendto fd=4 addr=195.224.55.129:53 312a0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 020001. sendto=43 +0.000528 sendto fd=4 addr=195.224.55.129:53 312b0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000576 sendto fd=4 addr=195.224.55.129:53 312c0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f0001. sendto=43 +0.000515 sendto fd=4 addr=195.224.55.129:53 312d0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 060001. sendto=43 +0.000635 sendto fd=4 addr=195.224.55.129:53 312e0100 00010000 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 110001. sendto=43 +0.000525 select max=5 rfds=[4] wfds=[] efds=[] to=1.991588 select=1 rfds=[4] wfds=[] efds=[] +0.001474 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31238380 00010013 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 0100013b 96001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 00013b96 00080574 65747261 c043c00c 000c0001 00013b96 000d046d 61696c05 61676174 65c043c0 0c000c00 0100013b 96000502 6e73c06f c00c000c 00010001 3b960013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 0100013b 96001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 0100013b 96001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 013b9600 0a07626f 75717565 74c043c0 0c000c00 0100013b 9600100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 0100013b 96000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 00013b96 000c046d 61696c04 6e657275 c043c00c 000c0001 00013b96 0002c03a c00c000c 00010001 3b960010 026e730a 73746f72 65776174 6368c043 c00c000c 00010001 3b960002 c0d2c00c 000c0001 00013b96 0005026e 73c056c0 0c000c00 0100013b 96000704 6d61696c c056c00c 000c0001 00013b96 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 00013b96 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 013b9600 06036263 63c043. +0.001498 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.000954 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000053 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000047 connect fd=5 addr=195.224.55.129:53 connect=EINPROGRESS +0.000195 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000071 select max=6 rfds=[4] wfds=[5] efds=[] to=1.987296 select=1 rfds=[] wfds=[5] efds=[] +0.000949 read fd=5 buflen=1 read=EAGAIN +0.000147 write fd=5 002b3123 01000001 00000000 00000332 35340130 02393903 32303307 696e2d61 64647204 61727061 00000c00 01. write=45 +0.000532 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.985668 select=1 rfds=[5] wfds=[] efds=[] +0.011715 read fd=5 buflen=2 read=OK 097f. +0.000186 read fd=5 buflen=2431 read=OK 31238180 0001005e 00020002 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 0100013b 96001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 00013b96 00080574 65747261 c043c00c 000c0001 00013b96 000d046d 61696c05 61676174 65c043c0 0c000c00 0100013b 96000502 6e73c06f c00c000c 00010001 3b960013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 0100013b 96001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 0100013b 96001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 013b9600 0a07626f 75717565 74c043c0 0c000c00 0100013b 9600100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 0100013b 96000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 00013b96 000c046d 61696c04 6e657275 c043c00c 000c0001 00013b96 0002c03a c00c000c 00010001 3b960010 026e730a 73746f72 65776174 6368c043 c00c000c 00010001 3b960002 c0d2c00c 000c0001 00013b96 0005026e 73c056c0 0c000c00 0100013b 96000704 6d61696c c056c00c 000c0001 00013b96 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 00013b96 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 013b9600 06036263 63c043c0 0c000c00 0100013b 96000b08 73656375 72697479 c128c00c 000c0001 00013b96 00100d62 7572676c 6172616c 61726d73 c043c00c 000c0001 00013b96 000b026e 73057361 666573c0 43c00c00 0c000100 013b9600 05026e73 c1f7c00c 000c0001 00013b96 00131063 6f757065 72636f6e 73756c74 696e67c0 43c00c00 0c000100 013b9600 110e7365 63757269 74796775 61726473 c043c00c 000c0001 00013b96 000c026e 73066775 61726473 c043c00c 000c0001 00013b96 00070461 736973c1 28c00c00 0c000100 013b9600 02c13fc0 0c000c00 0100013b 960002c0 b6c00c00 0c000100 013b9600 08056d61 676963c0 43c00c00 0c000100 013b9600 07046d61 696cc1e5 c00c000c 00010001 3b960005 026e73c1 03c00c00 0c000100 013b9600 02c122c0 0c000c00 0100013b 96000502 6e73c0ed c00c000c 00010001 3b960007 046d6169 6cc22dc0 0c000c00 0100013b 96000502 6e73c1e5 c00c000c 00010001 3b960005 026e73c2 0ec00c00 0c000100 013b9600 05026e73 c271c00c 000c0001 00013b96 00100d63 6f766572 7463616d 65726173 c043c00c 000c0001 00013b96 0005026e 73c13fc0 0c000c00 0100013b 96001302 6e730d63 6f766572 7463616d 65726173 c043c00c 000c0001 00013b96 000b0862 6f757175 657473c0 43c00c00 0c000100 013b9600 0d0a636f 6e63656e 74726963 c043c00c 000c0001 00013b96 0005026e 73c094c0 0c000c00 0100013b 96000704 6d61696c c252c00c 000c0001 00013b96 00110e72 65746169 6c736563 75726974 79c043c0 0c000c00 0100013b 96001002 6e730a63 6f6e6365 6e747269 63c043c0 0c000c00 0100013b 96000d04 6d61696c 056d6167 6963c043 c00c000c 00010001 3b96000c 096e7a61 6e676c69 6e67c043 c00c000c 00010001 3b960005 026e73c2 52c00c00 0c000100 013b9600 0f026e73 096e7a61 6e676c69 6e67c043 c00c000c 00010001 3b960007 046d6169 6cc163c0 0c000c00 0100013b 96000805 73776966 74c043c0 0c000c00 0100013b 96001104 6d61696c 0973656c 65637469 7665c043 c00c000c 00010001 3b96000f 026e7309 666f7265 66726f6e 74c043c0 0c000c00 0100013b 96001104 6d61696c 096e7a61 6e676c69 6e67c043 c00c000c 00010001 3b960009 06677561 726473c0 43c00c00 0c000100 013b9600 11046d61 696c096e 7a646573 69676e73 c043c00c 000c0001 00013b96 0002c163 c00c000c 00010001 3b960018 026e7312 73656375 72697479 6d616e61 67656d65 6e74c043 c00c000c 00010001 3b960012 046d6169 6c0a776f 6f6c776f 72746873 c043c00c 000c0001 00013b96 0012046d 61696c0a 636f6e63 656e. +0.003706 read fd=5 buflen=973 read=EAGAIN +0.000190 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.969871 select=1 rfds=[4] wfds=[] efds=[] +0.000115 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 312b8380 00010013 00000000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0c0001c0 0c000c00 0100013b 96001302 6e730873 65637572 69747902 636f026e 7a00c00c 000c0001 00013b96 00080574 65747261 c043c00c 000c0001 00013b96 000d046d 61696c05 61676174 65c043c0 0c000c00 0100013b 96000502 6e73c06f c00c000c 00010001 3b960013 10736563 75726974 79747261 696e696e 67c043c0 0c000c00 0100013b 96001002 6e730a67 69667462 61736b65 74c043c0 0c000c00 0100013b 96001202 6e730873 65637572 69747903 67656ec0 46c00c00 0c000100 013b9600 0a07626f 75717565 74c043c0 0c000c00 0100013b 9600100d 696e7665 73746967 6174696f 6ec043c0 0c000c00 0100013b 96000f02 6e73056e 7a697069 036f7267 c046c00c 000c0001 00013b96 000c046d 61696c04 6e657275 c043c00c 000c0001 00013b96 0002c03a c00c000c 00010001 3b960010 026e730a 73746f72 65776174 6368c043 c00c000c 00010001 3b960002 c0d2c00c 000c0001 00013b96 0005026e 73c056c0 0c000c00 0100013b 96000704 6d61696c c056c00c 000c0001 00013b96 0010026e 730a7365 63757269 63617264 c043c00c 000c0001 00013b96 000f026e 7309756e 64657268 6f7572c0 43c00c00 0c000100 013b9600 06036263 63c043. +0.001180 write fd=5 002b312b 01000001 00000000 00000332 35340130 02393903 32303307 696e2d61 64647204 61727061 00000c00 01. write=45 +0.000444 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000085 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.968047 select=1 rfds=[5] wfds=[] efds=[] +0.000311 read fd=5 buflen=973 read=OK 74726963 c043c00c 000c0001 00013b96 000c0973 656c6563 74697665 c043c00c 000c0001 00013b96 00181573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 00013b96 000b026e 73057377 696674c0 43c00c00 0c000100 013b9600 0d046d61 696c0573 77696674 c043c00c 000c0001 00013b96 0013026e 73097365 63757265 6e657403 6e6574c0 46c00c00 0c000100 013b9600 17147072 69766174 65696e76 65737469 67617469 6f6ec043 c00c000c 00010001 3b96001a 026e7314 70726976 61746569 6e766573 74696761 74696f6e c043c00c 000c0001 00013b96 00090665 74726164 65c043c0 0c000c00 0100013b 96001b02 6e731573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 00013b96 000e046d 61696c06 616e7365 7474c043 c00c000c 00010001 3b96000e 03667470 07776172 72656e74 c043c00c 000c0001 00013b96 0014026e 730e7265 7461696c 73656375 72697479 c043c00c 000c0001 00013b96 001a046d 61696c12 73656375 72697479 6d616e61 67656d65 6e74c043 c00c000c 00010001 3b96000b 026e7305 6d616769 63c043c0 0c000c00 0100013b 96001104 6d61696c 09666f72 6566726f 6e74c043 c00c000c 00010001 3b960007 046d6169 6cc1b1c0 0c000c00 0100013b 960002c1 b1c00c00 0c000100 013b9600 0f026e73 096e7a64 65736967 6e73c043 c00c000c 00010001 3b960002 c22dc00c 000c0001 00013b96 000f026e 73097365 6c656374 697665c0 43c00c00 0c000100 013b9600 0c09666f 72656672 6f6e74c0 43c00c00 0c000100 013b9600 15127365 63757269 74796d61 6e616765 6d656e74 c043c00c 000c0001 00013b96 0002c1cd c00c000c 00010001 3b960010 09736563 7572656e 6574036e 6574c046 c00c000c 00010001 3b96001d 046d6169 6c157370 65636961 6c696e76 65737469 67617469 6f6e73c0 43c00c00 0c000100 013b9600 0c096e7a 64657369 676e73c0 43c00c00 0c000100 013b9600 0c026e73 06657472 616465c0 43c00c00 0c000100 013b9600 07046d61 696cc122 c00c000c 00010001 3b960007 046d6169 6cc1cdc0 0c000c00 0100013b 96000a02 6e730461 736973c1 28c00c00 0c000100 013b9600 0e026e73 08626f75 71756574 73c043c0 0c000c00 0100013b 960002c0 6f013002 39390332 30330749 4e2d4144 44520441 52504100 00020001 00053014 0002c037 01300239 39033230 3307494e 2d414444 52044152 50410000 02000100 05301400 11036e73 31077761 696b6174 6f026163 c046c037 00010001 00013c19 0004cb63 00fe036e 73310777 61696b61 746f0261 63c04600 01000100 013d0200 048cc880 0d. +0.002240 read fd=5 buflen=2433 read=EAGAIN +0.012290 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.953206 select=1 rfds=[5] wfds=[] efds=[] +0.014898 read fd=5 buflen=2433 read=OK 097f312b 81800001 005e0002 00020332 35340130 02393903 32303307 696e2d61 64647204 61727061 00000c00 01c00c00 0c000100 013b9600 13026e73 08736563 75726974 7902636f 026e7a00 c00c000c 00010001 3b960008 05746574 7261c043 c00c000c 00010001 3b96000d 046d6169 6c056167 617465c0 43c00c00 0c000100 013b9600 05026e73 c06fc00c 000c0001 00013b96 00131073 65637572 69747974 7261696e 696e67c0 43c00c00 0c000100 013b9600 10026e73 0a676966 74626173 6b6574c0 43c00c00 0c000100 013b9600 12026e73 08736563 75726974 79036765 6ec046c0 0c000c00 0100013b 96000a07 626f7571 756574c0 43c00c00 0c000100 013b9600 100d696e 76657374 69676174 696f6ec0 43c00c00 0c000100 013b9600 0f026e73 056e7a69 7069036f 7267c046 c00c000c 00010001 3b96000c 046d6169 6c046e65 7275c043 c00c000c 00010001 3b960002 c03ac00c 000c0001 00013b96 0010026e 730a7374 6f726577 61746368 c043c00c 000c0001 00013b96 0002c0d2 c00c000c 00010001 3b960005 026e73c0 56c00c00 0c000100 013b9600 07046d61 696cc056 c00c000c 00010001 3b960010 026e730a 73656375 72696361 7264c043 c00c000c 00010001 3b96000f 026e7309 756e6465 72686f75 72c043c0 0c000c00 0100013b 96000603 626363c0 43c00c00 0c000100 013b9600 0b087365 63757269 7479c128 c00c000c 00010001 3b960010 0d627572 676c6172 616c6172 6d73c043 c00c000c 00010001 3b96000b 026e7305 73616665 73c043c0 0c000c00 0100013b 96000502 6e73c1f7 c00c000c 00010001 3b960013 10636f75 70657263 6f6e7375 6c74696e 67c043c0 0c000c00 0100013b 9600110e 73656375 72697479 67756172 6473c043 c00c000c 00010001 3b96000c 026e7306 67756172 6473c043 c00c000c 00010001 3b960007 04617369 73c128c0 0c000c00 0100013b 960002c1 3fc00c00 0c000100 013b9600 02c0b6c0 0c000c00 0100013b 96000805 6d616769 63c043c0 0c000c00 0100013b 96000704 6d61696c c1e5c00c 000c0001 00013b96 0005026e 73c103c0 0c000c00 0100013b 960002c1 22c00c00 0c000100 013b9600 05026e73 c0edc00c 000c0001 00013b96 0007046d 61696cc2 2dc00c00 0c000100 013b9600 05026e73 c1e5c00c 000c0001 00013b96 0005026e 73c20ec0 0c000c00 0100013b 96000502 6e73c271 c00c000c 00010001 3b960010 0d636f76 65727463 616d6572 6173c043 c00c000c 00010001 3b960005 026e73c1 3fc00c00 0c000100 013b9600 13026e73 0d636f76 65727463 616d6572 6173c043 c00c000c 00010001 3b96000b 08626f75 71756574 73c043c0 0c000c00 0100013b 96000d0a 636f6e63 656e7472 6963c043 c00c000c 00010001 3b960005 026e73c0 94c00c00 0c000100 013b9600 07046d61 696cc252 c00c000c 00010001 3b960011 0e726574 61696c73 65637572 697479c0 43c00c00 0c000100 013b9600 10026e73 0a636f6e 63656e74 726963c0 43c00c00 0c000100 013b9600 0d046d61 696c056d 61676963 c043c00c 000c0001 00013b96 000c096e 7a616e67 6c696e67 c043c00c 000c0001 00013b96 0005026e 73c252c0 0c000c00 0100013b 96000f02 6e73096e 7a616e67 6c696e67 c043c00c 000c0001 00013b96 0007046d 61696cc1 63c00c00 0c000100 013b9600 08057377 696674c0 43c00c00 0c000100 013b9600 11046d61 696c0973 656c6563 74697665 c043c00c 000c0001 00013b96 000f026e 7309666f 72656672 6f6e74c0 43c00c00 0c000100 013b9600 11046d61 696c096e 7a616e67 6c696e67 c043c00c 000c0001 00013b96 00090667 75617264 73c043c0 0c000c00 0100013b 96001104 6d61696c 096e7a64 65736967 6e73c043 c00c000c 00010001 3b960002 c163c00c 000c0001 00013b96 0018026e 73127365 63757269 74796d61 6e616765 6d656e74 c043c00c 000c0001 00013b96 0012046d 61696c0a 776f6f6c 776f7274 6873c043 c00c000c 00010001 3b960012 046d6169 6c0a636f 6e63656e. +0.003337 read fd=5 buflen=973 read=EAGAIN +0.000189 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.934782 select=1 rfds=[5] wfds=[] efds=[] +0.102926 read fd=5 buflen=973 read=OK 74726963 c043c00c 000c0001 00013b96 000c0973 656c6563 74697665 c043c00c 000c0001 00013b96 00181573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 00013b96 000b026e 73057377 696674c0 43c00c00 0c000100 013b9600 0d046d61 696c0573 77696674 c043c00c 000c0001 00013b96 0013026e 73097365 63757265 6e657403 6e6574c0 46c00c00 0c000100 013b9600 17147072 69766174 65696e76 65737469 67617469 6f6ec043 c00c000c 00010001 3b96001a 026e7314 70726976 61746569 6e766573 74696761 74696f6e c043c00c 000c0001 00013b96 00090665 74726164 65c043c0 0c000c00 0100013b 96001b02 6e731573 70656369 616c696e 76657374 69676174 696f6e73 c043c00c 000c0001 00013b96 000e046d 61696c06 616e7365 7474c043 c00c000c 00010001 3b96000e 03667470 07776172 72656e74 c043c00c 000c0001 00013b96 0014026e 730e7265 7461696c 73656375 72697479 c043c00c 000c0001 00013b96 001a046d 61696c12 73656375 72697479 6d616e61 67656d65 6e74c043 c00c000c 00010001 3b96000b 026e7305 6d616769 63c043c0 0c000c00 0100013b 96001104 6d61696c 09666f72 6566726f 6e74c043 c00c000c 00010001 3b960007 046d6169 6cc1b1c0 0c000c00 0100013b 960002c1 b1c00c00 0c000100 013b9600 0f026e73 096e7a64 65736967 6e73c043 c00c000c 00010001 3b960002 c22dc00c 000c0001 00013b96 000f026e 73097365 6c656374 697665c0 43c00c00 0c000100 013b9600 0c09666f 72656672 6f6e74c0 43c00c00 0c000100 013b9600 15127365 63757269 74796d61 6e616765 6d656e74 c043c00c 000c0001 00013b96 0002c1cd c00c000c 00010001 3b960010 09736563 7572656e 6574036e 6574c046 c00c000c 00010001 3b96001d 046d6169 6c157370 65636961 6c696e76 65737469 67617469 6f6e73c0 43c00c00 0c000100 013b9600 0c096e7a 64657369 676e73c0 43c00c00 0c000100 013b9600 0c026e73 06657472 616465c0 43c00c00 0c000100 013b9600 07046d61 696cc122 c00c000c 00010001 3b960007 046d6169 6cc1cdc0 0c000c00 0100013b 96000a02 6e730461 736973c1 28c00c00 0c000100 013b9600 0e026e73 08626f75 71756574 73c043c0 0c000c00 0100013b 960002c0 6f013002 39390332 30330749 4e2d4144 44520441 52504100 00020001 00053014 0002c037 01300239 39033230 3307494e 2d414444 52044152 50410000 02000100 05301400 11036e73 31077761 696b6174 6f026163 c046c037 00010001 00013c19 0004cb63 00fe036e 73310777 61696b61 746f0261 63c04600 01000100 013d0200 048cc880 0d. +0.002246 sendto fd=4 addr=195.224.55.129:53 312f0100 00010000 00000000 026e7308 73656375 72697479 02636f02 6e7a0000 010001. sendto=35 +0.001645 sendto fd=4 addr=195.224.55.129:53 31300100 00010000 00000000 05746574 72610263 6f026e7a 00000100 01. sendto=29 +0.000578 sendto fd=4 addr=195.224.55.129:53 31310100 00010000 00000000 046d6169 6c056167 61746502 636f026e 7a000001 0001. sendto=34 +0.000605 sendto fd=4 addr=195.224.55.129:53 31320100 00010000 00000000 026e7305 61676174 6502636f 026e7a00 00010001. sendto=32 +0.000624 sendto fd=4 addr=195.224.55.129:53 31330100 00010000 00000000 10736563 75726974 79747261 696e696e 6702636f 026e7a00 00010001. sendto=40 +0.000624 sendto fd=4 addr=195.224.55.129:53 31340100 00010000 00000000 026e730a 67696674 6261736b 65740263 6f026e7a 00000100 01. sendto=37 +0.000647 sendto fd=4 addr=195.224.55.129:53 31350100 00010000 00000000 026e7308 73656375 72697479 0367656e 026e7a00 00010001. sendto=36 +0.000624 sendto fd=4 addr=195.224.55.129:53 31360100 00010000 00000000 07626f75 71756574 02636f02 6e7a0000 010001. sendto=31 +0.000606 sendto fd=4 addr=195.224.55.129:53 31370100 00010000 00000000 0d696e76 65737469 67617469 6f6e0263 6f026e7a 00000100 01. sendto=37 +0.000591 sendto fd=4 addr=195.224.55.129:53 31380100 00010000 00000000 026e7305 6e7a6970 69036f72 67026e7a 00000100 01. sendto=33 +0.000617 sendto fd=4 addr=195.224.55.129:53 31390100 00010000 00000000 046d6169 6c046e65 72750263 6f026e7a 00000100 01. sendto=33 +0.000622 sendto fd=4 addr=195.224.55.129:53 313a0100 00010000 00000000 08736563 75726974 7902636f 026e7a00 00010001. sendto=32 +0.000608 sendto fd=4 addr=195.224.55.129:53 313b0100 00010000 00000000 026e730a 73746f72 65776174 63680263 6f026e7a 00000100 01. sendto=37 +0.000655 sendto fd=4 addr=195.224.55.129:53 313c0100 00010000 00000000 08736563 75726974 79036765 6e026e7a 00000100 01. sendto=33 +0.000617 sendto fd=4 addr=195.224.55.129:53 313d0100 00010000 00000000 026e7305 74657472 6102636f 026e7a00 00010001. sendto=32 +0.000622 sendto fd=4 addr=195.224.55.129:53 313e0100 00010000 00000000 046d6169 6c057465 74726102 636f026e 7a000001 0001. sendto=34 +0.000638 sendto fd=4 addr=195.224.55.129:53 313f0100 00010000 00000000 026e730a 73656375 72696361 72640263 6f026e7a 00000100 01. sendto=37 +0.000645 sendto fd=4 addr=195.224.55.129:53 31400100 00010000 00000000 026e7309 756e6465 72686f75 7202636f 026e7a00 00010001. sendto=36 +0.000621 sendto fd=4 addr=195.224.55.129:53 31410100 00010000 00000000 03626363 02636f02 6e7a0000 010001. sendto=27 +0.000634 sendto fd=4 addr=195.224.55.129:53 31420100 00010000 00000000 08736563 75726974 79036f72 67026e7a 00000100 01. sendto=33 +0.000669 sendto fd=4 addr=195.224.55.129:53 31430100 00010000 00000000 0d627572 676c6172 616c6172 6d730263 6f026e7a 00000100 01. sendto=37 +0.000788 sendto fd=4 addr=195.224.55.129:53 31440100 00010000 00000000 026e7305 73616665 7302636f 026e7a00 00010001. sendto=32 +0.000784 sendto fd=4 addr=195.224.55.129:53 31450100 00010000 00000000 026e7308 73656375 72697479 036f7267 026e7a00 00010001. sendto=36 +0.000824 sendto fd=4 addr=195.224.55.129:53 31460100 00010000 00000000 10636f75 70657263 6f6e7375 6c74696e 6702636f 026e7a00 00010001. sendto=40 +0.000796 sendto fd=4 addr=195.224.55.129:53 31470100 00010000 00000000 0e736563 75726974 79677561 72647302 636f026e 7a000001 0001. sendto=38 +0.000849 sendto fd=4 addr=195.224.55.129:53 31480100 00010000 00000000 026e7306 67756172 64730263 6f026e7a 00000100 01. sendto=33 +0.000819 sendto fd=4 addr=195.224.55.129:53 31490100 00010000 00000000 04617369 73036f72 67026e7a 00000100 01. sendto=29 +0.000730 sendto fd=4 addr=195.224.55.129:53 314a0100 00010000 00000000 046e6572 7502636f 026e7a00 00010001. sendto=28 +0.000761 sendto fd=4 addr=195.224.55.129:53 314b0100 00010000 00000000 0a676966 74626173 6b657402 636f026e 7a000001 0001. sendto=34 +0.000781 sendto fd=4 addr=195.224.55.129:53 314c0100 00010000 00000000 056d6167 69630263 6f026e7a 00000100 01. sendto=29 +0.000760 sendto fd=4 addr=195.224.55.129:53 314d0100 00010000 00000000 046d6169 6c036263 6302636f 026e7a00 00010001. sendto=32 +0.000770 sendto fd=4 addr=195.224.55.129:53 314e0100 00010000 00000000 026e730d 696e7665 73746967 6174696f 6e02636f 026e7a00 00010001. sendto=40 +0.000825 sendto fd=4 addr=195.224.55.129:53 314f0100 00010000 00000000 056e7a69 7069036f 7267026e 7a000001 0001. sendto=30 +0.000781 sendto fd=4 addr=195.224.55.129:53 31500100 00010000 00000000 026e7307 626f7571 75657402 636f026e 7a000001 0001. sendto=34 +0.000816 sendto fd=4 addr=195.224.55.129:53 31510100 00010000 00000000 046d6169 6c057361 66657302 636f026e 7a000001 0001. sendto=34 +0.000796 sendto fd=4 addr=195.224.55.129:53 31520100 00010000 00000000 026e7303 62636302 636f026e 7a000001 0001. sendto=30 +0.000785 sendto fd=4 addr=195.224.55.129:53 31530100 00010000 00000000 026e730d 62757267 6c617261 6c61726d 7302636f 026e7a00 00010001. sendto=40 +0.000780 sendto fd=4 addr=195.224.55.129:53 31540100 00010000 00000000 026e730e 73656375 72697479 67756172 64730263 6f026e7a 00000100 01. sendto=41 +0.000840 sendto fd=4 addr=195.224.55.129:53 31550100 00010000 00000000 0d636f76 65727463 616d6572 61730263 6f026e7a 00000100 01. sendto=37 +0.000816 sendto fd=4 addr=195.224.55.129:53 31560100 00010000 00000000 026e7304 6e657275 02636f02 6e7a0000 010001. sendto=31 +0.000778 sendto fd=4 addr=195.224.55.129:53 31570100 00010000 00000000 026e730d 636f7665 72746361 6d657261 7302636f 026e7a00 00010001. sendto=40 +0.000840 sendto fd=4 addr=195.224.55.129:53 31580100 00010000 00000000 08626f75 71756574 7302636f 026e7a00 00010001. sendto=32 +0.000765 sendto fd=4 addr=195.224.55.129:53 31590100 00010000 00000000 0a636f6e 63656e74 72696302 636f026e 7a000001 0001. sendto=34 +0.000829 sendto fd=4 addr=195.224.55.129:53 315a0100 00010000 00000000 026e7310 73656375 72697479 74726169 6e696e67 02636f02 6e7a0000 010001. sendto=43 +0.000815 sendto fd=4 addr=195.224.55.129:53 315b0100 00010000 00000000 046d6169 6c10636f 75706572 636f6e73 756c7469 6e670263 6f026e7a 00000100 01. sendto=45 +0.000857 sendto fd=4 addr=195.224.55.129:53 315c0100 00010000 00000000 0e726574 61696c73 65637572 69747902 636f026e 7a000001 0001. sendto=38 +0.000827 sendto fd=4 addr=195.224.55.129:53 315d0100 00010000 00000000 026e730a 636f6e63 656e7472 69630263 6f026e7a 00000100 01. sendto=37 +0.000807 sendto fd=4 addr=195.224.55.129:53 315e0100 00010000 00000000 046d6169 6c056d61 67696302 636f026e 7a000001 0001. sendto=34 +0.000830 sendto fd=4 addr=195.224.55.129:53 315f0100 00010000 00000000 096e7a61 6e676c69 6e670263 6f026e7a 00000100 01. sendto=33 +0.000809 sendto fd=4 addr=195.224.55.129:53 31600100 00010000 00000000 026e7310 636f7570 6572636f 6e73756c 74696e67 02636f02 6e7a0000 010001. sendto=43 +0.000864 sendto fd=4 addr=195.224.55.129:53 31610100 00010000 00000000 026e7309 6e7a616e 676c696e 6702636f 026e7a00 00010001. sendto=36 +0.000806 sendto fd=4 addr=195.224.55.129:53 31620100 00010000 00000000 046d6169 6c0a7374 6f726577 61746368 02636f02 6e7a0000 010001. sendto=39 +0.001021 sendto fd=4 addr=195.224.55.129:53 31630100 00010000 00000000 05737769 66740263 6f026e7a 00000100 01. sendto=29 +0.000910 sendto fd=4 addr=195.224.55.129:53 31640100 00010000 00000000 046d6169 6c097365 6c656374 69766502 636f026e 7a000001 0001. sendto=38 +0.000882 sendto fd=4 addr=195.224.55.129:53 31650100 00010000 00000000 026e7309 666f7265 66726f6e 7402636f 026e7a00 00010001. sendto=36 +0.000888 sendto fd=4 addr=195.224.55.129:53 31660100 00010000 00000000 046d6169 6c096e7a 616e676c 696e6702 636f026e 7a000001 0001. sendto=38 +0.000941 sendto fd=4 addr=195.224.55.129:53 31670100 00010000 00000000 06677561 72647302 636f026e 7a000001 0001. sendto=30 +0.000901 sendto fd=4 addr=195.224.55.129:53 31680100 00010000 00000000 046d6169 6c096e7a 64657369 676e7302 636f026e 7a000001 0001. sendto=38 +0.000952 sendto fd=4 addr=195.224.55.129:53 31690100 00010000 00000000 0a73746f 72657761 74636802 636f026e 7a000001 0001. sendto=34 +0.000922 sendto fd=4 addr=195.224.55.129:53 316a0100 00010000 00000000 026e7312 73656375 72697479 6d616e61 67656d65 6e740263 6f026e7a 00000100 01. sendto=45 +0.000921 sendto fd=4 addr=195.224.55.129:53 316b0100 00010000 00000000 046d6169 6c0a776f 6f6c776f 72746873 02636f02 6e7a0000 010001. sendto=39 +0.000970 sendto fd=4 addr=195.224.55.129:53 316c0100 00010000 00000000 046d6169 6c0a636f 6e63656e 74726963 02636f02 6e7a0000 010001. sendto=39 +0.000911 sendto fd=4 addr=195.224.55.129:53 316d0100 00010000 00000000 0973656c 65637469 76650263 6f026e7a 00000100 01. sendto=33 +0.000909 sendto fd=4 addr=195.224.55.129:53 316e0100 00010000 00000000 15737065 6369616c 696e7665 73746967 6174696f 6e730263 6f026e7a 00000100 01. sendto=45 +0.000952 sendto fd=4 addr=195.224.55.129:53 316f0100 00010000 00000000 026e7305 73776966 7402636f 026e7a00 00010001. sendto=32 +0.000912 sendto fd=4 addr=195.224.55.129:53 31700100 00010000 00000000 046d6169 6c057377 69667402 636f026e 7a000001 0001. sendto=34 +0.000910 sendto fd=4 addr=195.224.55.129:53 31710100 00010000 00000000 026e7309 73656375 72656e65 74036e65 74026e7a 00000100 01. sendto=37 +0.000937 sendto fd=4 addr=195.224.55.129:53 31720100 00010000 00000000 14707269 76617465 696e7665 73746967 6174696f 6e02636f 026e7a00 00010001. sendto=44 +0.000955 sendto fd=4 addr=195.224.55.129:53 31730100 00010000 00000000 026e7314 70726976 61746569 6e766573 74696761 74696f6e 02636f02 6e7a0000 010001. sendto=47 +0.000949 sendto fd=4 addr=195.224.55.129:53 31740100 00010000 00000000 06657472 61646502 636f026e 7a000001 0001. sendto=30 +0.000929 sendto fd=4 addr=195.224.55.129:53 31750100 00010000 00000000 026e7315 73706563 69616c69 6e766573 74696761 74696f6e 7302636f 026e7a00 00010001. sendto=48 +0.000948 sendto fd=4 addr=195.224.55.129:53 31760100 00010000 00000000 046d6169 6c06616e 73657474 02636f02 6e7a0000 010001. sendto=35 +0.000956 sendto fd=4 addr=195.224.55.129:53 31770100 00010000 00000000 03667470 07776172 72656e74 02636f02 6e7a0000 010001. sendto=35 +0.000882 sendto fd=4 addr=195.224.55.129:53 31780100 00010000 00000000 026e730e 72657461 696c7365 63757269 74790263 6f026e7a 00000100 01. sendto=41 +0.001013 sendto fd=4 addr=195.224.55.129:53 31790100 00010000 00000000 046d6169 6c127365 63757269 74796d61 6e616765 6d656e74 02636f02 6e7a0000 010001. sendto=47 +0.000970 sendto fd=4 addr=195.224.55.129:53 317a0100 00010000 00000000 026e7305 6d616769 6302636f 026e7a00 00010001. sendto=32 +0.000945 sendto fd=4 addr=195.224.55.129:53 317b0100 00010000 00000000 046d6169 6c09666f 72656672 6f6e7402 636f026e 7a000001 0001. sendto=38 +0.000971 sendto fd=4 addr=195.224.55.129:53 317c0100 00010000 00000000 046d6169 6c0a7365 63757269 63617264 02636f02 6e7a0000 010001. sendto=39 +0.000947 sendto fd=4 addr=195.224.55.129:53 317d0100 00010000 00000000 0a736563 75726963 61726402 636f026e 7a000001 0001. sendto=34 +0.000933 sendto fd=4 addr=195.224.55.129:53 317e0100 00010000 00000000 026e7309 6e7a6465 7369676e 7302636f 026e7a00 00010001. sendto=36 +0.000952 sendto fd=4 addr=195.224.55.129:53 317f0100 00010000 00000000 05736166 65730263 6f026e7a 00000100 01. sendto=29 +0.000954 sendto fd=4 addr=195.224.55.129:53 31800100 00010000 00000000 026e7309 73656c65 63746976 6502636f 026e7a00 00010001. sendto=36 +0.000964 sendto fd=4 addr=195.224.55.129:53 31810100 00010000 00000000 09666f72 6566726f 6e740263 6f026e7a 00000100 01. sendto=33 +0.000967 sendto fd=4 addr=195.224.55.129:53 31820100 00010000 00000000 12736563 75726974 796d616e 6167656d 656e7402 636f026e 7a000001 0001. sendto=42 +0.000966 sendto fd=4 addr=195.224.55.129:53 31830100 00010000 00000000 09756e64 6572686f 75720263 6f026e7a 00000100 01. sendto=33 +0.000942 sendto fd=4 addr=195.224.55.129:53 31840100 00010000 00000000 09736563 7572656e 6574036e 6574026e 7a000001 0001. sendto=34 +0.000972 sendto fd=4 addr=195.224.55.129:53 31850100 00010000 00000000 046d6169 6c157370 65636961 6c696e76 65737469 67617469 6f6e7302 636f026e 7a000001 0001. sendto=50 +0.000939 sendto fd=4 addr=195.224.55.129:53 31860100 00010000 00000000 096e7a64 65736967 6e730263 6f026e7a 00000100 01. sendto=33 +0.000978 sendto fd=4 addr=195.224.55.129:53 31870100 00010000 00000000 026e7306 65747261 64650263 6f026e7a 00000100 01. sendto=33 +0.000980 sendto fd=4 addr=195.224.55.129:53 31880100 00010000 00000000 046d6169 6c056e7a 69706903 6f726702 6e7a0000 010001. sendto=35 +0.001012 sendto fd=4 addr=195.224.55.129:53 31890100 00010000 00000000 046d6169 6c09756e 64657268 6f757202 636f026e 7a000001 0001. sendto=38 +0.000973 sendto fd=4 addr=195.224.55.129:53 318a0100 00010000 00000000 026e7304 61736973 036f7267 026e7a00 00010001. sendto=32 +0.000972 sendto fd=4 addr=195.224.55.129:53 318b0100 00010000 00000000 026e7308 626f7571 75657473 02636f02 6e7a0000 010001. sendto=35 +0.001216 sendto fd=4 addr=195.224.55.129:53 318c0100 00010000 00000000 05616761 74650263 6f026e7a 00000100 01. sendto=29 +0.001028 read fd=5 buflen=2433 read=EAGAIN +0.000212 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.749926 select=1 rfds=[4] wfds=[] efds=[] +0.000262 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 312f8180 00010001 00020002 026e7308 73656375 72697479 02636f02 6e7a0000 010001c0 0c000100 0100013c 190004cb 6300fe08 73656375 72697479 02636f02 6e7a0000 02000100 013c1900 02c00cc0 33000200 0100013c 19001103 6e733107 7761696b 61746f02 6163c03f c00c0001 00010001 3c190004 cb6300fe c05b0001 00010001 3d020004 8cc8800d. +0.000482 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31308180 00010001 00020002 05746574 72610263 6f026e7a 00000100 01c00c00 01000100 013c1400 04cb6300 fec00c00 02000100 013c1400 05026e73 c00cc00c 00020001 00013c14 0013036e 73310777 61696b61 746f0261 63026e7a 00c03900 01000100 013c1400 04cb6300 fec04a00 01000100 013d0200 048cc880 0d. +0.001031 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31318180 00010001 00020002 046d6169 6c056167 61746502 636f026e 7a000001 0001c00c 00010001 00013c11 0004cb63 00fe0561 67617465 02636f02 6e7a0000 02000100 013d0100 11036e73 31077761 696b6174 6f026163 c03bc032 00020001 00013d01 0005026e 73c032c0 49000100 0100013d 0200048c c8800dc0 66000100 0100013d 010004cb 6300fe. +0.000920 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31328180 00010001 00020002 026e7305 61676174 6502636f 026e7a00 00010001 c00c0001 00010001 3d010004 cb6300fe 05616761 74650263 6f026e7a 00000200 0100013d 01001103 6e733107 7761696b 61746f02 6163c039 c0300002 00010001 3d010002 c00cc047 00010001 00013d02 00048cc8 800dc00c 00010001 00013d01 0004cb63 00fe. +0.000909 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31338180 00010001 00020002 10736563 75726974 79747261 696e696e 6702636f 026e7a00 00010001 c00c0001 00010001 3c150004 cb6300fe c00c0002 00010001 3c150005 026e73c0 0cc00c00 02000100 013c1500 13036e73 31077761 696b6174 6f026163 026e7a00 c0440001 00010000 6ada0004 cb6300fe c0550001 00010001 3d020004 8cc8800d. +0.000890 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31348180 00010001 00020002 026e730a 67696674 6261736b 65740263 6f026e7a 00000100 01c00c00 01000100 013c1800 04cb6300 fe0a6769 66746261 736b6574 02636f02 6e7a0000 02000100 013c1800 02c00cc0 35000200 0100013c 18001103 6e733107 7761696b 61746f02 6163c043 c00c0001 00010001 3c180004 cb6300fe c05f0001 00010001 3d020004 8cc8800d. +0.000922 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31358180 00010001 00020002 026e7308 73656375 72697479 0367656e 026e7a00 00010001 c00c0001 00010000 5a4d0004 cb6300fe 08736563 75726974 79036765 6e026e7a 00000200 0100013c 11001103 6e733107 7761696b 61746f02 6163c041 c0340002 00010001 3c110002 c00cc04f 00010001 00013d02 00048cc8 800dc00c 00010001 00005a4d 0004cb63 00fe. +0.000900 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31368180 00010001 00020002 07626f75 71756574 02636f02 6e7a0000 010001c0 0c000100 0100013c 150004cb 6300fec0 0c000200 0100013c 15000502 6e73c00c c00c0002 00010001 3c150013 036e7331 07776169 6b61746f 02616302 6e7a00c0 3b000100 01000064 ce0004cb 6300fec0 4c000100 0100013d 0200048c c8800d. +0.000863 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31378180 00010001 00020002 0d696e76 65737469 67617469 6f6e0263 6f026e7a 00000100 01c00c00 01000100 013c1100 04cb6300 fec00c00 02000100 013c1100 05026e73 c00cc00c 00020001 00013c11 0013036e 73310777 61696b61 746f0261 63024e5a 00c04100 01000100 012b3100 04cb6300 fec05200 01000100 013d0200 048cc880 0d. +0.000907 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31388180 00010001 00020002 026e7305 6e7a6970 69036f72 67026e7a 00000100 01c00c00 01000100 013d0100 04cb6300 fe056e7a 69706903 6f726702 6e7a0000 02000100 013d0100 02c00cc0 31000200 0100013d 01001103 6e733107 7761696b 61746f02 6163c03b c00c0001 00010001 3d010004 cb6300fe c0570001 00010001 3d020004 8cc8800d. +0.000880 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31398180 00010001 00020002 046d6169 6c046e65 72750263 6f026e7a 00000100 01c00c00 01000100 013c1100 04cb6300 fe046e65 72750263 6f026e7a 00000200 0100013c 12001103 6e733107 7761696b 61746f02 6163c039 c0310002 00010001 3c120005 026e73c0 31c04700 01000100 013d0200 048cc880 0dc06400 01000100 0064cc00 04cb6300 fe. +0.000898 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 313a8180 00010001 00020002 08736563 75726974 7902636f 026e7a00 00010001 c00c0001 00010001 3c190004 cb6300fe c00c0002 00010001 3c190005 026e73c0 0cc00c00 02000100 013c1900 13036e73 31077761 696b6174 6f026163 024e5a00 c03c0001 00010001 3c190004 cb6300fe c04d0001 00010001 3d020004 8cc8800d. +0.000858 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 313b8583 00010000 00010000 026e730a 73746f72 65776174 63680263 6f026e7a 00000100 0102636f 026e7a00 00060001 0000014b 002c046e 73393907 7761696b 61746f02 6163c028 03736f61 c03b7727 6ec50000 0e100000 07080027 8d000001 5180. +0.000799 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 313c8180 00010001 00020002 08736563 75726974 79036765 6e026e7a 00000100 01c00c00 01000100 013c1100 04cb6300 fec00c00 02000100 013c1100 13036e73 31077761 696b6174 6f026163 026e7a00 c00c0002 00010001 3c110005 026e73c0 0cc03d00 01000100 013d0200 048cc880 0dc05c00 01000100 005a4d00 04cb6300 fe. +0.015730 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 313d8180 00010001 00020002 026e7305 74657472 6102636f 026e7a00 00010001 c00c0001 00010001 3c140004 cb6300fe 05746574 72610263 6f026e7a 00000200 0100013c 140002c0 0cc03000 02000100 013c1400 11036e73 31077761 696b6174 6f026163 c039c00c 00010001 00013c14 0004cb63 00fec055 00010001 00013d02 00048cc8 800d. +0.000552 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 313e8180 00010001 00020002 046d6169 6c057465 74726102 636f026e 7a000001 0001c00c 00010001 00013c12 0004cb63 00fe0574 65747261 02636f02 6e7a0000 02000100 013c1400 05026e73 c032c032 00020001 00013c14 0011036e 73310777 61696b61 746f0261 63c03bc0 49000100 0100013c 140004cb 6300fec0 5a000100 0100013d 0200048c c8800d. +0.000560 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 313f8180 00010001 00020002 026e730a 73656375 72696361 72640263 6f026e7a 00000100 01c00c00 01000100 013d0100 04cb6300 fe0a7365 63757269 63617264 02636f02 6e7a0000 02000100 013d0100 02c00cc0 35000200 0100013d 01001103 6e733107 7761696b 61746f02 6163c043 c00c0001 00010001 3d010004 cb6300fe c05f0001 00010001 3d020004 8cc8800d. +0.000545 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31408180 00010001 00020002 026e7309 756e6465 72686f75 7202636f 026e7a00 00010001 c00c0001 00010001 3d010004 cb6300fe 09756e64 6572686f 75720263 6f026e7a 00000200 0100013d 010002c0 0cc03400 02000100 013d0100 11036e73 31077761 696b6174 6f026163 c041c00c 00010001 00013d01 0004cb63 00fec05d 00010001 00013d02 00048cc8 800d. +0.000542 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31418180 00010001 00020002 03626363 02636f02 6e7a0000 010001c0 0c000100 0100013c 120004cb 6300fec0 0c000200 0100013c 18000502 6e73c00c c00c0002 00010001 3c180013 036e7331 07776169 6b61746f 02616302 6e7a00c0 37000100 0100006a dc0004cb 6300fec0 48000100 0100013d 0200048c c8800d. +0.000518 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31428180 00010001 00020002 08736563 75726974 79036f72 67026e7a 00000100 01c00c00 01000100 013c1200 04cb6300 fec00c00 02000100 013c1200 05026e73 c00cc00c 00020001 00013c12 0013036e 73310777 61696b61 746f0261 63026e7a 00c03d00 01000100 013c1200 04cb6300 fec04e00 01000100 013d0200 048cc880 0d. +0.000512 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31438180 00010001 00020002 0d627572 676c6172 616c6172 6d730263 6f026e7a 00000100 01c00c00 01000100 013c1200 04cb6300 fec00c00 02000100 013c1200 05026e73 c00cc00c 00020001 00013c12 0013036e 73310777 61696b61 746f0261 63026e7a 00c04100 01000100 0064cc00 04cb6300 fec05200 01000100 013d0200 048cc880 0d. +0.000548 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31448583 00010000 00010000 026e7305 73616665 7302636f 026e7a00 00010001 05736166 65730263 6f026e7a 00000600 01000001 4c002e03 6e733104 69687567 036e6574 c0290373 6f610469 687567c0 26772768 a9000151 8000002a 30001275 000002a3 00. +0.000452 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31458180 00010001 00020002 026e7308 73656375 72697479 036f7267 026e7a00 00010001 c00c0001 00010001 3c120004 cb6300fe 08736563 75726974 79036f72 67026e7a 00000200 0100013c 120002c0 0cc03400 02000100 013c1200 11036e73 31077761 696b6174 6f026163 c041c00c 00010001 00013c12 0004cb63 00fec05d 00010001 00013d02 00048cc8 800d. +0.000539 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31468180 00010001 00020002 10636f75 70657263 6f6e7375 6c74696e 6702636f 026e7a00 00010001 c00c0001 00010001 3c120004 cb6300fe c00c0002 00010001 3d010013 036e7331 07776169 6b61746f 02616302 6e7a00c0 0c000200 0100013d 01000502 6e73c00c c0440001 00010001 3d020004 8cc8800d c0630001 00010000 718c0004 cb6300fe. +0.000547 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31478180 00010001 00020002 0e736563 75726974 79677561 72647302 636f026e 7a000001 0001c00c 00010001 00013c12 0004cb63 00fec00c 00020001 00013c12 0005026e 73c00cc0 0c000200 0100013c 12001303 6e733107 7761696b 61746f02 6163026e 7a00c042 00010001 000064cc 0004cb63 00fec053 00010001 00013d02 00048cc8 800d. +0.000649 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31488180 00010001 00020002 026e7306 67756172 64730263 6f026e7a 00000100 01c00c00 01000100 013cfa00 04cb6300 fe066775 61726473 02636f02 6e7a0000 02000100 013cfa00 02c00cc0 31000200 0100013c fa001103 6e733107 7761696b 61746f02 6163c03b c00c0001 00010001 3cfa0004 cb6300fe c0570001 00010001 3d020004 8cc8800d. +0.000551 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31498180 00010001 00020002 04617369 73036f72 67026e7a 00000100 01c00c00 01000100 013c1200 04cb6300 fec00c00 02000100 013c1200 05026e73 c00cc00c 00020001 00013c12 0013036e 73310777 61696b61 746f0261 63026e7a 00c03900 01000100 006ad900 04cb6300 fec04a00 01000100 013d0200 048cc880 0d. +0.000503 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 314a8180 00010001 00020002 046e6572 7502636f 026e7a00 00010001 c00c0001 00010001 3c120004 cb6300fe c00c0002 00010001 3c120013 036e7331 07776169 6b61746f 02616302 6e7a00c0 0c000200 0100013c 12000502 6e73c00c c0380001 00010001 3d020004 8cc8800d c0570001 00010000 64cc0004 cb6300fe. +0.000499 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 314b8180 00010001 00020002 0a676966 74626173 6b657402 636f026e 7a000001 0001c00c 00010001 00013c18 0004cb63 00fec00c 00020001 00013c18 0005026e 73c00cc0 0c000200 0100013c 18001303 6e733107 7761696b 61746f02 6163024e 5a00c03e 00010001 00013c18 0004cb63 00fec04f 00010001 00013d02 00048cc8 800d. +0.000529 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 314c8180 00010001 00020002 056d6167 69630263 6f026e7a 00000100 01c00c00 01000100 013c1c00 04cb6300 fec00c00 02000100 013d0100 05026e73 c00cc00c 00020001 00013d01 0013036e 73310777 61696b61 746f0261 63026e7a 00c03900 01000100 00718c00 04cb6300 fec04a00 01000100 013d0200 048cc880 0d. +0.000503 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 314d8180 00010001 00020002 046d6169 6c036263 6302636f 026e7a00 00010001 c00c0001 00010001 3c180004 cb6300fe 03626363 02636f02 6e7a0000 02000100 013c1800 05026e73 c030c030 00020001 00013c18 0011036e 73310777 61696b61 746f0261 63c037c0 45000100 0100006a dc0004cb 6300fec0 56000100 0100013d 0200048c c8800d. +0.000544 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 314e8180 00010001 00020002 026e730d 696e7665 73746967 6174696f 6e02636f 026e7a00 00010001 c00c0001 00010001 2b310004 cb6300fe 0d696e76 65737469 67617469 6f6e0263 6f026e7a 00000200 0100013c 110002c0 0cc03800 02000100 013c1100 11036e73 31077761 696b6174 6f026163 c049c00c 00010001 00012b31 0004cb63 00fec065 00010001 00013d02 00048cc8 800d. +0.000562 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 314f8180 00010001 00020002 056e7a69 7069036f 7267026e 7a000001 0001c00c 00010001 00013c18 0004cb63 00fec00c 00020001 00013d01 0005026e 73c00cc0 0c000200 0100013d 01001303 6e733107 7761696b 61746f02 6163024e 5a00c03a 00010001 00013d01 0004cb63 00fec04b 00010001 00013d02 00048cc8 800d. +0.000505 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31508180 00010001 00020002 026e7307 626f7571 75657402 636f026e 7a000001 0001c00c 00010001 00005fc3 0004cb63 00fe0762 6f757175 65740263 6f026e7a 00000200 0100013c 150002c0 0cc03200 02000100 013c1500 11036e73 31077761 696b6174 6f026163 c03dc00c 00010001 00005fc3 0004cb63 00fec059 00010001 00013d02 00048cc8 800d. +0.000561 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31518583 00010000 00010000 046d6169 6c057361 66657302 636f026e 7a000001 00010573 61666573 02636f02 6e7a0000 06000100 00014c00 2e036e73 31046968 7567036e 6574c02b 03736f61 04696875 67c02877 2768a900 01518000 002a3000 12750000 02a300. +0.000456 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31528180 00010001 00020002 026e7303 62636302 636f026e 7a000001 0001c00c 00010001 00006584 0004cb63 00fe0362 63630263 6f026e7a 00000200 0100013c 180002c0 0cc02e00 02000100 013c1800 11036e73 31077761 696b6174 6f026163 c035c00c 00010001 00006584 0004cb63 00fec051 00010001 00013d02 00048cc8 800d. +0.000510 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31538180 00010001 00020002 026e730d 62757267 6c617261 6c61726d 7302636f 026e7a00 00010001 c00c0001 00010000 5fc10004 cb6300fe 0d627572 676c6172 616c6172 6d730263 6f026e7a 00000200 0100013c 120002c0 0cc03800 02000100 013c1200 11036e73 31077761 696b6174 6f026163 c049c00c 00010001 00005fc1 0004cb63 00fec065 00010001 00013d02 00048cc8 800d. +0.000695 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31548180 00010001 00020002 026e730e 73656375 72697479 67756172 64730263 6f026e7a 00000100 01c00c00 01000100 005fc100 04cb6300 fe0e7365 63757269 74796775 61726473 02636f02 6e7a0000 02000100 013c1200 02c00cc0 39000200 0100013c 12001103 6e733107 7761696b 61746f02 6163c04b c00c0001 00010000 5fc10004 cb6300fe c0670001 00010001 3d020004 8cc8800d. +0.000563 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 318c8180 00010001 00020002 05616761 74650263 6f026e7a 00000100 01c00c00 01000100 013d0100 04cb6300 fec00c00 02000100 013d0100 13036e73 31077761 696b6174 6f026163 024e5a00 c00c0002 00010001 3d010005 026e73c0 0cc03900 01000100 013d0200 048cc880 0dc05800 01000100 013d0100 04cb6300 fe. +0.000525 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000199 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.709006 select=1 rfds=[4] wfds=[] efds=[] +0.182313 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 311f8580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 01000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000371 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000183 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.527000 select=1 rfds=[4] wfds=[] efds=[] +0.008955 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31208580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 02000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000371 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000153 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.518039 select=1 rfds=[4] wfds=[] efds=[] +0.009375 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31218580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 05000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000369 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000166 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.508640 select=1 rfds=[4] wfds=[] efds=[] +0.019379 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31228580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 06000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000372 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000151 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.489844 select=1 rfds=[4] wfds=[] efds=[] +0.031580 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31248580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0d000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000386 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000181 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.458220 select=1 rfds=[4] wfds=[] efds=[] +0.031691 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31258580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000369 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000150 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.426528 select=1 rfds=[4] wfds=[] efds=[] +0.028650 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31268580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 10000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000370 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000159 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.397893 select=1 rfds=[4] wfds=[] efds=[] +0.029986 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31278580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 11000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000369 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000145 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.367902 select=1 rfds=[4] wfds=[] efds=[] +0.029845 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 31298580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 01000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000384 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000148 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.338068 select=1 rfds=[4] wfds=[] efds=[] +0.033093 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 312a8580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 02000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000368 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000145 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.305566 select=1 rfds=[4] wfds=[] efds=[] +1.-780664 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 312c8580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 0f000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000375 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000147 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.086223 select=1 rfds=[4] wfds=[] efds=[] +0.000393 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 312d8580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 06000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000367 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000152 select max=6 rfds=[4,5] wfds=[] efds=[5] to=1.085946 select=1 rfds=[4] wfds=[] efds=[] +0.000401 recvfrom fd=4 buflen=512 recvfrom=OK addr=195.224.55.129:53 312e8580 00010000 00010000 03323534 01300239 39033230 3307696e 2d616464 72046172 70610000 11000101 30023939 03323033 07696e2d 61646472 04617270 61000006 00010001 5180002e 026e7308 73656375 72697479 02636f02 6e7a0004 726f6f74 c04c7727 714c0000 2a300000 0e100009 3a800001 5180. +0.000367 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000142 close fd=4 close=OK +0.000250 close fd=5 close=OK +0.000095 adns-1.5.0~rc1/regress/case-longdom1.out0000664000175000017500000000125212421042027016176 0ustar ianianadns debug: using nameserver 172.18.45.6 10rndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk. flags 1 type 1 A(-) submitted 10rndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk. flags 1 type A(-): Domain name or component is too long; nrrs=0; cname=$; owner=$; ttl=604800 rc=0 adns-1.5.0~rc1/regress/case-adh-pipe.out0000664000175000017500000000006212421042027016143 0ustar ianianchiark.greenend.org.uk A INET 195.224.76.132 rc=0 adns-1.5.0~rc1/regress/case-datapluscnamewait.out0000664000175000017500000001717112421042027020173 0ustar ianianadns debug: using nameserver 172.18.45.6 170.99.219.194.in-addr.arpa flags 292 type 1 A(-) submitted 170.99.219.194.in-addr.arpa flags 292 type 2 NS(raw) submitted 170.99.219.194.in-addr.arpa flags 292 type 5 CNAME(-) submitted 170.99.219.194.in-addr.arpa flags 292 type 6 SOA(raw) submitted 170.99.219.194.in-addr.arpa flags 292 type 12 PTR(raw) submitted 170.99.219.194.in-addr.arpa flags 292 type 13 HINFO(-) submitted 170.99.219.194.in-addr.arpa flags 292 type 15 MX(raw) submitted 170.99.219.194.in-addr.arpa flags 292 type 16 TXT(-) submitted 170.99.219.194.in-addr.arpa flags 292 type 17 RP(raw) submitted 170.99.219.194.in-addr.arpa flags 292 type 65537 A(addr) submitted 170.99.219.194.in-addr.arpa flags 292 type 65538 NS(+addr) submitted 170.99.219.194.in-addr.arpa flags 292 type 65548 PTR(checked) submitted 170.99.219.194.in-addr.arpa flags 292 type 65551 MX(+addr) submitted 170.99.219.194.in-addr.arpa flags 292 type 131078 SOA(822) submitted 170.99.219.194.in-addr.arpa flags 292 type 131089 RP(822) submitted adns debug: ignoring CNAME (to 170.168.99.219.194.in-addr.arpa) coexisting with RR (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(raw), NS=172.18.45.6) adns debug: ignoring RR with an unexpected owner 170.168.99.219.194.in-addr.arpa (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(raw), NS=172.18.45.6) adns debug: ignoring CNAME (to 170.168.99.219.194.in-addr.arpa) coexisting with RR (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(checked), NS=172.18.45.6) adns debug: ignoring RR with an unexpected owner 170.168.99.219.194.in-addr.arpa (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(checked), NS=172.18.45.6) 170.99.219.194.in-addr.arpa flags 292 type PTR(raw): OK; nrrs=1; cname=$; owner=170.99.219.194.in-addr.arpa; ttl=171763 proxy.scoplife.gr 170.99.219.194.in-addr.arpa flags 292 type PTR(checked): OK; nrrs=1; cname=$; owner=170.99.219.194.in-addr.arpa; ttl=171763 proxy.scoplife.gr 170.99.219.194.in-addr.arpa flags 292 type A(-): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=600 170.99.219.194.in-addr.arpa flags 292 type MX(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type RP(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type A(addr): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=600 170.99.219.194.in-addr.arpa flags 292 type NS(+addr): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type MX(+addr): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 170.99.219.194.in-addr.arpa flags 292 type RP(822): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0 adns debug: reply not found, id 3120, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3122, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3124, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3126, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) 170.99.219.194.in-addr.arpa flags 292 type NS(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=600 170.99.219.194.in-addr.arpa flags 292 type SOA(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=600 170.99.219.194.in-addr.arpa flags 292 type HINFO(-): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=600 170.99.219.194.in-addr.arpa flags 292 type TXT(-): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=600 170.99.219.194.in-addr.arpa flags 292 type SOA(822): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=599 adns debug: reply not found, id 312e, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 312d, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 312c, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 312a, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3129, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3127, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3126, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3125, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3124, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3122, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3120, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 311f, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 312e, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 312d, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 312c, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 312a, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3129, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3127, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3126, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3125, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3124, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3122, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3120, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 311f, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 312c, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 312a, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3129, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3127, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3126, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3125, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3124, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3122, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 3120, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 311f, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) adns debug: reply not found, id 312d, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6) 170.99.219.194.in-addr.arpa flags 292 type CNAME(-): OK; nrrs=1; cname=$; owner=170.99.219.194.in-addr.arpa; ttl=110056 170.168.99.219.194.in-addr.arpa rc=0 adns-1.5.0~rc1/regress/init-noserver.text0000664000175000017500000000011412421042027016522 0ustar ianiannameserver 172.18.45.36 sortlist 127.0.0.1/32 172.18.45.0/28 172.18.45.0/24 adns-1.5.0~rc1/regress/case-cnametocname.sys0000664000175000017500000000262112422540543017127 0ustar ianianadnstest default :0x0|1 intel.ugcs.caltech.edu. start 938369896.279735 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000179 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000054 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000041 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 05696e74 656c0475 67637307 63616c74 65636803 65647500 00010001. sendto=40 +0.001628 select max=5 rfds=[4] wfds=[] efds=[] to=1.998372 select=1 rfds=[4] wfds=[] efds=[] +0.586476 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010003 00050005 05696e74 656c0475 67637307 63616c74 65636803 65647500 00010001 05696e74 656c0475 67637307 63616c74 65636803 65647500 00050001 0007985e 000f0775 67696e74 656c0462 657374c0 2ec04a00 05000100 00000a00 0a076472 6163686d 61c02ec0 65000100 01000798 83000483 d72bacc0 2e000200 01000935 be000b08 70757263 68617365 c02ec02e 00020001 000935be 00070465 6e7679c0 2ec02e00 02000100 0935be00 09036f66 62036e65 7400c02e 00020001 000935be 00090674 7962616c 74c033c0 2e000200 01000935 be000e08 6d657263 7574696f 026e69c0 33c08b00 01000100 0935be00 0483d72b a7c0a200 01000100 0935be00 0483d72b 87c0b500 01000100 001ef800 04c6b4b6 07c0ca00 01000100 0100d700 0483d78b 64c0df00 01000100 0100d700 0483d7fe 63. +0.001423 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000646 close fd=4 close=OK +0.000242 adns-1.5.0~rc1/regress/case-tcpblockwr.sys0000664000175000017500000005644612422510662016664 0ustar ianianadnstest anarres -0x700 2/test.iwj.relativity.greenend.org.uk. 2/test.iwj.relativity.greenend.org.uk. 2/test.iwj.relativity.greenend.org.uk. start 962143438.172669 socket domain=AF_INET type=SOCK_DGRAM socket=5 +0.000433 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000443 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000409 socket domain=AF_INET type=SOCK_STREAM socket=6 +0.001762 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000420 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000408 connect fd=6 addr=172.18.45.2:53 connect=EINPROGRESS +0.000689 select max=7 rfds=[5] wfds=[6] efds=[] to=13.996721 select=1 rfds=[] wfds=[6] efds=[] +0.278976 read fd=6 buflen=1 read=EAGAIN +0.001048 write fd=6 0035311f 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=55 +0.001447 write fd=6 00353120 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 020001. write=55 +0.001424 write fd=6 00353121 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 050001. write=55 +0.001287 write fd=6 00353122 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 060001. write=55 +0.001199 write fd=6 00353123 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001. write=55 +0.001220 write fd=6 00353124 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0d0001. write=55 +0.001189 write fd=6 00353125 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0f0001. write=55 +0.001368 write fd=6 00353126 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 100001. write=55 +0.001220 write fd=6 00353127 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001. write=55 +0.001313 write fd=6 00353129 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=55 +0.001209 write fd=6 0035312a 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 020001. write=55 +0.002384 write fd=6 0035312c 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0f0001. write=55 +0.001214 write fd=6 0035312d 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 060001. write=55 +0.001195 write fd=6 0035312e 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001. write=55 +0.001424 write fd=6 0035312f 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=55 +0.001226 write fd=6 00353130 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 020001. write=55 +0.001214 write fd=6 00353131 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 050001. write=55 +0.001202 write fd=6 00353132 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 060001. write=55 +0.001187 write fd=6 00353133 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001. write=55 +0.001207 write fd=6 00353134 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0d0001. write=55 +0.001192 write fd=6 00353135 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0f0001. write=55 +0.001214 write fd=6 00353136 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 100001. write=55 +0.001386 write fd=6 00353137 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001. write=55 +0.001215 write fd=6 00353139 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=55 +0.001448 write fd=6 0035313a 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 020001. write=55 +0.002403 write fd=6 0035313c 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0f0001. write=55 +0.001231 write fd=6 0035313d 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 060001. write=55 +0.001197 write fd=6 0035313e 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001. write=55 +0.001212 write fd=6 0035313f 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=55 +0.001369 write fd=6 00353140 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 020001. write=55 +0.001212 write fd=6 00353141 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 050001. write=55 +0.001334 write fd=6 00353142 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 060001. write=55 +0.001212 write fd=6 00353143 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001. write=55 +0.001207 write fd=6 00353144 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0d0001. write=55 +0.001187 write fd=6 00353145 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0f0001. write=55 +0.001186 write fd=6 00353146 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 100001. write=55 +0.001204 write fd=6 00353147 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001. write=55 +0.001365 write fd=6 00353149 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=55 +0.001254 write fd=6 0035314a 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 020001. write=55 +0.002485 write fd=6 0035314c 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0f0001. write=55 +0.001201 write fd=6 0035314d 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 060001. write=55 +0.001188 write fd=6 0035314e 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001. write=30 +1.814491 select max=7 rfds=[5,6] wfds=[6] efds=[6] to=27.847175 select=2 rfds=[6] wfds=[6] efds=[] +5.-217468 read fd=6 buflen=2 read=OK 0082. +0.012764 read fd=6 buflen=130 read=OK 311f8580 00010000 00010000 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c. +0.003700 read fd=6 buflen=132 read=OK 00713120 85800001 00010000 00010474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 020001c0 0c000200 01000000 3c002003 6e73300a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b00c0 41000100 01000151 800004ac 122d0600 82312185 80000100 00000100 00047465. +0.003001 read fd=6 buflen=115 read=OK 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000005 0001c00c 00060001 0000003c 0041036e 73300a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000a68 6f73746d 61737465 72c04500 00002a00 000e1000 00007800 64c80000 00003c. +0.001128 read fd=6 buflen=132 read=OK 00a03122 85800001 00010001 00010474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 060001c0 0c000600 01000000 3c004103 6e73300a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b000a 686f7374 6d617374 6572c045 0000002a 00000e10 00000078 0064c800 0000003c. +0.299749 read fd=6 buflen=30 read=OK c00c0002 00010000 003c0002 c041c041 00010001 00015180 0004ac12 2d06. +0.000767 read fd=6 buflen=162 read=OK 00823123 85800001 00000001 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000600 01000000 3c004103 6e73300a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b000a 686f7374 6d617374 6572c045 0000002a 00000e10 00000078 0064c800 0000003c 00823124 85800001 00000001 00000474 65737403 69776a0a 72656c61 7469. +0.001110 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000d00 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0082 31258580 00010000 00010000 04746573 74036977 6a0a7265 6c617469. +0.000934 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0082 31268580 00010000 00010000 04746573 74036977 6a0a7265 6c617469. +0.001041 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00001000 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0082 31278580 00010000 00010000 04746573 74036977 6a0a7265 6c617469. +0.000940 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0082 31298580 00010000 00010000 04746573 74036977 6a0a7265 6c617469. +0.001164 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0071 312a8580 00010001 00000001 04746573 74036977 6a0a7265 6c617469. +0.000955 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000200 01c00c00 02000100 00003c00 20036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c04100 01000100 01518000 04ac122d 06008231 2c858000 01000000 01000004 74657374 0369776a 0a72656c 617469. +0.002013 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c00a0 312d8580 00010001 00010001 04746573 74036977 6a0a7265 6c617469. +0.000953 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000600 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003cc00c 00020001 0000003c 0002c041 c0410001 00010001 51800004 ac122d06. +0.002102 read fd=6 buflen=162 read=OK 0082312e 85800001 00000001 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001c0 0c000600 01000000 3c004103 6e73300a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b000a 686f7374 6d617374 6572c045 0000002a 00000e10 00000078 0064c800 0000003c 0082312f 85800001 00000001 00000474 65737403 69776a0a 72656c61 7469. +0.001126 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0071 31308580 00010001 00000001 04746573 74036977 6a0a7265 6c617469. +0.000976 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000200 01c00c00 02000100 00003c00 20036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c04100 01000100 01518000 04ac122d 06008231 31858000 01000000 01000004 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267. +0.000930 read fd=6 buflen=115 read=OK 02756b00 00050001 c00c0006 00010000 003c0041 036e7330 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 0a686f73 746d6173 746572c0 45000000 2a00000e 10000000 780064c8 00000000 3c00a031 32858000 01000100 01000104 74657374 0369776a 0a72656c 617469. +0.001062 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000600 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003cc00c 00020001 0000003c 0002c041 c0410001 00010001 51800004 ac122d06. +0.000937 read fd=6 buflen=162 read=OK 00823133 85800001 00000001 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000600 01000000 3c004103 6e73300a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b000a 686f7374 6d617374 6572c045 0000002a 00000e10 00000078 0064c800 0000003c 00823134 85800001 00000001 00000474 65737403 69776a0a 72656c61 7469. +0.001660 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000d00 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0082 31358580 00010000 00010000 04746573 74036977 6a0a7265 6c617469. +0.001133 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0082 31368580 00010000 00010000 04746573 74036977 6a0a7265 6c617469. +0.000963 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00001000 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0082 31378580 00010000 00010000 04746573 74036977 6a0a7265 6c617469. +0.001248 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0082 31398580 00010000 00010000 04746573 74036977 6a0a7265 6c617469. +0.001740 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0071 313a8580 00010001 00000001 04746573 74036977 6a0a7265 6c617469. +0.000981 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000200 01c00c00 02000100 00003c00 20036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c04100 01000100 01518000 04ac122d 06008231 3c858000 01000000 01000004 74657374 0369776a 0a72656c 617469. +0.001909 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c00a0 313d8580 00010001 00010001 04746573 74036977 6a0a7265 6c617469. +0.000926 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000600 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003cc00c 00020001 0000003c 0002c041 c0410001 00010001 51800004 ac122d06. +0.012223 read fd=6 buflen=162 read=OK 0082313e 85800001 00000001 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001c0 0c000600 01000000 3c004103 6e73300a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b000a 686f7374 6d617374 6572c045 0000002a 00000e10 00000078 0064c800 0000003c 0082313f 85800001 00000001 00000474 65737403 69776a0a 72656c61 7469. +0.001327 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0071 31408580 00010001 00000001 04746573 74036977 6a0a7265 6c617469. +0.000945 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000200 01c00c00 02000100 00003c00 20036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c04100 01000100 01518000 04ac122d 06008231 41858000 01000000 01000004 74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267. +0.000969 read fd=6 buflen=115 read=OK 02756b00 00050001 c00c0006 00010000 003c0041 036e7330 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 0a686f73 746d6173 746572c0 45000000 2a00000e 10000000 780064c8 00000000 3c00a031 42858000 01000100 01000104 74657374 0369776a 0a72656c 617469. +0.000930 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000600 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003cc00c 00020001 0000003c 0002c041 c0410001 00010001 51800004 ac122d06. +0.000929 read fd=6 buflen=162 read=OK 00823143 85800001 00000001 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000600 01000000 3c004103 6e73300a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b000a 686f7374 6d617374 6572c045 0000002a 00000e10 00000078 0064c800 0000003c 00823144 85800001 00000001 00000474 65737403 69776a0a 72656c61 7469. +0.001098 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000d00 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0082 31458580 00010000 00010000 04746573 74036977 6a0a7265 6c617469. +0.001053 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0082 31468580 00010000 00010000 04746573 74036977 6a0a7265 6c617469. +0.001035 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00001000 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0082 31478580 00010000 00010000 04746573 74036977 6a0a7265 6c617469. +0.000974 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0082 31498580 00010000 00010000 04746573 74036977 6a0a7265 6c617469. +0.000933 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c0071 314a8580 00010001 00000001 04746573 74036977 6a0a7265 6c617469. +0.001037 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000200 01c00c00 02000100 00003c00 20036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c04100 01000100 01518000 04ac122d 06008231 4c858000 01000000 01000004 74657374 0369776a 0a72656c 617469. +0.002107 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000f00 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003c00a0 314d8580 00010001 00010001 04746573 74036977 6a0a7265 6c617469. +0.000955 read fd=6 buflen=132 read=OK 76697479 08677265 656e656e 64036f72 6702756b 00000600 01c00c00 06000100 00003c00 41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 000a686f 73746d61 73746572 c0450000 002a0000 0e100000 00780064 c8000000 003cc00c 00020001 0000003c 0002c041 c0410001 00010001 51800004 ac122d06. +0.000578 read fd=6 buflen=162 read=EAGAIN +1.000435 write fd=6 76697479 08677265 656e656e 64036f72 6702756b 00001100 01. write=25 +0.000932 select max=7 rfds=[5,6] wfds=[] efds=[6] to=21.691550 select=1 rfds=[6] wfds=[] efds=[] +5.-217468 read fd=6 buflen=162 read=OK 0082314e 85800001 00000001 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001c0 0c000600 01000000 3c004103 6e73300a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b000a 686f7374 6d617374 6572c045 0000002a 00000e10 00000078 0064c800 0000003c. +0.217468 read fd=6 buflen=162 read=EAGAIN +0.017051 close fd=5 close=OK +0.595595 close fd=6 close=OK +0.000531 adns-1.5.0~rc1/regress/case-datapluscname.sys0000664000175000017500000002306712422510661017323 0ustar ianianadnstest default -0x400 292/170.99.219.194.in-addr.arpa start 933809668.543946 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000199 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000081 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000063 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.003027 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.002832 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.004403 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.004763 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000c00 01. sendto=45 +0.002558 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. sendto=45 +0.004339 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.002664 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. sendto=45 +0.004889 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.002642 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.002552 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.007571 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000c00 01. sendto=45 +0.004820 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.004771 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.004879 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.004728 select max=5 rfds=[4] wfds=[] efds=[] to=1.938562 select=1 rfds=[4] wfds=[] efds=[] +0.000329 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01c00c00 05000100 02a2ec00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000688 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01c00c00 05000100 02a2ec00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.003135 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01c00c00 05000100 02a2ec00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000762 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238180 00010003 00040004 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000c00 01c00c00 0c000100 029ecf00 13057072 6f787908 73636f70 6c696665 02677200 c00c0005 00010002 a2ec0021 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00c05800 0c000100 029ecf00 02c039c0 5c000200 0100029e cf001004 696e666f 08666f72 74686e65 74c048c0 5c000200 0100029e cf000805 6e736865 72c098c0 5c000200 0100029e cf000805 6e737468 65c098c0 5c000200 0100029e cf000c09 74656972 65736961 73c098c0 93000100 010004be 3900048b 5b0111c0 af000100 01000542 ba0004c1 5c1e13c0 c3000100 01000542 800004c1 5c6e01c0 d7000100 01000542 800004c2 dbe302. +0.001873 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01c00c00 05000100 02a2ec00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000969 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01c00c00 05000100 02a2ec00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000699 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01c00c00 05000100 02a2ec00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000717 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01c00c00 05000100 02a2ec00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.003514 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01c00c00 05000100 02a2ec00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000783 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01c00c00 05000100 02a2ec00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.003279 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8180 00010003 00040004 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000c00 01c00c00 0c000100 029ecf00 13057072 6f787908 73636f70 6c696665 02677200 c00c0005 00010002 a2ec0021 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00c05800 0c000100 029ecf00 02c039c0 5c000200 0100029e cf001004 696e666f 08666f72 74686e65 74c048c0 5c000200 0100029e cf000805 6e736865 72c098c0 5c000200 0100029e cf000805 6e737468 65c098c0 5c000200 0100029e cf000c09 74656972 65736961 73c098c0 93000100 010004be 3900048b 5b0111c0 af000100 01000542 ba0004c1 5c1e13c0 c3000100 01000542 800004c1 5c6e01c0 d7000100 01000542 800004c2 dbe302. +0.001960 sendto fd=4 addr=172.18.45.6:53 312f0100 00010000 00000000 0570726f 78790873 636f706c 69666502 67720000 010001. sendto=35 +0.005061 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01c00c00 05000100 02a2ec00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.003253 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01c00c00 05000100 02a2ec00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000782 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01c00c00 05000100 02a2ec00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000698 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000173 select max=5 rfds=[4] wfds=[] efds=[] to=1.915746 select=1 rfds=[4] wfds=[] efds=[] +0.014046 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312f8180 00010001 00040004 0570726f 78790873 636f706c 69666502 67720000 010001c0 0c000100 01000288 220004c2 db63aa08 73636f70 6c696665 02677200 00020001 000542ba 0011056e 73617468 08666f72 74686e65 74c03cc0 33000200 01000542 ba000805 6e736865 72c050c0 33000200 01000542 ba000805 6e737468 65c050c0 33000200 01000542 ba000c09 74656972 65736961 73c050c0 4a000100 01000542 800004c1 5c9603c0 67000100 01000542 ba0004c1 5c1e13c0 7b000100 01000542 800004c1 5c6e01c0 8f000100 01000542 800004c2 dbe302. +0.001422 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000197 select max=5 rfds=[4] wfds=[] efds=[] to=1.900081 select=1 rfds=[4] wfds=[] efds=[] +0.203705 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218180 00010001 00050005 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01c00c00 05000100 029ece00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100c041 00020001 00029ece 00120469 6e666f08 666f7274 686e6574 02677200 c0410002 00010002 9ece0008 056e7368 6572c06b c0410002 00010002 9ece0008 056e7374 6865c06b c0410002 00010002 9ece0008 056e7361 7468c06b c0410002 00010002 9ece000c 09746569 72657369 6173c06b c0660001 00010005 41ce0004 8b5b0111 c0840001 00010005 42b90004 c15c1e13 c0980001 00010005 427f0004 c15c6e01 c0ac0001 00010005 427f0004 c15c9603 c0c00001 00010005 427f0004 c2dbe302. +0.001798 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000249 close fd=4 close=OK +0.000219 adns-1.5.0~rc1/regress/case-2ndservtcp.err0000664000175000017500000000000012421042027016517 0ustar ianianadns-1.5.0~rc1/regress/case-srvsort.sys0000664000175000017500000002404612422510662016223 0ustar ianian./adnshost default -t srv- _srv._tcp.test.iwj.relativity.greenend.org.uk. _srv._tcp.test.iwj.relativity.greenend.org.uk. _srv._tcp.test.iwj.relativity.greenend.org.uk. _srv._tcp.test.iwj.relativity.greenend.org.uk. _srv._tcp.test.iwj.relativity.greenend.org.uk. _srv._tcp.test.iwj.relativity.greenend.org.uk. _srv._tcp.test.iwj.relativity.greenend.org.uk. start 1144348887.924234 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000083 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000050 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000042 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001. sendto=63 +0.000352 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001. sendto=63 +0.000261 sendto fd=6 addr=172.18.45.6:53 31210100 00010000 00000000 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001. sendto=63 +0.000232 sendto fd=6 addr=172.18.45.6:53 31220100 00010000 00000000 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001. sendto=63 +0.000236 sendto fd=6 addr=172.18.45.6:53 31230100 00010000 00000000 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001. sendto=63 +0.000242 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001. sendto=63 +0.000243 sendto fd=6 addr=172.18.45.6:53 31250100 00010000 00000000 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001. sendto=63 +0.000231 select max=7 rfds=[6] wfds=[] efds=[] to=1.998203 select=1 rfds=[6] wfds=[] efds=[] +0.005521 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010004 00020004 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001c0 0c002100 01000000 0a002b00 1400644e 84086e78 646f6d61 696e0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 00210001 0000000a 002b000a 00422752 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 21000100 00000a00 2a001401 904fb007 616e6172 7265730a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b00c0 0c002100 01000000 0a002900 1400c84e e8066e6f 72776179 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c0160002 00010000 000a0006 036e7330 c01fc016 00020001 0000000a 0021086e 732d7370 6f6e6702 34350331 37320231 3807696e 2d616464 72046172 70610008 64617665 6e616e74 c01f0001 00010001 51800004 ac122d06 07616e61 72726573 c01f0001 00010001 51800004 ac122d02 066e6f72 776179c0 1f000100 01000151 800004ac 122d28c1 24000100 01000151 800004ac 122d06. +0.000555 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000127 select max=7 rfds=[6] wfds=[] efds=[] to=1.992352 select=1 rfds=[6] wfds=[] efds=[] +0.002857 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010004 00020004 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001c0 0c002100 01000000 0a002b00 0a004227 52086461 76656e61 6e740a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 00210001 0000000a 002a0014 01904fb0 07616e61 72726573 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c00c0021 00010000 000a0029 001400c8 4ee8066e 6f727761 790a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 21000100 00000a00 2b001400 644e8408 6e78646f 6d61696e 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c0160002 00010000 000a0006 036e7330 c01fc016 00020001 0000000a 0021086e 732d7370 6f6e6702 34350331 37320231 3807696e 2d616464 72046172 70610008 64617665 6e616e74 c01f0001 00010001 51800004 ac122d06 07616e61 72726573 c01f0001 00010001 51800004 ac122d02 066e6f72 776179c0 1f000100 01000151 800004ac 122d28c1 24000100 01000151 800004ac 122d06. +0.000697 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000163 select max=7 rfds=[6] wfds=[] efds=[] to=1.988896 select=1 rfds=[6] wfds=[] efds=[] +0.002742 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010004 00020004 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001c0 0c002100 01000000 0a002b00 0a004227 52086461 76656e61 6e740a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 00210001 0000000a 002a0014 01904fb0 07616e61 72726573 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c00c0021 00010000 000a0029 001400c8 4ee8066e 6f727761 790a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 21000100 00000a00 2b001400 644e8408 6e78646f 6d61696e 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c0160002 00010000 000a0006 036e7330 c01fc016 00020001 0000000a 0021086e 732d7370 6f6e6702 34350331 37320231 3807696e 2d616464 72046172 70610008 64617665 6e616e74 c01f0001 00010001 51800004 ac122d06 07616e61 72726573 c01f0001 00010001 51800004 ac122d02 066e6f72 776179c0 1f000100 01000151 800004ac 122d28c1 24000100 01000151 800004ac 122d06. +0.000673 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228580 00010004 00020004 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001c0 0c002100 01000000 0a002a00 1401904f b007616e 61727265 730a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 21000100 00000a00 29001400 c84ee806 6e6f7277 61790a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 00210001 0000000a 002b0014 00644e84 086e7864 6f6d6169 6e0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 21000100 00000a00 2b000a00 42275208 64617665 6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c0160002 00010000 000a0006 036e7330 c01fc016 00020001 0000000a 0021086e 732d7370 6f6e6702 34350331 37320231 3807696e 2d616464 72046172 70610007 616e6172 726573c0 1f000100 01000151 800004ac 122d0206 6e6f7277 6179c01f 00010001 00015180 0004ac12 2d280864 6176656e 616e74c0 1f000100 01000151 800004ac 122d06c1 24000100 01000151 800004ac 122d06. +0.000742 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238580 00010004 00020004 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001c0 0c002100 01000000 0a002b00 0a004227 52086461 76656e61 6e740a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 00210001 0000000a 002a0014 01904fb0 07616e61 72726573 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c00c0021 00010000 000a0029 001400c8 4ee8066e 6f727761 790a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 21000100 00000a00 2b001400 644e8408 6e78646f 6d61696e 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c0160002 00010000 000a0006 036e7330 c01fc016 00020001 0000000a 0021086e 732d7370 6f6e6702 34350331 37320231 3807696e 2d616464 72046172 70610008 64617665 6e616e74 c01f0001 00010001 51800004 ac122d06 07616e61 72726573 c01f0001 00010001 51800004 ac122d02 066e6f72 776179c0 1f000100 01000151 800004ac 122d28c1 24000100 01000151 800004ac 122d06. +0.000593 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248580 00010004 00020004 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001c0 0c002100 01000000 0a002a00 1401904f b007616e 61727265 730a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 21000100 00000a00 29001400 c84ee806 6e6f7277 61790a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 00210001 0000000a 002b0014 00644e84 086e7864 6f6d6169 6e0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 21000100 00000a00 2b000a00 42275208 64617665 6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c0160002 00010000 000a0006 036e7330 c01fc016 00020001 0000000a 0021086e 732d7370 6f6e6702 34350331 37320231 3807696e 2d616464 72046172 70610007 616e6172 726573c0 1f000100 01000151 800004ac 122d0206 6e6f7277 6179c01f 00010001 00015180 0004ac12 2d280864 6176656e 616e74c0 1f000100 01000151 800004ac 122d06c1 24000100 01000151 800004ac 122d06. +0.000727 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258580 00010004 00020004 045f7372 76045f74 63700474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 210001c0 0c002100 01000000 0a002b00 1400644e 84086e78 646f6d61 696e0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 00210001 0000000a 002b000a 00422752 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00c00c00 21000100 00000a00 2a001401 904fb007 616e6172 7265730a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b00c0 0c002100 01000000 0a002900 1400c84e e8066e6f 72776179 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 c0160002 00010000 000a0006 036e7330 c01fc016 00020001 0000000a 0021086e 732d7370 6f6e6702 34350331 37320231 3807696e 2d616464 72046172 70610008 64617665 6e616e74 c01f0001 00010001 51800004 ac122d06 07616e61 72726573 c01f0001 00010001 51800004 ac122d02 066e6f72 776179c0 1f000100 01000151 800004ac 122d28c1 24000100 01000151 800004ac 122d06. +0.000721 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000098 close fd=6 close=OK +0.014060 adns-1.5.0~rc1/regress/init-tunnel.text0000664000175000017500000000017312421042027016171 0ustar ianiannameserver 172.31.80.9 sortlist 127.0.0.1/32 172.18.45.0/24 172.31.80.0/28 search davenant.greenend.org.uk greenend.org.uk adns-1.5.0~rc1/regress/hplayback.c0000664000175000017500000004236212421042027015125 0ustar ianian#include #include #include #include #include #include #include #include #include #include #include #include "harness.h" static FILE *Tinputfile, *Treportfile; static vbuf vb2; extern void Tshutdown(void) { adns__vbuf_free(&vb2); } static void Tensurereportfile(void) { const char *fdstr; int fd; if (Treportfile) return; Treportfile= stderr; fdstr= getenv("ADNS_TEST_REPORT_FD"); if (!fdstr) return; fd= atoi(fdstr); Treportfile= fdopen(fd,"a"); if (!Treportfile) Tfailed("fdopen ADNS_TEST_REPORT_FD"); } static void Psyntax(const char *where) { fprintf(stderr,"adns test harness: syntax error in test log input file: %s\n",where); exit(-1); } static void Pcheckinput(void) { if (ferror(Tinputfile)) Tfailed("read test log input file"); if (feof(Tinputfile)) Psyntax("eof at syscall reply"); } void Tensurerecordfile(void) { const char *fdstr; int fd; int chars; unsigned long sec, usec; if (Tinputfile) return; Tinputfile= stdin; fdstr= getenv("ADNS_TEST_IN_FD"); if (fdstr) { fd= atoi(fdstr); Tinputfile= fdopen(fd,"r"); if (!Tinputfile) Tfailed("fdopen ADNS_TEST_IN_FD"); } setvbuf(Tinputfile,0,_IONBF,0); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); chars= -1; sscanf(vb2.buf," start %lu.%lu%n",&sec,&usec,&chars); if (chars==-1) Psyntax("start time invalid"); currenttime.tv_sec= sec; currenttime.tv_usec= usec; if (vb2.buf[chars] != '\n') Psyntax("not newline after start time"); } static void Parg(const char *argname) { int l; if (vb2.buf[vb2.used++] != ' ') Psyntax("not a space before argument"); l= strlen(argname); if (memcmp(vb2.buf+vb2.used,argname,l)) Psyntax("argument name wrong"); vb2.used+= l; if (vb2.buf[vb2.used++] != '=') Psyntax("not = after argument name"); } static int Pstring_maybe(const char *string) { int l; l= strlen(string); if (memcmp(vb2.buf+vb2.used,string,l)) return 0; vb2.used+= l; return 1; } static void Pstring(const char *string, const char *emsg) { if (Pstring_maybe(string)) return; Psyntax(emsg); } static int Perrno(const char *stuff) { const struct Terrno *te; int r; char *ep; for (te= Terrnos; te->n && strcmp(te->n,stuff); te++); if (te->n) return te->v; r= strtoul(stuff+2,&ep,10); if (*ep) Psyntax("errno value not recognised, not numeric"); return r; } static void P_updatetime(void) { int chars; unsigned long sec, usec; if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); chars= -1; sscanf(vb2.buf," +%lu.%lu%n",&sec,&usec,&chars); if (chars==-1) Psyntax("update time invalid"); currenttime.tv_sec+= sec; currenttime.tv_usec+= usec; if (currenttime.tv_usec > 1000000) { currenttime.tv_sec++; currenttime.tv_usec -= 1000000; } if (vb2.buf[chars] != '\n') Psyntax("not newline after update time"); } static void Pfdset(fd_set *set, int max) { int r, c; char *ep; if (vb2.buf[vb2.used++] != '[') Psyntax("fd set start not ["); FD_ZERO(set); if (vb2.buf[vb2.used] == ']') { vb2.used++; return; } for (;;) { r= strtoul(vb2.buf+vb2.used,&ep,10); if (r>=max) Psyntax("fd set member > max"); if (ep == (char*)vb2.buf+vb2.used) Psyntax("empty entry in fd set"); FD_SET(r,set); vb2.used= ep - (char*)vb2.buf; c= vb2.buf[vb2.used++]; if (c == ']') break; if (c != ',') Psyntax("fd set separator not ,"); } } #ifdef HAVE_POLL static int Ppollfdevents(void) { int events; if (Pstring_maybe("0")) return 0; events= 0; if (Pstring_maybe("POLLIN")) { events |= POLLIN; if (!Pstring_maybe("|")) return events; } if (Pstring_maybe("POLLOUT")) { events |= POLLOUT; if (!Pstring_maybe("|")) return events; } Pstring("POLLPRI","pollfdevents PRI?"); return events; } static void Ppollfds(struct pollfd *fds, int nfds) { int i; char *ep; const char *comma= ""; if (vb2.buf[vb2.used++] != '[') Psyntax("pollfds start not ["); for (i=0; ifd= strtoul(vb2.buf+vb2.used,&ep,10); vb2.used= ep - (char*)vb2.buf; Pstring(", events=",", events= in pollfds"); fds->events= Ppollfdevents(); Pstring(", revents=",", revents= in pollfds"); fds->revents= Ppollfdevents(); Pstring("}","} in pollfds"); Pstring(comma,"separator in pollfds"); comma= ", "; } if (vb2.buf[vb2.used++] != ']') Psyntax("pollfds end not ]"); } #endif static void Paddr(struct sockaddr *addr, int *lenr) { adns_rr_addr a; char *p, *q, *ep; int err; unsigned long ul; p= vb2.buf+vb2.used; if (*p!='[') { q= strchr(p,':'); if (!q) Psyntax("missing :"); *q++= 0; } else { p++; q= strchr(p,']'); if (!q) Psyntax("missing ]"); *q++= 0; if (*q!=':') Psyntax("expected : after ]"); q++; } ul= strtoul(q,&ep,10); if (*ep && *ep != ' ') Psyntax("invalid port (bad syntax)"); if (ul >= 65536) Psyntax("port too large"); a.len= sizeof(a.addr); err= adns_text2addr(p, (int)ul, 0, &a.addr.sa,&a.len); if (err) Psyntax("invalid address"); assert(*lenr >= a.len); memcpy(addr, &a.addr, a.len); *lenr= a.len; vb2.used= ep - (char*)vb2.buf; } static int Pbytes(byte *buf, int maxlen) { static const char hexdigits[]= "0123456789abcdef"; int c, v, done; const char *pf; done= 0; for (;;) { c= getc(Tinputfile); Pcheckinput(); if (c=='\n' || c==' ' || c=='\t') continue; if (c=='.') break; pf= strchr(hexdigits,c); if (!pf) Psyntax("invalid first hex digit"); v= (pf-hexdigits)<<4; c= getc(Tinputfile); Pcheckinput(); pf= strchr(hexdigits,c); if (!pf) Psyntax("invalid second hex digit"); v |= (pf-hexdigits); if (maxlen<=0) Psyntax("buffer overflow in bytes"); *buf++= v; maxlen--; done++; } for (;;) { c= getc(Tinputfile); Pcheckinput(); if (c=='\n') return done; } } void Q_vb(void) { const char *nl; Tensurerecordfile(); if (!adns__vbuf_ensure(&vb2,vb.used+2)) Tnomem(); fread(vb2.buf,1,vb.used+2,Tinputfile); if (feof(Tinputfile)) { fprintf(stderr,"adns test harness: input ends prematurely; program did:\n %.*s\n", vb.used,vb.buf); exit(-1); } Pcheckinput(); if (vb2.buf[0] != ' ') Psyntax("not space before call"); if (memcmp(vb.buf,vb2.buf+1,vb.used) || vb2.buf[vb.used+1] != '\n') { fprintf(stderr, "adns test harness: program did unexpected:\n %.*s\n" "was expecting:\n %.*s\n", vb.used,vb.buf, vb.used,vb2.buf+1); exit(1); } Tensurereportfile(); nl= memchr(vb.buf,'\n',vb.used); fprintf(Treportfile," %.*s\n", (int)(nl ? nl - (const char*)vb.buf : vb.used), vb.buf); } int Hselect( int max , fd_set *rfds , fd_set *wfds , fd_set *efds , struct timeval *to ) { int r, amtread; char *ep; Qselect( max , rfds , wfds , efds , to ); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!='\n') Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," select=",8)) Psyntax("syscall reply mismatch"); if (vb2.buf[8] == 'E') { int e; e= Perrno(vb2.buf+8); P_updatetime(); errno= e; return -1; } r= strtoul(vb2.buf+8,&ep,10); if (*ep && *ep!=' ') Psyntax("return value not E* or positive number"); vb2.used= ep - (char*)vb2.buf; Parg("rfds"); Pfdset(rfds,max); Parg("wfds"); Pfdset(wfds,max); Parg("efds"); Pfdset(efds,max); assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); P_updatetime(); return r; } #ifdef HAVE_POLL int Hpoll( struct pollfd *fds , int nfds , int timeout ) { int r, amtread; char *ep; Qpoll( fds , nfds , timeout ); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!='\n') Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," poll=",6)) Psyntax("syscall reply mismatch"); if (vb2.buf[6] == 'E') { int e; e= Perrno(vb2.buf+6); P_updatetime(); errno= e; return -1; } r= strtoul(vb2.buf+6,&ep,10); if (*ep && *ep!=' ') Psyntax("return value not E* or positive number"); vb2.used= ep - (char*)vb2.buf; Parg("fds"); Ppollfds(fds,nfds); assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); P_updatetime(); return r; } #endif int Hsocket( int domain , int type , int protocol ) { int r, amtread; char *ep; Tmust("socket","domain",domain==AF_INET || domain==AF_INET6); Tmust("socket","type",type==SOCK_STREAM || type==SOCK_DGRAM); Qsocket( domain , type ); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!='\n') Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," socket=",8)) Psyntax("syscall reply mismatch"); if (vb2.buf[8] == 'E') { int e; e= Perrno(vb2.buf+8); P_updatetime(); errno= e; return -1; } r= strtoul(vb2.buf+8,&ep,10); if (*ep && *ep!=' ') Psyntax("return value not E* or positive number"); vb2.used= ep - (char*)vb2.buf; assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); P_updatetime(); return r; } int Hfcntl( int fd , int cmd , ... ) { int r, amtread; va_list al; long arg; Tmust("fcntl","cmd",cmd==F_SETFL || cmd==F_GETFL); if (cmd == F_SETFL) { va_start(al,cmd); arg= va_arg(al,long); va_end(al); } else { arg= 0; } Qfcntl( fd , cmd , arg ); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!='\n') Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," fcntl=",7)) Psyntax("syscall reply mismatch"); if (vb2.buf[7] == 'E') { int e; e= Perrno(vb2.buf+7); P_updatetime(); errno= e; return -1; } r= 0; if (cmd == F_GETFL) { if (!memcmp(vb2.buf+7,"O_NONBLOCK|...",14)) { r= O_NONBLOCK; vb2.used= 7+14; } else if (!memcmp(vb2.buf+7,"~O_NONBLOCK&...",15)) { vb2.used= 7+15; } else { Psyntax("fcntl flags not O_NONBLOCK|... or ~O_NONBLOCK&..."); } } else if (cmd == F_SETFL) { if (memcmp(vb2.buf+7,"OK",2)) Psyntax("success/fail not E* or OK"); vb2.used= 7+2; r= 0; } else { Psyntax("fcntl not F_GETFL or F_SETFL"); } assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); P_updatetime(); return r; } int Hconnect( int fd , const struct sockaddr *addr , int addrlen ) { int r, amtread; Qconnect( fd , addr , addrlen ); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!='\n') Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," connect=",9)) Psyntax("syscall reply mismatch"); if (vb2.buf[9] == 'E') { int e; e= Perrno(vb2.buf+9); P_updatetime(); errno= e; return -1; } if (memcmp(vb2.buf+9,"OK",2)) Psyntax("success/fail not E* or OK"); vb2.used= 9+2; r= 0; assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); P_updatetime(); return r; } int Hbind( int fd , const struct sockaddr *addr , int addrlen ) { int r, amtread; Qbind( fd , addr , addrlen ); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!='\n') Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," bind=",6)) Psyntax("syscall reply mismatch"); if (vb2.buf[6] == 'E') { int e; e= Perrno(vb2.buf+6); P_updatetime(); errno= e; return -1; } if (memcmp(vb2.buf+6,"OK",2)) Psyntax("success/fail not E* or OK"); vb2.used= 6+2; r= 0; assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); P_updatetime(); return r; } int Hlisten( int fd , int backlog ) { int r, amtread; Qlisten( fd , backlog ); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!='\n') Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," listen=",8)) Psyntax("syscall reply mismatch"); if (vb2.buf[8] == 'E') { int e; e= Perrno(vb2.buf+8); P_updatetime(); errno= e; return -1; } if (memcmp(vb2.buf+8,"OK",2)) Psyntax("success/fail not E* or OK"); vb2.used= 8+2; r= 0; assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); P_updatetime(); return r; } int Hclose( int fd ) { int r, amtread; Qclose( fd ); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!='\n') Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," close=",7)) Psyntax("syscall reply mismatch"); if (vb2.buf[7] == 'E') { int e; e= Perrno(vb2.buf+7); P_updatetime(); errno= e; return -1; } if (memcmp(vb2.buf+7,"OK",2)) Psyntax("success/fail not E* or OK"); vb2.used= 7+2; r= 0; assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); P_updatetime(); return r; } int Hsendto( int fd , const void *msg , int msglen , unsigned int flags , const struct sockaddr *addr , int addrlen ) { int r, amtread; char *ep; Tmust("sendto","flags",flags==0); Qsendto( fd , msg , msglen , addr , addrlen ); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!='\n') Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," sendto=",8)) Psyntax("syscall reply mismatch"); if (vb2.buf[8] == 'E') { int e; e= Perrno(vb2.buf+8); P_updatetime(); errno= e; return -1; } r= strtoul(vb2.buf+8,&ep,10); if (*ep && *ep!=' ') Psyntax("return value not E* or positive number"); vb2.used= ep - (char*)vb2.buf; assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); P_updatetime(); return r; } int Hrecvfrom( int fd , void *buf , int buflen , unsigned int flags , struct sockaddr *addr , int *addrlen ) { int r, amtread; Tmust("recvfrom","flags",flags==0); Tmust("recvfrom","*addrlen",*addrlen>=sizeof(struct sockaddr_in)); Qrecvfrom( fd , buflen , *addrlen ); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!='\n') Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," recvfrom=",10)) Psyntax("syscall reply mismatch"); if (vb2.buf[10] == 'E') { int e; e= Perrno(vb2.buf+10); P_updatetime(); errno= e; return -1; } if (memcmp(vb2.buf+10,"OK",2)) Psyntax("success/fail not E* or OK"); vb2.used= 10+2; r= 0; Parg("addr"); Paddr(addr,addrlen); assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); r= Pbytes(buf,buflen); P_updatetime(); return r; } int Hread( int fd , void *buf , size_t buflen ) { int r, amtread; Qread( fd , buflen ); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!='\n') Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," read=",6)) Psyntax("syscall reply mismatch"); if (vb2.buf[6] == 'E') { int e; e= Perrno(vb2.buf+6); P_updatetime(); errno= e; return -1; } if (memcmp(vb2.buf+6,"OK",2)) Psyntax("success/fail not E* or OK"); vb2.used= 6+2; r= 0; assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); r= Pbytes(buf,buflen); P_updatetime(); return r; } int Hwrite( int fd , const void *buf , size_t len ) { int r, amtread; char *ep; Qwrite( fd , buf , len ); if (!adns__vbuf_ensure(&vb2,1000)) Tnomem(); fgets(vb2.buf,vb2.avail,Tinputfile); Pcheckinput(); Tensurereportfile(); fprintf(Treportfile,"%s",vb2.buf); amtread= strlen(vb2.buf); if (amtread<=0 || vb2.buf[--amtread]!='\n') Psyntax("badly formed line"); vb2.buf[amtread]= 0; if (memcmp(vb2.buf," write=",7)) Psyntax("syscall reply mismatch"); if (vb2.buf[7] == 'E') { int e; e= Perrno(vb2.buf+7); P_updatetime(); errno= e; return -1; } r= strtoul(vb2.buf+7,&ep,10); if (*ep && *ep!=' ') Psyntax("return value not E* or positive number"); vb2.used= ep - (char*)vb2.buf; assert(vb2.used <= amtread); if (vb2.used != amtread) Psyntax("junk at end of line"); P_updatetime(); return r; } adns-1.5.0~rc1/regress/case-longdomsrch2.out0000664000175000017500000000115712421042027017063 0ustar ianianadns debug: using nameserver 172.18.45.6 xxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk flags 1 type 1 A(-) submitted xxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk flags 1 type A(-): No such domain; nrrs=0; cname=$; owner=$; ttl=86400 rc=0 adns-1.5.0~rc1/regress/case-adh-pipe.err0000664000175000017500000000005112421042027016122 0ustar ianianadns debug: using nameserver 172.18.45.6 adns-1.5.0~rc1/regress/adnslogres-xinitflags.text0000664000175000017500000000000612421042027020225 0ustar ianian-d -C adns-1.5.0~rc1/regress/case-longlab1.out0000664000175000017500000000054412421042027016160 0ustar ianianadns debug: using nameserver 172.18.45.6 hyrndrobwlxxxxxxxxxxlllantysiliogogllanfairpwllgwyngyllgogerychw.relativity.greenend.org.uk. flags 1 type 1 A(-) submitted hyrndrobwlxxxxxxxxxxlllantysiliogogllanfairpwllgwyngyllgogerychw.relativity.greenend.org.uk. flags 1 type A(-): Domain name or component is too long; nrrs=0; cname=$; owner=$; ttl=604800 rc=0 adns-1.5.0~rc1/regress/case-1stservtotcp.err0000664000175000017500000000000012421042027017106 0ustar ianianadns-1.5.0~rc1/regress/case-longdomsrch1.sys0000664000175000017500000000436012422540543017077 0ustar ianianadnstest ndots100 :0x0|1 1/0rndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.llanfairpwllgwyngyllgogerychwyrndrobwlxxxxxxxxxxlllantysiliogog.relativity.greenend.org.uk start 951956087.269350 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000132 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000060 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000038 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 2230726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f670a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=271 +0.001749 select max=5 rfds=[4] wfds=[] efds=[] to=1.998251 select=1 rfds=[4] wfds=[] efds=[] +0.000215 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218583 00010000 00010000 2230726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f673f 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 7779726e 64726f62 776c7878 78787878 78787878 6c6c6c61 6e747973 696c696f 676f670a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0100010a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 06000100 01518000 27036e73 30c10f0a 686f7374 6d617374 6572c10f 0000002d 00001c20 00000e10 00093a80 00015180. +0.001176 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000173 close fd=4 close=OK +0.000152 adns-1.5.0~rc1/regress/adnsresfilter-xinitflags.text0000664000175000017500000000002212421042027020727 0ustar ianian--debug --config adns-1.5.0~rc1/regress/case-child.sys0000664000175000017500000000423512422540543015563 0ustar ianianadnstest default :0x10000|12 134.76.224.195.in-addr.arpa start 929574747.401802 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000189 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000080 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000058 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 03313334 02373603 32323403 31393507 696e2d61 64647204 61727061 00000c00 01. sendto=45 +0.000595 select max=5 rfds=[4] wfds=[] efds=[] to=1.999405 select=1 rfds=[4] wfds=[] efds=[] +0.008975 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010001 00050005 03313334 02373603 32323403 31393507 696e2d61 64647204 61727061 00000c00 01c00c00 0c000100 01336600 22107065 726d7574 6174696f 6e2d6369 74790867 7265656e 656e6403 6f726702 756b0002 37360332 32340331 39350769 6e2d6164 64720461 72706100 00020001 00013366 00110464 6e733006 656c6d61 696c0263 6fc057c0 5b000200 01000133 66000704 646e7331 c083c05b 00020001 00013366 00070464 6e7332c0 83c05b00 02000100 01336600 0e036e73 32047861 7261036e 657400c0 5b000200 01000133 66000603 6e7333c0 c5c07e00 01000100 00149d00 04c17ae9 11c09b00 01000100 00149d00 04c17ae9 01c0ae00 01000100 00149d00 04c3e04c c1c0c100 01000100 0284e500 04c28fa1 6bc0db00 01000100 0284e500 04c28fa3 19. +0.001671 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 10706572 6d757461 74696f6e 2d636974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=50 +0.000683 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000108 select max=5 rfds=[4] wfds=[] efds=[] to=1.997538 select=1 rfds=[4] wfds=[] efds=[] +0.005811 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010001 00020002 10706572 6d757461 74696f6e 2d636974 79086772 65656e65 6e64036f 72670275 6b000001 0001c00c 00010001 00015180 0004c3e0 4c860867 7265656e 656e6403 6f726702 756b0000 02000100 01518000 11036e73 300a7265 6c617469 76697479 c042c042 00020001 00015180 0006036e 7331c061 c05d0001 00010001 51800004 ac122d06 c07a0001 00010001 51800004 ac122d41. +0.000862 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000193 close fd=4 close=OK +0.000207 adns-1.5.0~rc1/regress/case-srvqudom.err0000664000175000017500000000033612421042027016321 0ustar ianianadns debug: using nameserver 172.18.45.6 srv.tcp.test.iwj.relativity.greenend.org.uk does not exist spong does not exist _foo._bar does not exist _s*a._tcp.ucam.org does not exist _s*a._tcp.pi&ckle.ucam.org does not exist adns-1.5.0~rc1/regress/case-srvbaddom.out0000664000175000017500000000000512421042027016432 0ustar ianianrc=6 adns-1.5.0~rc1/regress/case-formerr.sys0000664000175000017500000002526112422540543016156 0ustar ianianadnstest default :0x0|1 1/h.rndrobwlxxxxxxxxxxlllantysiliogogllanfairpwllgwyngyllgogerychw.relativity.greenend.org.uk. start 951956380.814815 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000130 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000056 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000033 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000977 select max=5 rfds=[4] wfds=[] efds=[] to=1.999023 select=1 rfds=[4] wfds=[] efds=[] +0.000192 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000130 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000088 select max=5 rfds=[4] wfds=[] efds=[] to=1.998613 select=0 rfds=[] wfds=[] efds=[] +2.-01236 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000766 select max=5 rfds=[4] wfds=[] efds=[] to=1.999234 select=1 rfds=[4] wfds=[] efds=[] +0.000115 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000116 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000065 select max=5 rfds=[4] wfds=[] efds=[] to=1.998938 select=0 rfds=[] wfds=[] efds=[] +2.-01066 select max=5 rfds=[4] wfds=[] efds=[] to=0.000004 select=0 rfds=[] wfds=[] efds=[] +0.009983 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000688 select max=5 rfds=[4] wfds=[] efds=[] to=1.999312 select=1 rfds=[4] wfds=[] efds=[] +0.000113 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000114 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000065 select max=5 rfds=[4] wfds=[] efds=[] to=1.999020 select=0 rfds=[] wfds=[] efds=[] +2.-00961 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000702 select max=5 rfds=[4] wfds=[] efds=[] to=1.999298 select=1 rfds=[4] wfds=[] efds=[] +0.000113 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000114 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000066 select max=5 rfds=[4] wfds=[] efds=[] to=1.999005 select=0 rfds=[] wfds=[] efds=[] +2.-00753 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000714 select max=5 rfds=[4] wfds=[] efds=[] to=1.999286 select=1 rfds=[4] wfds=[] efds=[] +0.000117 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000117 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000069 select max=5 rfds=[4] wfds=[] efds=[] to=1.998983 select=0 rfds=[] wfds=[] efds=[] +2.-01199 select max=5 rfds=[4] wfds=[] efds=[] to=0.000182 select=0 rfds=[] wfds=[] efds=[] +0.009922 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000689 select max=5 rfds=[4] wfds=[] efds=[] to=1.999311 select=1 rfds=[4] wfds=[] efds=[] +0.000114 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000113 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000064 select max=5 rfds=[4] wfds=[] efds=[] to=1.999020 select=0 rfds=[] wfds=[] efds=[] +2.-00958 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000716 select max=5 rfds=[4] wfds=[] efds=[] to=1.999284 select=1 rfds=[4] wfds=[] efds=[] +0.000114 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000136 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000066 select max=5 rfds=[4] wfds=[] efds=[] to=1.998968 select=0 rfds=[] wfds=[] efds=[] +2.-01033 select max=5 rfds=[4] wfds=[] efds=[] to=0.000001 select=0 rfds=[] wfds=[] efds=[] +0.009977 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000669 select max=5 rfds=[4] wfds=[] efds=[] to=1.999331 select=1 rfds=[4] wfds=[] efds=[] +0.000113 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000115 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000065 select max=5 rfds=[4] wfds=[] efds=[] to=1.999038 select=0 rfds=[] wfds=[] efds=[] +2.-00943 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000720 select max=5 rfds=[4] wfds=[] efds=[] to=1.999280 select=1 rfds=[4] wfds=[] efds=[] +0.000113 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000114 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000065 select max=5 rfds=[4] wfds=[] efds=[] to=1.998988 select=0 rfds=[] wfds=[] efds=[] +2.-01009 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000703 select max=5 rfds=[4] wfds=[] efds=[] to=1.999297 select=1 rfds=[4] wfds=[] efds=[] +0.000134 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000115 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000066 select max=5 rfds=[4] wfds=[] efds=[] to=1.998982 select=0 rfds=[] wfds=[] efds=[] +2.-01006 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000760 select max=5 rfds=[4] wfds=[] efds=[] to=1.999240 select=1 rfds=[4] wfds=[] efds=[] +0.000120 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000116 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000070 select max=5 rfds=[4] wfds=[] efds=[] to=1.998934 select=0 rfds=[] wfds=[] efds=[] +2.-01050 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000816 select max=5 rfds=[4] wfds=[] efds=[] to=1.999184 select=1 rfds=[4] wfds=[] efds=[] +0.000124 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000120 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000074 select max=5 rfds=[4] wfds=[] efds=[] to=1.998866 select=0 rfds=[] wfds=[] efds=[] +2.-01045 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000888 select max=5 rfds=[4] wfds=[] efds=[] to=1.999112 select=1 rfds=[4] wfds=[] efds=[] +0.000127 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000119 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000072 select max=5 rfds=[4] wfds=[] efds=[] to=1.998794 select=0 rfds=[] wfds=[] efds=[] +2.-01003 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000840 select max=5 rfds=[4] wfds=[] efds=[] to=1.999160 select=1 rfds=[4] wfds=[] efds=[] +0.000297 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000124 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000077 select max=5 rfds=[4] wfds=[] efds=[] to=1.998662 select=0 rfds=[] wfds=[] efds=[] +2.-01614 select max=5 rfds=[4] wfds=[] efds=[] to=0.000276 select=0 rfds=[] wfds=[] efds=[] +0.010069 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 01683e72 6e64726f 62776c78 78787878 78787878 786c6c6c 616e7479 73696c69 6f676f67 6c6c616e 66616972 70776c6c 6777796e 67796c6c 676f6765 72796368 770a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=109 +0.000791 select max=5 rfds=[4] wfds=[] efds=[] to=1.999209 select=1 rfds=[4] wfds=[] efds=[] +0.000117 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8181 00010000 00000000. +0.000271 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000080 select max=5 rfds=[4] wfds=[] efds=[] to=1.998741 select=0 rfds=[] wfds=[] efds=[] +2.-01357 select max=5 rfds=[4] wfds=[] efds=[] to=0.000098 select=0 rfds=[] wfds=[] efds=[] +0.009963 close fd=4 close=OK +0.000234 adns-1.5.0~rc1/regress/case-poll.out0000664000175000017500000000030512421042027015422 0ustar ianianadns debug: using nameserver 172.18.45.6 chiark.greenend.org.uk flags 0 type 1 A(-) submitted chiark.greenend.org.uk flags 0 type A(-): OK; nrrs=1; cname=$; owner=$; ttl=86400 195.224.76.132 rc=0 adns-1.5.0~rc1/regress/case-rr_addr-binary-compat.sys0000664000175000017500000000561112422540543020657 0ustar ianian./adnstest distorted :0x1010000|1,0x10000|1 maddr.dnserr.distorted.org.uk start 1402443258.469312 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000064 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000035 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000027 sendto fd=6 addr=172.29.199.224:53 31200100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001. sendto=47 +0.000405 sendto fd=6 addr=172.29.199.224:53 31220100 00010000 00000000 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001. sendto=47 +0.000308 select max=7 rfds=[6] wfds=[] efds=[] to=1.999287 select=1 rfds=[6] wfds=[] efds=[] +0.001781 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31208580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004c6 336402c0 0c000100 01000038 400004cb 007101c0 0c000100 01000038 400004cb 007102c0 0c000100 01000038 400004c0 000201c0 0c000100 01000038 400004c0 000202c0 0c000100 01000038 400004c6 336401c0 12000200 01000038 40000c06 72616469 7573026e 73c012c0 12000200 01000038 40000a07 76616d70 697265c0 a2c01200 02000100 00384000 0d0a7465 6c656361 73746572 c0a2c012 00020001 00003840 000c0970 72656369 73696f6e c0a2c09b 00010001 00003840 00043e31 cc92c09b 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0b3 00010001 00003840 00043e31 cc96c0b3 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c0e2 00010001 00003840 0004d40d c646c0e2 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0c9 00010001 00003840 0004d40d c647c0c9 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000411 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31228580 00010006 00040008 056d6164 64720664 6e736572 72096469 73746f72 74656403 6f726702 756b0000 010001c0 0c000100 01000038 400004cb 007101c0 0c000100 01000038 400004cb 007102c0 0c000100 01000038 400004c0 000201c0 0c000100 01000038 400004c0 000202c0 0c000100 01000038 400004c6 336401c0 0c000100 01000038 400004c6 336402c0 12000200 01000038 40000c06 72616469 7573026e 73c012c0 12000200 01000038 40000c09 70726563 6973696f 6ec0a2c0 12000200 01000038 40000a07 76616d70 697265c0 a2c01200 02000100 00384000 0d0a7465 6c656361 73746572 c0a2c09b 00010001 00003840 00043e31 cc92c09b 001c0001 00003840 00102001 04701f09 1b980000 00000000 0002c0cb 00010001 00003840 00043e31 cc96c0cb 001c0001 00003840 00102001 04701f09 1b980000 00000000 0006c0b3 00010001 00003840 0004d40d c646c0b3 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0006c0e1 00010001 00003840 0004d40d c647c0e1 001c0001 00003840 00102001 0ba80000 01d90000 00000000 0007. +0.000482 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000103 close fd=6 close=OK +0.001487 adns-1.5.0~rc1/regress/case-sillyrp.sys0000664000175000017500000001613512422540543016200 0ustar ianianadnstest default :0x0|17,0x20000|17 0x70/silly-rp-dm.test.iwj.relativity.greenend.org.uk 0x70/silly-rp-lp.test.iwj.relativity.greenend.org.uk silly-rp-lp.test.iwj.relativity.greenend.org.uk silly-rp-dm.test.iwj.relativity.greenend.org.uk start 929580348.131048 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000207 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000086 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000061 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 0b73696c 6c792d72 702d646d 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=65 +0.000768 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 0b73696c 6c792d72 702d646d 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=65 +0.001010 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 0b73696c 6c792d72 702d6c70 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=65 +0.000607 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 0b73696c 6c792d72 702d6c70 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=65 +0.000543 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 0b73696c 6c792d72 702d6c70 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=65 +0.000544 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 0b73696c 6c792d72 702d6c70 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=65 +0.000535 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 0b73696c 6c792d72 702d646d 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=65 +0.000538 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 0b73696c 6c792d72 702d646d 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01. sendto=65 +0.000569 select max=5 rfds=[4] wfds=[] efds=[] to=1.994886 select=1 rfds=[4] wfds=[] efds=[] +0.005696 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00010001 0b73696c 6c792d72 702d646d 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 11000100 00003c00 1302692e 09726f6f 74006e75 6c6c036f 72670000 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000200 01000000 3c000603 6e7330c0 69c08f00 01000100 01518000 04ac122d 06. +0.000936 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000308 select max=5 rfds=[4] wfds=[] efds=[] to=1.988714 select=1 rfds=[4] wfds=[] efds=[] +0.003951 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010001 00010001 0b73696c 6c792d72 702d646d 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 11000100 00003c00 1302692e 09726f6f 74006e75 6c6c036f 72670000 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000200 01000000 3c000603 6e7330c0 69c08f00 01000100 01518000 04ac122d 06. +0.000891 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000192 select max=5 rfds=[4] wfds=[] efds=[] to=1.984690 select=1 rfds=[4] wfds=[] efds=[] +0.003968 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010001 00010001 0b73696c 6c792d72 702d6c70 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 11000100 00003c00 190d7370 6f6e6700 666c6962 626c6504 7563616d 036f7267 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 02000100 00003c00 06036e73 30c06fc0 95000100 01000151 800004ac 122d06. +0.000915 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000193 select max=5 rfds=[4] wfds=[] efds=[] to=1.980221 select=1 rfds=[4] wfds=[] efds=[] +0.004041 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228580 00010001 00010001 0b73696c 6c792d72 702d6c70 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 11000100 00003c00 190d7370 6f6e6700 666c6962 626c6504 7563616d 036f7267 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 02000100 00003c00 06036e73 30c06fc0 95000100 01000151 800004ac 122d06. +0.000915 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000154 select max=5 rfds=[4] wfds=[] efds=[] to=1.975654 select=1 rfds=[4] wfds=[] efds=[] +0.003970 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238580 00010001 00010001 0b73696c 6c792d72 702d6c70 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 11000100 00003c00 190d7370 6f6e6700 666c6962 626c6504 7563616d 036f7267 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 02000100 00003c00 06036e73 30c06fc0 95000100 01000151 800004ac 122d06. +0.000911 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000173 select max=5 rfds=[4] wfds=[] efds=[] to=1.971144 select=1 rfds=[4] wfds=[] efds=[] +0.005737 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248580 00010001 00010001 0b73696c 6c792d72 702d6c70 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 11000100 00003c00 190d7370 6f6e6700 666c6962 626c6504 7563616d 036f7267 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 02000100 00003c00 06036e73 30c06fc0 95000100 01000151 800004ac 122d06. +0.000914 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000151 select max=5 rfds=[4] wfds=[] efds=[] to=1.964877 select=1 rfds=[4] wfds=[] efds=[] +0.004001 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258580 00010001 00010001 0b73696c 6c792d72 702d646d 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 11000100 00003c00 1302692e 09726f6f 74006e75 6c6c036f 72670000 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000200 01000000 3c000603 6e7330c0 69c08f00 01000100 01518000 04ac122d 06. +0.000911 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000155 select max=5 rfds=[4] wfds=[] efds=[] to=1.960348 select=1 rfds=[4] wfds=[] efds=[] +0.004043 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268580 00010001 00010001 0b73696c 6c792d72 702d646d 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00001100 01c00c00 11000100 00003c00 1302692e 09726f6f 74006e75 6c6c036f 72670000 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000200 01000000 3c000603 6e7330c0 69c08f00 01000100 01518000 04ac122d 06. +0.000886 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000191 close fd=4 close=OK +0.000160 adns-1.5.0~rc1/regress/case-mailboxes.sys0000664000175000017500000000221312422540543016455 0ustar ianianadnstest default :0x20000|17 silly-rp.test.iwj.relativity.greenend.org.uk start 923859567.899146 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000411 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000094 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000073 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 0873696c 6c792d72 70047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000011 0001. sendto=62 +0.000670 select max=5 rfds=[4] wfds=[] efds=[] to=1.999330 select=1 rfds=[4] wfds=[] efds=[] +0.008169 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010006 00000000 0873696c 6c792d72 70047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000011 0001c00c 00110001 0000003c 00020000 c00c0011 00010000 003c000d 01690475 63616d03 6f726700 00c00c00 11000100 00003c00 0703692e 6ac05a00 c00c0011 00010000 003c0008 04692e2e 6ac05a00 c00c0011 00010000 003c0006 022e69c0 5a00c00c 00110001 0000003c 00060269 2ec05a00. +0.000992 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000604 close fd=4 close=OK +0.000359 adns-1.5.0~rc1/regress/case-tcpblockbrk.err0000664000175000017500000000000012421042027016725 0ustar ianianadns-1.5.0~rc1/regress/case-tcpbreakin.out0000664000175000017500000000062112421042027016577 0ustar ianianadns debug: using nameserver 172.18.45.6 6.45.18.172.in-addr.arpa flags 2 type 65548 PTR(checked) submitted adns debug: TCP connected (NS=172.18.45.6) adns warning: TCP connection failed: write: Broken pipe (NS=172.18.45.6) adns debug: TCP connected (NS=172.18.45.6) 6.45.18.172.in-addr.arpa flags 2 type PTR(checked): OK; nrrs=1; cname=$; owner=$; ttl=86400 davenant.relativity.greenend.org.uk rc=0 adns-1.5.0~rc1/regress/case-unknown2.sys0000664000175000017500000000413512422510662016257 0ustar ianian./adnshost default -t type2 -Qq ucam.org. start 1144369677.011111 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000083 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000049 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000043 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 04756361 6d036f72 67000002 0001. sendto=26 +0.000308 select max=7 rfds=[6] wfds=[] efds=[] to=1.999692 select=0 rfds=[] wfds=[] efds=[] +2.-00406 select max=7 rfds=[6] wfds=[] efds=[] to=0.000098 select=0 rfds=[] wfds=[] efds=[] +0.000987 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 04756361 6d036f72 67000002 0001. sendto=26 +0.000244 select max=7 rfds=[6] wfds=[] efds=[] to=1.999756 select=0 rfds=[] wfds=[] efds=[] +2.-00531 select max=7 rfds=[6] wfds=[] efds=[] to=0.000287 select=0 rfds=[] wfds=[] efds=[] +0.000988 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 04756361 6d036f72 67000002 0001. sendto=26 +0.000252 select max=7 rfds=[6] wfds=[] efds=[] to=1.999748 select=0 rfds=[] wfds=[] efds=[] +2.-00540 select max=7 rfds=[6] wfds=[] efds=[] to=0.000288 select=0 rfds=[] wfds=[] efds=[] +0.000989 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 04756361 6d036f72 67000002 0001. sendto=26 +0.000237 select max=7 rfds=[6] wfds=[] efds=[] to=1.999763 select=1 rfds=[6] wfds=[] efds=[] +1.961402 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010004 00040004 04756361 6d036f72 67000002 00010475 63616d03 6f726700 00020001 00054600 000c0663 68696172 6b026e73 c01ac01a 00020001 00054600 000b0863 68696d61 657261c0 35c01a00 02000100 05460000 08057261 70756ec0 35c01a00 02000100 05460000 09066265 636b6574 c035c01a 00020001 00054600 0002c02e c01a0002 00010005 46000002 c046c01a 00020001 00054600 0002c05d c01a0002 00010005 46000002 c071c02e 00010001 0001517c 0004c1c9 c8aac046 00010001 0001517c 0004836f 082ac05d 00010001 0001517c 0004836f e86cc071 00010001 0001517c 0004cd86 e6ba. +0.000366 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000089 close fd=6 close=OK +0.000187 adns-1.5.0~rc1/regress/case-tcpblock.sys0000664000175000017500000000614412422510662016301 0ustar ianianadnstest anarres -0x400 2/test.iwj.relativity.greenend.org.uk. start 962142246.340485 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000126 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000052 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000035 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.000459 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000036 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000031 connect fd=5 addr=172.18.45.2:53 connect=EINPROGRESS +0.000184 select max=6 rfds=[4] wfds=[5] efds=[] to=13.999290 select=1 rfds=[] wfds=[5] efds=[] +0.000937 read fd=5 buflen=1 read=EAGAIN +0.000090 write fd=5 0035311f 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=55 +0.000427 write fd=5 00353120 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 020001. write=55 +0.000271 write fd=5 00353121 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 050001. write=55 +0.000429 write fd=5 00353122 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 060001. write=55 +0.000218 write fd=5 00353123 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001. write=55 +0.000212 write fd=5 00353124 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0d0001. write=55 +0.000213 write fd=5 00353125 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0f0001. write=55 +0.000212 write fd=5 00353126 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 100001. write=55 +0.000214 write fd=5 00353127 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001. write=55 +0.000494 write fd=5 00353129 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=55 +0.000239 write fd=5 0035312a 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 020001. write=55 +0.000425 write fd=5 0035312c 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0f0001. write=55 +0.000213 write fd=5 0035312d 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 060001. write=55 +0.000215 write fd=5 0035312e 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001. write=55 +0.000236 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.994245 select=0 rfds=[] wfds=[] efds=[] +30.-04653 close fd=4 close=OK +0.000943 close fd=5 close=OK +0.000113 adns-1.5.0~rc1/regress/case-adh-cancel2.out0000664000175000017500000000000512421042027016512 0ustar ianianrc=0 adns-1.5.0~rc1/regress/case-ptr-aaaa-caps.err0000664000175000017500000000000012421042027017037 0ustar ianianadns-1.5.0~rc1/regress/case-searchabs.err0000664000175000017500000000000012421042027016360 0ustar ianianadns-1.5.0~rc1/regress/case-mailboxes.err0000664000175000017500000000000012421042027016410 0ustar ianianadns-1.5.0~rc1/regress/case-ptr-aaaa-plain.err0000664000175000017500000000000012421042027017214 0ustar ianianadns-1.5.0~rc1/regress/case-tcpallfail.err0000664000175000017500000000000012421042027016540 0ustar ianianadns-1.5.0~rc1/regress/case-child.out0000664000175000017500000000036512421042027015545 0ustar ianianadns debug: using nameserver 172.18.45.6 134.76.224.195.in-addr.arpa flags 0 type 65548 PTR(checked) submitted 134.76.224.195.in-addr.arpa flags 0 type PTR(checked): OK; nrrs=1; cname=$; owner=$; ttl=78694 permutation-city.greenend.org.uk rc=0 adns-1.5.0~rc1/regress/case-srvha.out0000664000175000017500000000133412421042027015602 0ustar ianian_srv._tcp.test.iwj.relativity.greenend.org.uk SRV 10 66 10066 davenant.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.6 ) _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 200 20200 norway.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.40 ) _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 400 20400 anarres.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.2 ) _srv._tcp.test.iwj.relativity.greenend.org.uk SRV 20 100 20100 nxdomain.relativity.greenend.org.uk permfail 300 nxdomain "No such domain" ( ) _jabber._tcp.jabber.org SRV 30 30 5269 jabber.org ok 0 ok "OK" ( INET 208.245.212.98 ) _sip._udp.voip.net.cam.ac.uk SRV 10 1 5060 sip.voip.net.cam.ac.uk ok 0 ok "OK" ( INET 131.111.8.174 ) rc=0 adns-1.5.0~rc1/regress/case-adh-norm.err0000664000175000017500000000005112421042027016140 0ustar ianianadns debug: using nameserver 172.18.45.6 adns-1.5.0~rc1/regress/case-datapluscnamewait.sys0000664000175000017500000014270012422510661020204 0ustar ianianadnstest default -0x400 292/170.99.219.194.in-addr.arpa start 933809632.795174 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000201 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000083 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000062 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.005997 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.016139 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.006108 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.015626 sendto fd=4 addr=172.18.45.6:53 31230100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000c00 01. sendto=45 +0.006041 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. sendto=45 +0.016937 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.005443 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. sendto=45 +0.015782 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.006303 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.015591 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.006039 sendto fd=4 addr=172.18.45.6:53 312b0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000c00 01. sendto=45 +0.017765 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.006116 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.015294 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.006158 select max=5 rfds=[4] wfds=[] efds=[] to=1.838661 select=1 rfds=[4] wfds=[] efds=[] +0.000324 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238180 00010003 00040004 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000c00 01c00c00 0c000100 029ef300 13057072 6f787908 73636f70 6c696665 02677200 c00c0005 00010002 9ef50021 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00c05800 0c000100 029ef300 02c039c0 5c000200 0100029e f3001004 696e666f 08666f72 74686e65 74c048c0 5c000200 0100029e f3000805 6e736865 72c098c0 5c000200 0100029e f3000805 6e737468 65c098c0 5c000200 0100029e f3000c09 74656972 65736961 73c098c0 93000100 010004be 5d00048b 5b0111c0 af000100 01000542 de0004c1 5c1e13c0 c3000100 01000542 a40004c1 5c6e01c0 d7000100 01000542 a40004c2 dbe302. +0.007330 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312b8180 00010003 00040004 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000c00 01c00c00 0c000100 029ef300 13057072 6f787908 73636f70 6c696665 02677200 c00c0005 00010002 9ef50021 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00c05800 0c000100 029ef300 02c039c0 5c000200 0100029e f3001004 696e666f 08666f72 74686e65 74c048c0 5c000200 0100029e f3000805 6e736865 72c098c0 5c000200 0100029e f3000805 6e737468 65c098c0 5c000200 0100029e f3000c09 74656972 65736961 73c098c0 93000100 010004be 5d00048b 5b0111c0 af000100 01000542 de0004c1 5c1e13c0 c3000100 01000542 a40004c1 5c6e01c0 d7000100 01000542 a40004c2 dbe302. +0.002315 sendto fd=4 addr=172.18.45.6:53 312f0100 00010000 00000000 0570726f 78790873 636f706c 69666502 67720000 010001. sendto=35 +0.005642 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000159 select max=5 rfds=[4] wfds=[] efds=[] to=1.822891 select=1 rfds=[4] wfds=[] efds=[] +0.007207 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312f8180 00010001 00040004 0570726f 78790873 636f706c 69666502 67720000 010001c0 0c000100 01000288 460004c2 db63aa08 73636f70 6c696665 02677200 00020001 000542de 0011056e 73617468 08666f72 74686e65 74c03cc0 33000200 01000542 de000805 6e736865 72c050c0 33000200 01000542 de000805 6e737468 65c050c0 33000200 01000542 de000c09 74656972 65736961 73c050c0 4a000100 01000542 a40004c1 5c9603c0 67000100 01000542 de0004c1 5c1e13c0 7b000100 01000542 a40004c1 5c6e01c0 8f000100 01000542 a40004c2 dbe302. +0.001427 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000219 select max=5 rfds=[4] wfds=[] efds=[] to=1.814038 select=0 rfds=[] wfds=[] efds=[] +2.-185431 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.001281 select max=5 rfds=[4] wfds=[] efds=[] to=0.004185 select=0 rfds=[] wfds=[] efds=[] +0.008703 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.001091 select max=5 rfds=[4] wfds=[] efds=[] to=0.010530 select=0 rfds=[] wfds=[] efds=[] +0.018894 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.001185 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.001033 select max=5 rfds=[4] wfds=[] efds=[] to=0.017193 select=0 rfds=[] wfds=[] efds=[] +0.017773 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. sendto=45 +0.001148 select max=5 rfds=[4] wfds=[] efds=[] to=0.015209 select=0 rfds=[] wfds=[] efds=[] +0.018840 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.001149 select max=5 rfds=[4] wfds=[] efds=[] to=0.000663 select=0 rfds=[] wfds=[] efds=[] +0.008852 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. sendto=45 +0.001085 select max=5 rfds=[4] wfds=[] efds=[] to=0.006508 select=0 rfds=[] wfds=[] efds=[] +0.009065 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.001094 select max=5 rfds=[4] wfds=[] efds=[] to=0.002652 select=0 rfds=[] wfds=[] efds=[] +0.009275 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.001088 select max=5 rfds=[4] wfds=[] efds=[] to=0.007880 select=0 rfds=[] wfds=[] efds=[] +0.008377 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.001077 select max=5 rfds=[4] wfds=[] efds=[] to=0.022230 select=0 rfds=[] wfds=[] efds=[] +0.028895 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.001155 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.001072 select max=5 rfds=[4] wfds=[] efds=[] to=0.012518 select=0 rfds=[] wfds=[] efds=[] +0.017777 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.001095 select max=5 rfds=[4] wfds=[] efds=[] to=1.838996 select=0 rfds=[] wfds=[] efds=[] +2.-161506 select max=5 rfds=[4] wfds=[] efds=[] to=0.000502 select=0 rfds=[] wfds=[] efds=[] +0.009962 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.001211 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.001066 select max=5 rfds=[4] wfds=[] efds=[] to=0.018231 select=0 rfds=[] wfds=[] efds=[] +0.017752 select max=5 rfds=[4] wfds=[] efds=[] to=0.000479 select=0 rfds=[] wfds=[] efds=[] +0.009982 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.001151 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.001038 select max=5 rfds=[4] wfds=[] efds=[] to=0.008299 select=0 rfds=[] wfds=[] efds=[] +0.008021 select max=5 rfds=[4] wfds=[] efds=[] to=0.000278 select=0 rfds=[] wfds=[] efds=[] +0.009792 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. sendto=45 +0.001143 select max=5 rfds=[4] wfds=[] efds=[] to=0.009331 select=0 rfds=[] wfds=[] efds=[] +0.008852 select max=5 rfds=[4] wfds=[] efds=[] to=0.000479 select=0 rfds=[] wfds=[] efds=[] +0.009985 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.001184 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. sendto=45 +0.001060 select max=5 rfds=[4] wfds=[] efds=[] to=0.008400 select=0 rfds=[] wfds=[] efds=[] +0.007976 select max=5 rfds=[4] wfds=[] efds=[] to=0.000424 select=0 rfds=[] wfds=[] efds=[] +0.009931 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.001097 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.000764 select max=5 rfds=[4] wfds=[] efds=[] to=0.008465 select=0 rfds=[] wfds=[] efds=[] +0.008502 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.000787 select max=5 rfds=[4] wfds=[] efds=[] to=0.029148 select=0 rfds=[] wfds=[] efds=[] +0.028673 select max=5 rfds=[4] wfds=[] efds=[] to=0.000475 select=0 rfds=[] wfds=[] efds=[] +0.009961 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.001131 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.001027 select max=5 rfds=[4] wfds=[] efds=[] to=0.008360 select=0 rfds=[] wfds=[] efds=[] +0.007873 select max=5 rfds=[4] wfds=[] efds=[] to=0.000487 select=0 rfds=[] wfds=[] efds=[] +0.009998 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.001092 select max=5 rfds=[4] wfds=[] efds=[] to=1.838948 select=0 rfds=[] wfds=[] efds=[] +2.-161498 select max=5 rfds=[4] wfds=[] efds=[] to=0.000446 select=0 rfds=[] wfds=[] efds=[] +0.009968 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.001172 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.001037 select max=5 rfds=[4] wfds=[] efds=[] to=0.018281 select=0 rfds=[] wfds=[] efds=[] +0.017811 select max=5 rfds=[4] wfds=[] efds=[] to=0.000470 select=0 rfds=[] wfds=[] efds=[] +0.009988 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.001156 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.001034 select max=5 rfds=[4] wfds=[] efds=[] to=0.008294 select=0 rfds=[] wfds=[] efds=[] +0.007805 select max=5 rfds=[4] wfds=[] efds=[] to=0.000489 select=0 rfds=[] wfds=[] efds=[] +0.010003 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. sendto=45 +0.001162 select max=5 rfds=[4] wfds=[] efds=[] to=0.009304 select=0 rfds=[] wfds=[] efds=[] +0.008831 select max=5 rfds=[4] wfds=[] efds=[] to=0.000473 select=0 rfds=[] wfds=[] efds=[] +0.009990 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.001153 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. sendto=45 +0.001036 select max=5 rfds=[4] wfds=[] efds=[] to=0.008446 select=0 rfds=[] wfds=[] efds=[] +0.007809 select max=5 rfds=[4] wfds=[] efds=[] to=0.000637 select=0 rfds=[] wfds=[] efds=[] +0.010143 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.001092 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.000740 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.000706 select max=5 rfds=[4] wfds=[] efds=[] to=0.037740 select=0 rfds=[] wfds=[] efds=[] +0.037284 select max=5 rfds=[4] wfds=[] efds=[] to=0.000456 select=0 rfds=[] wfds=[] efds=[] +0.009974 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.001135 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.001077 select max=5 rfds=[4] wfds=[] efds=[] to=0.008299 select=0 rfds=[] wfds=[] efds=[] +0.007902 select max=5 rfds=[4] wfds=[] efds=[] to=0.000397 select=0 rfds=[] wfds=[] efds=[] +0.010170 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.000771 select max=5 rfds=[4] wfds=[] efds=[] to=1.839018 select=0 rfds=[] wfds=[] efds=[] +2.-161432 select max=5 rfds=[4] wfds=[] efds=[] to=0.000450 select=0 rfds=[] wfds=[] efds=[] +0.009951 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.000533 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.000467 select max=5 rfds=[4] wfds=[] efds=[] to=0.019507 select=0 rfds=[] wfds=[] efds=[] +0.019027 select max=5 rfds=[4] wfds=[] efds=[] to=0.000480 select=0 rfds=[] wfds=[] efds=[] +0.009995 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.000505 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.000453 select max=5 rfds=[4] wfds=[] efds=[] to=0.009525 select=0 rfds=[] wfds=[] efds=[] +0.009036 select max=5 rfds=[4] wfds=[] efds=[] to=0.000489 select=0 rfds=[] wfds=[] efds=[] +0.009993 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. sendto=45 +0.000504 select max=5 rfds=[4] wfds=[] efds=[] to=0.009975 select=0 rfds=[] wfds=[] efds=[] +0.009493 select max=5 rfds=[4] wfds=[] efds=[] to=0.000482 select=0 rfds=[] wfds=[] efds=[] +0.009994 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.000528 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. sendto=45 +0.000454 select max=5 rfds=[4] wfds=[] efds=[] to=0.009647 select=0 rfds=[] wfds=[] efds=[] +0.009014 select max=5 rfds=[4] wfds=[] efds=[] to=0.000633 select=0 rfds=[] wfds=[] efds=[] +0.010175 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.000499 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.000450 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.000447 select max=5 rfds=[4] wfds=[] efds=[] to=0.038859 select=0 rfds=[] wfds=[] efds=[] +0.038404 select max=5 rfds=[4] wfds=[] efds=[] to=0.000455 select=0 rfds=[] wfds=[] efds=[] +0.009958 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.000474 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.000453 select max=5 rfds=[4] wfds=[] efds=[] to=0.009854 select=0 rfds=[] wfds=[] efds=[] +0.009107 select max=5 rfds=[4] wfds=[] efds=[] to=0.000747 select=0 rfds=[] wfds=[] efds=[] +0.010102 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.000502 select max=5 rfds=[4] wfds=[] efds=[] to=1.839433 select=0 rfds=[] wfds=[] efds=[] +2.-161012 select max=5 rfds=[4] wfds=[] efds=[] to=0.000445 select=0 rfds=[] wfds=[] efds=[] +0.010011 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.000502 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.000455 select max=5 rfds=[4] wfds=[] efds=[] to=0.019499 select=0 rfds=[] wfds=[] efds=[] +0.019014 select max=5 rfds=[4] wfds=[] efds=[] to=0.000485 select=0 rfds=[] wfds=[] efds=[] +0.009983 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.000498 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.000458 select max=5 rfds=[4] wfds=[] efds=[] to=0.009533 select=0 rfds=[] wfds=[] efds=[] +0.009049 select max=5 rfds=[4] wfds=[] efds=[] to=0.000484 select=0 rfds=[] wfds=[] efds=[] +0.009996 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. sendto=45 +0.000500 select max=5 rfds=[4] wfds=[] efds=[] to=0.009979 select=0 rfds=[] wfds=[] efds=[] +0.009494 select max=5 rfds=[4] wfds=[] efds=[] to=0.000485 select=0 rfds=[] wfds=[] efds=[] +0.009996 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.000564 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. sendto=45 +0.000452 select max=5 rfds=[4] wfds=[] efds=[] to=0.009644 select=0 rfds=[] wfds=[] efds=[] +0.008982 select max=5 rfds=[4] wfds=[] efds=[] to=0.000662 select=0 rfds=[] wfds=[] efds=[] +0.010145 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.000527 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.000453 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.000449 select max=5 rfds=[4] wfds=[] efds=[] to=0.038846 select=0 rfds=[] wfds=[] efds=[] +0.038396 select max=5 rfds=[4] wfds=[] efds=[] to=0.000450 select=0 rfds=[] wfds=[] efds=[] +0.009997 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.000504 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.000454 select max=5 rfds=[4] wfds=[] efds=[] to=0.009631 select=0 rfds=[] wfds=[] efds=[] +0.009036 select max=5 rfds=[4] wfds=[] efds=[] to=0.000595 select=0 rfds=[] wfds=[] efds=[] +0.010011 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.000494 select max=5 rfds=[4] wfds=[] efds=[] to=1.839591 select=0 rfds=[] wfds=[] efds=[] +2.-160907 select max=5 rfds=[4] wfds=[] efds=[] to=0.000498 select=0 rfds=[] wfds=[] efds=[] +0.009988 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.000516 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.000455 select max=5 rfds=[4] wfds=[] efds=[] to=0.019493 select=1 rfds=[4] wfds=[] efds=[] +0.005671 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010001 00010000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01c00c00 05000100 029ee900 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100c03d 00060001 00000258 00380974 65697265 73696173 08666f72 74686e65 74026772 000a686f 73746d61 73746572 c0707709 a5220000 54600000 0e100036 ee800002 a300. +0.001103 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000252 select max=5 rfds=[4] wfds=[] efds=[] to=0.012467 select=0 rfds=[] wfds=[] efds=[] +0.011997 select max=5 rfds=[4] wfds=[] efds=[] to=0.000470 select=0 rfds=[] wfds=[] efds=[] +0.009991 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.000503 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.000454 select max=5 rfds=[4] wfds=[] efds=[] to=0.009523 select=0 rfds=[] wfds=[] efds=[] +0.009039 select max=5 rfds=[4] wfds=[] efds=[] to=0.000484 select=0 rfds=[] wfds=[] efds=[] +0.009993 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. sendto=45 +0.000596 select max=5 rfds=[4] wfds=[] efds=[] to=0.009885 select=0 rfds=[] wfds=[] efds=[] +0.009400 select max=5 rfds=[4] wfds=[] efds=[] to=0.000485 select=0 rfds=[] wfds=[] efds=[] +0.009995 sendto fd=4 addr=172.18.45.6:53 31250100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.000496 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. sendto=45 +0.000452 select max=5 rfds=[4] wfds=[] efds=[] to=0.009685 select=1 rfds=[4] wfds=[] efds=[] +0.005326 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01c00c00 05000100 029ee900 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000679 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000223 select max=5 rfds=[4] wfds=[] efds=[] to=0.003457 select=0 rfds=[] wfds=[] efds=[] +0.002820 select max=5 rfds=[4] wfds=[] efds=[] to=0.000637 select=0 rfds=[] wfds=[] efds=[] +0.010141 sendto fd=4 addr=172.18.45.6:53 31270100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.000502 sendto fd=4 addr=172.18.45.6:53 31290100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. sendto=45 +0.000452 sendto fd=4 addr=172.18.45.6:53 312a0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.000445 select max=5 rfds=[4] wfds=[] efds=[] to=0.038919 select=1 rfds=[4] wfds=[] efds=[] +0.004982 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01c00c00 05000100 029ee900 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000678 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000193 select max=5 rfds=[4] wfds=[] efds=[] to=0.033066 select=1 rfds=[4] wfds=[] efds=[] +0.003845 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298180 00010001 00010000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01c00c00 05000100 029ee900 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100c03d 00060001 00000258 00380974 65697265 73696173 08666f72 74686e65 74026772 000a686f 73746d61 73746572 c0707709 a5220000 54600000 0e100036 ee800002 a300. +0.001064 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000234 select max=5 rfds=[4] wfds=[] efds=[] to=0.027923 select=1 rfds=[4] wfds=[] efds=[] +0.002680 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01c00c00 05000100 029ee900 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000678 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000187 select max=5 rfds=[4] wfds=[] efds=[] to=0.024378 select=0 rfds=[] wfds=[] efds=[] +0.023895 select max=5 rfds=[4] wfds=[] efds=[] to=0.000483 select=0 rfds=[] wfds=[] efds=[] +0.009993 sendto fd=4 addr=172.18.45.6:53 312c0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. sendto=45 +0.000504 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.000448 select max=5 rfds=[4] wfds=[] efds=[] to=0.009543 select=1 rfds=[4] wfds=[] efds=[] +0.008307 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01c00c00 05000100 029ee900 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000709 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000195 select max=5 rfds=[4] wfds=[] efds=[] to=0.000332 select=0 rfds=[] wfds=[] efds=[] +1.-990116 sendto fd=4 addr=172.18.45.6:53 312e0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. sendto=45 +0.000501 select max=5 rfds=[4] wfds=[] efds=[] to=1.839522 select=1 rfds=[4] wfds=[] efds=[] +0.055562 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01c00c00 05000100 029ee800 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100. +0.000679 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000223 select max=5 rfds=[4] wfds=[] efds=[] to=1.783058 select=1 rfds=[4] wfds=[] efds=[] +0.111990 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. +0.000458 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000171 select max=5 rfds=[4] wfds=[] efds=[] to=1.670439 select=1 rfds=[4] wfds=[] efds=[] +0.084620 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. +0.000444 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000167 select max=5 rfds=[4] wfds=[] efds=[] to=1.585208 select=1 rfds=[4] wfds=[] efds=[] +0.105188 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. +0.000511 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000168 select max=5 rfds=[4] wfds=[] efds=[] to=1.479341 select=1 rfds=[4] wfds=[] efds=[] +0.004276 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. +0.000441 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000162 select max=5 rfds=[4] wfds=[] efds=[] to=1.474462 select=0 rfds=[] wfds=[] efds=[] +1.473985 select max=5 rfds=[4] wfds=[] efds=[] to=0.000477 select=0 rfds=[] wfds=[] efds=[] +0.009985 sendto fd=4 addr=172.18.45.6:53 31200100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. sendto=45 +0.000545 select max=5 rfds=[4] wfds=[] efds=[] to=0.019932 select=0 rfds=[] wfds=[] efds=[] +0.019448 select max=5 rfds=[4] wfds=[] efds=[] to=0.000484 select=1 rfds=[4] wfds=[] efds=[] +0.004980 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.000489 sendto fd=4 addr=172.18.45.6:53 31220100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.000454 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010001 00010000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01c00c00 05000100 02a30000 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100c03d 00060001 00000258 00380974 65697265 73696173 08666f72 74686e65 74026772 000a686f 73746d61 73746572 c0707709 a5220000 54600000 0e100036 ee800002 a300. +0.001060 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000249 select max=5 rfds=[4] wfds=[] efds=[] to=0.013241 select=1 rfds=[4] wfds=[] efds=[] +0.007284 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228180 00010001 00010000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01c00c00 05000100 02a30000 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100c03d 00060001 00000258 00380974 65697265 73696173 08666f72 74686e65 74026772 000a686f 73746d61 73746572 c0707709 a5220000 54600000 0e100036 ee800002 a300. +0.001134 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000207 select max=5 rfds=[4] wfds=[] efds=[] to=0.004616 select=0 rfds=[] wfds=[] efds=[] +0.004131 select max=5 rfds=[4] wfds=[] efds=[] to=0.000485 select=0 rfds=[] wfds=[] efds=[] +0.009996 sendto fd=4 addr=172.18.45.6:53 31240100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. sendto=45 +0.000510 select max=5 rfds=[4] wfds=[] efds=[] to=0.009970 select=1 rfds=[4] wfds=[] efds=[] +0.005957 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248180 00010001 00010000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01c00c00 05000100 02a30000 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100c03d 00060001 00000258 00380974 65697265 73696173 08666f72 74686e65 74026772 000a686f 73746d61 73746572 c0707709 a5220000 54600000 0e100036 ee800002 a300. +0.001093 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000200 select max=5 rfds=[4] wfds=[] efds=[] to=0.002720 select=0 rfds=[] wfds=[] efds=[] +0.002235 select max=5 rfds=[4] wfds=[] efds=[] to=0.000485 select=0 rfds=[] wfds=[] efds=[] +0.009985 sendto fd=4 addr=172.18.45.6:53 31260100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. sendto=45 +0.000495 select max=5 rfds=[4] wfds=[] efds=[] to=0.059970 select=1 rfds=[4] wfds=[] efds=[] +0.007581 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268180 00010001 00010000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01c00c00 05000100 02a30000 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100c03d 00060001 00000258 00380974 65697265 73696173 08666f72 74686e65 74026772 000a686f 73746d61 73746572 c0707709 a5220000 54600000 0e100036 ee800002 a300. +0.001095 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000204 select max=5 rfds=[4] wfds=[] efds=[] to=0.051090 select=0 rfds=[] wfds=[] efds=[] +0.050594 select max=5 rfds=[4] wfds=[] efds=[] to=0.000496 select=0 rfds=[] wfds=[] efds=[] +0.010020 sendto fd=4 addr=172.18.45.6:53 312d0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. sendto=45 +0.000510 select max=5 rfds=[4] wfds=[] efds=[] to=1.884517 select=1 rfds=[4] wfds=[] efds=[] +1.-971134 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010001 00010000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01c00c00 05000100 02a2ff00 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100c03d 00060001 00000257 00380974 65697265 73696173 08666f72 74686e65 74026772 000a686f 73746d61 73746572 c0707709 a5220000 54600000 0e100036 ee800002 a300. +0.001129 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000209 select max=5 rfds=[4] wfds=[] efds=[] to=1.854313 select=1 rfds=[4] wfds=[] efds=[] +0.294993 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. +0.000451 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000174 select max=5 rfds=[4] wfds=[] efds=[] to=1.558695 select=1 rfds=[4] wfds=[] efds=[] +0.012449 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. +0.000443 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000195 select max=5 rfds=[4] wfds=[] efds=[] to=1.545608 select=1 rfds=[4] wfds=[] efds=[] +0.033254 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. +0.000442 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000165 select max=5 rfds=[4] wfds=[] efds=[] to=1.511747 select=1 rfds=[4] wfds=[] efds=[] +0.033698 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. +0.000445 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000165 select max=5 rfds=[4] wfds=[] efds=[] to=1.477439 select=1 rfds=[4] wfds=[] efds=[] +0.087089 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. +0.000475 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000165 select max=5 rfds=[4] wfds=[] efds=[] to=1.389710 select=1 rfds=[4] wfds=[] efds=[] +0.013746 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. +0.000440 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000165 select max=5 rfds=[4] wfds=[] efds=[] to=1.375359 select=1 rfds=[4] wfds=[] efds=[] +0.019341 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. +0.000440 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000165 select max=5 rfds=[4] wfds=[] efds=[] to=1.355413 select=1 rfds=[4] wfds=[] efds=[] +0.027349 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. +0.000442 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000167 select max=5 rfds=[4] wfds=[] efds=[] to=1.327455 select=1 rfds=[4] wfds=[] efds=[] +1.-481849 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. +0.000476 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000178 select max=5 rfds=[4] wfds=[] efds=[] to=0.808650 select=1 rfds=[4] wfds=[] efds=[] +0.004046 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. +0.000443 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000223 select max=5 rfds=[4] wfds=[] efds=[] to=0.803938 select=1 rfds=[4] wfds=[] efds=[] +0.003854 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. +0.000442 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000169 select max=5 rfds=[4] wfds=[] efds=[] to=0.799473 select=1 rfds=[4] wfds=[] efds=[] +0.004099 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. +0.000431 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000159 select max=5 rfds=[4] wfds=[] efds=[] to=0.794784 select=0 rfds=[] wfds=[] efds=[] +0.799306 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.000587 select max=5 rfds=[4] wfds=[] efds=[] to=1.999413 select=1 rfds=[4] wfds=[] efds=[] +1.089275 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312e8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. +0.000477 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000179 select max=5 rfds=[4] wfds=[] efds=[] to=0.909482 select=1 rfds=[4] wfds=[] efds=[] +1.-954601 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. +0.000444 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000166 select max=5 rfds=[4] wfds=[] efds=[] to=0.863473 select=1 rfds=[4] wfds=[] efds=[] +0.176995 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. +0.000520 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000236 select max=5 rfds=[4] wfds=[] efds=[] to=0.685722 select=1 rfds=[4] wfds=[] efds=[] +0.009094 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. +0.000441 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000165 select max=5 rfds=[4] wfds=[] efds=[] to=0.676022 select=1 rfds=[4] wfds=[] efds=[] +0.004004 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. +0.000437 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000160 select max=5 rfds=[4] wfds=[] efds=[] to=0.671421 select=1 rfds=[4] wfds=[] efds=[] +0.003792 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. +0.000441 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000189 select max=5 rfds=[4] wfds=[] efds=[] to=0.666999 select=1 rfds=[4] wfds=[] efds=[] +0.108860 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. +0.000450 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000164 select max=5 rfds=[4] wfds=[] efds=[] to=0.557525 select=1 rfds=[4] wfds=[] efds=[] +0.378539 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. +0.000446 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000165 select max=5 rfds=[4] wfds=[] efds=[] to=0.178375 select=1 rfds=[4] wfds=[] efds=[] +0.021040 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. +0.000485 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000162 select max=5 rfds=[4] wfds=[] efds=[] to=0.156688 select=1 rfds=[4] wfds=[] efds=[] +0.004025 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. +0.000434 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000160 select max=5 rfds=[4] wfds=[] efds=[] to=0.152069 select=1 rfds=[4] wfds=[] efds=[] +0.003840 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. +0.000436 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000160 select max=5 rfds=[4] wfds=[] efds=[] to=0.147633 select=1 rfds=[4] wfds=[] efds=[] +0.135825 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. +0.000442 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000164 select max=5 rfds=[4] wfds=[] efds=[] to=0.011202 select=0 rfds=[] wfds=[] efds=[] +0.010716 select max=5 rfds=[4] wfds=[] efds=[] to=0.000486 select=0 rfds=[] wfds=[] efds=[] +0.009980 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.000496 select max=5 rfds=[4] wfds=[] efds=[] to=1.999504 select=1 rfds=[4] wfds=[] efds=[] +2.-383424 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312c8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. +0.000484 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000222 select max=5 rfds=[4] wfds=[] efds=[] to=0.382222 select=1 rfds=[4] wfds=[] efds=[] +0.004359 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312a8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. +0.000454 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000163 select max=5 rfds=[4] wfds=[] efds=[] to=0.377246 select=1 rfds=[4] wfds=[] efds=[] +0.003697 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31298180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. +0.000440 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000161 select max=5 rfds=[4] wfds=[] efds=[] to=0.372948 select=1 rfds=[4] wfds=[] efds=[] +0.003846 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31278180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00001100 01. +0.000439 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000191 select max=5 rfds=[4] wfds=[] efds=[] to=0.368472 select=1 rfds=[4] wfds=[] efds=[] +0.101004 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00001000 01. +0.000442 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000163 select max=5 rfds=[4] wfds=[] efds=[] to=0.266863 select=1 rfds=[4] wfds=[] efds=[] +0.004860 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000f00 01. +0.000458 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000162 select max=5 rfds=[4] wfds=[] efds=[] to=0.261383 select=1 rfds=[4] wfds=[] efds=[] +0.003486 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000d00 01. +0.000436 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000207 select max=5 rfds=[4] wfds=[] efds=[] to=0.257254 select=1 rfds=[4] wfds=[] efds=[] +0.005999 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. +0.000444 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000163 select max=5 rfds=[4] wfds=[] efds=[] to=0.250648 select=1 rfds=[4] wfds=[] efds=[] +0.003548 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000200 01. +0.000437 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000159 select max=5 rfds=[4] wfds=[] efds=[] to=0.246504 select=1 rfds=[4] wfds=[] efds=[] +0.003713 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000100 01. +0.000464 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000161 select max=5 rfds=[4] wfds=[] efds=[] to=0.242166 select=0 rfds=[] wfds=[] efds=[] +0.241706 select max=5 rfds=[4] wfds=[] efds=[] to=0.000460 select=0 rfds=[] wfds=[] efds=[] +0.009972 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.000493 select max=5 rfds=[4] wfds=[] efds=[] to=1.999507 select=0 rfds=[] wfds=[] efds=[] +2.-00956 select max=5 rfds=[4] wfds=[] efds=[] to=0.000463 select=0 rfds=[] wfds=[] efds=[] +0.009960 sendto fd=4 addr=172.18.45.6:53 31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01. sendto=45 +0.000477 select max=5 rfds=[4] wfds=[] efds=[] to=1.999523 select=1 rfds=[4] wfds=[] efds=[] +1.-273409 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 312d8180 00010000 00000000 03313730 03313638 02393903 32313903 31393407 696e2d61 64647204 61727061 00000600 01. +0.000463 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000177 select max=5 rfds=[4] wfds=[] efds=[] to=1.272292 select=1 rfds=[4] wfds=[] efds=[] +0.110798 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218180 00010001 00050005 03313730 02393903 32313903 31393407 696e2d61 64647204 61727061 00000500 01c00c00 05000100 01ade800 21033137 30033136 38023939 03323139 03313934 07696e2d 61646472 04617270 6100c044 00020001 0000bc71 00170974 65697265 73696173 08666f72 74686e65 74026772 00c04400 02000100 00bc7100 0d026e73 04726970 65036e65 7400c044 00020001 0000bc71 0008056e 73617468 c070c044 00020001 0000bc71 0008056e 73746865 c070c044 00020001 0000bc71 0008056e 73686572 c070c066 00010001 00054576 0004c2db e302c089 00010001 00029904 0004c100 00c1c0a2 00010001 0004c1d7 0004c15c 9603c0b6 00010001 000484f0 0004c15c 6e01c0ca 00010001 00054600 0004c15c 1e13. +0.001965 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000301 close fd=4 close=OK +0.000256 adns-1.5.0~rc1/regress/case-arf-norm.err0000664000175000017500000000014312421042027016156 0ustar ianianadns debug: using nameserver 172.18.45.6 adns test harness: memory leaked: 11 24 31 43 48 60 65 77 adns-1.5.0~rc1/regress/init-default.text0000664000175000017500000000017312421042027016310 0ustar ianiannameserver 172.18.45.6 sortlist 127.0.0.1/32 172.18.45.0/28 172.18.45.0/24 search davenant.greenend.org.uk greenend.org.uk adns-1.5.0~rc1/regress/m1test0000775000175000017500000000471712421042027014170 0ustar ianian#!/bin/bash # usage: m1test [] ' # test recording script # # This file is part of adns, which is # Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson # Copyright (C) 2014 Mark Wooding # Copyright (C) 1999-2000,2003,2006 Tony Finch # Copyright (C) 1991 Massachusetts Institute of Technology # (See the file INSTALL for full details.) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation. set -e : ${srcdir=.} if [ $# -lt 3 ] then echo >&2 \ 'usage: m1test [-] ["<"] [=] ("<" means read input from case-.in)' exit 1 fi case="$srcdir/case-$1"; shift initfile="$1"; shift hrecord="./adnstest_record" case "$1" in -*) initflags="$1"; shift esac if test "x$1" = "x<" then shift; exec <"$case.in" fi case "$1" in =*) hrecord="`echo \"$1\" | sed -e 's/^=//'`"; shift esac if test ! -f "$hrecord" -a -f "${hrecord}_record" then case "$hrecord" in /*) program="$hrecord" ;; *) program="./$hrecord" ;; esac hrecord="${program}_record" else program="$(echo "$hrecord" | sed -e 's/ .*//; s/_record$//')" fi queryargs="$*" initstring="`cat $srcdir/init-$initfile.text`" xinitflagsf=$srcdir/$program-xinitflags.text if test -f $xinitflagsf then useinitflags="$initflags $(cat $xinitflagsf)"; else useinitflags="$initflags /" fi echo $program $initfile $initflags >"$case.sys" echo "$queryargs" >>"$case.sys" EF_DISABLE_BANNER=1 export EF_DISABLE_BANNER rm -f pipe.out pipe.err mknod pipe.out p mknod pipe.err p tee pipe.out exec 5>pipe.err echo running hrecord $initflags "... $queryargs" set +e ADNS_TEST_OUT_FD=3 3>>"$case.sys" >&4 2>&5 \ $hrecord $useinitflags"$initstring" $queryargs rc=$? set -e echo "rc=$rc" >&4 exec 4>&- exec 5>&- wait $tee_out wait $tee_err echo "exit status: $rc" adns-1.5.0~rc1/regress/case-tcpblockbrk.out0000664000175000017500000000616012421042027016761 0ustar ianianadns debug: using nameserver 172.18.45.2 test.iwj.relativity.greenend.org.uk. flags 2 type 1 A(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 2 NS(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 5 CNAME(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 6 SOA(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 12 PTR(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 13 HINFO(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 15 MX(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 16 TXT(-) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 17 RP(raw) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65537 A(addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65538 NS(+addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65548 PTR(checked) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 65551 MX(+addr) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 131078 SOA(822) submitted test.iwj.relativity.greenend.org.uk. flags 2 type 131089 RP(822) submitted test.iwj.relativity.greenend.org.uk. flags 2 type PTR(checked): Domain invalid for particular DNS query type; nrrs=0; cname=$; owner=$; ttl=604800 adns debug: TCP connected (NS=172.18.45.2) adns warning: TCP connection failed: read: Connection reset by peer (NS=172.18.45.2) adns warning: TCP connection failed: connect/read: Connection refused (NS=172.18.45.2) test.iwj.relativity.greenend.org.uk. flags 2 type A(-): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type NS(raw): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type CNAME(-): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type SOA(raw): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type PTR(raw): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type HINFO(-): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type MX(raw): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type TXT(-): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type RP(raw): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type NS(+addr): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type MX(+addr): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type SOA(822): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type RP(822): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 test.iwj.relativity.greenend.org.uk. flags 2 type A(addr): All nameservers failed; nrrs=0; cname=$; owner=$; ttl=604798 rc=0 adns-1.5.0~rc1/regress/case-tcpmultipart.sys0000664000175000017500000003024112422540543017224 0ustar ianianadnstest tunnel :0x0|12 2/132.76.224.195.in-addr.arpa 2/manymorerrs.test.culture.dotat.at. 2/132.76.224.195.in-addr.arpa start 938365454.994875 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000164 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000055 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000043 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.001177 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000044 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000041 connect fd=5 addr=172.31.80.9:53 connect=EINPROGRESS +0.000414 select max=6 rfds=[4] wfds=[5] efds=[] to=13.998324 select=1 rfds=[] wfds=[5] efds=[] +1.-647444 read fd=5 buflen=1 read=EAGAIN +0.000176 write fd=5 002d311f 01000001 00000000 00000331 33320237 36033232 34033139 3507696e 2d616464 72046172 70610000 0c0001. write=47 +0.000727 write fd=5 00333120 01000001 00000000 00000b6d 616e796d 6f726572 72730474 65737407 63756c74 75726505 646f7461 74026174 00000c00 01. write=53 +0.000359 write fd=5 002d3121 01000001 00000000 00000331 33320237 36033232 34033139 3507696e 2d616464 72046172 70610000 0c0001. write=47 +0.000273 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.644233 select=1 rfds=[5] wfds=[] efds=[] +0.538651 read fd=5 buflen=2 read=OK 0127. +0.000289 read fd=5 buflen=295 read=OK 311f8580 00010001 00050005 03313332 02373603 32323403 31393507 696e2d61 64647204 61727061 00000c00 01c00c00 0c000100 01518000 18066368 6961726b 08677265 656e656e 64036f72 6702756b 00023736 03323234 03313935 07696e2d 61646472 04617270 61000002 00010001 51800011 04646e73 3006656c 6d61696c 02636fc0 4dc05100 02000100 01518000 0704646e 7331c079 c0510002 00010001 51800007 04646e73 32c079c0 51000200 01000151 80000e03 6e733204 78617261 036e6574 00c05100 02000100 01518000 06036e73 33c0bbc0 74000100 01000055 c80004c1 7ae911c0 91000100 0100004f 650004c1 7ae901c0 a4000100 0100004f 650004c3 e04cc1c0 b7000100 0100014c 4b0004c2 8fa16bc0 d1000100 0100014c 4b0004c2 8fa319. +0.001247 read fd=5 buflen=297 read=EAGAIN +0.000476 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.105246 select=1 rfds=[5] wfds=[] efds=[] +1.-401146 read fd=5 buflen=297 read=OK 0dbe3120 85800001 003c0002 00020b6d 616e796d 6f726572 72730474 65737407 63756c74 75726505 646f7461 74026174 00000c00 01c00c00 0c000100 01518000 40107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 30300474 65737407 63756c74 75726505 646f7461 74026174 00c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3031c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0230 32c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023033 c068c00c 00. +0.001076 read fd=5 buflen=3223 read=OK 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3034c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0230 35c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023036 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023037c0 68c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3038c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0230 39c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023130 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023131c0 68c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3132c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0231 33c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023134 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f. +0.002411 read fd=5 buflen=2572 read=EAGAIN +0.000101 select max=6 rfds=[4,5] wfds=[] efds=[5] to=28.502804 select=1 rfds=[5] wfds=[] efds=[] +0.336462 read fd=5 buflen=2572 read=OK 6e023135 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023136c0 68c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3137c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0231 38c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023139 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023230c0 68c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3231c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0232 32c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023233 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023234c0 68c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3235c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0232 36c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023237 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023238c0 68c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3239c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0233 30c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023331 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023332c0 68c00c00 0c000100. +0.003315 read fd=5 buflen=1624 read=EAGAIN +0.000124 select max=6 rfds=[4,5] wfds=[] efds=[5] to=28.162903 select=1 rfds=[5] wfds=[] efds=[] +1.-683589 read fd=5 buflen=1624 read=OK 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3333c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0233 34c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023335 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023336c0 68c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3337c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0233 38c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023339 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023430c0 68c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3431c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0234 32c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023433 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023434c0 68c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3435c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0234 36c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023437 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023438c0 68c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3439c068 c00c000c 00010001 5180002b 10766572 792d6c6f. +0.003201 read fd=5 buflen=676 read=EAGAIN +0.000114 select max=6 rfds=[4,5] wfds=[] efds=[5] to=27.843177 select=1 rfds=[5] wfds=[] efds=[] +0.376863 read fd=5 buflen=676 read=OK 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0235 30c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023531 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023532c0 68c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3533c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0235 34c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023535 c068c00c 000c0001 00015180 002b1076 6572792d 6c6f6e67 2d646f6d 61696e14 746f2d65 6e737572 652d7472 756e6361 74696f6e 023536c0 68c00c00 0c000100 01518000 2b107665 72792d6c 6f6e672d 646f6d61 696e1474 6f2d656e 73757265 2d747275 6e636174 696f6e02 3537c068 c00c000c 00010001 5180002b 10766572 792d6c6f 6e672d64 6f6d6169 6e14746f 2d656e73 7572652d 7472756e 63617469 6f6e0235 38c068c0 0c000c00 01000151 80002b10 76657279 2d6c6f6e 672d646f 6d61696e 14746f2d 656e7375 72652d74 72756e63 6174696f 6e023539 c068c06d 00020001 00054600 0014076c 69627261 7279066c 73706163 65036f72 6700c06d 00020001 00054600 001b026e 73066368 6961726b 08677265 656e656e 64036f72 6702756b 00076c69 62726172 79066c73 70616365 036f7267 00000100 01000161 890004c3 c8013a02 6e730663 68696172 6b086772 65656e65 6e64036f 72670275 6b000001 00010001 51800004 c3e04c84. +0.002355 read fd=5 buflen=3520 read=OK 01273121 85800001 00010005 00050331 33320237 36033232 34033139 3507696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000151 80001806 63686961 726b0867 7265656e 656e6403 6f726702 756b0002 37360332 32340331 39350769 6e2d6164 64720461 72706100 00020001 00015180 00110464 6e733006 656c6d61 696c0263 6fc04dc0 51000200 01000151 80000704 646e7331 c079c051 00020001 00015180 00070464 6e7332c0 79c05100 02000100 01518000 0e036e73 32047861 7261036e 657400c0 51000200 01000151 80000603 6e7333c0 bbc07400 01000100 0055c800 04c17ae9 11c09100 01000100 004f6500 04c17ae9 01c0a400 01000100 004f6500 04c3e04c c1c0b700 01000100. +0.009447 read fd=5 buflen=3248 read=EAGAIN +0.000066 select max=6 rfds=[4,5] wfds=[] efds=[5] to=27.454446 select=1 rfds=[5] wfds=[] efds=[] +0.316770 read fd=5 buflen=3248 read=OK 014c4b00 04c28fa1 6bc0d100 01000100 014c4b00 04c28fa3 19. +0.000195 read fd=5 buflen=3520 read=EAGAIN +0.000429 close fd=4 close=OK +0.000375 close fd=5 close=OK +0.000226 adns-1.5.0~rc1/regress/case-tcpblockbrk.sys0000664000175000017500000000740012422510662016774 0ustar ianianadnstest anarres -0x700 2/test.iwj.relativity.greenend.org.uk. start 962143388.709150 socket domain=AF_INET type=SOCK_DGRAM socket=5 +0.000434 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000462 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000439 socket domain=AF_INET type=SOCK_STREAM socket=6 +0.001725 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000438 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000414 connect fd=6 addr=172.18.45.2:53 connect=EINPROGRESS +0.000724 select max=7 rfds=[5] wfds=[6] efds=[] to=13.996699 select=1 rfds=[] wfds=[6] efds=[] +0.003661 read fd=6 buflen=1 read=EAGAIN +0.000477 write fd=6 0035311f 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=55 +0.001553 write fd=6 00353120 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 020001. write=55 +0.001612 write fd=6 00353121 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 050001. write=55 +0.001289 write fd=6 00353122 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 060001. write=55 +0.001204 write fd=6 00353123 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001. write=55 +0.001200 write fd=6 00353124 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0d0001. write=55 +0.001417 write fd=6 00353125 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0f0001. write=55 +0.001199 write fd=6 00353126 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 100001. write=55 +0.001217 write fd=6 00353127 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001. write=55 +0.001214 write fd=6 00353129 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. write=55 +0.001259 write fd=6 0035312a 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 020001. write=55 +0.002445 write fd=6 0035312c 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0f0001. write=55 +0.001254 write fd=6 0035312d 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 060001. write=55 +0.001443 write fd=6 0035312e 01000001 00000000 00000474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 110001. write=55 +0.001271 select max=7 rfds=[5,6] wfds=[] efds=[6] to=29.972984 select=1 rfds=[6] wfds=[] efds=[] +2.-661933 read fd=6 buflen=2 read=ECONNRESET +0.000519 close fd=6 close=OK +0.000636 select max=6 rfds=[5] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000702 socket domain=AF_INET type=SOCK_STREAM socket=6 +0.001734 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000435 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000537 connect fd=6 addr=172.18.45.2:53 connect=EINPROGRESS +0.000608 select max=7 rfds=[5] wfds=[6] efds=[] to=13.996686 select=1 rfds=[] wfds=[6] efds=[] +0.000977 read fd=6 buflen=1 read=ECONNREFUSED +0.000450 close fd=6 close=OK +0.000617 select max=6 rfds=[5] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000689 close fd=5 close=OK +0.002951 adns-1.5.0~rc1/regress/case-quote.out0000664000175000017500000000615312421042027015620 0ustar ianianadns debug: using nameserver 172.18.45.6 hyphen.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted dot.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted plus.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted slash.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted underscore.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted quote.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted backslash.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted null.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted space.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted hash.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted del.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted meta-null.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted meta-del.cname.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted hyphen.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a-b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 dot.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a\.b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 plus.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a+b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 slash.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a/b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 underscore.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a_b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 quote.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a\"b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 backslash.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a\\b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 null.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a\000b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 space.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a\040b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 hash.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a\#b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 del.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a\177b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 meta-null.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a\310b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 meta-del.cname.test.iwj.relativity.greenend.org.uk flags 0 type A(-): No such domain; nrrs=0; cname=a\377b.cname.test.iwj.relativity.greenend.org.uk; owner=$; ttl=60 rc=0 adns-1.5.0~rc1/regress/case-ptr-aaaa.sys0000664000175000017500000000574612422540543016176 0ustar ianian./adnstest distorted :0x10000|12 4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.0.9.d.1.0.8.a.b.0.1.0.0.2.ip6.arpa start 1401919090.054985 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.000061 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000030 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000026 sendto fd=6 addr=172.29.199.224:53 311f0100 00010000 00000000 01340130 01300130 01300130 01300130 01300130 01300130 01300130 01300130 01320130 01300130 01390164 01310130 01380161 01620130 01310130 01300132 03697036 04617270 6100000c 0001. sendto=90 +0.000227 select max=7 rfds=[6] wfds=[] efds=[] to=1.999773 select=1 rfds=[6] wfds=[] efds=[] +0.003800 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 311f8580 00010001 00040008 01340130 01300130 01300130 01300130 01300130 01300130 01300130 01300130 01320130 01300130 01390164 01310130 01380161 01620130 01310130 01300132 03697036 04617270 6100000c 0001c00c 000c0001 00003840 001f0c73 74726174 6f636173 74657209 64697374 6f727465 64036f72 6702756b 00c03400 02000100 00384000 0c097072 65636973 696f6ec0 73c03400 02000100 00384000 0a077661 6d706972 65c073c0 34000200 01000038 40000906 72616469 7573c073 c0340002 00010000 3840000d 0a74656c 65636173 746572c0 73c0bf00 01000100 00384000 04ac1dc7 01c0bf00 1c000100 00384000 10200104 70974000 01000000 00000000 01c0a900 01000100 00384000 04ac1dc7 05c0a900 1c000100 00384000 10200104 70974000 01000000 00000000 05c09100 01000100 00384000 04ac1dc7 b2c09100 1c000100 00384000 1020010b a801d900 02000000 00000000 02c0d400 01000100 00384000 04ac1dc7 b3c0d400 1c000100 00384000 1020010b a801d900 02000000 00000000 03. +0.000338 sendto fd=6 addr=172.29.199.224:53 31200100 00010000 00000000 0c737472 61746f63 61737465 72096469 73746f72 74656403 6f726702 756b0000 1c0001. sendto=47 +0.000129 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000031 select max=7 rfds=[6] wfds=[] efds=[] to=1.999502 select=1 rfds=[6] wfds=[] efds=[] +0.001827 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.29.199.224:53 31208580 00010001 00040008 0c737472 61746f63 61737465 72096469 73746f72 74656403 6f726702 756b0000 1c0001c0 0c001c00 01000038 40001020 010ba801 d9000200 00000000 000004c0 19000200 01000038 4000100a 74656c65 63617374 6572026e 73c019c0 19000200 01000038 40000906 72616469 7573c062 c0190002 00010000 3840000a 0776616d 70697265 c062c019 00020001 00003840 000c0970 72656369 73696f6e c062c073 00010001 00003840 0004ac1d c701c073 001c0001 00003840 00102001 04709740 00010000 00000000 0001c088 00010001 00003840 0004ac1d c705c088 001c0001 00003840 00102001 04709740 00010000 00000000 0005c09e 00010001 00003840 0004ac1d c7b2c09e 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0002c057 00010001 00003840 0004ac1d c7b3c057 001c0001 00003840 00102001 0ba801d9 00020000 00000000 0003. +0.000308 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000056 close fd=6 close=OK +0.000088 adns-1.5.0~rc1/regress/case-arf-norm.sys0000664000175000017500000002237512422510661016224 0ustar ianian./adnsresfilter default start 969138236.380176 fcntl fd=0 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000136 fcntl fd=0 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000047 fcntl fd=1 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000034 fcntl fd=1 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000034 socket domain=AF_INET type=SOCK_DGRAM socket=6 +0.004723 fcntl fd=6 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000048 fcntl fd=6 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000041 select max=2 rfds=[0] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +3.476363 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000178 read fd=0 buflen=512 read=OK 736f6d65 206f7264 696e6172 79207465 78740a. +0.000149 write fd=1 736f6d65 206f7264 696e6172 79207465 78740a. write=19 +0.000594 select max=2 rfds=[0] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +1.-12312 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000119 read fd=0 buflen=512 read=OK 616e2069 70206164 64726573 73206174 20656f6c 20313732 2e31382e 34352e36 0a. +0.000185 sendto fd=6 addr=172.18.45.6:53 311f0100 00010000 00000000 01360234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.000902 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8580 00010001 00020002 01360234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00250864 6176656e 616e740a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0002 34350231 38033137 3207696e 2d616464 72046172 70610000 02000100 01518000 06036e73 30c03fc0 5b000200 01000151 80000603 6e7331c0 3fc07d00 01000100 01518000 04ac122d 06c08f00 01000100 01518000 04ac122d 01. +0.000707 sendto fd=6 addr=172.18.45.6:53 31200100 00010000 00000000 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01. sendto=53 +0.000758 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31208580 00010001 00020002 08646176 656e616e 740a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000100 01c00c00 01000100 01518000 04ac122d 060a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000200 01000151 80000603 6e7330c0 45c04500 02000100 01518000 06036e73 31c045c0 6b000100 01000151 800004ac 122d06c0 7d000100 01000151 800004ac 122d01. +0.000572 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000146 write fd=1 616e2069 70206164 64726573 73206174 20656f6c 20. write=21 +0.000426 select max=7 rfds=[0,6] wfds=[] efds=[] to=0.996185 select=0 rfds=[] wfds=[] efds=[] +1.-05562 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000093 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000061 write fd=1 64617665 6e616e74 2e72656c 61746976 6974792e 67726565 6e656e64 2e6f7267 2e756b. write=35 +0.000473 write fd=1 0a. write=1 +0.000500 select max=2 rfds=[0] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +1.-31596 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000127 read fd=0 buflen=512 read=OK 616e2069 70206164 64726573 73203132 372e302e 302e3120 696e206d 6964646c 650a. +0.000190 sendto fd=6 addr=172.18.45.6:53 31210100 00010000 00000000 01310130 01300331 32370769 6e2d6164 64720461 72706100 000c0001. sendto=40 +0.000787 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31218580 00010001 00010001 01310130 01300331 32370769 6e2d6164 64720461 72706100 000c0001 c00c000c 00010009 3a80000b 096c6f63 616c686f 73740003 31323707 696e2d61 64647204 61727061 00000200 0100093a 800002c0 34c03400 01000100 093a8000 047f0000 01. +0.000417 sendto fd=6 addr=172.18.45.6:53 31220100 00010000 00000000 096c6f63 616c686f 73740000 010001. sendto=27 +0.000523 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31228580 00010001 00010001 096c6f63 616c686f 73740000 010001c0 0c000100 0100093a 8000047f 000001c0 0c000200 0100093a 800002c0 0cc00c00 01000100 093a8000 047f0000 01. +0.000310 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000120 write fd=1 616e2069 70206164 64726573 7320. write=14 +0.000394 select max=7 rfds=[0,6] wfds=[] efds=[] to=0.997132 select=0 rfds=[] wfds=[] efds=[] +1.-02556 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000082 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000054 write fd=1 6c6f6361 6c686f73 74. write=9 +0.000354 write fd=1 20696e20 6d696464 6c650a. write=11 +0.000538 select max=2 rfds=[0] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +5.-307533 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000115 read fd=0 buflen=512 read=OK 3137322e 31382e34 352e3120 616e2061 64647265 73732061 74206265 67696e0a. +0.000165 sendto fd=6 addr=172.18.45.6:53 31230100 00010000 00000000 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001. sendto=42 +0.000691 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31238580 00010001 00020002 01310234 35023138 03313732 07696e2d 61646472 04617270 6100000c 0001c00c 000c0001 00015180 00220573 66657265 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00 02343502 31380331 37320769 6e2d6164 64720461 72706100 00020001 00015180 0006036e 7330c03c c0580002 00010001 51800006 036e7331 c03cc07a 00010001 00015180 0004ac12 2d06c08c 00010001 00015180 0004ac12 2d01. +0.000621 sendto fd=6 addr=172.18.45.6:53 31240100 00010000 00000000 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001. sendto=50 +0.000716 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31248580 00010001 00020002 05736665 72650a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000001 0001c00c 00010001 00015180 0004ac12 2d010a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000002 00010001 51800006 036e7330 c042c042 00020001 00015180 0006036e 7331c042 c0680001 00010001 51800004 ac122d06 c07a0001 00010001 51800004 ac122d01. +0.000562 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000137 select max=7 rfds=[0,6] wfds=[] efds=[] to=0.996993 select=0 rfds=[] wfds=[] efds=[] +1.-06724 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000083 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000055 write fd=1 73666572 652e7265 6c617469 76697479 2e677265 656e656e 642e6f72 672e756b. write=32 +0.000440 write fd=1 20616e20 61646472 65737320 61742062 6567696e 0a. write=21 +0.000570 select max=2 rfds=[0] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +4.-137179 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000103 read fd=0 buflen=512 read=OK 3137322e 31382e34 352e34. +0.000101 select max=2 rfds=[0] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +4.-28658 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000121 read fd=0 buflen=512 read=OK 3020736f 6d652073 74756666 0a. +0.000112 sendto fd=6 addr=172.18.45.6:53 31250100 00010000 00000000 02343002 34350231 38033137 3207696e 2d616464 72046172 70610000 0c0001. sendto=43 +0.000747 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31258580 00010001 00020002 02343002 34350231 38033137 3207696e 2d616464 72046172 70610000 0c0001c0 0c000c00 01000151 80002306 6e6f7277 61790a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000234 35023138 03313732 07696e2d 61646472 04617270 61000002 00010001 51800006 036e7330 c03ec05a 00020001 00015180 0006036e 7331c03e c07c0001 00010001 51800004 ac122d06 c08e0001 00010001 51800004 ac122d01. +0.000628 sendto fd=6 addr=172.18.45.6:53 31260100 00010000 00000000 066e6f72 7761790a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001. sendto=51 +0.000678 recvfrom fd=6 buflen=512 recvfrom=OK addr=172.18.45.6:53 31268580 00010001 00020002 066e6f72 7761790a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0 0c000100 01000151 800004ac 122d280a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 02000100 01518000 06036e73 30c043c0 43000200 01000151 80000603 6e7331c0 43c06900 01000100 01518000 04ac122d 06c07b00 01000100 01518000 04ac122d 01. +0.000566 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000135 select max=7 rfds=[0,6] wfds=[] efds=[] to=0.997013 select=0 rfds=[] wfds=[] efds=[] +1.-08851 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000087 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000057 write fd=1 6e6f7277 61792e72 656c6174 69766974 792e6772 65656e65 6e642e6f 72672e75 6b. write=33 +0.000466 write fd=1 20736f6d 65207374 7566660a. write=12 +0.000545 select max=2 rfds=[0] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +2.-184099 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000114 read fd=0 buflen=512 read=OK 28627261 636b6574 73290a. +0.000107 write fd=1 28627261 636b6574 73290a. write=11 +0.000495 select max=2 rfds=[0] wfds=[] efds=[] to=null select=1 rfds=[0] wfds=[] efds=[] +0.323183 recvfrom fd=6 buflen=512 recvfrom=EAGAIN +0.000084 read fd=0 buflen=512 read=OK . +0.000063 fcntl fd=0 cmd=F_GETFL fcntl=O_NONBLOCK|... +0.000041 fcntl fd=0 cmd=F_SETFL ~O_NONBLOCK&... fcntl=OK +0.000033 fcntl fd=1 cmd=F_GETFL fcntl=O_NONBLOCK|... +0.000034 fcntl fd=1 cmd=F_SETFL ~O_NONBLOCK&... fcntl=OK +0.000033 close fd=6 close=OK +0.000090 adns-1.5.0~rc1/regress/case-longdomsrch0.err0000664000175000017500000000000012421042027017024 0ustar ianianadns-1.5.0~rc1/regress/case-lockup.sys0000664000175000017500000000775612422540543016010 0ustar ianianadnstest noserver :0x0|1 chiark.greenend.org.uk start 912889153.349504 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000193 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000088 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000072 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000617 select max=5 rfds=[4] wfds=[] efds=[] to=1.999383 select=0 rfds=[] wfds=[] efds=[] +2.008683 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000406 select max=5 rfds=[4] wfds=[] efds=[] to=1.999594 select=0 rfds=[] wfds=[] efds=[] +2.009544 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000428 select max=5 rfds=[4] wfds=[] efds=[] to=1.999572 select=0 rfds=[] wfds=[] efds=[] +2.009567 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000449 select max=5 rfds=[4] wfds=[] efds=[] to=1.999551 select=0 rfds=[] wfds=[] efds=[] +2.009551 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000381 select max=5 rfds=[4] wfds=[] efds=[] to=1.999619 select=0 rfds=[] wfds=[] efds=[] +2.009614 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000383 select max=5 rfds=[4] wfds=[] efds=[] to=1.999617 select=0 rfds=[] wfds=[] efds=[] +2.009622 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000387 select max=5 rfds=[4] wfds=[] efds=[] to=1.999613 select=0 rfds=[] wfds=[] efds=[] +2.009603 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000404 select max=5 rfds=[4] wfds=[] efds=[] to=1.999596 select=0 rfds=[] wfds=[] efds=[] +2.009607 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000468 select max=5 rfds=[4] wfds=[] efds=[] to=1.999532 select=0 rfds=[] wfds=[] efds=[] +2.009526 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000431 select max=5 rfds=[4] wfds=[] efds=[] to=1.999569 select=0 rfds=[] wfds=[] efds=[] +2.009564 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000429 select max=5 rfds=[4] wfds=[] efds=[] to=1.999571 select=0 rfds=[] wfds=[] efds=[] +2.009586 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000479 select max=5 rfds=[4] wfds=[] efds=[] to=1.999521 select=0 rfds=[] wfds=[] efds=[] +2.009511 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000430 select max=5 rfds=[4] wfds=[] efds=[] to=1.999570 select=0 rfds=[] wfds=[] efds=[] +2.009571 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +0.000440 select max=5 rfds=[4] wfds=[] efds=[] to=1.999560 select=0 rfds=[] wfds=[] efds=[] +2.009564 sendto fd=4 addr=172.18.45.36:53 311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267 02756b00 00010001. sendto=40 +2.000439 select max=5 rfds=[4] wfds=[] efds=[] to=0.000000 select=0 rfds=[] wfds=[] efds=[] +0.000001 close fd=4 close=OK +0.000267 adns-1.5.0~rc1/regress/case-1stservtotcp.sys0000664000175000017500000001606512422540543017165 0ustar ianianadnstest 1stservto :0x0|12 trunc.test.iwj.relativity.greenend.org.uk start 940100259.965940 socket domain=AF_INET type=SOCK_DGRAM socket=4 +0.000698 fcntl fd=4 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000611 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000582 sendto fd=4 addr=10.0.0.1:53 311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001. sendto=59 +0.006634 select max=5 rfds=[4] wfds=[] efds=[] to=1.993366 select=0 rfds=[] wfds=[] efds=[] +2.-05507 sendto fd=4 addr=172.18.45.6:53 311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001. sendto=59 +0.002310 select max=5 rfds=[4] wfds=[] efds=[] to=1.997690 select=1 rfds=[4] wfds=[] efds=[] +0.000996 recvfrom fd=4 buflen=512 recvfrom=OK addr=172.18.45.6:53 311f8380 00010008 00000000 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00 01000000 3c004704 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e01 30047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0131 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0132 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0133 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0134 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0135 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0136 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0137 c069. +0.004379 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.009970 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000612 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000602 connect fd=5 addr=10.0.0.1:53 connect=EINPROGRESS +0.000850 recvfrom fd=4 buflen=512 recvfrom=EAGAIN +0.000646 select max=6 rfds=[4] wfds=[5] efds=[] to=13.982941 select=0 rfds=[] wfds=[] efds=[] +14.-10600 close fd=5 close=OK +0.000750 socket domain=AF_INET type=SOCK_STREAM socket=5 +0.004957 fcntl fd=5 cmd=F_GETFL fcntl=~O_NONBLOCK&... +0.000593 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|... fcntl=OK +0.000582 connect fd=5 addr=172.18.45.6:53 connect=EINPROGRESS +0.001140 select max=6 rfds=[4] wfds=[5] efds=[] to=13.991978 select=1 rfds=[] wfds=[5] efds=[] +0.001038 read fd=5 buflen=1 read=EAGAIN +0.001203 write fd=5 003b311f 01000001 00000000 00000574 72756e63 04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000c00 01. write=61 +0.007301 select max=6 rfds=[4,5] wfds=[] efds=[5] to=15.975977 select=1 rfds=[5] wfds=[] efds=[] +0.001431 read fd=5 buflen=2 read=OK 0638. +0.001841 read fd=5 buflen=1592 read=OK 311f8580 0001001e 00010001 05747275 6e630474 65737403 69776a0a 72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00 01000000 3c004704 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e01 30047465 73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0131 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0132 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0133 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0134 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0135 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0136 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0137 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0138 c069c00c 000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0139 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0231 30c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3131c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023132c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023133 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0231 34c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3135c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023136c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023137 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0231 38c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3139c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023230c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023231 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0232 32c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3233c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023234c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023235 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0232 36c069c0 0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3237c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023238c0 69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023239 c069c069 00020001 0000003c 0006036e 7330c072 036e7330 c0720001 00010001 51800004 ac122d06. +1.-990207 read fd=5 buflen=1594 read=EAGAIN +0.040526 close fd=4 close=OK +0.065240 close fd=5 close=OK +0.000982 adns-1.5.0~rc1/regress/case-connfail.err0000664000175000017500000000000012421042027016216 0ustar ianianadns-1.5.0~rc1/regress/case-timeout.out0000664000175000017500000000031012421042027016136 0ustar ianianadns debug: using nameserver 172.18.45.36 chiark.greenend.org.uk flags 0 type 1 A(-) submitted chiark.greenend.org.uk flags 0 type A(-): DNS query timed out; nrrs=0; cname=$; owner=$; ttl=604770 rc=0 adns-1.5.0~rc1/regress/case-rr_addr-binary-compat.out0000664000175000017500000000110312421042027020631 0ustar ianianadns debug: using nameserver 172.29.199.224 maddr.dnserr.distorted.org.uk flags 0 type 65537 A(addr) submitted maddr.dnserr.distorted.org.uk flags 0 type 65537 A(addr) submitted maddr.dnserr.distorted.org.uk flags 0 type A(addr): OK; nrrs=6; cname=$; owner=$; ttl=14400 INET 198.51.100.2 INET 198.51.100.1 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 maddr.dnserr.distorted.org.uk flags 0 type A(addr): OK; nrrs=6; cname=$; owner=$; ttl=14400 INET 198.51.100.1 INET 198.51.100.2 INET 203.0.113.1 INET 203.0.113.2 INET 192.0.2.1 INET 192.0.2.2 rc=0 adns-1.5.0~rc1/regress/case-cnametocname.out0000664000175000017500000000064712421042027017117 0ustar ianianadns debug: using nameserver 172.18.45.6 intel.ugcs.caltech.edu. flags 0 type 1 A(-) submitted adns debug: allegedly canonical name ugintel.best.ugcs.caltech.edu is actually alias for drachma.ugcs.caltech.edu (QNAME=intel.ugcs.caltech.edu, QTYPE=A, NS=172.18.45.6) intel.ugcs.caltech.edu. flags 0 type A(-): DNS alias found where canonical name wanted; nrrs=0; cname=ugintel.best.ugcs.caltech.edu; owner=$; ttl=497758 rc=0 adns-1.5.0~rc1/regress/case-search-as.out0000664000175000017500000000116112421042027016323 0ustar ianianadns debug: using nameserver 172.18.45.6 news flags 5 type 1 A(-) submitted chiark flags 5 type 1 A(-) submitted news flags 1 type 1 A(-) submitted chiark flags 1 type 1 A(-) submitted news flags 5 type A(-): OK; nrrs=1; cname=davenant.relativity.greenend.org.uk; owner=news.davenant.greenend.org.uk; ttl=86400 172.18.45.6 news flags 1 type A(-): OK; nrrs=1; cname=davenant.relativity.greenend.org.uk; owner=$; ttl=86400 172.18.45.6 chiark flags 5 type A(-): OK; nrrs=1; cname=$; owner=chiark.greenend.org.uk; ttl=86400 195.224.76.132 chiark flags 1 type A(-): OK; nrrs=1; cname=$; owner=$; ttl=86400 195.224.76.132 rc=0 adns-1.5.0~rc1/regress/case-unknown-flags-type.out0000664000175000017500000000015512423157063020240 0ustar ianianadns debug: using nameserver 172.18.45.6 chiark.greenend.org.uk flags 1074266112 type 1 not implemented rc=0 adns-1.5.0~rc1/COPYING0000664000175000017500000010451312421042025012377 0ustar ianian GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . adns-1.5.0~rc1/INSTALL0000664000175000017500000001234012421042025012371 0ustar ianianINSTALLATION INSTRUCTIONS for GNU ADNS 1. Read the security note below. 2. Standard GNU package build process: $ ./configure [--disable-dynamic] [--prefix=... ...] $ make # make install Unfortunately, there is no comprehensive documentation yet. For now, use the comments in the public header file adns.h, and for the C programs their usage messages. If you find this information ambiguous, incomplete or wrong, please report it as a bug. TESTED PLATFORMS The following platforms have been tested at at least some point and should work - please report if they don't: adns version OS 1.0 Linux glibc 2.1 (actually tested on Debian 2.2) 1.0 Solaris 2.6, 2.7, 2.8 [3] 1.0 FreeBSD 3.2, 4.0 (no poll(2), so no adnsresfilter) The following work, but only with --disable-dynamic: 1.0 IRIX 6.5 *not* with GCC [1], [2] 1.0 AIX 4.1.5 1.0 HP-UX 10.20, 11.00 1.1 Darwin (kernel 7.5.1) Later versions of the same OS should work too. Usually entries in this table mean adns passes its own regression test, when compiled with GCC, and appears to install and run correctly. If you have more information for this table please let me know. Notes/known problems: [1] IRIX 6.5 inet_ntoa seems to break with GCC. [2] The SGI IRIX compiler produces many spurious warnings. [3] Dynamically linked, needs some help to find libadns.so.1.0. The following platforms are known to be deficient and will not work: Solaris 2.5 Lacks vsnprintf - install glibc ? TruUnix64 (DEC UNIX 4.0f) Lacks vsnprintf - install glibc ? Please don't report these problems unless you have a nice, straightforward solution or workaround for them. (I don't consider including a `vsnprintf' implementation nice, so don't send me one.) PORTABILITY INFORMATION You will find that adns requires a reasonably standard and up to date system. Systems which are neither GNU nor UNIX are not supported. The build system assumes by default that you have ELF shared libraries, and that the directory in which libadns.so.1 will be installed is on your dynamic library search path. If your system doesn't have ELF shared libraries then dynamic linking is not supported by adns. Use the --disable-shared configure option. Please don't send me patches to use libtool (which I dislike). Compilers other than GNU C should work, but are not well-tested. Feel free to send me patches to improve the situation. However, the Makefiles only know how to use GCC to make dynamic libraries. The adnsresfilter utility uses `tsearch' from the C library (a la SVID and X/Open). If you don't have tsearch configure will arrange for adnsresfilter not to be built. To fix this, install a C library containing tsearch, such as the GNU C library. It is best if tsearch uses an automatically-balancing tree algorithm, like the glibc version does. Simple binary trees may perform badly. If you change the m4 input files in regress/ you may need GNU m4. You will probably find that GNU Make is required. Please do not report this as a bug; install GNU Make instead. SECURITY AND PERFORMANCE - AN IMPORTANT NOTE adns is not a `full-service resolver': it does no caching of responses at all, and has no defence against bad nameservers or fake packets which appear to come from your real nameservers. It relies on the full-service resolvers listed in resolv.conf to handle these tasks. For secure and reasonable operation you MUST run a full-service nameserver on the same system as your adns applications, or on the same local, fully trusted network. You MUST only list such nameservers in the adns configuration (eg resolv.conf). You MUST use a firewall or other means to block packets which appear to come from these nameservers, but which were actually sent by other, untrusted, entities. Furthermore, adns is not DNSSEC-aware in this version; it doesn't understand even how to ask a DNSSEC-aware nameserver to perform the DNSSEC cryptographic signature checking. COPYRIGHT This file, INSTALL, contains installation instructions and other details for adns. It is Copyright (C) 1997-2000 Ian Jackson adns is Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson Copyright (C) 2014 Mark Wooding Copyright (C) 1999-2000,2003,2006 Tony Finch [1] Copyright (C) 1991 Massachusetts Institute of Technology [2] adns is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with adns as the file COPYING; if not, email me at the address above or write to the Free Software Foundation. [1] Tony Finch holds the original copyright on client/adnslogres.c, client/adnsheloex.c and client/fanftest.c, and some modifications to those files. [2] MIT hold the original copyright on the included install-sh, which came via GNU autoconf. # Local variables: # mode: text # End: adns-1.5.0~rc1/RELEASE-CHECKLIST0000775000175000017500000000376712423157366013713 0ustar ianian#!/bin/bash # This is for the benefit of the upstream maintainers of GNU adns # # * Maybe rerun autoconf # * Ensure changelog reflects changes # * Ensure NEWS reflects changes # * Maybe update MAJOR and/or MINOR in common.make.in # * Update DISTVERSION in Makefile.in # * Update ADNS_VERSION_STRING in client/client.h # # * Run this script # ./RELEASE-CHECKLIST [--real] # # * On chiark, maybe, replace ~ian/public-html/adns/current # with symlink to web-$(version) (as directed by script) # # * Send release announcement (use last one as template) # # * Update DISTVERSION, ADNS_VERSION_STRING and start new changelog entry set -e fail () { echo >&2 "$0: $*"; exit 16; } real=false if [ "x$1" = x--real ]; then real=true; shift fi if [ $# != 1 ]; then fail "wrong # arguments"; fi wantversion="$1" version=`sed -n ,,,,,) define([DPKG_CACHED_TRY_COMPILE],[ AC_MSG_CHECKING($1) AC_CACHE_VAL($2,[ AC_TRY_COMPILE([$3],[$4],[$2=yes],[$2=no]) ]) if test "x$$2" = xyes; then true $5 else true $6 fi ]) AC_MSG_CHECKING(whether you requested dynamic linking) AC_SUBST(ENABLE_DYNAMIC) AC_ARG_ENABLE(dynamic, [ --disable-dynamic use static linking --enable-dynamic[=elf] create and use ELF dynamic library (default)], [ case "$enableval" in elf|yes) ENABLE_DYNAMIC=elf AC_MSG_RESULT([yes (ELF)]) ;; no) ENABLE_DYNAMIC=no AC_MSG_RESULT(no) ;; *) AC_MSG_ERROR( ["invalid value $enableval for --enable-dynamic, try yes or elf"]) ;; esac ],[ ENABLE_DYNAMIC=elf AC_MSG_RESULT([yes, by default]) ]) AC_PROG_CC AC_PROG_CPP AC_PROG_RANLIB AC_PROG_INSTALL AC_CHECK_FUNCS(poll) ADNS_C_GETFUNC(socket,socket) ADNS_C_GETFUNC(inet_ntoa,nsl) PROGS_IF_TSEARCH=adnsresfilter AC_SUBST(PROGS_HAVE_TSEARCH) AC_CHECK_FUNC(tsearch,[ PROGS_HAVE_TSEARCH=$PROGS_IF_TSEARCH ],[ PROGS_HAVE_TSEARCH=''; AC_MSG_WARN([tsearch missing - not building client program(s) $PROGS_IF_TSEARCH]) ]) AC_MSG_CHECKING(for INADDR_LOOPBACK) AC_CACHE_VAL(adns_cv_decl_inaddrloopback,[ AC_TRY_COMPILE([ #include #include #include ],[ INADDR_LOOPBACK; ], adns_cv_decl_inaddrloopback=yes, adns_cv_decl_inaddrloopback=no)]) if test "$adns_cv_decl_inaddrloopback" = yes; then AC_MSG_RESULT(found) else AC_MSG_RESULT([not in standard headers, urgh...]) AC_CHECK_HEADER(rpc/types.h,[ AC_DEFINE(HAVEUSE_RPCTYPES_H) ],[ AC_MSG_ERROR([cannot find INADDR_LOOPBACK or rpc/types.h]) ]) fi ADNS_C_GETFUNC(inet_aton,resolv,[ LIBS="-lresolv $LIBS"; AC_MSG_WARN([inet_aton is in libresolv, urgh. Must use -lresolv.]) ]) DPKG_CACHED_TRY_COMPILE(inlines,dpkg_cv_c_inline,, [} inline int foo (int x) {], AC_MSG_RESULT(yes) AC_DEFINE(HAVE_INLINE), AC_MSG_RESULT(no)) AC_SUBST(WARNS) if test "${GCC-no}" = yes; then WARNS="-Wall -Wmissing-prototypes -Wwrite-strings -Wstrict-prototypes -Wcast-qual -Wpointer-arith" saved_cflags="$CFLAGS" CFLAGS="$CFLAGS -Wno-pointer-sign" DPKG_CACHED_TRY_COMPILE(-Wno-pointer-sign,adns_cv_c_wnoptrsign,, [], AC_MSG_RESULT(yes) WARNS="$WARNS -Wno-pointer-sign", AC_MSG_RESULT(no)) CFLAGS="$saved_cflags" else WARNS= fi ADNS_C_GCCATTRIB AC_SUBST(SHLIBCC) AC_SUBST(MKSHLIB_1) AC_SUBST(MKSHLIB_2) AC_SUBST(MKSHLIB_3) AC_SUBST(SHLIBFORLINK) AC_SUBST(SHLIBFILE) AC_SUBST(SHLIBSONAME) SHLIBFORLINK='libadns.so' SHLIBSONAME='$(SHLIBFORLINK).$(MAJOR)' SHLIBFILE='$(SHLIBSONAME).$(MINOR)' SHLIBCC='$(CC) $(CFLAGS) -fpic' MKSHLIB_1='$(CC) $(LDFLAGS) -shared -Wl,-soname=$(SHLIBSONAME) -o' MKSHLIB_2='' MKSHLIB_3='-lc' AC_OUTPUT( common.make settings.make Makefile src/Makefile client/Makefile dynamic/Makefile regress/Makefile ) adns-1.5.0~rc1/Makefile.in0000664000175000017500000000564612423172624013433 0ustar ianian# Makefile[.in] - top-level Makefile # # This file is part of adns, which is # Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson # Copyright (C) 2014 Mark Wooding # Copyright (C) 1999-2000,2003,2006 Tony Finch # Copyright (C) 1991 Massachusetts Institute of Technology # (See the file INSTALL for full details.) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation. include ./common.make # Remember to change ADNS_VERSION_STRING in client/client.h too, and # possibly library soname (MAJOR and MINOR in common.make.in). DISTVERSION= 1.5.0~rc1 srcdir= @srcdir@ VPATH= @srcdir@ ENABLE_DYNAMIC= @ENABLE_DYNAMIC@ ifeq ($(ENABLE_DYNAMIC),elf) SUBDIRS_DYNAMIC=dynamic else SUBDIRS_DYNAMIC= endif WEBDIR=web SUBDIRS= src $(SUBDIRS_DYNAMIC) client regress all install uninstall clean distclean mostlyclean maintainer-clean distprep: set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done $(MAKE) $@-here all-here install-here uninstall-here distprep-here: README clean-here mostlyclean-here: rm -f *~ ./#*# core *.orig *.rej adns-*.tar.gz rm -rf dist_tmp web adnshost.txt distclean-here maintainer-clean-here: clean-here rm -f settings.make common.make rm -f config.cache config.log config.status Makefile install-strip: $(MAKE) INSTALL_PROGRAM_FLAGS=-s dist_tmp=dist_tmp/adns-$(DISTVERSION) dist: distprep rm -rf dist_tmp* mkdir dist_tmp $(dist_tmp) find \( -name .git -o -name dist_tmp* \) -prune -o -type d -print | \ sed -e 's#.*#mkdir -p $(dist_tmp)/&#' | sh find \( -name .git -o -name dist_tmp* \) -prune -o -type f -print | \ sed -e 's#.*#ln & $(dist_tmp)/&#' | sh $(MAKE) -C dist_tmp/adns-$(DISTVERSION) distclean cd dist_tmp && tar cf ../$(dist_tmp).tar `basename $(dist_tmp)` gzip -9 $(dist_tmp).tar mv $(dist_tmp).tar.gz . adnshost.txt: all client/adnshost_s --help >$@.tmp && mv -f $@.tmp $@ web-install: adnshost.txt test -e $(WEBDIR) || mkdir $(WEBDIR) $(INSTALL_DATA) $(srcdir)/README.html $(WEBDIR)/ $(INSTALL_DATA) $(srcdir)/src/adns.h $(WEBDIR)/adns.h.txt $(INSTALL_DATA) COPYING $(WEBDIR)/COPYING.txt $(INSTALL_DATA) adnshost.txt $(WEBDIR)/ check: all $(MAKE) -C regress check README: README.html lynx -dump -number_links -cfg=/dev/null $(srcdir)/README.html >README.tmp mv -f README.tmp $(srcdir)/README TAGS info dvi: # do nothing .PHONY: install #people with case-insensitive filesystems lose otherwise! adns-1.5.0~rc1/settings.make.in0000664000175000017500000000261312422540543014457 0ustar ianian# settings.make[.in] - main configuration settings for Makefiles, # used by autoconf/configure to generate settings.make # # This file is part of adns, which is # Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson # Copyright (C) 2014 Mark Wooding # Copyright (C) 1999-2000,2003,2006 Tony Finch # Copyright (C) 1991 Massachusetts Institute of Technology # (See the file INSTALL for full details.) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation. include ../common.make all: $(TARGETS) clean mostlyclean: rm -f *.o *.tmp* *.so *.so.* pipe.* rm -f output-*.err output-*.leftover rm -f output-*.out output-*.report distclean: clean rm -f $(TARGETS) *~ ./#*# core *.orig *.rej Makefile config.h distprep: $(AUTOCSRCS) $(AUTOCHDRS) maintainer-clean: distclean -rm -f $(AUTOCSRCS) $(AUTOCHDRS) adns-1.5.0~rc1/aclocal.m40000664000175000017500000000444712421042025013211 0ustar ianian# aclocal.m4 - package-specific macros for autoconf # # This file is part of adns, which is # Copyright (C) 1997-2000,2003,2006,2014 Ian Jackson # Copyright (C) 2014 Mark Wooding # Copyright (C) 1999-2000,2003,2006 Tony Finch # Copyright (C) 1991 Massachusetts Institute of Technology # (See the file INSTALL for full details.) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation. dnl DPKG_CACHED_TRY_COMPILE(,,,,,) define(DPKG_CACHED_TRY_COMPILE,[ AC_MSG_CHECKING($1) AC_CACHE_VAL($2,[ AC_TRY_COMPILE([$3],[$4],[$2=yes],[$2=no]) ]) if test "x$$2" = xyes; then true $5 else true $6 fi ]) define(ADNS_C_GCCATTRIB,[ DPKG_CACHED_TRY_COMPILE(__attribute__((,,)),adns_cv_c_attribute_supported,, [extern int testfunction(int x) __attribute__((,,))], AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GNUC25_ATTRIB) DPKG_CACHED_TRY_COMPILE(__attribute__((noreturn)),adns_cv_c_attribute_noreturn,, [extern int testfunction(int x) __attribute__((noreturn))], AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GNUC25_NORETURN), AC_MSG_RESULT(no)) DPKG_CACHED_TRY_COMPILE(__attribute__((const)),adns_cv_c_attribute_const,, [extern int testfunction(int x) __attribute__((const))], AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GNUC25_CONST), AC_MSG_RESULT(no)) DPKG_CACHED_TRY_COMPILE(__attribute__((format...)),adns_cv_attribute_format,, [extern int testfunction(char *y, ...) __attribute__((format(printf,1,2)))], AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GNUC25_PRINTFFORMAT), AC_MSG_RESULT(no)), AC_MSG_RESULT(no)) ]) define(ADNS_C_GETFUNC,[ AC_CHECK_FUNC([$1],,[ AC_CHECK_LIB([$2],[$1],[$3],[ AC_MSG_ERROR([cannot find library function $1]) ]) ]) ])