This commit was generated by cvs2svn to compensate for changes in r2,

which included commits to RCS files with non-trunk default branches.
master
Steven Young 2000-02-16 17:32:49 +00:00
parent a094587fb0
commit 37e63909c0
243 changed files with 45839 additions and 0 deletions

6
AUTHORS Normal file
View File

@ -0,0 +1,6 @@
tinyproxy is a collaborative work between Steven Young
<sdyoung@well.com> and Robert James Kaes <rjkaes@flarenet.com>.
From versions 0-1.1, Steven Young was the primary maintainer.
From 1.2 to 1.3.0, Robert James Kaes was the primary maintainer.
As of 1.3.1, Steven Young will once again be the primary maintainer.

9
BUGS Normal file
View File

@ -0,0 +1,9 @@
KNOWN BUGS
==========
There is exactly one known bug at the time of 1.3.2's release - when compiling
under some Linux distributions (notably, Debian), the compile process will
generate a number of warnings regarding __underflow. However, tinyproxy still
compiles and runs perfectly.
Patches welcome!

340
COPYING Normal file
View File

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) 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
this service 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 make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. 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.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
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
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the 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 a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE 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.
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
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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 2 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, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision 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, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This 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 Library General
Public License instead of this License.

122
ChangeLog Normal file
View File

@ -0,0 +1,122 @@
1.3.2 2000/02/15
- Fixed null requests bug.
- Fixed fd leak bug.
- Fixed connptr bug.
- Updated docs.
1.3.1 1999/12/21
- made the dns cache hashing algorithm case-insensitive.
- fixed a bug in log() that would cause it to dump garbage to
the log file when in unrestricted mode.
- this is an interim release to fix the above log() bug.
1.3.0 1999/12/01
- autoconf enabled the source tree and moved some of the
documentation files into the proper locations. Also, added any
files which were needed to conform with the GNU autoconf directory
structure.
- Changed the debugging code to use asserts(). I don't know if I'm
completely happy with this. One the one hand it shrinks the size
of the executable, but on the other, it doesn't handle weird
situations in production code. It's still a toss up.
- Did a major reorganization of the source tree. The biggest
change is moving a lot of code from reqs.c into more appropriate
files.
- ANON mode is now always compiled in (since it doesn't take up
that much space) and is enabled from the command line.
- Changed the states a connection can be in, and also merged both
sockets (server/client) into one structure. Makes the code a lot
cleaner.
- Added a DNS caching mechanism. What happens it that a hash of
previously looked up names is maintained, so additional host names
will not need to be fetched from the DNS server again. Helps on
most web pages, which have a lot of images from the same server.
- Removed the global error variable (tinyerr) by making the
functions more consistent with what they return for an error.
- Removed the global.* files and merged them back into the
tinyproxy.* source.
- Added bug fixes in reqs.c to handle bad servers, which do not
follow the basic RFC protocol (i.e. using just a LF instead of a
CRLF).
- Most of reqs.c has been changed to use the readline
function. Also, it has been organized around the new connection
states and connection structure.
- xstrstr can now be both case sensitive or insensitive. Also,
added a check to make sure the haystack is longer than the needle.
1.2.10 1999/08/20
- Found a memory free bug in the buffer code, and also, a bug in
allocating memory for the buffer. Both could be fatal. One leaked
memory, and the other could allow all memory to be exhausted. Both
are now fixed.
- Reorganized some of the code. Moved global variables into the
proper files. Should help to eliminate them altogether someday.
- Shaun Johnson fixed a problem with compiling with syslog enabled
on a SunOS box.
1.2.9 1999/08/17
- Changed the writebuff to more explicitly be designed to write
from the other connection's buffer. A connection reads into it's
own buffer, but write's the other connection's buffer.
- You can now specify a particular IP address to listen on. By
default, tinyproxy listens on all IP addresses.
1.2.8.1 1999/08/13 (Internal release)
- Improved the portability by removing the daemon call and
removing the calls to index().
- added the buffer.* source into the CVS tree.
1.2.8 1999/08/06
- Better logging of incoming connections. Now both the IP address
and the requested URL are logged.
- You can now specify that only a certain subnet is allowed to
access tinyproxy. Currently it only supports one subnet with
matching against a string with the IP address.
- a bunch of just general code clean up. Mostly stylistic stuff.
1.2.7 1999/07/28
- Incoming connections are now logged to the log file/syslog
- An "XTinyproxy" header can now sent with each request which
includes the IP address of the client.
- Fixed some of the size of the members in the structures.
- Fixed an argument problem in listen_sock which was using the
size of the wrong variable.
1.2.6 1999/06/05
- Added the ability to send the HTTP requests to a proxy
server running on a different machine (or even the same
machine if you like)
- Fixed a bug in the clientreq() routine which would choke on
requests in the form of GET http://www.url.com HTTP/1.0 (thanks
to Bruno Viaris <viaris@galilee.univ-paris13.fr> for pointing
out the bug and providing the initial fix.)
1.2.5 1999/05/21
- Now maintained by Robert James Kaes (rjkaes@flarenet.com)
- Non-blocking sockets
- Cleaned up the style, and code. Compiles cleanly with -Wall
- Logs to syslogd with -S command line argument
- Rewrote the clientreq routine to remove tonnes of code
- Removed unused routines (rstrtolower, xstrndup, readline, etc.)
- Moved the user configurable options into config.h
1.1 1998/09/15
- Load average monitoring added
- Remote proxy monitoring added
- Added -u (change user).
1.0d
- ANON mode now supports -a to let user-specified headers
through
- various bug fixes in readline()
1.0c
- Support for ANON mode
1.0b
- Cleaned up exit codes (now uses sysexits.h)
- Uses daemon() from -lbsf instead of daemonize()
- Now supports ports other than 80
1.0a
- Created by Steven Young (sdyoung@well.com)

24
INSTALL Normal file
View File

@ -0,0 +1,24 @@
Installing tinyproxy 1.3.2
==========================
As of 1.3.2, tinyproxy uses Ian Jackson's adns library to perform non-blocking
DNS lookups. As such, before you can do anything to install tinyproxy, you must
go into the adns-0.6/ subdirectory off the root tinyproxy distribution directory
and follow the INSTALL directions therein. Once you have libadns installed,
follow these steps:
(1) Run the tinyproxy 'configure' script, found in the root distribution
directory. If you're unsure of exactly what arguments to use, please
consult the output of 'configure --help'. Additional documentation can
be found for configure in the text file INSTALL.configure.
(2) Run 'make install'. This will build all of tinyproxy and install it
in the default directory. You may also wish to peruse src/config.h
to be sure everything is configured to your liking.
(3) Read the tinyproxy manpage - it will explain what commandline arguments
and parameters are available. More experienced users will probably
be able to get all the information they need from the output of
'tinyproxy -h'.
Enjoy! Please read the documentation carefully, especially the COPYING
file which should have been included in this archive explaining the licensing
terms of tinyproxy.

182
INSTALL.configure Normal file
View File

