Compare commits
No commits in common. "show" and "master" have entirely different histories.
20
.github/ISSUE_TEMPLATE/new-issue--bug-report--question.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/new-issue--bug-report--question.md
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
name: New Issue, Bug report, Question
|
||||||
|
about: New Issue, Bug report, Question
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# IMPORTANT NOTICE
|
||||||
|
|
||||||
|
Before filing an issue here PLEASE keep in mind that **tinyproxy 1.10.0 and older are no longer supported**.
|
||||||
|
Do not report issues with 1.10.0 or older, first try latest release 1.11.0, or even better, git master, and see whether the issue is already fixed.
|
||||||
|
|
||||||
|
## Tinyproxy version
|
||||||
|
State the tinyproxy version you're using; whether git master or 1.11.0 stable.
|
||||||
|
|
||||||
|
## Issue
|
||||||
|
Fill in your Issue text here.
|
||||||
|
A good issue report is detailed and includes full error messages from tinyproxy's output, not "X doesn't work".
|
36
.github/workflows/main.yml
vendored
Normal file
36
.github/workflows/main.yml
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- run: ./autogen.sh
|
||||||
|
- run: ./configure
|
||||||
|
- run: make
|
||||||
|
- run: make test
|
||||||
|
test-macos:
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- run: brew install automake
|
||||||
|
- run: ./autogen.sh
|
||||||
|
- run: ./configure
|
||||||
|
- run: make
|
||||||
|
valgrind-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- run: sudo apt update
|
||||||
|
- run: sudo apt install --assume-yes valgrind
|
||||||
|
- run: ./autogen.sh
|
||||||
|
- run: ./configure --enable-debug --enable-transparent --enable-reverse
|
||||||
|
- run: make
|
||||||
|
- run: make test
|
||||||
|
- run: make valgrind-test
|
40
.github/workflows/release_tarball.yml
vendored
Normal file
40
.github/workflows/release_tarball.yml
vendored
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
name: Generate Source Tarball
|
||||||
|
|
||||||
|
# Trigger whenever a release is created
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types:
|
||||||
|
- created
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: archive
|
||||||
|
id: archive
|
||||||
|
run: |
|
||||||
|
sudo apt install -y gperf
|
||||||
|
rm -rf .git
|
||||||
|
autoreconf -i
|
||||||
|
VERSION=$(cat VERSION)
|
||||||
|
PKGNAME="tinyproxy-$VERSION"
|
||||||
|
./configure
|
||||||
|
make dist
|
||||||
|
echo "tarball_xz=${PKGNAME}.tar.xz" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "tarball_gz=${PKGNAME}.tar.gz" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "tarball_bz2=${PKGNAME}.tar.bz2" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: upload tarballs
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
${{ steps.archive.outputs.tarball_xz }}
|
||||||
|
${{ steps.archive.outputs.tarball_gz }}
|
||||||
|
${{ steps.archive.outputs.tarball_bz2 }}
|
||||||
|
|
23
.gitignore
vendored
Normal file
23
.gitignore
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
INSTALL
|
||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
aclocal.m4
|
||||||
|
config.cache
|
||||||
|
config.guess
|
||||||
|
config.h
|
||||||
|
config.h.in
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
config.sub
|
||||||
|
configure
|
||||||
|
depcomp
|
||||||
|
install-sh
|
||||||
|
libtool
|
||||||
|
missing
|
||||||
|
stamp-h1
|
||||||
|
autom4te.cache
|
||||||
|
cscope.files
|
||||||
|
cscope.out
|
||||||
|
compile
|
||||||
|
*~
|
||||||
|
tags
|
18
.travis.yml
Normal file
18
.travis.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
language: C
|
||||||
|
dist: trusty
|
||||||
|
sudo: true
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- sudo apt-get update -qq
|
||||||
|
- sudo apt-get install --assume-yes valgrind
|
||||||
|
|
||||||
|
script:
|
||||||
|
- ./autogen.sh
|
||||||
|
- ./configure
|
||||||
|
- make
|
||||||
|
- make test
|
||||||
|
- make clean
|
||||||
|
- ./configure --enable-debug --enable-transparent --enable-reverse
|
||||||
|
- make
|
||||||
|
- make test
|
||||||
|
- make valgrind-test
|
45
AUTHORS
45
AUTHORS
@ -1,6 +1,39 @@
|
|||||||
tinyproxy is a collaborative work between Steven Young
|
Andrew Stribblehill
|
||||||
<sdyoung@well.com> and Robert James Kaes <rjkaes@flarenet.com>.
|
bertliao
|
||||||
|
Bob Showalter
|
||||||
From versions 0-1.1, Steven Young was the primary maintainer.
|
Brian Cain
|
||||||
From 1.2 to 1.3.0, Robert James Kaes was the primary maintainer.
|
cvs2svn
|
||||||
As of 1.3.1, Steven Young will once again be the primary maintainer.
|
Daniel Egger
|
||||||
|
Daniel M. Drucker
|
||||||
|
David Shanks
|
||||||
|
Dmitry Semyonov
|
||||||
|
dmz-uk
|
||||||
|
Drew G. Wallace
|
||||||
|
Frank Morgner
|
||||||
|
gary-wzl77
|
||||||
|
Gaudenz Steinlin
|
||||||
|
goba62000374
|
||||||
|
Gonzalo Tornaria
|
||||||
|
Greg
|
||||||
|
Jeremy Hinegardner
|
||||||
|
John Spencer
|
||||||
|
John van der Kamp
|
||||||
|
John Weldon
|
||||||
|
Jordi
|
||||||
|
Jordi Mallach
|
||||||
|
Julien Hartmann
|
||||||
|
kikuchan
|
||||||
|
Mathew Mrosko
|
||||||
|
Matthew Dempsky
|
||||||
|
Michael Adam
|
||||||
|
Mike Mead
|
||||||
|
Mukund Sivaraman
|
||||||
|
Pablo Panero
|
||||||
|
Peter H. Froehlich
|
||||||
|
Robert James Kaes
|
||||||
|
rofl0r
|
||||||
|
Stephan Leemburg
|
||||||
|
Steven Conaway
|
||||||
|
Steven Young
|
||||||
|
Valen Blanco
|
||||||
|
Vladimir Belov
|
||||||
|
9
BUGS
9
BUGS
@ -1,9 +0,0 @@
|
|||||||
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!
|
|
27
COPYING
27
COPYING
@ -1,8 +1,8 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
|
|||||||
General Public License applies to most of the Free Software
|
General Public License applies to most of the Free Software
|
||||||
Foundation's software and to any other program whose authors commit to
|
Foundation's software and to any other program whose authors commit to
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
the GNU Library General Public License instead.) You can apply it to
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
your programs, too.
|
your programs, too.
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
When we speak of free software, we are referring to freedom, not
|
||||||
@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
|
|||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
The precise terms and conditions for copying, distribution and
|
||||||
modification follow.
|
modification follow.
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
|
|||||||
License. (Exception: if the Program itself is interactive but
|
License. (Exception: if the Program itself is interactive but
|
||||||
does not normally print such an announcement, your work based on
|
does not normally print such an announcement, your work based on
|
||||||
the Program is not required to print an announcement.)
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
These requirements apply to the modified work as a whole. If
|
||||||
identifiable sections of that work are not derived from the Program,
|
identifiable sections of that work are not derived from the Program,
|
||||||
and can be reasonably considered independent and separate works in
|
and can be reasonably considered independent and separate works in
|
||||||
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
|
|||||||
access to copy the source code from the same place counts as
|
access to copy the source code from the same place counts as
|
||||||
distribution of the source code, even though third parties are not
|
distribution of the source code, even though third parties are not
|
||||||
compelled to copy the source along with the object code.
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
except as expressly provided under this License. Any attempt
|
except as expressly provided under this License. Any attempt
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
@ -225,7 +225,7 @@ impose that choice.
|
|||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
This section is intended to make thoroughly clear what is believed to
|
||||||
be a consequence of the rest of this License.
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
original copyright holder who places the Program under this License
|
original copyright holder who places the Program under this License
|
||||||
@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|||||||
POSSIBILITY OF SUCH DAMAGES.
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
If you develop a new program, and you want it to be of the greatest
|
||||||
@ -303,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
|
|||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License along
|
||||||
along with this program; if not, write to the Free Software
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
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
|
If the program is interactive, make it output a short notice like this
|
||||||
when it starts in an interactive mode:
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) year name of author
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
|
|||||||
This General Public License does not permit incorporating your program into
|
This General Public License does not permit incorporating your program into
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
consider it more useful to permit linking proprietary applications with the
|
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
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
Public License instead of this License.
|
Public License instead of this License.
|
||||||
|
123
ChangeLog
123
ChangeLog
@ -1,122 +1 @@
|
|||||||
1.3.2 2000/02/15
|
The ChangeLog is maintained in the git history.
|
||||||
- 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
24
INSTALL
@ -1,24 +0,0 @@
|
|||||||
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.
|
|
@ -1,182 +0,0 @@
|
|||||||
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.
|
|
39
Makefile.am
39
Makefile.am
@ -1,2 +1,37 @@
|
|||||||
EXTRA_DIST = configure acconfig.h reconf
|
SUBDIRS = \
|
||||||
SUBDIRS = src doc
|
src \
|
||||||
|
data \
|
||||||
|
etc \
|
||||||
|
docs \
|
||||||
|
m4macros \
|
||||||
|
tests \
|
||||||
|
scripts
|
||||||
|
|
||||||
|
# tools want this on a single line
|
||||||
|
ACLOCAL_AMFLAGS = -I m4macros
|
||||||
|
|
||||||
|
all-local:
|
||||||
|
|
||||||
|
dist_doc_DATA = \
|
||||||
|
AUTHORS \
|
||||||
|
NEWS \
|
||||||
|
README \
|
||||||
|
README.md
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
autogen.sh \
|
||||||
|
tinyproxy-indent.sh \
|
||||||
|
TODO \
|
||||||
|
VERSION
|
||||||
|
|
||||||
|
test: all
|
||||||
|
./tests/scripts/run_tests.sh
|
||||||
|
|
||||||
|
test-wait:
|
||||||
|
TINYPROXY_TESTS_WAIT=yes $(MAKE) test
|
||||||
|
|
||||||
|
valgrind-test: all
|
||||||
|
./tests/scripts/run_tests_valgrind.sh
|
||||||
|
|
||||||
|
valgrind-test-wait:
|
||||||
|
TINYPROXY_TESTS_WAIT=yes $(MAKE) valgrind-test
|
||||||
|
354
Makefile.in
354
Makefile.in
@ -1,354 +0,0 @@
|
|||||||
# 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:
|
|
42
NEWS
42
NEWS
@ -1,41 +1 @@
|
|||||||
|
See git log for recent changes in Tinyproxy.
|
||||||
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.
|
|
||||||
|
100
README
100
README
@ -1,99 +1 @@
|
|||||||
This is tinyproxy-adns, tinyproxy with support for GNU adns asynchronous
|
see README.md
|
||||||
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.
|
|
||||||
|
92
README.md
Normal file
92
README.md
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
# Tinyproxy
|
||||||
|
|
||||||
|
Tinyproxy is a small, efficient HTTP/SSL proxy daemon released under the
|
||||||
|
GNU General Public License. Tinyproxy is very useful in a small network
|
||||||
|
setting, where a larger proxy 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.
|
||||||
|
|
||||||
|
For more info, please visit [the Tinyproxy web site](https://tinyproxy.github.io/).
|
||||||
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Tinyproxy uses a standard GNU `configure` script based on the automake
|
||||||
|
system. If compiling from a git checkout, you need to first run
|
||||||
|
|
||||||
|
```
|
||||||
|
./autogen.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
from the top level directory to generate the `configure` script.
|
||||||
|
The release tarball contains the pre-created `configure` script,
|
||||||
|
so when building from a release, you can skip this step.
|
||||||
|
Then basically all you need to do is
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
./configure
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
```
|
||||||
|
|
||||||
|
in the top level directory to compile and install Tinyproxy. 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-xtinyproxy`:
|
||||||
|
Compile in support for the XTinyproxy header, which is sent to any
|
||||||
|
web server in your domain.
|
||||||
|
|
||||||
|
- `--enable-filter`:
|
||||||
|
Allows Tinyproxy to filter out certain domains and URLs.
|
||||||
|
|
||||||
|
- `--enable-upstream`:
|
||||||
|
Enable support for proxying connections through another proxy server.
|
||||||
|
|
||||||
|
- `--enable-transparent`:
|
||||||
|
Allow Tinyproxy to be used as a transparent proxy daemon.
|
||||||
|
Unlike other work modes, transparent proxying doesn't require explicit
|
||||||
|
configuration and works automatically when traffic is redirected to
|
||||||
|
the proxy using the appropriate firewall rules.
|
||||||
|
|
||||||
|
- `--enable-reverse`:
|
||||||
|
Enable reverse proxying.
|
||||||
|
|
||||||
|
- `--with-stathost=HOST`:
|
||||||
|
Set the default name of the stats host.
|
||||||
|
|
||||||
|
For more information about the build system, read the INSTALL file
|
||||||
|
that is generated by `autogen.sh` and comes with the release tar ball.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
|
||||||
|
If you are having problems with Tinyproxy, please raise an
|
||||||
|
[issue on github](https://github.com/tinyproxy/tinyproxy/issues).
|
||||||
|
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
If you would like to contribute a feature, or a bug fix to the Tinyproxy
|
||||||
|
source, please clone the
|
||||||
|
[git repository from github](https://github.com/tinyproxy/tinyproxy.git)
|
||||||
|
and create a [pull request](https://github.com/tinyproxy/tinyproxy/pulls).
|
||||||
|
|
||||||
|
|
||||||
|
## Community
|
||||||
|
|
||||||
|
You can meet developers and users to discuss development,
|
||||||
|
patches and deployment issues in the `#tinyproxy` IRC channel on
|
||||||
|
libera (`irc.libera.chat`).
|
28
SECURITY.md
Normal file
28
SECURITY.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Supported Versions
|
||||||
|
|
||||||
|
| Version | Supported |
|
||||||
|
| --------- | ------------------ |
|
||||||
|
| 1.11.x | :white_check_mark: |
|
||||||
|
| <= 1.10.x | :x: |
|
||||||
|
|
||||||
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
Open a public issue on github. The issue will most likely be fixed
|
||||||
|
within a day, unless all maintainers happen to just be taking a
|
||||||
|
vacation at the same time, which is unlikely.
|
||||||
|
|
||||||
|
Even then, having the bug publicly known will allow competent people
|
||||||
|
to come up with custom patches for distros, most likely quicker
|
||||||
|
than black hats can craft a remote execution exploit.
|
||||||
|
|
||||||
|
If you really really do not want to make the issue public, come
|
||||||
|
to the tinyproxy IRC channel and ask for a maintainer, which you
|
||||||
|
can then contact via private messages.
|
||||||
|
|
||||||
|
Do not, however, like ["TALOS Intelligence"](https://talosintelligence.com/vulnerability_reports/TALOS-2023-1889)
|
||||||
|
pull a random email address out of git log, then send an email
|
||||||
|
nobody reads or responds to, and wait for 6 months for publication.
|
||||||
|
this only gives black hats plenty time to sell, use and circulate
|
||||||
|
zero days and get the best possible ROI.
|
42
THANKS
42
THANKS
@ -1,42 +0,0 @@
|
|||||||
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.
|
|
52
TODO
Normal file
52
TODO
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
TODO List
|
||||||
|
---------
|
||||||
|
|
||||||
|
The following are features that I would like to add to tinyproxy in the
|
||||||
|
future. Where possible, I've listed the person who suggested it. This
|
||||||
|
list is in no particular order. And hey, if you want to implement one of
|
||||||
|
these, or another idea you have, go right ahead. Just mail me the diff
|
||||||
|
against the current tree and I'll integrate it if possible.
|
||||||
|
|
||||||
|
[ Actually, the ordering has become kind of important as of
|
||||||
|
late. Basically, I'm adding new ideas to the bottom of the list
|
||||||
|
as I go. ]
|
||||||
|
|
||||||
|
* Include hooks so other types of proxies can be modularly added to
|
||||||
|
the source tree. Then people can simply choose which types of
|
||||||
|
proxies (ftp, www, etc) they'd like enabled in tinyproxy.h
|
||||||
|
Suggested: Tarun Tuli.
|
||||||
|
|
||||||
|
* Include a function to rewrite the incoming requests. Should not be
|
||||||
|
much of a problem. Just need to modify the process_method() code
|
||||||
|
to look up the URL and rewrite it. If we want to go really fancy
|
||||||
|
with RegEx mapping this could get ugly. :)
|
||||||
|
|
||||||
|
* Have the ability to send the data from the connections through an
|
||||||
|
external filtering program. I kind of like this idea, but I don't
|
||||||
|
really have a good way of doing it yet.
|
||||||
|
Suggested: Ed Avis
|
||||||
|
|
||||||
|
* Include the ability to rewrite both incoming and outgoing headers.
|
||||||
|
|
||||||
|
* Enable an option for chroot() jailing tinyproxy.
|
||||||
|
|
||||||
|
* Come up with a more consistent (and elegant) way of logging errors
|
||||||
|
for the administrators. Right now it's more a hodge-podge
|
||||||
|
collections of error messages without a _real_ standard. I would
|
||||||
|
prefer a more uniform look.
|
||||||
|
|
||||||
|
* Include user authentication for accessing tinyproxy itself.
|
||||||
|
Administrators should be allowed to selectively allow certain users
|
||||||
|
access to tinyproxy via a user name/password pair. Check the
|
||||||
|
HTTP/1.1 RFC for more information.
|
||||||
|
|
||||||
|
==> https://www.banu.com/bugzilla/show_bug.cgi?id=13
|
||||||
|
|
||||||
|
* Remove common.h and fix order of headers
|
||||||
|
|
||||||
|
* Remove memory debugging functions (Valgrind is good enough)
|
||||||
|
|
||||||
|
* Make all functions return from one place (the end of the function)
|
||||||
|
|
||||||
|
* Move TODO items to Banu Bugzilla
|
||||||
|
|
20
acconfig.h
20
acconfig.h
@ -1,20 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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
129
aclocal.m4
vendored
@ -1,129 +0,0 @@
|
|||||||
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([,]))])
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
|||||||
Makefile
|
|
||||||
config.log
|
|
||||||
config.cache
|
|
||||||
config.status
|
|
||||||
dist_tmp
|
|
||||||
adns-*.tar.gz
|
|
||||||
settings.make
|
|
||||||
*.tmp*
|
|
340
adns-0.6/COPYING
340
adns-0.6/COPYING
@ -1,340 +0,0 @@
|
|||||||
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.
|
|
@ -1,58 +0,0 @@
|
|||||||
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:
|
|
@ -1,68 +0,0 @@
|
|||||||
# 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
148
adns-0.6/README
@ -1,148 +0,0 @@
|
|||||||
|
|
||||||
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/
|
|
@ -1,15 +0,0 @@
|
|||||||
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
|
|
@ -1,109 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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
70
adns-0.6/aclocal.m4
vendored
@ -1,70 +0,0 @@
|
|||||||
# 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])
|
|
||||||
])
|
|
||||||
])
|
|
||||||
])
|
|
@ -1,164 +0,0 @@
|
|||||||
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:
|
|
@ -1,11 +0,0 @@
|
|||||||
Makefile
|
|
||||||
adnstest
|
|
||||||
adnstest_s
|
|
||||||
adnslogres
|
|
||||||
adnslogres_s
|
|
||||||
adnshost
|
|
||||||
adnshost_s
|
|
||||||
adnsresfilter
|
|
||||||
adnsresfilter_s
|
|
||||||
fanftest
|
|
||||||
fanftest_s
|
|
@ -1,74 +0,0 @@
|
|||||||
# 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)
|
|
||||||
|
|
@ -1,243 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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);
|
|
||||||
}
|
|
@ -1,337 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,274 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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);
|
|
||||||
}
|
|
@ -1,118 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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
|
|
@ -1,239 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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;
|
|
||||||
}
|
|
@ -1,454 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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);
|
|
||||||
}
|
|
@ -1,337 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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);
|
|
||||||
}
|
|
@ -1,85 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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;
|
|
||||||
}
|
|
@ -1,2 +0,0 @@
|
|||||||
file adnsresfilter_s
|
|
||||||
set args <testinput -t2000
|
|
1826
adns-0.6/configure
vendored
1826
adns-0.6/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -1,101 +0,0 @@
|
|||||||
# 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
|
|
||||||
)
|
|
@ -1,2 +0,0 @@
|
|||||||
Makefile
|
|
||||||
libadns.so.*
|
|
@ -1,54 +0,0 @@
|
|||||||
# 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):
|
|
@ -1,8 +0,0 @@
|
|||||||
Makefile
|
|
||||||
harness.h
|
|
||||||
hcommon.c
|
|
||||||
hrecord
|
|
||||||
hrecord.c
|
|
||||||
hplayback
|
|
||||||
hplayback.c
|
|
||||||
output-*.*
|
|
@ -1,65 +0,0 @@
|
|||||||
# 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
|
|
@ -1,9 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# usage: ./addcases <casename> ...
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
for f in "$@"
|
|
||||||
do
|
|
||||||
cvs add "case-$f".{sys,out,err}
|
|
||||||
done
|
|
@ -1,39 +0,0 @@
|
|||||||
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
|
|
@ -1,180 +0,0 @@
|
|||||||
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
|
|
@ -1,37 +0,0 @@
|
|||||||
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
|
|
@ -1,159 +0,0 @@
|
|||||||
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
|
|
@ -1,6 +0,0 @@
|
|||||||
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
|
|
@ -1,47 +0,0 @@
|
|||||||
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
|
|
@ -1,37 +0,0 @@
|
|||||||
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
|
|
@ -1,165 +0,0 @@
|
|||||||
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
|
|
@ -1,40 +0,0 @@
|
|||||||
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
|
|
@ -1,282 +0,0 @@
|
|||||||
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
|
|
@ -1,32 +0,0 @@
|
|||||||
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
@ -1,38 +0,0 @@
|
|||||||
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
|
|
@ -1,516 +0,0 @@
|
|||||||
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
|
|
@ -1,5 +0,0 @@
|
|||||||
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
|
|
@ -1,58 +0,0 @@
|
|||||||
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
|
|
@ -1,5 +0,0 @@
|
|||||||
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
|
|
@ -1,39 +0,0 @@
|
|||||||
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
|
|
@ -1,39 +0,0 @@
|
|||||||
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
|
|
@ -1,233 +0,0 @@
|
|||||||
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
|
|
@ -1,78 +0,0 @@
|
|||||||
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
@ -1 +0,0 @@
|
|||||||
too many flags
|
|
@ -1,2 +0,0 @@
|
|||||||
adns debug: using nameserver 172.18.45.6
|
|
||||||
rc=3
|
|
@ -1,15 +0,0 @@
|
|||||||
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
|
|
@ -1,5 +0,0 @@
|
|||||||
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
|
|
@ -1,34 +0,0 @@
|
|||||||
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
|
|
@ -1,10 +0,0 @@
|
|||||||
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
|
|
@ -1,35 +0,0 @@
|
|||||||
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
|
|
@ -1,8 +0,0 @@
|
|||||||
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
|
|
@ -1,36 +0,0 @@
|
|||||||
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
|
|
@ -1,153 +0,0 @@
|
|||||||
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
@ -1,127 +0,0 @@
|
|||||||
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
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user