@ -0,0 +1,182 @@
Basic Installation
==================
These are generic installation instructions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
this:
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not supports the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.
Installation Names
==================
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PATH'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PATH', the package will use
PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=PATH' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Specifying the System Type
==========================
There may be some features `configure' can not figure out
automatically, but needs to determine by the type of host the package
will run on. Usually `configure' can figure that out, but if it prints
a message saying it can not guess the host type, give it the
`--host=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name with three fields:
CPU-COMPANY-SYSTEM
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the host type.
If you are building compiler tools for cross-compiling, you can also
use the `--target=TYPE' option to select the type of system they will
produce code for and the `--build=TYPE' option to select the type of
system on which you are compiling the package.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Operation Controls
==================
`configure' recognizes the following options to control how it
operates.
`--cache-file=FILE'
Use and save the results of the tests in FILE instead of
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
debugging `configure'.
`--help'
Print a summary of the options to `configure', and exit.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--version'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`configure' also accepts some other, not widely useful, options.

2
Makefile.am Normal file
View File

@ -0,0 +1,2 @@
EXTRA_DIST = configure acconfig.h reconf
SUBDIRS = src doc

354
Makefile.in Normal file
View File

@ -0,0 +1,354 @@
# Makefile.in generated automatically by automake 1.4a from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_FLAG =
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
CC = @CC@
CFLAGS = @CFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
MAKEINFO = @MAKEINFO@
PACKAGE = @PACKAGE@
VERSION = @VERSION@
EXTRA_DIST = configure acconfig.h reconf
SUBDIRS = src doc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ./src/defines.h
CONFIG_CLEAN_FILES =
DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
Makefile.in NEWS THANKS acconfig.h aclocal.m4 configure configure.in \
install-sh missing mkinstalldirs src/defines.h.in src/stamp-h.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): configure.in
cd $(srcdir) && $(ACLOCAL)
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
src/defines.h: src/stamp-h
@if test ! -f $@; then \
rm -f src/stamp-h; \
$(MAKE) src/stamp-h; \
else :; fi
src/stamp-h: $(srcdir)/src/defines.h.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES= CONFIG_HEADERS=src/defines.h \
$(SHELL) ./config.status
@echo timestamp > src/stamp-h 2> /dev/null
$(srcdir)/src/defines.h.in: $(srcdir)/src/stamp-h.in
@if test ! -f $@; then \
rm -f $(srcdir)/src/stamp-h.in; \
$(MAKE) $(srcdir)/src/stamp-h.in; \
else :; fi
$(srcdir)/src/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
cd $(top_srcdir) && $(AUTOHEADER)
@echo timestamp > $(srcdir)/src/stamp-h.in 2> /dev/null
mostlyclean-hdr:
clean-hdr:
distclean-hdr:
-rm -f src/defines.h
maintainer-clean-hdr:
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
@SET_MAKE@
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
test "$$subdir" = "." && dot_seen=yes; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
-rm -rf $(distdir)
GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
mkdir $(distdir)/=build
mkdir $(distdir)/=inst
dc_install_base=`cd $(distdir)/=inst && pwd`; \
cd $(distdir)/=build \
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) dist
-rm -rf $(distdir)
@banner="$(distdir).tar.gz is ready for distribution"; \
dashes=`echo "$$banner" | sed s/./=/g`; \
echo "$$dashes"; \
echo "$$banner"; \
echo "$$dashes"
dist: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
dist-all: distdir
-chmod -R a+r $(distdir)
GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-rm -rf $(distdir)
distdir: $(DISTFILES)
-rm -rf $(distdir)
mkdir $(distdir)
-chmod 777 $(distdir)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
for subdir in $(SUBDIRS); do \
if test "$$subdir" = .; then :; else \
test -d $(distdir)/$$subdir \
|| mkdir $(distdir)/$$subdir \
|| exit 1; \
chmod 777 $(distdir)/$$subdir; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
|| exit 1; \
fi; \
done
info-am:
info: info-recursive
dvi-am:
dvi: dvi-recursive
check-am: all-am
check: check-recursive
installcheck-am:
installcheck: installcheck-recursive
install-exec-am:
install-exec: install-exec-recursive
install-data-am:
install-data: install-data-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-recursive
uninstall-am:
uninstall: uninstall-recursive
all-am: Makefile
all-redirect: all-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
installdirs: installdirs-recursive
installdirs-am:
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-hdr mostlyclean-tags mostlyclean-generic
mostlyclean: mostlyclean-recursive
clean-am: clean-hdr clean-tags clean-generic mostlyclean-am
clean: clean-recursive
distclean-am: distclean-hdr distclean-tags distclean-generic clean-am
distclean: distclean-recursive
-rm -f config.status
maintainer-clean-am: maintainer-clean-hdr maintainer-clean-tags \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-recursive
-rm -f config.status
.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
install-data-recursive uninstall-data-recursive install-exec-recursive \
uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
all-recursive check-recursive installcheck-recursive info-recursive \
dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
install-exec install-data-am install-data install-am install \
uninstall-am uninstall all-redirect all-am all installdirs-am \
installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

41
NEWS Normal file
View File

@ -0,0 +1,41 @@
NEWS
====
This is another interim release of tinyproxy that fixes a few more bugs,
and adds a feature or two (notably: non-blocking DNS lookups). It was
decided to move back what was previously going to be released as 1.3.2 and
release it as 1.4.0, as these bug fixes and patches were determined to be
too high-priority to wait on.
In this version of 1.3.2, the are the following new features:
- Non-blocking DNS lookups.
And the following bug fixes:
- A bug where connptr was not correctly being set before httperr was being
called in reqs.c.
- A bug where the system would crash if an empty request was received.
- A file descriptor leak where an fd would not be properly closed in
event of a bad HTTP request.
Here is some information on the upcoming 1.4.0 release:
1.4.0
=====
1.4.0 is in the works. Some features you can expect:
- Ability to listen on >1 port.
- Ability to set up more than one access list for the allowed
IP subnets.
- Ability to listen on multiple interfaces specified on the command-line.
- Simple caching.
Under the hood, 1.4.0 should be a bit more modular than 1.3.2. This
will hopefully lend itself towards making it easier for third parties to
develop new features for tinyproxy.
Please note that as of 1.3.1, Steven Young <sdyoung@well.com> is once
again the primary maintainer of tinyproxy.

99
README Normal file
View File

@ -0,0 +1,99 @@
This is tinyproxy-adns, tinyproxy with support for GNU adns asynchronous
resolver library.
DESCRIPTION
-----------
tinyproxy is a small, efficient HTTP proxy daemon. tinyproxy is very
useful in a small network setting, where a larger proxy like Squid
would either be too resource intensive, or a security risk. One of
the key features of tinyproxy is the buffering connection concept.
In effect, tinyproxy will buffer a high speed response from a server,
and then relay it to a client at the highest speed the client will
accept. This feature greatly reduces the problems with sluggishness
on the Internet. If you are sharing an Internet connection with a
small network, and you only want to allow HTTP requests to be
allowed, then tinyproxy is a great tool for the network
administrator.
This version of tinyproxy must be compiled with GNU adns, available from
http://www.chiark.greenend.org.uk/~ian/adns/.
INSTALLATION
------------
To install this package under a Unix derivative, read the INSTALL
file. tinyproxy uses a standard GNU configure script. There are
additional command line arguments you can supply to configure. They
include:
--enable-debug If you would like to turn on full
debugging support
--enable-socks This turns on SOCKS support for using
tinyproxy across a fire wall.
--enable-xtinyproxy Compile in support for the XTinyproxy
header, which is sent to any web
server in your domain.
Options for GNU adns
--with-adns-include=DIR Set the directory in which adns.h has
been installed. Required if this is in
a non-standard location.
--with-adns-lib=DIR Set the directory in which libadns.* have
been installed. Required if this is in
a non-standard location.
Options for file locations etc.
--with-port=PORT Set the port on which tinyproxy listens,
by default 8080.
--with-log-file=FILE Set the default logfile location.
--with-user=USER Set the default user to which tinyproxy
will setuid() upon startup.
Once you have completed your installation, if you would like to
report your success please execute the report.sh script in the doc
directory. This will send an email to the authors reporting your
version, and a few bits of information concerning the memory usage of
tinyproxy. Alternatively, you could just send an email stating the
version. Which ever you prefer.
SUPPORT
-------
If you are having problems with tinyproxy, please report the problem
to:
Steven Young <sdyoung@well.com>
Robert James Kaes <rjkaes@flarenet.com>
If the problem seems to be to do with GNU adns support (or if I've done
something obviously wrong), please email
Chris Lightfoot <chris@ex-parrot.com>
Please recompile tinyproxy with full debug support (--enable-debug)
and include a copy of the log file, and any assert errors reported by
tinyproxy. Also, if you feel up to it, try running tinyproxy under
your debugger and report the error your received and a context
listing of the location. Under gdb you would run tinyproxy like so:
gdb tinyproxy
(gdb) set args -p port_num -l log_file -d
(gdb) run
Now access the port tinyproxy is on until you receive a break in the
gdb. You can now type:
(gbd) l
to produce a context listing of the location of the error. Send a
copy to the authors.
HOW TO CONTRIBUTE TO tinyproxy
------------------------------
If you would like to contribute a feature, or a bug fix to the
tinyproxy source, please send a diff (preferable a unified
diff. i.e. "diff -u") against the latest release of tinyproxy. Also,
if you could include a brief description of what your patch does.

42
THANKS Normal file
View File

@ -0,0 +1,42 @@
Tinyproxy wouldn't be possible in its current form without the help of
the following people. Thanks a lot, guys (sorted in no particular
order). Note that in the case of entries listed under 'numerous others',
only the first person to report it is listed.
Steven Young - Wrote version 1.0 - 1.1
Robert James Kaes - Wrote versions from 1.2 to 1.3 and
autoconf enabled the source tree.
Albert Ragnarsson - Made an RPM out of the 1.0d .tar.gz archive.
Alan W Black - Misc. bug reports and fixes.
Ed Boraas - Various suggestions, helped beta test 1.0d.
Abhijit Menon-Sen - Beta tested 1.1, numerous bugs fixed
and features improved. Also helped
establish world peace and eliminate
hunger and poverty. Generally
credited with the singlehanded
abolition of all crime and dishonesty.
Jay Kominek - Made the 1.1 DEB.
Eran Tromer - Provided webspace at attacca.com.
Bruno Viaris - Found and provided initial fix for
bug in the clientreq() routine when
dealing with broken requests from clients.
Alexander Loehr - Found and provided fix for a bug in
the listen_sock routine.
Bob Grabau - Added additional logging of URLs to
incoming connections.
Mitsuru Yoshida - Made the FreeBSD port
Ian Holsman - Suggested the selective listening option
Peter Meerwald - Portability suggests and improvements
Shaun Johnson - Fixed a problem with compiling with
syslog enabled on a SunOS box. Should
help other systems too.
Timothy E. Newsome - SOCKS firewall enabled tinyproxy
George Talusan - Bug testing
Chris Lightfoot - Provided patches to give tinyproxy adns
support.
Michael Pearson,
numerous others - Reported connptr bug with patch.
Raja Subramanian - Reported fd leak bug, with patch.
Raja Subramanian,
numerous others - Reported null requests bug.

20
acconfig.h Normal file
View File

@ -0,0 +1,20 @@
/*
* Define if you want to have the peer's IP address to be included in a
* XTinyproxy header sent to the server.
*/
#undef XTINYPROXY
/* chris - undef'd here so that they can be set up in the configure script */
#undef DEFAULT_LOG
#undef DEFAULT_PORT
#undef DEFAULT_USER
/*
* Define if you would like to include filtering code.
*/
#undef FILTER_ENABLE
/*
* Define if you want to use the included GNU regex routine
*/
#undef USE_GNU_REGEX

129
aclocal.m4 vendored Normal file
View File

@ -0,0 +1,129 @@
dnl aclocal.m4 generated automatically by aclocal 1.4a
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
dnl PARTICULAR PURPOSE.
# Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.
# serial 1
dnl Usage:
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
AC_DEFUN(AM_INIT_AUTOMAKE,
[AC_REQUIRE([AC_PROG_INSTALL])
dnl We require 2.13 because we rely on SHELL being computed by configure.
AC_PREREQ([2.13])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
VERSION=[$2]
AC_SUBST(VERSION)
dnl test to see if srcdir already configured
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
fi
ifelse([$3],,
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM])
dnl FIXME This is truly gross.
missing_dir=`cd $ac_aux_dir && pwd`
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_REQUIRE([AC_PROG_MAKE_SET])])
#
# Check to make sure that the build environment is sane.
#
AC_DEFUN(AM_SANITY_CHECK,
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftestfile
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
if test "[$]*" = "X"; then
# -L didn't work.
set X `ls -t $srcdir/configure conftestfile`
fi
if test "[$]*" != "X $srcdir/configure conftestfile" \
&& test "[$]*" != "X conftestfile $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
alias in your environment])
fi
test "[$]2" = conftestfile
)
then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
rm -f conftest*
AC_MSG_RESULT(yes)])
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
dnl The program must properly implement --version.
AC_DEFUN(AM_MISSING_PROG,
[AC_MSG_CHECKING(for working $2)
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
# Redirect stdin to placate older versions of autoconf. Sigh.
if ($2 --version) < /dev/null > /dev/null 2>&1; then
$1=$2
AC_MSG_RESULT(found)
else
$1="$3/missing $2"
AC_MSG_RESULT(missing)
fi
AC_SUBST($1)])
# Like AC_CONFIG_HEADER, but automatically create stamp file.
AC_DEFUN(AM_CONFIG_HEADER,
[AC_PREREQ([2.12])
AC_CONFIG_HEADER([$1])
dnl When config.status generates a header, we must update the stamp-h file.
dnl This file resides in the same directory as the config header
dnl that is generated. We must strip everything past the first ":",
dnl and everything past the last "/".
AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
<<am_indx=1
for am_file in <<$1>>; do
case " <<$>>CONFIG_HEADERS " in
*" <<$>>am_file "*<<)>>
echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
;;
esac
am_indx=`expr "<<$>>am_indx" + 1`
done<<>>dnl>>)
changequote([,]))])

8
adns-0.6/.cvsignore Normal file
View File

@ -0,0 +1,8 @@
Makefile
config.log
config.cache
config.status
dist_tmp
adns-*.tar.gz
settings.make
*.tmp*

340
adns-0.6/COPYING Normal file
View File

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) 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
this service 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 make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. 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.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
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
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the 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 a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE 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.
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
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
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 2 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, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision 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, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This 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 Library General
Public License instead of this License.

58
adns-0.6/INSTALL Normal file
View File

@ -0,0 +1,58 @@
INSTALLATION INSTRUCTIONS for ADNS
$ ./configure
$ make
# make install
Unfortunately, since this is a beta, there is no good documentation
yet. For now, use the comments in the public header file adns.h.
You will find that adns requires a reasonably standard and up to date
system.
In particular, the build system assumes that you have ELF shared
libraries. If you don't then please don't send me patches to support
your kind of shared libraries, and don't send me patches to use
libtool. I'm not interested in supporting non-ELF shared libraries.
However, if you send me an appropriate patch I'd be willing to make it
easy or automatic to disable the ELF shared library arrangements.
The adnsresfilter utility uses `tsearch' from the C library (a la SVID
and X/Open). If your C library doesn't have tsearch you will find
that configure arranges for adnsresfilter not to be built. To rectify
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.
You will probably find that GNU Make is required.
COPYRIGHT
This file, INSTALL, contains installation instructions and other
details for adns.
adns is
Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
Copyright (C) 1999 Tony Finch <dot@dotat.at>
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 2 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 userv as the file COPYING; if not, email me at the address
above or write to the Free Software Foundation, 59 Temple Place -
Suite 330, Boston, MA 02111-1307, USA.
# Local variables:
# mode: text
# End:

68
adns-0.6/Makefile.in Normal file
View File

@ -0,0 +1,68 @@
# Makefile - top-level Makefile
#
# This file is
# Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
#
# It is part of adns, which is
# Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
# Copyright (C) 1999 Tony Finch <dot@dotat.at>
#
# 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 2, 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,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
DISTVERSION= 0.6
srcdir= @srcdir@
VPATH= @srcdir@
SUBDIRS= src 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
distclean-here maintainer-clean-here: clean-here
rm -f settings.make config.h config.cache config.log config.status
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 CVS -o -name dist_tmp* \) -prune -o -type d -print | \
sed -e 's#.*#mkdir -p $(dist_tmp)/&#' | sh
find \( -name CVS -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 .
check: all
$(MAKE) -C regress check
README README-update:
lynx -dump -number_links -cfg=/dev/null \
http://www.chiark.greenend.org.uk/~ian/adns/ >README.tmp
mv -f README.tmp README
TAGS info dvi:
# do nothing

148
adns-0.6/README Normal file
View File

@ -0,0 +1,148 @@
GNU adns
Advanced, easy to use, asynchronous-capable DNS client library.
adns is a resolver library for C (and C++) programs. In contrast with
the existing 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
formats.
* Sanity checking (eg, name syntax checking, reverse/forward
correspondence, CNAME pointing to CNAME) is performed
automatically.
* 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.
* 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 sanity checks
eg 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.
Forthcoming:
I hope that future versions may also have the following features:
* The library should be useable by threads in a multithreaded
program in a natural way. It should multiplex many threads'
queries through a single query socket.
* IPv6 support.
* Some kind of awareness of DNSSEC.
* Possibly some very limited caching behaviour.
(Technical note: adns requires a real nameserver like [1]BIND or
[2]Dents running on the same system or a nearby one, which must be
willing to provide `recursive service'. I.e., adns is a `stub
resolver'. All properly configured UN*X and GNU systems will already
have such nameserver(s); they are usually listed in /etc/resolv.conf.)
Documentation
I'm afraid there is no manual yet. However, competent C programmers
should be able to use the library based on the commented [3]adns.h
header file (from version 0.4).
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.
If you are subscribed to adns-discuss please send feedback, including
bug reports, there; otherwise send mail to
adns-bugreports@chiark.greenend.org.uk. If you'd prefer that your
message wasn't forwarded to the adns-bugreports list, send it to
adns-maint@chiark.greendend.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, &c. The bug reports address mentioned
above is also a mailing list; feel free to subscribe to it.
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.
Download
Available for download from [5]chiark.greenend.org.uk are:
* The [6]current pre-release version as a gzipped tarfile.
* [7]adns.h API header file with comments (currently there is no
manual, sorry).
* All versions released so far are also available via [8]anonymous
FTP.
* A mirror of my CVS repository is available via rsync from
rsync.chiark.greenend.org.uk::ftp/users/ian/cvs-pub/adns (use FTP
first to find your way around).
adns is also available from the [9]GNU Project FTP servers and their
[10]mirrors.
Copyright and licensing
adns is Copyright 1997-1999 Ian Jackson.
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 2 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
[11]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 [12]Free Software Foundation, 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA, or email adns-maint@chiark.greenend.org.uk.
_________________________________________________________________
[13]Ian Jackson / [14]adns-maint@chiark.greenend.org.uk; more [15]free
software by me.
[16]GNU home page; [17]chiark home page; [18]site or mirror home page
This web page is Copyright (C)1996-1999 Ian Jackson. See the
[19]Copyright/acknowledgements.
Use any browser - [20]Campaign for a non-browser-specific WWW
References
1. http://www.isc.org/view.cgi?/products/BIND/index.phtml
2. http://www.dents.org/
3. http://www.chiark.greenend.org.uk/~ian/adns/adns.h.0.4.txt
4. http://www.chiark.greenend.org.uk/mailman/listinfo
5. http://www.chiark.greenend.org.uk/~ian/adns/
6. http://www.chiark.greenend.org.uk/~ian/adns/adns.tar.gz
7. http://www.chiark.greenend.org.uk/~ian/adns/adns.h.0.5.txt
8. ftp://ftp.chiark.greenend.org.uk/users/ian/adns/
9. http://www.gnu.org/
10. http://www.gnu.org/order/ftp.html
11. http://www.chiark.greenend.org.uk/~ian/COPYING.txt
12. http://www.fsf.org/
13. http://www.chiark.greenend.org.uk/
14. mailto:adns-maint@chiark.greenend.org.uk
15. http://www.chiark.greenend.org.uk/~ian/software/
16. http://www.gnu.org/
17. http://www.chiark.greenend.org.uk/
18. http://www.chiark.greenend.org.uk/
19. http://www.chiark.greenend.org.uk/~ian/sw-www-copy.html
20. http://www.anybrowser.org/campaign/

15
adns-0.6/TODO Normal file
View File

@ -0,0 +1,15 @@
INVESTIGATE:
* coredump in adnstest_s
BUGS:
* adns_qf_quoteok_cname should be the default.
WISHLIST:
* Easy way to make a reverse query.
* 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.
* DNSSEC functionality - provide security ?
* Easy-to-use scripting query tool

109
adns-0.6/acconfig.h Normal file
View File

@ -0,0 +1,109 @@
/*
* acconfig.h
* input file for autoheader/autoconf/configure: extra stuff for config.h
*/
/*
* This file is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
*
* It is part of adns, which is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
* Copyright (C) 1999 Tony Finch <dot@dotat.at>
*
* 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 2, 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,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* 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: */
#ifdef HAVE_POLL
#include <sys/poll.h>
#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 <rpc/types.h>
#endif

70
adns-0.6/aclocal.m4 vendored Normal file
View File

@ -0,0 +1,70 @@
# aclocal.m4 - package-specific macros for autoconf
#
# This file is
# Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
#
# It is part of adns, which is
# Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
# Copyright (C) 1999 Tony Finch <dot@dotat.at>
#
# This file is part of adns, which is Copyright (C) 1997-1999 Ian Jackson
#
# 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 2, 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,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
dnl DPKG_CACHED_TRY_COMPILE(<description>,<cachevar>,<include>,<program>,<ifyes>,<ifno>)
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])
])
])
])

164
adns-0.6/changelog Normal file
View File

@ -0,0 +1,164 @@
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 <stdlib.h> and <sys/types.h> 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 <ian@davenant.greenend.org.uk> 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 <ian@davenant.greenend.org.uk> 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.
* <adns.h> includes <sys/types.h>, <sys/time.h>, <unistd.h>.
-- Ian Jackson <ian@davenant.greenend.org.uk> 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 <ian@davenant.greenend.org.uk> Thu, 15 Jul 1999 00:23:12 +0100
adns (0.2) experimental; urgency=low
Portability fixes for compilation on various platforms:
* Include <sys/socket.h> and <netinet/in.h> in files with <arpa/inet.h>.
* 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 <sys/times.h> in a few more files.
* Include <unistd.h> and <sys/time.h> 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 <ian@davenant.greenend.org.uk> Thu, 20 May 1999 00:27:32 +0100
adns (0.1) experimental; urgency=low
* Initial public alpha release.
-- Ian Jackson <ian@davenant.greenend.org.uk> Sat, 17 April 1999 17:42:19
Local variables:
mode: debian-changelog
fill-column: 75
End:

View File

@ -0,0 +1,11 @@
Makefile
adnstest
adnstest_s
adnslogres
adnslogres_s
adnshost
adnshost_s
adnsresfilter
adnsresfilter_s
fanftest
fanftest_s

View File

@ -0,0 +1,74 @@
# client/Makefile - client program(s) Makefile
#
# This file is
# Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
#
# It is part of adns, which is
# Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
# Copyright (C) 1999 Tony Finch <dot@dotat.at>
#
# 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 2, 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,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
srcdir= @srcdir@
VPATH= @srcdir@
PROGS_SYSDEP= @PROGS_HAVE_TSEARCH@
PROGRAMS= adnstest adnslogres adnshost $(PROGS_SYSDEP)
PROGRAMS_LOCAL= fanftest
PROGRAMS_ALL= $(PROGRAMS) $(PROGRAMS_LOCAL)
TARG_INSTALL= $(PROGRAMS)
TARG_LOCAL= $(addsuffix _s, $(PROGRAMS_ALL))
TARGETS= $(TARG_LOCAL) $(TARG_INSTALL)
include $(srcdir)/../settings.make
DIRCFLAGS= -I$(srcdir)/../src
TARG_OBJS= $(addsuffix .o, $(PROGRAMS_ALL))
ADH_OBJS= adh-main.o adh-opts.o adh-query.o
ALL_OBJS= $(ADH_OBJS) $(TARG_OBJS)
ADNSDIR= $(srcdir)/../src/
STATIC_LIB= $(ADNSDIR)/libadns.a
DYNAMIC_DEP= $(srcdir)/../dynamic/$(SHLIBFILE)
DYNAMIC_LINK= -L$(srcdir)/../dynamic -ladns
all: $(TARGETS)
install: $(TARG_INSTALL)
set -xe; for f in $(TARG_INSTALL); \
do $(INSTALL_PROGRAM) $$f $(bin_dir)/$$f; done
uninstall:
for f in $(TARGETS); do rm -f $(bin_dir)/$$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 $(ADNSDIR)/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)

243
adns-0.6/client/adh-main.c Normal file
View File

@ -0,0 +1,243 @@
/*
* adh-main.c
* - useful general-purpose resolver client program
* main program and useful subroutines
*/
/*
* This file is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
*
* It is part of adns, which is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
* Copyright (C) 1999 Tony Finch <dot@dotat.at>
*
* 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 2, 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,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "adnshost.h"
void sysfail(const char *what, int errnoval) {
fprintf(stderr,"adnshost failed: %s: %s\n",what,strerror(errnoval));
exit(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);
exit(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_type(const struct optioninfo *oi, const char *arg) {
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_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_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_none, 0 }
};
const struct typename *tnp;
for (tnp=typenames;
tnp->type && strcmp(arg,tnp->desc);
tnp++);
if (!tnp->type) usageerr("unknown RR type %s",arg);
ov_type= tnp->type;
}
int rcode;
static void process_optarg(const char *arg,
const char *const **argv_p,
const char *value) {
const struct optioninfo *oip;
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);
} else {
if (value) usageerr("option --%s does not take a value",oip->lopt);
arg= 0;
}
opt_do(oip,arg,invert);
} 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,arg,invert);
arg= "";
} else {
if (value) usageerr("option -%s does not take a value",oip->sopt);
opt_do(oip,0,invert);
}
}
}
} else { /* arg[0] != '-' */
query_do(arg);
}
}
static void read_stdin(void) {
static int used, avail;
static char *buf;
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();
exit(rcode);
}

337
adns-0.6/client/adh-opts.c Normal file
View File

@ -0,0 +1,337 @@
/*
* adh-opts.c
* - useful general-purpose resolver client program
* option handling tables etc.
*/
/*
* This file is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
*
* It is part of adns, which is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
* Copyright (C) 1999 Tony Finch <dot@dotat.at>
*
* 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 2, 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,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#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_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_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_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 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 <id>, default is decimal sequence starting 0",
0, "asynch-id", 0,0, &of_asynch_id, "id" },
{ ot_funcarg, "Cancel the query with id <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_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, "<domain>");
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"
" [<owner>] [<ttl>] [<type>] <data>\n"
"or if the <owner> domain refers to a CNAME and --show-cname is on\n"
" [<owner>] [<ttl>] CNAME <cname>\n"
" [<cname>] [<ttl>] <type> <data>\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 <statustype> <statusnum> <statusabbrev> \\\n"
" [<owner>] [<ttl>] [<cname>] \"<status string>\"\n"
"If you use --fmt-asynch, which is the default for --asynch,\n"
"each answer (success or failure) is preceded by a line\n"
" <id> <nrrs> <statustype> <statusnum> <statusabbrev> \\\n"
" [<owner>] [<ttl>] [<cname>] \"<status string>\"\n"
"where <nrrs> is the number of RRs that follow and <cname> 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 addr - enhanced versions\n"
" cname hinfo txt - types with only one version\n"
" a ns- soa- ptr- mx- rp- - _raw versions\n"
"Default is addr, or ptr for -i/--ptr queries\n",
stdout);
if (ferror(stdout)) sysfail("write usage message",errno);
}
void of_help(const struct optioninfo *oi, const char *arg) {
printusage();
if (fclose(stdout)) sysfail("finish writing output",errno);
exit(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, const char *arg, int invert) {
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:
if (invert) noninvert(oip);
oip->func(oip,arg);
return;
default:
abort();
}
}

274
adns-0.6/client/adh-query.c Normal file
View File

@ -0,0 +1,274 @@
/*
* adh-query.c
* - useful general-purpose resolver client program
* make queries and print answers
*/
/*
* This file is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
*
* It is part of adns, which is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
* Copyright (C) 1999 Tony Finch <dot@dotat.at>
*
* 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 2, 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,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "adnshost.h"
adns_state ads;
struct outstanding_list outstanding;
static unsigned long idcounter;
void ensure_adns_init(void) {
int r;
if (ads) return;
if (signal(SIGPIPE,SIG_IGN) == SIG_ERR) sysfail("ignore SIGPIPE",errno);
r= adns_init(&ads,
adns_if_noautosys|adns_if_nosigpipe |
(ov_env ? 0 : adns_if_noenv) |
ov_verbose,
0);
if (r) sysfail("adns_init",r);
if (ov_format == fmt_default)
ov_format= ov_asynch ? fmt_asynch : fmt_simple;
}
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_cname,
*qun_r= qun;
}
void of_ptr(const struct optioninfo *oi, const char *arg) {
struct query_node *qun;
int quflags, r;
struct sockaddr_in sa;
memset(&sa,0,sizeof(sa));
sa.sin_family= AF_INET;
if (!inet_aton(arg,&sa.sin_addr)) usageerr("invalid IP address %s",arg);
prep_query(&qun,&quflags);
r= adns_submit_reverse(ads,
(struct sockaddr*)&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 query_do(const char *domain) {
struct query_node *qun;
int quflags, r;
prep_query(&qun,&quflags);
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);
}
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 void print_owner_ttl(struct query_node *qun, adns_answer *answer) {
if (qun->pqfr.show_owner) print_withspace(answer->owner);
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;
adns_status ist;
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", answer->owner);
} else {
ist= adns_rr_info(answer->type, &typename, 0,0,0,0);
if (st == adns_s_nodata) {
r= fprintf(stderr,"%s has no %s record\n", answer->owner, typename);
} else {
statusstring= adns_strerror(st);
r= fprintf(stderr,"Error during DNS %s lookup for %s: %s\n",
typename, answer->owner, statusstring);
}
}
if (r == EOF) sysfail("write error message to stderr",errno);
}
void query_done(struct query_node *qun, adns_answer *answer) {
adns_status st, ist;
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 : answer->owner;
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);
ist= adns_rr_info(answer->type, &typename, 0, 0, rrp, &datastr);
if (ist == adns_s_nomemory) sysfail("adns_rr_info failed",ENOMEM);
assert(!ist);
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) {
free(ov_id);
ov_id= xstrsave(arg);
}
void of_cancel_id(const struct optioninfo *oi, const char *arg) {
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);
}

118
adns-0.6/client/adnshost.h Normal file
View File

@ -0,0 +1,118 @@
/*
* adnshost.h
* - useful general-purpose resolver client program, header file
*/
/*
* This file is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
*
* It is part of adns, which is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
* Copyright (C) 1999 Tony Finch <dot@dotat.at>
*
* 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 2, 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,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef ADNSHOST_H_INCLUDED
#define ADNSHOST_H_INCLUDED
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <signal.h>
#include <stdarg.h>
#include <stdlib.h>
#include <assert.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "config.h"
#include "adns.h"
#include "dlist.h"
/* declarations related to option processing */
struct optioninfo;
typedef void optfunc(const struct optioninfo *oi, const char *arg);
struct optioninfo {
enum oi_type {
ot_end, ot_desconly,
ot_flag, ot_value, ot_func, ot_funcarg
} type;
const char *desc;
const char *sopt, *lopt;
int *storep, value;
optfunc *func;
const char *argdesc;
};
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_format;
extern char *ov_id;
extern struct perqueryflags_remember ov_pqfr;
extern optfunc of_help, of_type, of_ptr, 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, const char *arg, int invert);
/* declarations related to query processing */
struct query_node {
struct query_node *next, *back;
struct perqueryflags_remember pqfr;
char *id;
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 of_asynch_id(const struct optioninfo *oi, const char *arg);
void of_cancel_id(const struct optioninfo *oi, const char *arg);
/* 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;
#endif

View File

@ -0,0 +1,239 @@
/*
* adnslogres.c
* - a replacement for the Apache logresolve program using adns
*/
/*
* This file is
* Copyright (C) 1999 Tony Finch <dot@dotat.at>
* Copyright (C) 1999 Ian Jackson <ian@davenant.greenend.org.uk>
*
* It is part of adns, which is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
* Copyright (C) 1999 Tony Finch <dot@dotat.at>
*
* 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 2, 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,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* This version was originally supplied by Tony Finch, but has been
* modified by Ian Jackson as it was incorporated into adns.
*/
static const char * const cvsid =
"$Id: adnslogres.c,v 1.1.1.1 2000-02-16 17:32:28 sdyoung Exp $";
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <errno.h>
#include "adns.h"
/* maximum number of concurrent DNS queries */
#define MAXPENDING 1000
/* maximum length of a line */
#define MAXLINE 1024
/* option flags */
#define OPT_DEBUG 1
#define OPT_POLL 2
static const char *progname;
#define msg(fmt, args...) fprintf(stderr, "%s: " fmt "\n", progname, ##args)
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 (!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 (isdigit(*ptrs[i]++));
if ((i == 4 && !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.",
ptrs[4]-ptrs[3]-1, ptrs[3],
ptrs[3]-ptrs[2]-1, ptrs[2],
ptrs[2]-ptrs[1]-1, ptrs[1],
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", 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", line->rest-line->addr, 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 opts) {
int eof, err, len;
adns_state adns;
adns_answer *answer;
logline *head, *tail, *line;
errno= adns_init(&adns, (opts & OPT_DEBUG) ? adns_if_debug : 0, 0);
if (errno) aargh("adns_init");
head= tail= readline(inf, adns, opts);
len= 1; eof= 0;
while (head) {
if (opts & OPT_DEBUG)
msg("%d in queue; checking %.*s", len,
head->rest-head->addr, 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) {
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)
eof= 1;
else {
if (!head)
head= line;
else
tail->next= line;
tail= line;
len++;
}
}
}
adns_finish(adns);
}
static void usage(void) {
fprintf(stderr, "usage: %s [-d] [-p] [logfile]\n", progname);
exit(1);
}
int main(int argc, char *argv[]) {
int c, opts;
FILE *inf;
progname= strrchr(*argv, '/');
if (progname)
progname++;
else
progname= *argv;
opts= 0;
while ((c= getopt(argc, argv, "dp")) != -1)
switch (c) {
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, opts);
if (fclose(inf))
aargh("fclose input");
if (fclose(stdout))
aargh("fclose output");
return 0;
}

View File

@ -0,0 +1,454 @@
/*
* adnsresfilter.c
* - filter which does resolving, not part of the library
*/
/*
* This file is
* Copyright (C) 1999 Ian Jackson <ian@davenant.greenend.org.uk>
*
* It is part of adns, which is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
* Copyright (C) 1999 Tony Finch <dot@dotat.at>
*
* 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 2, 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,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <search.h>
#include <assert.h>
#include <ctype.h>
#include <sys/fcntl.h>
#include "adns.h"
#include "config.h"
#include "dlist.h"
#include "tvarith.h"
struct outqueuenode {
struct outqueuenode *next, *back;
void *buffer;
char *textp;
int textlen;
struct timeval printbefore;
struct treething *addr;
};
static int bracket, forever, address;
static unsigned long timeout=100;
static adns_rrtype rrt= adns_r_ptr;
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;
}
static void quit(int exitstatus) NONRETURNING;
static void quit(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));
quit(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 [<options ...>]\n"
" adnsresfilter -h|--help\n"
"options: -t<milliseconds>|--timeout <milliseconds>\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"
"Timeout is the maximum amount to delay any particular bit of output for.\n"
"Lookups will go on in the background. Default timeout = 100 (ms).\n")
== EOF) outputerr();
}
static void usageerr(const char *why) NONRETURNING;
static void usageerr(const char *why) {
fprintf(stderr,"adnsresfilter: bad usage: %s\n",why);
usage();
quit(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));
quit(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,"--brackets")) {
bracket= 1;
} else if (!strcmp(arg,"--unchecked")) {
rrt= adns_r_ptr_raw;
} else if (!strcmp(arg,"--wait")) {
forever= 1;
} else if (!strcmp(arg,"--address")) {
address= 1;
} else if (!strcmp(arg,"--help")) {
usage(); quit(0);
} else if (!strcmp(arg,"--timeout")) {
if (!(arg= *++argv)) usageerr("--timeout needs a value");
settimeout(arg);
forever= 0;
} else {
usageerr("unknown long option");
}
} else {
while ((c= *++arg)) {
switch (c) {
case 'b':
bracket= 1;
break;
case 'u':
rrt= adns_r_ptr_raw;
break;
case 'w':
forever= 1;
break;
case 'a':
address= 1;
break;
case 'h':
usage();
quit(0);
case 't':
if (*++arg) settimeout(arg);
else if ((arg= *++argv)) settimeout(arg);
else usageerr("-t needs a value");
forever= 0;
arg= "\0";
break;
default:
usageerr("unknown short option");
}
}
}
}
}
static void queueoutchar(int c) {
struct outqueuenode *entry;
entry= outqueue.tail;
if (!entry || entry->addr || entry->textlen >= peroutqueuenode) {
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();
}
}
if (cbyte==3 && inbyte>0 && !bracket) procaddr();
}
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;
r= adns_init(&ads,0,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");
if (ferror(stdin) || fclose(stdin)) sysfail("read stdin");
if (fclose(stdout)) sysfail("close stdout");
exit(0);
}

337
adns-0.6/client/adnstest.c Normal file
View File

@ -0,0 +1,337 @@
/*
* adnstest.c
* - simple test program, not part of the library
*/
/*
* This file is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
*
* It is part of adns, which is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
* Copyright (C) 1999 Tony Finch <dot@dotat.at>
*
* 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 2, 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,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include <stdio.h>
#include <sys/time.h>
#include <unistd.h>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "adns.h"
#include "config.h"
#ifndef OUTPUTSTREAM
# define OUTPUTSTREAM stdout
#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) {
fprintf(stderr,"adns failure: %s: errno=%d\n",what,errnoval);
quitnow(2);
}
static void usageerr(const char *why) NONRETURNING;
static void usageerr(const char *why) {
fprintf(stderr,
"bad usage: %s\n"
"usage: adnstest [-<initflagsnum>[,<owninitflags>]] [/<initstring>]\n"
" [ :<typenum>,... ]\n"
" [ [<queryflagsnum>[,<ownqueryflags>]/]<domain> ... ]\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"
"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, 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 <initflagsnum>[,<owninitflags>]");
}
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; ti<tc; ti++) {
types_a[ti]= strtoul(cp,&cp,10);
if ((ch= *cp)) {
if (ch != ',') usageerr("unexpected char (not comma) in or between types");
cp++;
}
}
types_a[ti]= adns_r_none;
types= types_a;
argv++;
} else {
types_a= 0;
types= defaulttypes;
}
if (!(argv[0] && argv[1])) usageerr("no query domains supplied");
fdomlist= (const char *const*)argv+1;
for (qc=0; fdomlist[qc]; qc++);
for (tc=0; types[tc] != adns_r_none; tc++);
mcs= malloc(tc ? sizeof(*mcs)*qc*tc : 1);
if (!mcs) { perror("malloc mcs"); quitnow(3); }
if (initstring) {
r= adns_init_strcfg(&ads,
(adns_if_debug|adns_if_noautosys|adns_if_checkc_freq)
^initflagsnum,
stdout,initstring);
} else {
r= adns_init(&ads,
(adns_if_debug|adns_if_noautosys)^initflagsnum,
0);
}
if (r) failure_errno("init",r);
for (qi=0; qi<qc; qi++) {
fdom_split(fdomlist[qi],&domain,&qflags,ownflags,sizeof(ownflags));
if (!consistsof(ownflags,"a")) usageerr("unknown ownqueryflag");
for (ti=0; ti<tc; ti++) {
mc= &mcs[qi*tc+ti];
mc->doneyet= 0;
mc->fdom= fdomlist[qi];
fprintf(stdout,"%s flags %d type %d",domain,qflags,types[ti]);
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; qi<qc; qi++) {
for (ti=0; ti<tc; ti++) {
mc= &mcs[qi*tc+ti];
mc->found= 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; qi<qc; qi++) {
for (ti=0; ti<tc; ti++) {
mc= &mcs[qi*tc+ti];
if (mc->doneyet) 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; i<ans->nrrs; 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);
}

View File

@ -0,0 +1,85 @@
/*
* fanftest.c
* - a small test program from Tony Finch
*/
/*
* This file is
* Copyright (C) 1999 Tony Finch <dot@dotat.at>
* Copyright (C) 1999 Ian Jackson <ian@davenant.greenend.org.uk>
*
* It is part of adns, which is
* Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
* Copyright (C) 1999 Tony Finch <dot@dotat.at>
*
* 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 2, 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,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* This version was originally supplied by Tony Finch, but has been
* modified by Ian Jackson as it was incorporated into adns.
*/
static const char * const cvsid =
"$Id: fanftest.c,v 1.1.1.1 2000-02-16 17:32:29 sdyoung Exp $";
#include <sys/types.h>
#include <sys/time.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.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 <domain>\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;
}

2
adns-0.6/client/x.gdb Normal file
View File

@ -0,0 +1,2 @@
file adnsresfilter_s
set args <testinput -t2000

1826
adns-0.6/configure vendored Executable file

File diff suppressed because it is too large Load Diff

101
adns-0.6/configure.in Normal file
View File

@ -0,0 +1,101 @@
# configure.in - input to autoconf
#
# This file is
# Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
#
# It is part of adns, which is
# Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
# Copyright (C) 1999 Tony Finch <dot@dotat.at>
#
# 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 2, 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,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
AC_INIT(src/adns.h)
AC_CONFIG_HEADER(src/config.h)
AC_PROG_CC
AC_PROG_CPP
AC_PROG_RANLIB
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 <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
],[
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.])
])
ADNS_C_GCCATTRIB
AC_SUBST(WARNS)
if test "${GCC-no}" = yes; then
WARNS="-Wall -Wmissing-prototypes -Wwrite-strings -Wstrict-prototypes -Wcast-qual -Wpointer-arith"
else
WARNS=
fi
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(
settings.make Makefile
src/Makefile client/Makefile dynamic/Makefile regress/Makefile
)

View File

@ -0,0 +1,2 @@
Makefile
libadns.so.*

View File

@ -0,0 +1,54 @@
# dynamic/Makefile - dynamic library Makefile
#
# This file is
# Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
#
# It is part of adns, which is
# Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
# Copyright (C) 1999 Tony Finch <dot@dotat.at>
#
# 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 2, 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,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
srcdir= @srcdir@
VPATH= @srcdir@
TARGETS= $(SHLIBFILE) $(SHLIBSONAME) $(SHLIBFORLINK)
include $(srcdir)/../settings.make
include $(srcdir)/../src/adns.make
ALLOBJS= $(addsuffix _p.o, $(basename $(LIBOBJS)))
install: $(SHLIBFILE)
$(INSTALL_PROGRAM) $(SHLIBFILE) $(lib_dir)/$(SHLIBFILE)
ln -sf $(SHLIBFILE) $(lib_dir)/$(SHLIBSONAME)
uninstall:
rm -f $(lib_dir)/$(SHLIBFILE) $(lib_dir)/$(SHLIBSONAME)
$(SHLIBFORLINK):
ln -s $(SHLIBSONAME) $(SHLIBFORLINK)
$(SHLIBSONAME):
ln -s $(SHLIBFILE) $(SHLIBSONAME)
$(SHLIBFILE): $(ALLOBJS)
rm -f $@
$(MKSHLIB_1) $@ $(MKSHLIB_2) $(ALLOBJS) $(LDLIBS) $(MKSHLIB_3)
%_p.o: $(srcdir)/../src/%.c $(srcdir)/../src/adns.h \
$(srcdir)/../src/internal.h $(srcdir)/../src/config.h
$(SHLIBCC) -I$(srcdir)/../src -c -o $@ $<
$(LIBOBJS):

View File

@ -0,0 +1,8 @@
Makefile
harness.h
hcommon.c
hrecord
hrecord.c
hplayback
hplayback.c
output-*.*

View File

@ -0,0 +1,65 @@
# regress/Makefile - regression test Makefile
#
# This file is
# Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
#
# It is part of adns, which is
# Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
# Copyright (C) 1999 Tony Finch <dot@dotat.at>
#
# 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 2, 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,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
srcdir= @srcdir@
VPATH= @srcdir@
TARGETS= hplayback hrecord
AUTOCSRCS= harness.h hrecord.c hplayback.c hcommon.c
include $(srcdir)/../settings.make
include $(srcdir)/../src/adns.make
DIRCFLAGS= -I$(srcdir)/../src
HCPPFLAGS:= $(foreach F, \
gettimeofday select poll \
socket fcntl connect close \
sendto recvfrom read write writev \
malloc realloc free exit \
, -D$F=H$F)
HARNLOBJS= $(addsuffix _d.o, $(basename $(LIBOBJS)))
ALLOBJS= $(HARNLOBJS) dtest.o hrecord.o hplayback.o hcommon.o
.PRECIOUS: $(AUTOCSRCS)
check: $(TARGETS)
./checkall
all install uninstall:
hrecord: adnstest_c.o hrecord.o hcommon.o $(HARNLOBJS)
hplayback: adnstest_c.o hplayback.o hcommon.o $(HARNLOBJS)
%_d.o: $(srcdir)/../src/%.c
$(CC) $(HCPPFLAGS) -c -g -o $@ $<
%_c.o: $(srcdir)/../client/%.c
$(CC) $(HCPPFLAGS) -I $(srcdir)/../src -c -g -o $@ $<
$(ALLOBJS): $(srcdir)/../src/adns.h $(srcdir)/../src/internal.h harness.h
%:: %.m4 hmacros.i4 hsyscalls.i4
$(M4) -P $< >$@-a.new
sed -e 's/hm_comma/,/g; s/hm_squote/'\''/g; /^[ ]*$$/d' <$@-a.new >$@-b.new
@mv -f $@-b.new $@; rm -f $@-a.new

9
adns-0.6/regress/addcases Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh
# usage: ./addcases <casename> ...
set -e
for f in "$@"
do
cvs add "case-$f".{sys,out,err}
done

View File

View File

@ -0,0 +1,39 @@
adns 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

View File

@ -0,0 +1,180 @@
1stservbroken
:12 trunc.test.iwj.relativity.greenend.org.uk
start 940102940.701451
socket 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 *addrlen=16
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 *addrlen=16
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 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 *addrlen=16
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
socket type=SOCK_STREAM
socket=5
+0.004866
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=14.000000
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

View File

View File

@ -0,0 +1,37 @@
adns 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

View File

@ -0,0 +1,159 @@
1stservto
:12 trunc.test.iwj.relativity.greenend.org.uk
start 940100259.965940
socket 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 *addrlen=16
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 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 *addrlen=16
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 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

View File

View File

@ -0,0 +1,6 @@
adns 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

View File

@ -0,0 +1,47 @@
2ndserver
:1 davenant.relativity.greenend.org.uk
start 940100095.012145
socket 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 *addrlen=16
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 *addrlen=16
recvfrom=EAGAIN
+0.000423
close fd=4
close=OK
+0.000435

View File

View File

@ -0,0 +1,37 @@
adns 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

View File

@ -0,0 +1,165 @@
2ndserver
:12 trunc.test.iwj.relativity.greenend.org.uk
start 940100083.268555
socket 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 *addrlen=16
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 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 *addrlen=16
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
socket type=SOCK_STREAM
socket=5
+0.000678
fcntl fd=5 cmd=F_GETFL
fcntl=~O_NONBLOCK&...
+0.000042
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=14.000000
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

View File

View File

@ -0,0 +1,40 @@
adns 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 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 PTR(checked) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
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

View File

@ -0,0 +1,282 @@
default
,a/greenend.org.uk
start 929580078.542974
socket 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
31280100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100
01.
sendto=33
+0.000367
sendto fd=4 addr=172.18.45.6:53
31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200
01.
sendto=33
+0.000367
sendto fd=4 addr=172.18.45.6:53
312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00
01.
sendto=33
+0.000366
sendto fd=4 addr=172.18.45.6:53
312b0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00
01.
sendto=33
+0.000378
sendto fd=4 addr=172.18.45.6:53
312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600
01.
sendto=33
+0.000391
sendto fd=4 addr=172.18.45.6:53
312d0100 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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
31288580 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 *addrlen=16
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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
31298580 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 *addrlen=16
recvfrom=EAGAIN
+0.000268
select max=5 rfds=[4] wfds=[] efds=[] to=1.948491
select=1 rfds=[4] wfds=[] efds=[]
+0.002741
recvfrom fd=4 buflen=512 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
312a8580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00000c00
01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61
73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180.
+0.000540
recvfrom fd=4 buflen=512 *addrlen=16
recvfrom=EAGAIN
+0.000129
select max=5 rfds=[4] wfds=[] efds=[] to=1.945447
select=1 rfds=[4] wfds=[] efds=[]
+0.005215
recvfrom fd=4 buflen=512 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
312b8580 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 *addrlen=16
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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
312c8580 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 *addrlen=16
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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
312d8580 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 *addrlen=16
recvfrom=EAGAIN
+0.000099
close fd=4
close=OK
+0.000153

View File

View File

@ -0,0 +1,32 @@
adns 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 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 A(addr) 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 PTR(checked) 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
rc=0

File diff suppressed because it is too large Load Diff

View File

View File

@ -0,0 +1,38 @@
adns 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

View File

@ -0,0 +1,516 @@
default
:15,65551 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 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 *addrlen=16
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 *addrlen=16
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
31250100 00010000 00000000 03313732 02313802 34350233 36000001 0001.
sendto=30
+0.000653
sendto fd=4 addr=172.18.45.6:53
31260100 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
31270100 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 *addrlen=16
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 *addrlen=16
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
31280100 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
31290100 00010000 00000000 03313732 02313802 34350233 36000001 0001.
sendto=30
+0.000569
sendto fd=4 addr=172.18.45.6:53
312a0100 00010000 00000000 09636e61 6d652d70 74720474 65737403 69776a0a
72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001.
sendto=63
+0.000842
recvfrom fd=4 buflen=512 *addrlen=16
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 *addrlen=16
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
312b0100 00010000 00000000 03313732 02313802 34350233 36000001 0001.
sendto=30
+0.000637
sendto fd=4 addr=172.18.45.6:53
312c0100 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
312d0100 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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
31258583 00010000 00000000 03313732 02313802 34350233 36000001 0001.
+0.000242
recvfrom fd=4 buflen=512 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
31268580 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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
31298583 00010000 00000000 03313732 02313802 34350233 36000001 0001.
+0.000223
recvfrom fd=4 buflen=512 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
312a8580 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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
312b8583 00010000 00000000 03313732 02313802 34350233 36000001 0001.
+0.000291
recvfrom fd=4 buflen=512 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
312c8580 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 *addrlen=16
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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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
31270100 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
31280100 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
312d0100 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

View File

View File

@ -0,0 +1,5 @@
adns 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

View File

@ -0,0 +1,58 @@
default
:65548 134.76.224.195.in-addr.arpa
start 929574747.401802
socket 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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
recvfrom=EAGAIN
+0.000193
close fd=4
close=OK
+0.000207

View File

View File

@ -0,0 +1,5 @@
adns 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

View File

@ -0,0 +1,39 @@
default
:1 intel.ugcs.caltech.edu.
start 938369896.279735
socket 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 *addrlen=16
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 *addrlen=16
recvfrom=EAGAIN
+0.000646
close fd=4
close=OK
+0.000242

View File

View File

@ -0,0 +1,39 @@
adns 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 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 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 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

View File

@ -0,0 +1,233 @@
default
292/170.99.219.194.in-addr.arpa
start 933809668.543946
socket 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
31280100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
64647204 61727061 00000100 01.
sendto=45
+0.002552
sendto fd=4 addr=172.18.45.6:53
31290100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
64647204 61727061 00000200 01.
sendto=45
+0.007571
sendto fd=4 addr=172.18.45.6:53
312a0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
64647204 61727061 00000c00 01.
sendto=45
+0.004820
sendto fd=4 addr=172.18.45.6:53
312b0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
64647204 61727061 00000f00 01.
sendto=45
+0.004771
sendto fd=4 addr=172.18.45.6:53
312c0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
64647204 61727061 00000600 01.
sendto=45
+0.004879
sendto fd=4 addr=172.18.45.6:53
312d0100 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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
31288180 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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
31298180 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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
312a8180 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
312e0100 00010000 00000000 0570726f 78790873 636f706c 69666502 67720000
010001.
sendto=35
+0.005061
recvfrom fd=4 buflen=512 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
312b8180 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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
312c8180 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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
312d8180 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 *addrlen=16
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 *addrlen=16
recvfrom=OK addr=172.18.45.6:53
312e8180 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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
recvfrom=EAGAIN
+0.000249
close fd=4
close=OK
+0.000219

View File

@ -0,0 +1,78 @@
adns 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 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 312b, 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 3128, 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)
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 312b, 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 3128, 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 312b, 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 3128, 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)
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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
too many flags

View File

@ -0,0 +1,2 @@
adns debug: using nameserver 172.18.45.6
rc=3

View File

@ -0,0 +1,15 @@
default
:1 ,aaaaaaaaaa/chiark.greenend.org.uk
start 929580072.670441
socket 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

View File

View File

@ -0,0 +1,5 @@
adns 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

View File

@ -0,0 +1,34 @@
default
:1 ,aaaaaaaaa/chiark.greenend.org.uk
start 929580075.263215
socket 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 *addrlen=16
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 *addrlen=16
recvfrom=EAGAIN
+0.000228
close fd=4
close=OK
+0.000205

View File

View File

@ -0,0 +1,10 @@
adns 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

View File

@ -0,0 +1,35 @@
default
:131089 silly-rp.test.iwj.relativity.greenend.org.uk
start 923859567.899146
socket 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 *addrlen=16
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 *addrlen=16
recvfrom=EAGAIN
+0.000604
close fd=4
close=OK
+0.000359

View File

View File

@ -0,0 +1,8 @@
adns 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

View File

@ -0,0 +1,36 @@
default
:1 manyaddrs.test.iwj.relativity.greenend.org.uk
start 912888920.123769
socket 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 *addrlen=16
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 *addrlen=16
recvfrom=EAGAIN
+0.000329
close fd=4
close=OK
+0.000240

View File

View File

@ -0,0 +1,153 @@
adns 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
adns debug: reply not found, id 313b, query owner security.gen.nz (NS=195.224.55.129)
adns debug: reply not found, id 313c, query owner ns.tetra.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 313d, query owner mail.tetra.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 313e, query owner ns.securicard.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 313f, query owner ns.underhour.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 3140, query owner bcc.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 3141, query owner security.org.nz (NS=195.224.55.129)
adns debug: reply not found, id 3142, query owner burglaralarms.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 3143, query owner ns.safes.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 3144, query owner ns.security.org.nz (NS=195.224.55.129)
adns debug: reply not found, id 3145, query owner couperconsulting.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 3146, query owner securityguards.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 3147, query owner ns.guards.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 3148, query owner asis.org.nz (NS=195.224.55.129)
adns debug: reply not found, id 3149, query owner neru.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 314a, query owner giftbasket.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 314b, query owner magic.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 314c, query owner mail.bcc.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 314d, query owner ns.investigation.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 314e, query owner nzipi.org.nz (NS=195.224.55.129)
adns debug: reply not found, id 314f, query owner ns.bouquet.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 3150, query owner mail.safes.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 3151, query owner ns.bcc.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 3152, query owner ns.burglaralarms.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 3153, query owner ns.securityguards.co.nz (NS=195.224.55.129)
adns debug: reply not found, id 318b, query owner agate.co.nz (NS=195.224.55.129)
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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,127 @@
adns 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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,132 @@
adns 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 3129, 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 312b, query owner 254.0.99.203.in-addr.arpa (NS=172.18.45.6)
adns debug: reply not found, id 312c, 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 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(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 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 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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,164 @@
adns 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 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 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
adns debug: reply not found, id 313b, query owner security.gen.nz (NS=172.18.45.6)
adns debug: reply not found, id 313c, query owner ns.tetra.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 313d, query owner mail.tetra.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 313e, query owner ns.securicard.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 313f, query owner ns.underhour.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3140, query owner bcc.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3141, query owner security.org.nz (NS=172.18.45.6)
adns debug: reply not found, id 3142, query owner burglaralarms.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3143, query owner ns.safes.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3144, query owner ns.security.org.nz (NS=172.18.45.6)
adns debug: reply not found, id 3145, query owner couperconsulting.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3146, query owner securityguards.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3147, query owner ns.guards.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3148, query owner asis.org.nz (NS=172.18.45.6)
adns debug: reply not found, id 3149, query owner neru.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 314a, query owner giftbasket.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 314b, query owner magic.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 314c, query owner mail.bcc.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 314d, query owner ns.investigation.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 314e, query owner nzipi.org.nz (NS=172.18.45.6)
adns debug: reply not found, id 314f, query owner ns.bouquet.co.nz (NS=172.18.45.6)
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 3150, query owner mail.safes.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3151, query owner ns.bcc.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3152, query owner ns.burglaralarms.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3153, query owner ns.securityguards.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3154, query owner covertcameras.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3155, query owner ns.neru.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3156, query owner ns.covertcameras.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3157, query owner bouquets.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3158, query owner concentric.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 3159, query owner ns.securitytraining.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 315a, query owner mail.couperconsulting.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 315b, query owner retailsecurity.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 315c, query owner ns.concentric.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 315d, query owner mail.magic.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 315e, query owner nzangling.co.nz (NS=172.18.45.6)
adns debug: reply not found, id 315f, 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

File diff suppressed because it is too large Load Diff

View File

View File

@ -0,0 +1,16 @@
adns 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.greenend.org.uk; 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.greenend.org.uk; 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

View File

@ -0,0 +1,316 @@
default
: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 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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
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 *addrlen=16
recvfrom=EAGAIN
+0.000175
close fd=4
close=OK
+0.000183

Some files were not shown because too many files have changed in this diff Show More