Initial CVS checking of tinyproxy - version 1.3.2.
This commit is contained in:
		
						commit
						98dacde464
					
				
							
								
								
									
										6
									
								
								AUTHORS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								AUTHORS
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
  tinyproxy is a collaborative work between Steven Young
 | 
			
		||||
  <sdyoung@well.com> and Robert James Kaes <rjkaes@flarenet.com>.
 | 
			
		||||
 | 
			
		||||
  From versions 0-1.1, Steven Young was the primary maintainer.
 | 
			
		||||
  From 1.2 to 1.3.0, Robert James Kaes was the primary maintainer.
 | 
			
		||||
  As of 1.3.1, Steven Young will once again be the primary maintainer.
 | 
			
		||||
							
								
								
									
										9
									
								
								BUGS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								BUGS
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
  KNOWN BUGS
 | 
			
		||||
  ==========
 | 
			
		||||
 | 
			
		||||
  There is exactly one known bug at the time of 1.3.2's release - when compiling
 | 
			
		||||
under some Linux distributions (notably, Debian), the compile process will
 | 
			
		||||
generate a number of warnings regarding __underflow.  However, tinyproxy still
 | 
			
		||||
compiles and runs perfectly.  
 | 
			
		||||
 | 
			
		||||
  Patches welcome!
 | 
			
		||||
							
								
								
									
										340
									
								
								COPYING
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										340
									
								
								COPYING
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,340 @@
 | 
			
		||||
		    GNU GENERAL PUBLIC LICENSE
 | 
			
		||||
		       Version 2, June 1991
 | 
			
		||||
 | 
			
		||||
 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
 | 
			
		||||
     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
			
		||||
 Everyone is permitted to copy and distribute verbatim copies
 | 
			
		||||
 of this license document, but changing it is not allowed.
 | 
			
		||||
 | 
			
		||||
			    Preamble
 | 
			
		||||
 | 
			
		||||
  The licenses for most software are designed to take away your
 | 
			
		||||
freedom to share and change it.  By contrast, the GNU General Public
 | 
			
		||||
License is intended to guarantee your freedom to share and change free
 | 
			
		||||
software--to make sure the software is free for all its users.  This
 | 
			
		||||
General Public License applies to most of the Free Software
 | 
			
		||||
Foundation's software and to any other program whose authors commit to
 | 
			
		||||
using it.  (Some other Free Software Foundation software is covered by
 | 
			
		||||
the GNU Library General Public License instead.)  You can apply it to
 | 
			
		||||
your programs, too.
 | 
			
		||||
 | 
			
		||||
  When we speak of free software, we are referring to freedom, not
 | 
			
		||||
price.  Our General Public Licenses are designed to make sure that you
 | 
			
		||||
have the freedom to distribute copies of free software (and charge for
 | 
			
		||||
this service if you wish), that you receive source code or can get it
 | 
			
		||||
if you want it, that you can change the software or use pieces of it
 | 
			
		||||
in new free programs; and that you know you can do these things.
 | 
			
		||||
 | 
			
		||||
  To protect your rights, we need to make restrictions that forbid
 | 
			
		||||
anyone to deny you these rights or to ask you to surrender the rights.
 | 
			
		||||
These restrictions translate to certain responsibilities for you if you
 | 
			
		||||
distribute copies of the software, or if you modify it.
 | 
			
		||||
 | 
			
		||||
  For example, if you distribute copies of such a program, whether
 | 
			
		||||
gratis or for a fee, you must give the recipients all the rights that
 | 
			
		||||
you have.  You must make sure that they, too, receive or can get the
 | 
			
		||||
source code.  And you must show them these terms so they know their
 | 
			
		||||
rights.
 | 
			
		||||
 | 
			
		||||
  We protect your rights with two steps: (1) copyright the software, and
 | 
			
		||||
(2) offer you this license which gives you legal permission to copy,
 | 
			
		||||
distribute and/or modify the software.
 | 
			
		||||
 | 
			
		||||
  Also, for each author's protection and ours, we want to make certain
 | 
			
		||||
that everyone understands that there is no warranty for this free
 | 
			
		||||
software.  If the software is modified by someone else and passed on, we
 | 
			
		||||
want its recipients to know that what they have is not the original, so
 | 
			
		||||
that any problems introduced by others will not reflect on the original
 | 
			
		||||
authors' reputations.
 | 
			
		||||
 | 
			
		||||
  Finally, any free program is threatened constantly by software
 | 
			
		||||
patents.  We wish to avoid the danger that redistributors of a free
 | 
			
		||||
program will individually obtain patent licenses, in effect making the
 | 
			
		||||
program proprietary.  To prevent this, we have made it clear that any
 | 
			
		||||
patent must be licensed for everyone's free use or not licensed at all.
 | 
			
		||||
 | 
			
		||||
  The precise terms and conditions for copying, distribution and
 | 
			
		||||
modification follow.
 | 
			
		||||
 | 
			
		||||
		    GNU GENERAL PUBLIC LICENSE
 | 
			
		||||
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 | 
			
		||||
 | 
			
		||||
  0. This License applies to any program or other work which contains
 | 
			
		||||
a notice placed by the copyright holder saying it may be distributed
 | 
			
		||||
under the terms of this General Public License.  The "Program", below,
 | 
			
		||||
refers to any such program or work, and a "work based on the Program"
 | 
			
		||||
means either the Program or any derivative work under copyright law:
 | 
			
		||||
that is to say, a work containing the Program or a portion of it,
 | 
			
		||||
either verbatim or with modifications and/or translated into another
 | 
			
		||||
language.  (Hereinafter, translation is included without limitation in
 | 
			
		||||
the term "modification".)  Each licensee is addressed as "you".
 | 
			
		||||
 | 
			
		||||
Activities other than copying, distribution and modification are not
 | 
			
		||||
covered by this License; they are outside its scope.  The act of
 | 
			
		||||
running the Program is not restricted, and the output from the Program
 | 
			
		||||
is covered only if its contents constitute a work based on the
 | 
			
		||||
Program (independent of having been made by running the Program).
 | 
			
		||||
Whether that is true depends on what the Program does.
 | 
			
		||||
 | 
			
		||||
  1. You may copy and distribute verbatim copies of the Program's
 | 
			
		||||
source code as you receive it, in any medium, provided that you
 | 
			
		||||
conspicuously and appropriately publish on each copy an appropriate
 | 
			
		||||
copyright notice and disclaimer of warranty; keep intact all the
 | 
			
		||||
notices that refer to this License and to the absence of any warranty;
 | 
			
		||||
and give any other recipients of the Program a copy of this License
 | 
			
		||||
along with the Program.
 | 
			
		||||
 | 
			
		||||
You may charge a fee for the physical act of transferring a copy, and
 | 
			
		||||
you may at your option offer warranty protection in exchange for a fee.
 | 
			
		||||
 | 
			
		||||
  2. You may modify your copy or copies of the Program or any portion
 | 
			
		||||
of it, thus forming a work based on the Program, and copy and
 | 
			
		||||
distribute such modifications or work under the terms of Section 1
 | 
			
		||||
above, provided that you also meet all of these conditions:
 | 
			
		||||
 | 
			
		||||
    a) You must cause the modified files to carry prominent notices
 | 
			
		||||
    stating that you changed the files and the date of any change.
 | 
			
		||||
 | 
			
		||||
    b) You must cause any work that you distribute or publish, that in
 | 
			
		||||
    whole or in part contains or is derived from the Program or any
 | 
			
		||||
    part thereof, to be licensed as a whole at no charge to all third
 | 
			
		||||
    parties under the terms of this License.
 | 
			
		||||
 | 
			
		||||
    c) If the modified program normally reads commands interactively
 | 
			
		||||
    when run, you must cause it, when started running for such
 | 
			
		||||
    interactive use in the most ordinary way, to print or display an
 | 
			
		||||
    announcement including an appropriate copyright notice and a
 | 
			
		||||
    notice that there is no warranty (or else, saying that you provide
 | 
			
		||||
    a warranty) and that users may redistribute the program under
 | 
			
		||||
    these conditions, and telling the user how to view a copy of this
 | 
			
		||||
    License.  (Exception: if the Program itself is interactive but
 | 
			
		||||
    does not normally print such an announcement, your work based on
 | 
			
		||||
    the Program is not required to print an announcement.)
 | 
			
		||||
 | 
			
		||||
These requirements apply to the modified work as a whole.  If
 | 
			
		||||
identifiable sections of that work are not derived from the Program,
 | 
			
		||||
and can be reasonably considered independent and separate works in
 | 
			
		||||
themselves, then this License, and its terms, do not apply to those
 | 
			
		||||
sections when you distribute them as separate works.  But when you
 | 
			
		||||
distribute the same sections as part of a whole which is a work based
 | 
			
		||||
on the Program, the distribution of the whole must be on the terms of
 | 
			
		||||
this License, whose permissions for other licensees extend to the
 | 
			
		||||
entire whole, and thus to each and every part regardless of who wrote it.
 | 
			
		||||
 | 
			
		||||
Thus, it is not the intent of this section to claim rights or contest
 | 
			
		||||
your rights to work written entirely by you; rather, the intent is to
 | 
			
		||||
exercise the right to control the distribution of derivative or
 | 
			
		||||
collective works based on the Program.
 | 
			
		||||
 | 
			
		||||
In addition, mere aggregation of another work not based on the Program
 | 
			
		||||
with the Program (or with a work based on the Program) on a volume of
 | 
			
		||||
a storage or distribution medium does not bring the other work under
 | 
			
		||||
the scope of this License.
 | 
			
		||||
 | 
			
		||||
  3. You may copy and distribute the Program (or a work based on it,
 | 
			
		||||
under Section 2) in object code or executable form under the terms of
 | 
			
		||||
Sections 1 and 2 above provided that you also do one of the following:
 | 
			
		||||
 | 
			
		||||
    a) Accompany it with the complete corresponding machine-readable
 | 
			
		||||
    source code, which must be distributed under the terms of Sections
 | 
			
		||||
    1 and 2 above on a medium customarily used for software interchange; or,
 | 
			
		||||
 | 
			
		||||
    b) Accompany it with a written offer, valid for at least three
 | 
			
		||||
    years, to give any third party, for a charge no more than your
 | 
			
		||||
    cost of physically performing source distribution, a complete
 | 
			
		||||
    machine-readable copy of the corresponding source code, to be
 | 
			
		||||
    distributed under the terms of Sections 1 and 2 above on a medium
 | 
			
		||||
    customarily used for software interchange; or,
 | 
			
		||||
 | 
			
		||||
    c) Accompany it with the information you received as to the offer
 | 
			
		||||
    to distribute corresponding source code.  (This alternative is
 | 
			
		||||
    allowed only for noncommercial distribution and only if you
 | 
			
		||||
    received the program in object code or executable form with such
 | 
			
		||||
    an offer, in accord with Subsection b above.)
 | 
			
		||||
 | 
			
		||||
The source code for a work means the preferred form of the work for
 | 
			
		||||
making modifications to it.  For an executable work, complete source
 | 
			
		||||
code means all the source code for all modules it contains, plus any
 | 
			
		||||
associated interface definition files, plus the scripts used to
 | 
			
		||||
control compilation and installation of the executable.  However, as a
 | 
			
		||||
special exception, the source code distributed need not include
 | 
			
		||||
anything that is normally distributed (in either source or binary
 | 
			
		||||
form) with the major components (compiler, kernel, and so on) of the
 | 
			
		||||
operating system on which the executable runs, unless that component
 | 
			
		||||
itself accompanies the executable.
 | 
			
		||||
 | 
			
		||||
If distribution of executable or object code is made by offering
 | 
			
		||||
access to copy from a designated place, then offering equivalent
 | 
			
		||||
access to copy the source code from the same place counts as
 | 
			
		||||
distribution of the source code, even though third parties are not
 | 
			
		||||
compelled to copy the source along with the object code.
 | 
			
		||||
 | 
			
		||||
  4. You may not copy, modify, sublicense, or distribute the Program
 | 
			
		||||
except as expressly provided under this License.  Any attempt
 | 
			
		||||
otherwise to copy, modify, sublicense or distribute the Program is
 | 
			
		||||
void, and will automatically terminate your rights under this License.
 | 
			
		||||
However, parties who have received copies, or rights, from you under
 | 
			
		||||
this License will not have their licenses terminated so long as such
 | 
			
		||||
parties remain in full compliance.
 | 
			
		||||
 | 
			
		||||
  5. You are not required to accept this License, since you have not
 | 
			
		||||
signed it.  However, nothing else grants you permission to modify or
 | 
			
		||||
distribute the Program or its derivative works.  These actions are
 | 
			
		||||
prohibited by law if you do not accept this License.  Therefore, by
 | 
			
		||||
modifying or distributing the Program (or any work based on the
 | 
			
		||||
Program), you indicate your acceptance of this License to do so, and
 | 
			
		||||
all its terms and conditions for copying, distributing or modifying
 | 
			
		||||
the Program or works based on it.
 | 
			
		||||
 | 
			
		||||
  6. Each time you redistribute the Program (or any work based on the
 | 
			
		||||
Program), the recipient automatically receives a license from the
 | 
			
		||||
original licensor to copy, distribute or modify the Program subject to
 | 
			
		||||
these terms and conditions.  You may not impose any further
 | 
			
		||||
restrictions on the recipients' exercise of the rights granted herein.
 | 
			
		||||
You are not responsible for enforcing compliance by third parties to
 | 
			
		||||
this License.
 | 
			
		||||
 | 
			
		||||
  7. If, as a consequence of a court judgment or allegation of patent
 | 
			
		||||
infringement or for any other reason (not limited to patent issues),
 | 
			
		||||
conditions are imposed on you (whether by court order, agreement or
 | 
			
		||||
otherwise) that contradict the conditions of this License, they do not
 | 
			
		||||
excuse you from the conditions of this License.  If you cannot
 | 
			
		||||
distribute so as to satisfy simultaneously your obligations under this
 | 
			
		||||
License and any other pertinent obligations, then as a consequence you
 | 
			
		||||
may not distribute the Program at all.  For example, if a patent
 | 
			
		||||
license would not permit royalty-free redistribution of the Program by
 | 
			
		||||
all those who receive copies directly or indirectly through you, then
 | 
			
		||||
the only way you could satisfy both it and this License would be to
 | 
			
		||||
refrain entirely from distribution of the Program.
 | 
			
		||||
 | 
			
		||||
If any portion of this section is held invalid or unenforceable under
 | 
			
		||||
any particular circumstance, the balance of the section is intended to
 | 
			
		||||
apply and the section as a whole is intended to apply in other
 | 
			
		||||
circumstances.
 | 
			
		||||
 | 
			
		||||
It is not the purpose of this section to induce you to infringe any
 | 
			
		||||
patents or other property right claims or to contest validity of any
 | 
			
		||||
such claims; this section has the sole purpose of protecting the
 | 
			
		||||
integrity of the free software distribution system, which is
 | 
			
		||||
implemented by public license practices.  Many people have made
 | 
			
		||||
generous contributions to the wide range of software distributed
 | 
			
		||||
through that system in reliance on consistent application of that
 | 
			
		||||
system; it is up to the author/donor to decide if he or she is willing
 | 
			
		||||
to distribute software through any other system and a licensee cannot
 | 
			
		||||
impose that choice.
 | 
			
		||||
 | 
			
		||||
This section is intended to make thoroughly clear what is believed to
 | 
			
		||||
be a consequence of the rest of this License.
 | 
			
		||||
 | 
			
		||||
  8. If the distribution and/or use of the Program is restricted in
 | 
			
		||||
certain countries either by patents or by copyrighted interfaces, the
 | 
			
		||||
original copyright holder who places the Program under this License
 | 
			
		||||
may add an explicit geographical distribution limitation excluding
 | 
			
		||||
those countries, so that distribution is permitted only in or among
 | 
			
		||||
countries not thus excluded.  In such case, this License incorporates
 | 
			
		||||
the limitation as if written in the body of this License.
 | 
			
		||||
 | 
			
		||||
  9. The Free Software Foundation may publish revised and/or new versions
 | 
			
		||||
of the General Public License from time to time.  Such new versions will
 | 
			
		||||
be similar in spirit to the present version, but may differ in detail to
 | 
			
		||||
address new problems or concerns.
 | 
			
		||||
 | 
			
		||||
Each version is given a distinguishing version number.  If the Program
 | 
			
		||||
specifies a version number of this License which applies to it and "any
 | 
			
		||||
later version", you have the option of following the terms and conditions
 | 
			
		||||
either of that version or of any later version published by the Free
 | 
			
		||||
Software Foundation.  If the Program does not specify a version number of
 | 
			
		||||
this License, you may choose any version ever published by the Free Software
 | 
			
		||||
Foundation.
 | 
			
		||||
 | 
			
		||||
  10. If you wish to incorporate parts of the Program into other free
 | 
			
		||||
programs whose distribution conditions are different, write to the author
 | 
			
		||||
to ask for permission.  For software which is copyrighted by the Free
 | 
			
		||||
Software Foundation, write to the Free Software Foundation; we sometimes
 | 
			
		||||
make exceptions for this.  Our decision will be guided by the two goals
 | 
			
		||||
of preserving the free status of all derivatives of our free software and
 | 
			
		||||
of promoting the sharing and reuse of software generally.
 | 
			
		||||
 | 
			
		||||
			    NO WARRANTY
 | 
			
		||||
 | 
			
		||||
  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 | 
			
		||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
 | 
			
		||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
 | 
			
		||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
 | 
			
		||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 | 
			
		||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
 | 
			
		||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
 | 
			
		||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
 | 
			
		||||
REPAIR OR CORRECTION.
 | 
			
		||||
 | 
			
		||||
  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
 | 
			
		||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
 | 
			
		||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
 | 
			
		||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
 | 
			
		||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
 | 
			
		||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
 | 
			
		||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 | 
			
		||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 | 
			
		||||
POSSIBILITY OF SUCH DAMAGES.
 | 
			
		||||
 | 
			
		||||
		     END OF TERMS AND CONDITIONS
 | 
			
		||||
 | 
			
		||||
	    How to Apply These Terms to Your New Programs
 | 
			
		||||
 | 
			
		||||
  If you develop a new program, and you want it to be of the greatest
 | 
			
		||||
possible use to the public, the best way to achieve this is to make it
 | 
			
		||||
free software which everyone can redistribute and change under these terms.
 | 
			
		||||
 | 
			
		||||
  To do so, attach the following notices to the program.  It is safest
 | 
			
		||||
to attach them to the start of each source file to most effectively
 | 
			
		||||
convey the exclusion of warranty; and each file should have at least
 | 
			
		||||
the "copyright" line and a pointer to where the full notice is found.
 | 
			
		||||
 | 
			
		||||
    <one line to give the program's name and a brief idea of what it does.>
 | 
			
		||||
    Copyright (C) <year>  <name of author>
 | 
			
		||||
 | 
			
		||||
    This program is free software; you can redistribute it and/or modify
 | 
			
		||||
    it under the terms of the GNU General Public License as published by
 | 
			
		||||
    the Free Software Foundation; either version 2 of the License, or
 | 
			
		||||
    (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
    This program is distributed in the hope that it will be useful,
 | 
			
		||||
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
    GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
    You should have received a copy of the GNU General Public License
 | 
			
		||||
    along with this program; if not, write to the Free Software
 | 
			
		||||
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Also add information on how to contact you by electronic and paper mail.
 | 
			
		||||
 | 
			
		||||
If the program is interactive, make it output a short notice like this
 | 
			
		||||
when it starts in an interactive mode:
 | 
			
		||||
 | 
			
		||||
    Gnomovision version 69, Copyright (C) year  name of author
 | 
			
		||||
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
 | 
			
		||||
    This is free software, and you are welcome to redistribute it
 | 
			
		||||
    under certain conditions; type `show c' for details.
 | 
			
		||||
 | 
			
		||||
The hypothetical commands `show w' and `show c' should show the appropriate
 | 
			
		||||
parts of the General Public License.  Of course, the commands you use may
 | 
			
		||||
be called something other than `show w' and `show c'; they could even be
 | 
			
		||||
mouse-clicks or menu items--whatever suits your program.
 | 
			
		||||
 | 
			
		||||
You should also get your employer (if you work as a programmer) or your
 | 
			
		||||
school, if any, to sign a "copyright disclaimer" for the program, if
 | 
			
		||||
necessary.  Here is a sample; alter the names:
 | 
			
		||||
 | 
			
		||||
  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
 | 
			
		||||
  `Gnomovision' (which makes passes at compilers) written by James Hacker.
 | 
			
		||||
 | 
			
		||||
  <signature of Ty Coon>, 1 April 1989
 | 
			
		||||
  Ty Coon, President of Vice
 | 
			
		||||
 | 
			
		||||
This General Public License does not permit incorporating your program into
 | 
			
		||||
proprietary programs.  If your program is a subroutine library, you may
 | 
			
		||||
consider it more useful to permit linking proprietary applications with the
 | 
			
		||||
library.  If this is what you want to do, use the GNU Library General
 | 
			
		||||
Public License instead of this License.
 | 
			
		||||
							
								
								
									
										122
									
								
								ChangeLog
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								ChangeLog
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,122 @@
 | 
			
		||||
1.3.2   2000/02/15
 | 
			
		||||
	- Fixed null requests bug.
 | 
			
		||||
	- Fixed fd leak bug.
 | 
			
		||||
	- Fixed connptr bug.
 | 
			
		||||
	- Updated docs.
 | 
			
		||||
	
 | 
			
		||||
1.3.1	1999/12/21
 | 
			
		||||
	- made the dns cache hashing algorithm case-insensitive.
 | 
			
		||||
	- fixed a bug in log() that would cause it to dump garbage to
 | 
			
		||||
          the log file when in unrestricted mode.
 | 
			
		||||
        - this is an interim release to fix the above log() bug.
 | 
			
		||||
 | 
			
		||||
1.3.0	1999/12/01
 | 
			
		||||
	- autoconf enabled the source tree and moved some of the
 | 
			
		||||
	documentation files into the proper locations. Also, added any
 | 
			
		||||
	files which were needed to conform with the GNU autoconf directory 
 | 
			
		||||
	structure.
 | 
			
		||||
	- Changed the debugging code to use asserts(). I don't know if I'm 
 | 
			
		||||
	completely happy with this. One the one hand it shrinks the size
 | 
			
		||||
	of the executable, but on the other, it doesn't handle weird
 | 
			
		||||
	situations in production code. It's still a toss up.
 | 
			
		||||
	- Did a major reorganization of the source tree. The biggest
 | 
			
		||||
	change is moving a lot of code from reqs.c into more appropriate
 | 
			
		||||
	files.
 | 
			
		||||
	- ANON mode is now always compiled in (since it doesn't take up
 | 
			
		||||
	that much space) and is enabled from the command line.
 | 
			
		||||
	- Changed the states a connection can be in, and also merged both
 | 
			
		||||
	sockets (server/client) into one structure. Makes the code a lot
 | 
			
		||||
	cleaner.
 | 
			
		||||
	- Added a DNS caching mechanism. What happens it that a hash of
 | 
			
		||||
	previously looked up names is maintained, so additional host names 
 | 
			
		||||
	will not need to be fetched from the DNS server again. Helps on
 | 
			
		||||
	most web pages, which have a lot of images from the same server.
 | 
			
		||||
	- Removed the global error variable (tinyerr) by making the
 | 
			
		||||
	functions more consistent with what they return for an error.
 | 
			
		||||
	- Removed the global.* files and merged them back into the
 | 
			
		||||
	tinyproxy.* source.
 | 
			
		||||
	- Added bug fixes in reqs.c to handle bad servers, which do not
 | 
			
		||||
	follow the basic RFC protocol (i.e. using just a LF instead of a
 | 
			
		||||
	CRLF).
 | 
			
		||||
	- Most of reqs.c has been changed to use the readline
 | 
			
		||||
	function. Also, it has been organized around the new connection
 | 
			
		||||
	states and connection structure.
 | 
			
		||||
	- xstrstr can now be both case sensitive or insensitive. Also,
 | 
			
		||||
	added a check to make sure the haystack is longer than the needle.
 | 
			
		||||
 | 
			
		||||
1.2.10	1999/08/20
 | 
			
		||||
	- Found a memory free bug in the buffer code, and also, a bug in
 | 
			
		||||
	allocating memory for the buffer. Both could be fatal. One leaked
 | 
			
		||||
	memory, and the other could allow all memory to be exhausted. Both
 | 
			
		||||
	are now fixed.
 | 
			
		||||
	- Reorganized some of the code. Moved global variables into the
 | 
			
		||||
	proper files. Should help to eliminate them altogether someday.
 | 
			
		||||
	- Shaun Johnson fixed a problem with compiling with syslog enabled
 | 
			
		||||
	on a SunOS box.
 | 
			
		||||
 | 
			
		||||
1.2.9	1999/08/17
 | 
			
		||||
	- Changed the writebuff to more explicitly be designed to write
 | 
			
		||||
	from the other connection's buffer. A connection reads into it's
 | 
			
		||||
	own buffer, but write's the other connection's buffer.
 | 
			
		||||
	- You can now specify a particular IP address to listen on. By
 | 
			
		||||
	default, tinyproxy listens on all IP addresses.
 | 
			
		||||
 | 
			
		||||
1.2.8.1	1999/08/13 (Internal release)
 | 
			
		||||
	- Improved the portability by removing the daemon call and
 | 
			
		||||
	removing the calls to index().
 | 
			
		||||
	- added the buffer.* source into the CVS tree.
 | 
			
		||||
 | 
			
		||||
1.2.8	1999/08/06
 | 
			
		||||
	- Better logging of incoming connections. Now both the IP address
 | 
			
		||||
	and the requested URL are logged.
 | 
			
		||||
	- You can now specify that only a certain subnet is allowed to
 | 
			
		||||
	access tinyproxy. Currently it only supports one subnet with
 | 
			
		||||
	matching against a string with the IP address.
 | 
			
		||||
	- a bunch of just general code clean up. Mostly stylistic stuff.
 | 
			
		||||
 | 
			
		||||
1.2.7	1999/07/28
 | 
			
		||||
	- Incoming connections are now logged to the log file/syslog
 | 
			
		||||
	- An "XTinyproxy" header can now sent with each request which
 | 
			
		||||
	  includes the IP address of the client.
 | 
			
		||||
	- Fixed some of the size of the members in the structures.
 | 
			
		||||
	- Fixed an argument problem in listen_sock which was using the 
 | 
			
		||||
	  size of the wrong variable.
 | 
			
		||||
 | 
			
		||||
1.2.6	1999/06/05
 | 
			
		||||
	- Added the ability to send the HTTP requests to a proxy
 | 
			
		||||
	  server running on a different machine (or even the same
 | 
			
		||||
	  machine if you like)
 | 
			
		||||
	- Fixed a bug in the clientreq() routine which would choke on
 | 
			
		||||
	  requests in the form of GET http://www.url.com HTTP/1.0 (thanks
 | 
			
		||||
	  to Bruno Viaris <viaris@galilee.univ-paris13.fr> for pointing
 | 
			
		||||
	  out the bug and providing the initial fix.)
 | 
			
		||||
 | 
			
		||||
1.2.5	1999/05/21
 | 
			
		||||
	- Now maintained by Robert James Kaes (rjkaes@flarenet.com)
 | 
			
		||||
	- Non-blocking sockets
 | 
			
		||||
	- Cleaned up the style, and code. Compiles cleanly with -Wall
 | 
			
		||||
	- Logs to syslogd with -S command line argument
 | 
			
		||||
	- Rewrote the clientreq routine to remove tonnes of code
 | 
			
		||||
	- Removed unused routines (rstrtolower, xstrndup, readline, etc.)
 | 
			
		||||
	- Moved the user configurable options into config.h
 | 
			
		||||
	
 | 
			
		||||
1.1	1998/09/15
 | 
			
		||||
	- Load average monitoring added
 | 
			
		||||
	- Remote proxy monitoring added
 | 
			
		||||
	- Added -u (change user).
 | 
			
		||||
 | 
			
		||||
1.0d
 | 
			
		||||
	- ANON mode now supports -a to let user-specified headers
 | 
			
		||||
	  through
 | 
			
		||||
	- various bug fixes in readline()
 | 
			
		||||
 | 
			
		||||
1.0c
 | 
			
		||||
	- Support for ANON mode
 | 
			
		||||
 | 
			
		||||
1.0b
 | 
			
		||||
	- Cleaned up exit codes (now uses sysexits.h)
 | 
			
		||||
	- Uses daemon() from -lbsf instead of daemonize()
 | 
			
		||||
	- Now supports ports other than 80
 | 
			
		||||
 | 
			
		||||
1.0a
 | 
			
		||||
	- Created by Steven Young (sdyoung@well.com)
 | 
			
		||||
							
								
								
									
										24
									
								
								INSTALL
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								INSTALL
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
Installing tinyproxy 1.3.2
 | 
			
		||||
==========================
 | 
			
		||||
 | 
			
		||||
  As of 1.3.2, tinyproxy uses Ian Jackson's adns library to perform non-blocking
 | 
			
		||||
DNS lookups.  As such, before you can do anything to install tinyproxy, you must
 | 
			
		||||
go into the adns-0.6/ subdirectory off the root tinyproxy distribution directory
 | 
			
		||||
and follow the INSTALL directions therein.  Once you have libadns installed, 
 | 
			
		||||
follow these steps:
 | 
			
		||||
 | 
			
		||||
  (1) Run the tinyproxy 'configure' script, found in the root distribution
 | 
			
		||||
      directory.  If you're unsure of exactly what arguments to use, please
 | 
			
		||||
      consult the output of 'configure --help'.  Additional documentation can
 | 
			
		||||
      be found for configure in the text file INSTALL.configure.
 | 
			
		||||
  (2) Run 'make install'.  This will build all of tinyproxy and install it
 | 
			
		||||
      in the default directory.  You may also wish to peruse src/config.h
 | 
			
		||||
      to be sure everything is configured to your liking.
 | 
			
		||||
  (3) Read the tinyproxy manpage - it will explain what commandline arguments
 | 
			
		||||
      and parameters are available.  More experienced users will probably 
 | 
			
		||||
      be able to get all the information they need from the output of 
 | 
			
		||||
      'tinyproxy -h'.
 | 
			
		||||
 | 
			
		||||
  Enjoy! Please read the documentation carefully, especially the COPYING
 | 
			
		||||
file which should have been included in this archive explaining the licensing
 | 
			
		||||
terms of tinyproxy.
 | 
			
		||||
							
								
								
									
										182
									
								
								INSTALL.configure
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								INSTALL.configure
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,182 @@
 | 
			
		||||
Basic Installation
 | 
			
		||||
==================
 | 
			
		||||
 | 
			
		||||
   These are generic installation instructions.
 | 
			
		||||
 | 
			
		||||
   The `configure' shell script attempts to guess correct values for
 | 
			
		||||
various system-dependent variables used during compilation.  It uses
 | 
			
		||||
those values to create a `Makefile' in each directory of the package.
 | 
			
		||||
It may also create one or more `.h' files containing system-dependent
 | 
			
		||||
definitions.  Finally, it creates a shell script `config.status' that
 | 
			
		||||
you can run in the future to recreate the current configuration, a file
 | 
			
		||||
`config.cache' that saves the results of its tests to speed up
 | 
			
		||||
reconfiguring, and a file `config.log' containing compiler output
 | 
			
		||||
(useful mainly for debugging `configure').
 | 
			
		||||
 | 
			
		||||
   If you need to do unusual things to compile the package, please try
 | 
			
		||||
to figure out how `configure' could check whether to do them, and mail
 | 
			
		||||
diffs or instructions to the address given in the `README' so they can
 | 
			
		||||
be considered for the next release.  If at some point `config.cache'
 | 
			
		||||
contains results you don't want to keep, you may remove or edit it.
 | 
			
		||||
 | 
			
		||||
   The file `configure.in' is used to create `configure' by a program
 | 
			
		||||
called `autoconf'.  You only need `configure.in' if you want to change
 | 
			
		||||
it or regenerate `configure' using a newer version of `autoconf'.
 | 
			
		||||
 | 
			
		||||
The simplest way to compile this package is:
 | 
			
		||||
 | 
			
		||||
  1. `cd' to the directory containing the package's source code and type
 | 
			
		||||
     `./configure' to configure the package for your system.  If you're
 | 
			
		||||
     using `csh' on an old version of System V, you might need to type
 | 
			
		||||
     `sh ./configure' instead to prevent `csh' from trying to execute
 | 
			
		||||
     `configure' itself.
 | 
			
		||||
 | 
			
		||||
     Running `configure' takes awhile.  While running, it prints some
 | 
			
		||||
     messages telling which features it is checking for.
 | 
			
		||||
 | 
			
		||||
  2. Type `make' to compile the package.
 | 
			
		||||
 | 
			
		||||
  3. Optionally, type `make check' to run any self-tests that come with
 | 
			
		||||
     the package.
 | 
			
		||||
 | 
			
		||||
  4. Type `make install' to install the programs and any data files and
 | 
			
		||||
     documentation.
 | 
			
		||||
 | 
			
		||||
  5. You can remove the program binaries and object files from the
 | 
			
		||||
     source code directory by typing `make clean'.  To also remove the
 | 
			
		||||
     files that `configure' created (so you can compile the package for
 | 
			
		||||
     a different kind of computer), type `make distclean'.  There is
 | 
			
		||||
     also a `make maintainer-clean' target, but that is intended mainly
 | 
			
		||||
     for the package's developers.  If you use it, you may have to get
 | 
			
		||||
     all sorts of other programs in order to regenerate files that came
 | 
			
		||||
     with the distribution.
 | 
			
		||||
 | 
			
		||||
Compilers and Options
 | 
			
		||||
=====================
 | 
			
		||||
 | 
			
		||||
   Some systems require unusual options for compilation or linking that
 | 
			
		||||
the `configure' script does not know about.  You can give `configure'
 | 
			
		||||
initial values for variables by setting them in the environment.  Using
 | 
			
		||||
a Bourne-compatible shell, you can do that on the command line like
 | 
			
		||||
this:
 | 
			
		||||
     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
 | 
			
		||||
 | 
			
		||||
Or on systems that have the `env' program, you can do it like this:
 | 
			
		||||
     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
 | 
			
		||||
 | 
			
		||||
Compiling For Multiple Architectures
 | 
			
		||||
====================================
 | 
			
		||||
 | 
			
		||||
   You can compile the package for more than one kind of computer at the
 | 
			
		||||
same time, by placing the object files for each architecture in their
 | 
			
		||||
own directory.  To do this, you must use a version of `make' that
 | 
			
		||||
supports the `VPATH' variable, such as GNU `make'.  `cd' to the
 | 
			
		||||
directory where you want the object files and executables to go and run
 | 
			
		||||
the `configure' script.  `configure' automatically checks for the
 | 
			
		||||
source code in the directory that `configure' is in and in `..'.
 | 
			
		||||
 | 
			
		||||
   If you have to use a `make' that does not supports the `VPATH'
 | 
			
		||||
variable, you have to compile the package for one architecture at a time
 | 
			
		||||
in the source code directory.  After you have installed the package for
 | 
			
		||||
one architecture, use `make distclean' before reconfiguring for another
 | 
			
		||||
architecture.
 | 
			
		||||
 | 
			
		||||
Installation Names
 | 
			
		||||
==================
 | 
			
		||||
 | 
			
		||||
   By default, `make install' will install the package's files in
 | 
			
		||||
`/usr/local/bin', `/usr/local/man', etc.  You can specify an
 | 
			
		||||
installation prefix other than `/usr/local' by giving `configure' the
 | 
			
		||||
option `--prefix=PATH'.
 | 
			
		||||
 | 
			
		||||
   You can specify separate installation prefixes for
 | 
			
		||||
architecture-specific files and architecture-independent files.  If you
 | 
			
		||||
give `configure' the option `--exec-prefix=PATH', the package will use
 | 
			
		||||
PATH as the prefix for installing programs and libraries.
 | 
			
		||||
Documentation and other data files will still use the regular prefix.
 | 
			
		||||
 | 
			
		||||
   In addition, if you use an unusual directory layout you can give
 | 
			
		||||
options like `--bindir=PATH' to specify different values for particular
 | 
			
		||||
kinds of files.  Run `configure --help' for a list of the directories
 | 
			
		||||
you can set and what kinds of files go in them.
 | 
			
		||||
 | 
			
		||||
   If the package supports it, you can cause programs to be installed
 | 
			
		||||
with an extra prefix or suffix on their names by giving `configure' the
 | 
			
		||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
 | 
			
		||||
 | 
			
		||||
Optional Features
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
   Some packages pay attention to `--enable-FEATURE' options to
 | 
			
		||||
`configure', where FEATURE indicates an optional part of the package.
 | 
			
		||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
 | 
			
		||||
is something like `gnu-as' or `x' (for the X Window System).  The
 | 
			
		||||
`README' should mention any `--enable-' and `--with-' options that the
 | 
			
		||||
package recognizes.
 | 
			
		||||
 | 
			
		||||
   For packages that use the X Window System, `configure' can usually
 | 
			
		||||
find the X include and library files automatically, but if it doesn't,
 | 
			
		||||
you can use the `configure' options `--x-includes=DIR' and
 | 
			
		||||
`--x-libraries=DIR' to specify their locations.
 | 
			
		||||
 | 
			
		||||
Specifying the System Type
 | 
			
		||||
==========================
 | 
			
		||||
 | 
			
		||||
   There may be some features `configure' can not figure out
 | 
			
		||||
automatically, but needs to determine by the type of host the package
 | 
			
		||||
will run on.  Usually `configure' can figure that out, but if it prints
 | 
			
		||||
a message saying it can not guess the host type, give it the
 | 
			
		||||
`--host=TYPE' option.  TYPE can either be a short name for the system
 | 
			
		||||
type, such as `sun4', or a canonical name with three fields:
 | 
			
		||||
     CPU-COMPANY-SYSTEM
 | 
			
		||||
 | 
			
		||||
See the file `config.sub' for the possible values of each field.  If
 | 
			
		||||
`config.sub' isn't included in this package, then this package doesn't
 | 
			
		||||
need to know the host type.
 | 
			
		||||
 | 
			
		||||
   If you are building compiler tools for cross-compiling, you can also
 | 
			
		||||
use the `--target=TYPE' option to select the type of system they will
 | 
			
		||||
produce code for and the `--build=TYPE' option to select the type of
 | 
			
		||||
system on which you are compiling the package.
 | 
			
		||||
 | 
			
		||||
Sharing Defaults
 | 
			
		||||
================
 | 
			
		||||
 | 
			
		||||
   If you want to set default values for `configure' scripts to share,
 | 
			
		||||
you can create a site shell script called `config.site' that gives
 | 
			
		||||
default values for variables like `CC', `cache_file', and `prefix'.
 | 
			
		||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
 | 
			
		||||
`PREFIX/etc/config.site' if it exists.  Or, you can set the
 | 
			
		||||
`CONFIG_SITE' environment variable to the location of the site script.
 | 
			
		||||
A warning: not all `configure' scripts look for a site script.
 | 
			
		||||
 | 
			
		||||
Operation Controls
 | 
			
		||||
==================
 | 
			
		||||
 | 
			
		||||
   `configure' recognizes the following options to control how it
 | 
			
		||||
operates.
 | 
			
		||||
 | 
			
		||||
`--cache-file=FILE'
 | 
			
		||||
     Use and save the results of the tests in FILE instead of
 | 
			
		||||
     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
 | 
			
		||||
     debugging `configure'.
 | 
			
		||||
 | 
			
		||||
`--help'
 | 
			
		||||
     Print a summary of the options to `configure', and exit.
 | 
			
		||||
 | 
			
		||||
`--quiet'
 | 
			
		||||
`--silent'
 | 
			
		||||
`-q'
 | 
			
		||||
     Do not print messages saying which checks are being made.  To
 | 
			
		||||
     suppress all normal output, redirect it to `/dev/null' (any error
 | 
			
		||||
     messages will still be shown).
 | 
			
		||||
 | 
			
		||||
`--srcdir=DIR'
 | 
			
		||||
     Look for the package's source code in directory DIR.  Usually
 | 
			
		||||
     `configure' can determine that directory automatically.
 | 
			
		||||
 | 
			
		||||
`--version'
 | 
			
		||||
     Print the version of Autoconf used to generate the `configure'
 | 
			
		||||
     script, and exit.
 | 
			
		||||
 | 
			
		||||
`configure' also accepts some other, not widely useful, options.
 | 
			
		||||
							
								
								
									
										2
									
								
								Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Makefile.am
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
EXTRA_DIST = configure acconfig.h reconf
 | 
			
		||||
SUBDIRS = src doc
 | 
			
		||||
							
								
								
									
										354
									
								
								Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										354
									
								
								Makefile.in
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,354 @@
 | 
			
		||||
# Makefile.in generated automatically by automake 1.4a from Makefile.am
 | 
			
		||||
 | 
			
		||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
 | 
			
		||||
# This Makefile.in is free software; the Free Software Foundation
 | 
			
		||||
# gives unlimited permission to copy and/or distribute it,
 | 
			
		||||
# with or without modifications, as long as this notice is preserved.
 | 
			
		||||
 | 
			
		||||
# This program is distributed in the hope that it will be useful,
 | 
			
		||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
 | 
			
		||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 | 
			
		||||
# PARTICULAR PURPOSE.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SHELL = @SHELL@
 | 
			
		||||
 | 
			
		||||
srcdir = @srcdir@
 | 
			
		||||
top_srcdir = @top_srcdir@
 | 
			
		||||
VPATH = @srcdir@
 | 
			
		||||
prefix = @prefix@
 | 
			
		||||
exec_prefix = @exec_prefix@
 | 
			
		||||
 | 
			
		||||
bindir = @bindir@
 | 
			
		||||
sbindir = @sbindir@
 | 
			
		||||
libexecdir = @libexecdir@
 | 
			
		||||
datadir = @datadir@
 | 
			
		||||
sysconfdir = @sysconfdir@
 | 
			
		||||
sharedstatedir = @sharedstatedir@
 | 
			
		||||
localstatedir = @localstatedir@
 | 
			
		||||
libdir = @libdir@
 | 
			
		||||
infodir = @infodir@
 | 
			
		||||
mandir = @mandir@
 | 
			
		||||
includedir = @includedir@
 | 
			
		||||
oldincludedir = /usr/include
 | 
			
		||||
 | 
			
		||||
DESTDIR =
 | 
			
		||||
 | 
			
		||||
pkgdatadir = $(datadir)/@PACKAGE@
 | 
			
		||||
pkglibdir = $(libdir)/@PACKAGE@
 | 
			
		||||
pkgincludedir = $(includedir)/@PACKAGE@
 | 
			
		||||
 | 
			
		||||
top_builddir = .
 | 
			
		||||
 | 
			
		||||
ACLOCAL = @ACLOCAL@
 | 
			
		||||
AUTOCONF = @AUTOCONF@
 | 
			
		||||
AUTOMAKE = @AUTOMAKE@
 | 
			
		||||
AUTOHEADER = @AUTOHEADER@
 | 
			
		||||
 | 
			
		||||
INSTALL = @INSTALL@
 | 
			
		||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
 | 
			
		||||
INSTALL_DATA = @INSTALL_DATA@
 | 
			
		||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
 | 
			
		||||
INSTALL_STRIP_FLAG =
 | 
			
		||||
transform = @program_transform_name@
 | 
			
		||||
 | 
			
		||||
NORMAL_INSTALL = :
 | 
			
		||||
PRE_INSTALL = :
 | 
			
		||||
POST_INSTALL = :
 | 
			
		||||
NORMAL_UNINSTALL = :
 | 
			
		||||
PRE_UNINSTALL = :
 | 
			
		||||
POST_UNINSTALL = :
 | 
			
		||||
CC = @CC@
 | 
			
		||||
CFLAGS = @CFLAGS@
 | 
			
		||||
LIBOBJS = @LIBOBJS@
 | 
			
		||||
LIBS = @LIBS@
 | 
			
		||||
MAKEINFO = @MAKEINFO@
 | 
			
		||||
PACKAGE = @PACKAGE@
 | 
			
		||||
VERSION = @VERSION@
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = configure acconfig.h reconf
 | 
			
		||||
SUBDIRS = src doc
 | 
			
		||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 | 
			
		||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 | 
			
		||||
CONFIG_HEADER = ./src/defines.h
 | 
			
		||||
CONFIG_CLEAN_FILES = 
 | 
			
		||||
DIST_COMMON =  README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
 | 
			
		||||
Makefile.in NEWS THANKS acconfig.h aclocal.m4 configure configure.in \
 | 
			
		||||
install-sh missing mkinstalldirs src/defines.h.in src/stamp-h.in
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 | 
			
		||||
 | 
			
		||||
TAR = gtar
 | 
			
		||||
GZIP_ENV = --best
 | 
			
		||||
all: all-redirect
 | 
			
		||||
.SUFFIXES:
 | 
			
		||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
 | 
			
		||||
	cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
 | 
			
		||||
 | 
			
		||||
Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
 | 
			
		||||
	cd $(top_builddir) \
 | 
			
		||||
	  && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
 | 
			
		||||
 | 
			
		||||
$(ACLOCAL_M4):  configure.in 
 | 
			
		||||
	cd $(srcdir) && $(ACLOCAL)
 | 
			
		||||
 | 
			
		||||
config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 | 
			
		||||
	$(SHELL) ./config.status --recheck
 | 
			
		||||
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
 | 
			
		||||
	cd $(srcdir) && $(AUTOCONF)
 | 
			
		||||
 | 
			
		||||
src/defines.h: src/stamp-h
 | 
			
		||||
	@if test ! -f $@; then \
 | 
			
		||||
		rm -f src/stamp-h; \
 | 
			
		||||
		$(MAKE) src/stamp-h; \
 | 
			
		||||
	else :; fi
 | 
			
		||||
src/stamp-h: $(srcdir)/src/defines.h.in $(top_builddir)/config.status
 | 
			
		||||
	cd $(top_builddir) \
 | 
			
		||||
	  && CONFIG_FILES= CONFIG_HEADERS=src/defines.h \
 | 
			
		||||
	     $(SHELL) ./config.status
 | 
			
		||||
	@echo timestamp > src/stamp-h 2> /dev/null
 | 
			
		||||
$(srcdir)/src/defines.h.in: $(srcdir)/src/stamp-h.in
 | 
			
		||||
	@if test ! -f $@; then \
 | 
			
		||||
		rm -f $(srcdir)/src/stamp-h.in; \
 | 
			
		||||
		$(MAKE) $(srcdir)/src/stamp-h.in; \
 | 
			
		||||
	else :; fi
 | 
			
		||||
$(srcdir)/src/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
 | 
			
		||||
	cd $(top_srcdir) && $(AUTOHEADER)
 | 
			
		||||
	@echo timestamp > $(srcdir)/src/stamp-h.in 2> /dev/null
 | 
			
		||||
 | 
			
		||||
mostlyclean-hdr:
 | 
			
		||||
 | 
			
		||||
clean-hdr:
 | 
			
		||||
 | 
			
		||||
distclean-hdr:
 | 
			
		||||
	-rm -f src/defines.h
 | 
			
		||||
 | 
			
		||||
maintainer-clean-hdr:
 | 
			
		||||
 | 
			
		||||
# This directory's subdirectories are mostly independent; you can cd
 | 
			
		||||
# into them and run `make' without going through this Makefile.
 | 
			
		||||
# To change the values of `make' variables: instead of editing Makefiles,
 | 
			
		||||
# (1) if the variable is set in `config.status', edit `config.status'
 | 
			
		||||
#     (which will cause the Makefiles to be regenerated when you run `make');
 | 
			
		||||
# (2) otherwise, pass the desired values on the `make' command line.
 | 
			
		||||
 | 
			
		||||
@SET_MAKE@
 | 
			
		||||
 | 
			
		||||
all-recursive install-data-recursive install-exec-recursive \
 | 
			
		||||
installdirs-recursive install-recursive uninstall-recursive  \
 | 
			
		||||
check-recursive installcheck-recursive info-recursive dvi-recursive:
 | 
			
		||||
	@set fnord $(MAKEFLAGS); amf=$$2; \
 | 
			
		||||
	dot_seen=no; \
 | 
			
		||||
	target=`echo $@ | sed s/-recursive//`; \
 | 
			
		||||
	list='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
	  echo "Making $$target in $$subdir"; \
 | 
			
		||||
	  if test "$$subdir" = "."; then \
 | 
			
		||||
	    dot_seen=yes; \
 | 
			
		||||
	    local_target="$$target-am"; \
 | 
			
		||||
	  else \
 | 
			
		||||
	    local_target="$$target"; \
 | 
			
		||||
	  fi; \
 | 
			
		||||
	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 | 
			
		||||
	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
 | 
			
		||||
	done; \
 | 
			
		||||
	if test "$$dot_seen" = "no"; then \
 | 
			
		||||
	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 | 
			
		||||
	fi; test -z "$$fail"
 | 
			
		||||
 | 
			
		||||
mostlyclean-recursive clean-recursive distclean-recursive \
 | 
			
		||||
maintainer-clean-recursive:
 | 
			
		||||
	@set fnord $(MAKEFLAGS); amf=$$2; \
 | 
			
		||||
	dot_seen=no; \
 | 
			
		||||
	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
	  rev="$$subdir $$rev"; \
 | 
			
		||||
	  test "$$subdir" = "." && dot_seen=yes; \
 | 
			
		||||
	done; \
 | 
			
		||||
	test "$$dot_seen" = "no" && rev=". $$rev"; \
 | 
			
		||||
	target=`echo $@ | sed s/-recursive//`; \
 | 
			
		||||
	for subdir in $$rev; do \
 | 
			
		||||
	  echo "Making $$target in $$subdir"; \
 | 
			
		||||
	  if test "$$subdir" = "."; then \
 | 
			
		||||
	    local_target="$$target-am"; \
 | 
			
		||||
	  else \
 | 
			
		||||
	    local_target="$$target"; \
 | 
			
		||||
	  fi; \
 | 
			
		||||
	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 | 
			
		||||
	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
 | 
			
		||||
	done && test -z "$$fail"
 | 
			
		||||
tags-recursive:
 | 
			
		||||
	list='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
tags: TAGS
 | 
			
		||||
 | 
			
		||||
ID: $(HEADERS) $(SOURCES) $(LISP)
 | 
			
		||||
	list='$(SOURCES) $(HEADERS)'; \
 | 
			
		||||
	unique=`for i in $$list; do echo $$i; done | \
 | 
			
		||||
	  awk '    { files[$$0] = 1; } \
 | 
			
		||||
	       END { for (i in files) print i; }'`; \
 | 
			
		||||
	here=`pwd` && cd $(srcdir) \
 | 
			
		||||
	  && mkid -f$$here/ID $$unique $(LISP)
 | 
			
		||||
 | 
			
		||||
TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
 | 
			
		||||
	tags=; \
 | 
			
		||||
	here=`pwd`; \
 | 
			
		||||
	list='$(SUBDIRS)'; for subdir in $$list; do \
 | 
			
		||||
   if test "$$subdir" = .; then :; else \
 | 
			
		||||
	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
 | 
			
		||||
   fi; \
 | 
			
		||||
	done; \
 | 
			
		||||
	list='$(SOURCES) $(HEADERS)'; \
 | 
			
		||||
	unique=`for i in $$list; do echo $$i; done | \
 | 
			
		||||
	  awk '    { files[$$0] = 1; } \
 | 
			
		||||
	       END { for (i in files) print i; }'`; \
 | 
			
		||||
	test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
 | 
			
		||||
	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
 | 
			
		||||
 | 
			
		||||
mostlyclean-tags:
 | 
			
		||||
 | 
			
		||||
clean-tags:
 | 
			
		||||
 | 
			
		||||
distclean-tags:
 | 
			
		||||
	-rm -f TAGS ID
 | 
			
		||||
 | 
			
		||||
maintainer-clean-tags:
 | 
			
		||||
 | 
			
		||||
distdir = $(PACKAGE)-$(VERSION)
 | 
			
		||||
top_distdir = $(distdir)
 | 
			
		||||
 | 
			
		||||
# This target untars the dist file and tries a VPATH configuration.  Then
 | 
			
		||||
# it guarantees that the distribution is self-contained by making another
 | 
			
		||||
# tarfile.
 | 
			
		||||
distcheck: dist
 | 
			
		||||
	-rm -rf $(distdir)
 | 
			
		||||
	GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
 | 
			
		||||
	mkdir $(distdir)/=build
 | 
			
		||||
	mkdir $(distdir)/=inst
 | 
			
		||||
	dc_install_base=`cd $(distdir)/=inst && pwd`; \
 | 
			
		||||
	cd $(distdir)/=build \
 | 
			
		||||
	  && ../configure --srcdir=.. --prefix=$$dc_install_base \
 | 
			
		||||
	  && $(MAKE) $(AM_MAKEFLAGS) \
 | 
			
		||||
	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
 | 
			
		||||
	  && $(MAKE) $(AM_MAKEFLAGS) check \
 | 
			
		||||
	  && $(MAKE) $(AM_MAKEFLAGS) install \
 | 
			
		||||
	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
 | 
			
		||||
	  && $(MAKE) $(AM_MAKEFLAGS) dist
 | 
			
		||||
	-rm -rf $(distdir)
 | 
			
		||||
	@banner="$(distdir).tar.gz is ready for distribution"; \
 | 
			
		||||
	dashes=`echo "$$banner" | sed s/./=/g`; \
 | 
			
		||||
	echo "$$dashes"; \
 | 
			
		||||
	echo "$$banner"; \
 | 
			
		||||
	echo "$$dashes"
 | 
			
		||||
dist: distdir
 | 
			
		||||
	-chmod -R a+r $(distdir)
 | 
			
		||||
	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
 | 
			
		||||
	-rm -rf $(distdir)
 | 
			
		||||
dist-all: distdir
 | 
			
		||||
	-chmod -R a+r $(distdir)
 | 
			
		||||
	GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
 | 
			
		||||
	-rm -rf $(distdir)
 | 
			
		||||
distdir: $(DISTFILES)
 | 
			
		||||
	-rm -rf $(distdir)
 | 
			
		||||
	mkdir $(distdir)
 | 
			
		||||
	-chmod 777 $(distdir)
 | 
			
		||||
	here=`cd $(top_builddir) && pwd`; \
 | 
			
		||||
	top_distdir=`cd $(distdir) && pwd`; \
 | 
			
		||||
	distdir=`cd $(distdir) && pwd`; \
 | 
			
		||||
	cd $(top_srcdir) \
 | 
			
		||||
	  && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile
 | 
			
		||||
	@for file in $(DISTFILES); do \
 | 
			
		||||
	  d=$(srcdir); \
 | 
			
		||||
	  if test -d $$d/$$file; then \
 | 
			
		||||
	    cp -pr $$d/$$file $(distdir)/$$file; \
 | 
			
		||||
	  else \
 | 
			
		||||
	    test -f $(distdir)/$$file \
 | 
			
		||||
	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
 | 
			
		||||
	    || cp -p $$d/$$file $(distdir)/$$file || :; \
 | 
			
		||||
	  fi; \
 | 
			
		||||
	done
 | 
			
		||||
	for subdir in $(SUBDIRS); do \
 | 
			
		||||
	  if test "$$subdir" = .; then :; else \
 | 
			
		||||
	    test -d $(distdir)/$$subdir \
 | 
			
		||||
	    || mkdir $(distdir)/$$subdir \
 | 
			
		||||
	    || exit 1; \
 | 
			
		||||
	    chmod 777 $(distdir)/$$subdir; \
 | 
			
		||||
	    (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
 | 
			
		||||
	      || exit 1; \
 | 
			
		||||
	  fi; \
 | 
			
		||||
	done
 | 
			
		||||
info-am:
 | 
			
		||||
info: info-recursive
 | 
			
		||||
dvi-am:
 | 
			
		||||
dvi: dvi-recursive
 | 
			
		||||
check-am: all-am
 | 
			
		||||
check: check-recursive
 | 
			
		||||
installcheck-am:
 | 
			
		||||
installcheck: installcheck-recursive
 | 
			
		||||
install-exec-am:
 | 
			
		||||
install-exec: install-exec-recursive
 | 
			
		||||
 | 
			
		||||
install-data-am:
 | 
			
		||||
install-data: install-data-recursive
 | 
			
		||||
 | 
			
		||||
install-am: all-am
 | 
			
		||||
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 | 
			
		||||
install: install-recursive
 | 
			
		||||
uninstall-am:
 | 
			
		||||
uninstall: uninstall-recursive
 | 
			
		||||
all-am: Makefile
 | 
			
		||||
all-redirect: all-recursive
 | 
			
		||||
install-strip:
 | 
			
		||||
	$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
 | 
			
		||||
installdirs: installdirs-recursive
 | 
			
		||||
installdirs-am:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
mostlyclean-generic:
 | 
			
		||||
 | 
			
		||||
clean-generic:
 | 
			
		||||
 | 
			
		||||
distclean-generic:
 | 
			
		||||
	-rm -f Makefile $(CONFIG_CLEAN_FILES)
 | 
			
		||||
	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
 | 
			
		||||
 | 
			
		||||
maintainer-clean-generic:
 | 
			
		||||
mostlyclean-am:  mostlyclean-hdr mostlyclean-tags mostlyclean-generic
 | 
			
		||||
 | 
			
		||||
mostlyclean: mostlyclean-recursive
 | 
			
		||||
 | 
			
		||||
clean-am:  clean-hdr clean-tags clean-generic mostlyclean-am
 | 
			
		||||
 | 
			
		||||
clean: clean-recursive
 | 
			
		||||
 | 
			
		||||
distclean-am:  distclean-hdr distclean-tags distclean-generic clean-am
 | 
			
		||||
 | 
			
		||||
distclean: distclean-recursive
 | 
			
		||||
	-rm -f config.status
 | 
			
		||||
 | 
			
		||||
maintainer-clean-am:  maintainer-clean-hdr maintainer-clean-tags \
 | 
			
		||||
		maintainer-clean-generic distclean-am
 | 
			
		||||
	@echo "This command is intended for maintainers to use;"
 | 
			
		||||
	@echo "it deletes files that may require special tools to rebuild."
 | 
			
		||||
 | 
			
		||||
maintainer-clean: maintainer-clean-recursive
 | 
			
		||||
	-rm -f config.status
 | 
			
		||||
 | 
			
		||||
.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
 | 
			
		||||
install-data-recursive uninstall-data-recursive install-exec-recursive \
 | 
			
		||||
uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
 | 
			
		||||
all-recursive check-recursive installcheck-recursive info-recursive \
 | 
			
		||||
dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
 | 
			
		||||
maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
 | 
			
		||||
distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
 | 
			
		||||
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
 | 
			
		||||
install-exec install-data-am install-data install-am install \
 | 
			
		||||
uninstall-am uninstall all-redirect all-am all installdirs-am \
 | 
			
		||||
installdirs mostlyclean-generic distclean-generic clean-generic \
 | 
			
		||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
 | 
			
		||||
# Otherwise a system limit (for SysV at least) may be exceeded.
 | 
			
		||||
.NOEXPORT:
 | 
			
		||||
							
								
								
									
										41
									
								
								NEWS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								NEWS
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,41 @@
 | 
			
		||||
 | 
			
		||||
  NEWS
 | 
			
		||||
  ====
 | 
			
		||||
 | 
			
		||||
  This is another interim release of tinyproxy that fixes a few more bugs, 
 | 
			
		||||
and adds a feature or two (notably: non-blocking DNS lookups).  It was 
 | 
			
		||||
decided to move back what was previously going to be released as 1.3.2 and
 | 
			
		||||
release it as 1.4.0, as these bug fixes and patches were determined to be 
 | 
			
		||||
too high-priority to wait on.  
 | 
			
		||||
 | 
			
		||||
  In this version of 1.3.2, the are the following new features:
 | 
			
		||||
 
 | 
			
		||||
  - Non-blocking DNS lookups.
 | 
			
		||||
  
 | 
			
		||||
  And the following bug fixes:
 | 
			
		||||
 
 | 
			
		||||
  - A bug where connptr was not correctly being set before httperr was being
 | 
			
		||||
called in reqs.c.
 | 
			
		||||
  - A bug where the system would crash if an empty request was received.
 | 
			
		||||
  - A file descriptor leak where an fd would not be properly closed in 
 | 
			
		||||
event of a bad HTTP request. 
 | 
			
		||||
 | 
			
		||||
  Here is some information on the upcoming 1.4.0 release:
 | 
			
		||||
 | 
			
		||||
  1.4.0
 | 
			
		||||
  =====
 | 
			
		||||
 | 
			
		||||
  1.4.0 is in the works.  Some features you can expect:
 | 
			
		||||
 
 | 
			
		||||
  - Ability to listen on >1 port.
 | 
			
		||||
  - Ability to set up more than one access list for the allowed
 | 
			
		||||
    IP subnets.
 | 
			
		||||
  - Ability to listen on multiple interfaces specified on the command-line.
 | 
			
		||||
  - Simple caching.
 | 
			
		||||
 | 
			
		||||
  Under the hood, 1.4.0 should be a bit more modular than 1.3.2.  This
 | 
			
		||||
will hopefully lend itself towards making it easier for third parties to
 | 
			
		||||
develop new features for tinyproxy.  
 | 
			
		||||
 | 
			
		||||
  Please note that as of 1.3.1, Steven Young <sdyoung@well.com> is once
 | 
			
		||||
again the primary maintainer of tinyproxy.
 | 
			
		||||
							
								
								
									
										99
									
								
								README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								README
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,99 @@
 | 
			
		||||
 This is tinyproxy-adns, tinyproxy with support for GNU adns asynchronous
 | 
			
		||||
 resolver library.
 | 
			
		||||
 | 
			
		||||
 DESCRIPTION
 | 
			
		||||
 -----------
 | 
			
		||||
 | 
			
		||||
 tinyproxy is a small, efficient HTTP proxy daemon.  tinyproxy is very 
 | 
			
		||||
 useful in a small network setting, where a larger proxy like Squid
 | 
			
		||||
 would either be too resource intensive, or a security risk.  One of
 | 
			
		||||
 the key features of tinyproxy is the buffering connection concept.
 | 
			
		||||
 In effect, tinyproxy will buffer a high speed response from a server, 
 | 
			
		||||
 and then relay it to a client at the highest speed the client will
 | 
			
		||||
 accept.  This feature greatly reduces the problems with sluggishness
 | 
			
		||||
 on the Internet.  If you are sharing an Internet connection with a
 | 
			
		||||
 small network, and you only want to allow HTTP requests to be
 | 
			
		||||
 allowed, then tinyproxy is a great tool for the network
 | 
			
		||||
 administrator.
 | 
			
		||||
 | 
			
		||||
 This version of tinyproxy must be compiled with GNU adns, available from
 | 
			
		||||
 http://www.chiark.greenend.org.uk/~ian/adns/.
 | 
			
		||||
 | 
			
		||||
 INSTALLATION
 | 
			
		||||
 ------------
 | 
			
		||||
 | 
			
		||||
 To install this package under a Unix derivative, read the INSTALL
 | 
			
		||||
 file.  tinyproxy uses a standard GNU configure script.  There are
 | 
			
		||||
 additional command line arguments you can supply to configure.  They
 | 
			
		||||
 include:
 | 
			
		||||
 | 
			
		||||
	--enable-debug		If you would like to turn on full
 | 
			
		||||
				debugging support
 | 
			
		||||
	--enable-socks		This turns on SOCKS support for using
 | 
			
		||||
				tinyproxy across a fire wall.
 | 
			
		||||
	--enable-xtinyproxy	Compile in support for the XTinyproxy
 | 
			
		||||
				header, which is sent to any web
 | 
			
		||||
				server in your domain.
 | 
			
		||||
 | 
			
		||||
    Options for GNU adns
 | 
			
		||||
        --with-adns-include=DIR Set the directory in which adns.h has
 | 
			
		||||
                                been installed. Required if this is in
 | 
			
		||||
                                a non-standard location.
 | 
			
		||||
        --with-adns-lib=DIR     Set the directory in which libadns.* have
 | 
			
		||||
                                been installed. Required if this is in
 | 
			
		||||
                                a non-standard location.
 | 
			
		||||
 | 
			
		||||
     Options for file locations etc.
 | 
			
		||||
        --with-port=PORT        Set the port on which tinyproxy listens,
 | 
			
		||||
                                by default 8080.
 | 
			
		||||
        --with-log-file=FILE    Set the default logfile location.
 | 
			
		||||
        --with-user=USER        Set the default user to which tinyproxy
 | 
			
		||||
                                will setuid() upon startup.
 | 
			
		||||
 | 
			
		||||
 Once you have completed your installation, if you would like to
 | 
			
		||||
 report your success please execute the report.sh script in the doc
 | 
			
		||||
 directory.  This will send an email to the authors reporting your
 | 
			
		||||
 version, and a few bits of information concerning the memory usage of 
 | 
			
		||||
 tinyproxy.  Alternatively, you could just send an email stating the
 | 
			
		||||
 version.  Which ever you prefer.
 | 
			
		||||
 | 
			
		||||
 SUPPORT
 | 
			
		||||
 -------
 | 
			
		||||
 | 
			
		||||
 If you are having problems with tinyproxy, please report the problem
 | 
			
		||||
 to:
 | 
			
		||||
 | 
			
		||||
	Steven Young		<sdyoung@well.com>
 | 
			
		||||
	Robert James Kaes	<rjkaes@flarenet.com>
 | 
			
		||||
 | 
			
		||||
 If the problem seems to be to do with GNU adns support (or if I've done
 | 
			
		||||
 something obviously wrong), please email
 | 
			
		||||
 | 
			
		||||
        Chris Lightfoot         <chris@ex-parrot.com>
 | 
			
		||||
 | 
			
		||||
 Please recompile tinyproxy with full debug support (--enable-debug)
 | 
			
		||||
 and include a copy of the log file, and any assert errors reported by 
 | 
			
		||||
 tinyproxy.  Also, if you feel up to it, try running tinyproxy under
 | 
			
		||||
 your debugger and report the error your received and a context
 | 
			
		||||
 listing of the location.  Under gdb you would run tinyproxy like so:
 | 
			
		||||
 | 
			
		||||
	 gdb tinyproxy
 | 
			
		||||
 | 
			
		||||
	 (gdb) set args -p port_num -l log_file -d
 | 
			
		||||
	 (gdb) run
 | 
			
		||||
 | 
			
		||||
 Now access the port tinyproxy is on until you receive a break in the
 | 
			
		||||
 gdb. You can now type:
 | 
			
		||||
 | 
			
		||||
	 (gbd) l
 | 
			
		||||
 | 
			
		||||
 to produce a context listing of the location of the error.  Send a
 | 
			
		||||
 copy to the authors.
 | 
			
		||||
 | 
			
		||||
 HOW TO CONTRIBUTE TO tinyproxy
 | 
			
		||||
 ------------------------------
 | 
			
		||||
 | 
			
		||||
 If you would like to contribute a feature, or a bug fix to the
 | 
			
		||||
 tinyproxy source, please send a diff (preferable a unified
 | 
			
		||||
 diff. i.e. "diff -u") against the latest release of tinyproxy.  Also, 
 | 
			
		||||
 if you could include a brief description of what your patch does.
 | 
			
		||||
							
								
								
									
										42
									
								
								THANKS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								THANKS
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,42 @@
 | 
			
		||||
Tinyproxy wouldn't be possible in its current form without the help of
 | 
			
		||||
the following people.  Thanks a lot, guys (sorted in no particular
 | 
			
		||||
order).  Note that in the case of entries listed under 'numerous others',
 | 
			
		||||
only the first person to report it is listed.
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  Steven Young			- Wrote version 1.0 - 1.1
 | 
			
		||||
  Robert James Kaes		- Wrote versions from 1.2 to 1.3 and
 | 
			
		||||
  				  autoconf enabled the source tree.
 | 
			
		||||
  Albert Ragnarsson		- Made an RPM out of the 1.0d .tar.gz archive.
 | 
			
		||||
  Alan W Black			- Misc. bug reports and fixes.
 | 
			
		||||
  Ed Boraas			- Various suggestions, helped beta test 1.0d.
 | 
			
		||||
  Abhijit Menon-Sen		- Beta tested 1.1, numerous bugs fixed
 | 
			
		||||
				  and features improved. Also helped
 | 
			
		||||
				  establish world peace and eliminate
 | 
			
		||||
				  hunger and poverty. Generally
 | 
			
		||||
				  credited with the singlehanded
 | 
			
		||||
				  abolition of all crime and dishonesty.
 | 
			
		||||
  Jay Kominek			- Made the 1.1 DEB.
 | 
			
		||||
  Eran Tromer			- Provided webspace at attacca.com.
 | 
			
		||||
  Bruno Viaris			- Found and provided initial fix for
 | 
			
		||||
				  bug in the clientreq() routine when
 | 
			
		||||
				  dealing with broken requests from clients.
 | 
			
		||||
  Alexander Loehr		- Found and provided fix for a bug in
 | 
			
		||||
				  the listen_sock routine.
 | 
			
		||||
  Bob Grabau			- Added additional logging of URLs to
 | 
			
		||||
  				  incoming connections.
 | 
			
		||||
  Mitsuru Yoshida		- Made the FreeBSD port
 | 
			
		||||
  Ian Holsman			- Suggested the selective listening option
 | 
			
		||||
  Peter Meerwald		- Portability suggests and improvements
 | 
			
		||||
  Shaun Johnson			- Fixed a problem with compiling with
 | 
			
		||||
 				  syslog enabled on a SunOS box. Should
 | 
			
		||||
 				  help other systems too.
 | 
			
		||||
  Timothy E. Newsome		- SOCKS firewall enabled tinyproxy
 | 
			
		||||
  George Talusan		- Bug testing
 | 
			
		||||
  Chris Lightfoot		- Provided patches to give tinyproxy adns 
 | 
			
		||||
                                  support.
 | 
			
		||||
  Michael Pearson,
 | 
			
		||||
  numerous others               - Reported connptr bug with patch.
 | 
			
		||||
  Raja Subramanian		- Reported fd leak bug, with patch.
 | 
			
		||||
  Raja Subramanian,
 | 
			
		||||
  numerous others               - Reported null requests bug.
 | 
			
		||||
							
								
								
									
										20
									
								
								acconfig.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								acconfig.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Define if you want to have the peer's IP address to be included in a
 | 
			
		||||
 * XTinyproxy header sent to the server.
 | 
			
		||||
 */
 | 
			
		||||
#undef XTINYPROXY
 | 
			
		||||
 | 
			
		||||
/* chris - undef'd here so that they can be set up in the configure script */
 | 
			
		||||
#undef DEFAULT_LOG
 | 
			
		||||
#undef DEFAULT_PORT
 | 
			
		||||
#undef DEFAULT_USER
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Define if you would like to include filtering code.
 | 
			
		||||
 */
 | 
			
		||||
#undef FILTER_ENABLE
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Define if you want to use the included GNU regex routine
 | 
			
		||||
 */
 | 
			
		||||
#undef USE_GNU_REGEX
 | 
			
		||||
							
								
								
									
										129
									
								
								aclocal.m4
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								aclocal.m4
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,129 @@
 | 
			
		||||
dnl aclocal.m4 generated automatically by aclocal 1.4a
 | 
			
		||||
 | 
			
		||||
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
 | 
			
		||||
dnl This file is free software; the Free Software Foundation
 | 
			
		||||
dnl gives unlimited permission to copy and/or distribute it,
 | 
			
		||||
dnl with or without modifications, as long as this notice is preserved.
 | 
			
		||||
 | 
			
		||||
dnl This program is distributed in the hope that it will be useful,
 | 
			
		||||
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
 | 
			
		||||
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 | 
			
		||||
dnl PARTICULAR PURPOSE.
 | 
			
		||||
 | 
			
		||||
# Do all the work for Automake.  This macro actually does too much --
 | 
			
		||||
# some checks are only needed if your package does certain things.
 | 
			
		||||
# But this isn't really a big deal.
 | 
			
		||||
 | 
			
		||||
# serial 1
 | 
			
		||||
 | 
			
		||||
dnl Usage:
 | 
			
		||||
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
 | 
			
		||||
 | 
			
		||||
AC_DEFUN(AM_INIT_AUTOMAKE,
 | 
			
		||||
[AC_REQUIRE([AC_PROG_INSTALL])
 | 
			
		||||
dnl We require 2.13 because we rely on SHELL being computed by configure.
 | 
			
		||||
AC_PREREQ([2.13])
 | 
			
		||||
PACKAGE=[$1]
 | 
			
		||||
AC_SUBST(PACKAGE)
 | 
			
		||||
VERSION=[$2]
 | 
			
		||||
AC_SUBST(VERSION)
 | 
			
		||||
dnl test to see if srcdir already configured
 | 
			
		||||
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
 | 
			
		||||
  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
 | 
			
		||||
fi
 | 
			
		||||
ifelse([$3],,
 | 
			
		||||
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
 | 
			
		||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
 | 
			
		||||
AC_REQUIRE([AM_SANITY_CHECK])
 | 
			
		||||
AC_REQUIRE([AC_ARG_PROGRAM])
 | 
			
		||||
dnl FIXME This is truly gross.
 | 
			
		||||
missing_dir=`cd $ac_aux_dir && pwd`
 | 
			
		||||
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
 | 
			
		||||
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
 | 
			
		||||
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
 | 
			
		||||
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
 | 
			
		||||
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
 | 
			
		||||
AC_REQUIRE([AC_PROG_MAKE_SET])])
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Check to make sure that the build environment is sane.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
AC_DEFUN(AM_SANITY_CHECK,
 | 
			
		||||
[AC_MSG_CHECKING([whether build environment is sane])
 | 
			
		||||
# Just in case
 | 
			
		||||
sleep 1
 | 
			
		||||
echo timestamp > conftestfile
 | 
			
		||||
# Do `set' in a subshell so we don't clobber the current shell's
 | 
			
		||||
# arguments.  Must try -L first in case configure is actually a
 | 
			
		||||
# symlink; some systems play weird games with the mod time of symlinks
 | 
			
		||||
# (eg FreeBSD returns the mod time of the symlink's containing
 | 
			
		||||
# directory).
 | 
			
		||||
if (
 | 
			
		||||
   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
 | 
			
		||||
   if test "[$]*" = "X"; then
 | 
			
		||||
      # -L didn't work.
 | 
			
		||||
      set X `ls -t $srcdir/configure conftestfile`
 | 
			
		||||
   fi
 | 
			
		||||
   if test "[$]*" != "X $srcdir/configure conftestfile" \
 | 
			
		||||
      && test "[$]*" != "X conftestfile $srcdir/configure"; then
 | 
			
		||||
 | 
			
		||||
      # If neither matched, then we have a broken ls.  This can happen
 | 
			
		||||
      # if, for instance, CONFIG_SHELL is bash and it inherits a
 | 
			
		||||
      # broken ls alias from the environment.  This has actually
 | 
			
		||||
      # happened.  Such a system could not be considered "sane".
 | 
			
		||||
      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
 | 
			
		||||
alias in your environment])
 | 
			
		||||
   fi
 | 
			
		||||
 | 
			
		||||
   test "[$]2" = conftestfile
 | 
			
		||||
   )
 | 
			
		||||
then
 | 
			
		||||
   # Ok.
 | 
			
		||||
   :
 | 
			
		||||
else
 | 
			
		||||
   AC_MSG_ERROR([newly created file is older than distributed files!
 | 
			
		||||
Check your system clock])
 | 
			
		||||
fi
 | 
			
		||||
rm -f conftest*
 | 
			
		||||
AC_MSG_RESULT(yes)])
 | 
			
		||||
 | 
			
		||||
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
 | 
			
		||||
dnl The program must properly implement --version.
 | 
			
		||||
AC_DEFUN(AM_MISSING_PROG,
 | 
			
		||||
[AC_MSG_CHECKING(for working $2)
 | 
			
		||||
# Run test in a subshell; some versions of sh will print an error if
 | 
			
		||||
# an executable is not found, even if stderr is redirected.
 | 
			
		||||
# Redirect stdin to placate older versions of autoconf.  Sigh.
 | 
			
		||||
if ($2 --version) < /dev/null > /dev/null 2>&1; then
 | 
			
		||||
   $1=$2
 | 
			
		||||
   AC_MSG_RESULT(found)
 | 
			
		||||
else
 | 
			
		||||
   $1="$3/missing $2"
 | 
			
		||||
   AC_MSG_RESULT(missing)
 | 
			
		||||
fi
 | 
			
		||||
AC_SUBST($1)])
 | 
			
		||||
 | 
			
		||||
# Like AC_CONFIG_HEADER, but automatically create stamp file.
 | 
			
		||||
 | 
			
		||||
AC_DEFUN(AM_CONFIG_HEADER,
 | 
			
		||||
[AC_PREREQ([2.12])
 | 
			
		||||
AC_CONFIG_HEADER([$1])
 | 
			
		||||
dnl When config.status generates a header, we must update the stamp-h file.
 | 
			
		||||
dnl This file resides in the same directory as the config header
 | 
			
		||||
dnl that is generated.  We must strip everything past the first ":",
 | 
			
		||||
dnl and everything past the last "/".
 | 
			
		||||
AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl
 | 
			
		||||
ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>,
 | 
			
		||||
<<test -z "<<$>>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>,
 | 
			
		||||
<<am_indx=1
 | 
			
		||||
for am_file in <<$1>>; do
 | 
			
		||||
  case " <<$>>CONFIG_HEADERS " in
 | 
			
		||||
  *" <<$>>am_file "*<<)>>
 | 
			
		||||
    echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx
 | 
			
		||||
    ;;
 | 
			
		||||
  esac
 | 
			
		||||
  am_indx=`expr "<<$>>am_indx" + 1`
 | 
			
		||||
done<<>>dnl>>)
 | 
			
		||||
changequote([,]))])
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								adns-0.6/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								adns-0.6/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
			
		||||
Makefile
 | 
			
		||||
config.log
 | 
			
		||||
config.cache
 | 
			
		||||
config.status
 | 
			
		||||
dist_tmp
 | 
			
		||||
adns-*.tar.gz
 | 
			
		||||
settings.make
 | 
			
		||||
*.tmp*
 | 
			
		||||
							
								
								
									
										340
									
								
								adns-0.6/COPYING
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										340
									
								
								adns-0.6/COPYING
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,340 @@
 | 
			
		||||
		    GNU GENERAL PUBLIC LICENSE
 | 
			
		||||
		       Version 2, June 1991
 | 
			
		||||
 | 
			
		||||
 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
 | 
			
		||||
                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
			
		||||
 Everyone is permitted to copy and distribute verbatim copies
 | 
			
		||||
 of this license document, but changing it is not allowed.
 | 
			
		||||
 | 
			
		||||
			    Preamble
 | 
			
		||||
 | 
			
		||||
  The licenses for most software are designed to take away your
 | 
			
		||||
freedom to share and change it.  By contrast, the GNU General Public
 | 
			
		||||
License is intended to guarantee your freedom to share and change free
 | 
			
		||||
software--to make sure the software is free for all its users.  This
 | 
			
		||||
General Public License applies to most of the Free Software
 | 
			
		||||
Foundation's software and to any other program whose authors commit to
 | 
			
		||||
using it.  (Some other Free Software Foundation software is covered by
 | 
			
		||||
the GNU Library General Public License instead.)  You can apply it to
 | 
			
		||||
your programs, too.
 | 
			
		||||
 | 
			
		||||
  When we speak of free software, we are referring to freedom, not
 | 
			
		||||
price.  Our General Public Licenses are designed to make sure that you
 | 
			
		||||
have the freedom to distribute copies of free software (and charge for
 | 
			
		||||
this service if you wish), that you receive source code or can get it
 | 
			
		||||
if you want it, that you can change the software or use pieces of it
 | 
			
		||||
in new free programs; and that you know you can do these things.
 | 
			
		||||
 | 
			
		||||
  To protect your rights, we need to make restrictions that forbid
 | 
			
		||||
anyone to deny you these rights or to ask you to surrender the rights.
 | 
			
		||||
These restrictions translate to certain responsibilities for you if you
 | 
			
		||||
distribute copies of the software, or if you modify it.
 | 
			
		||||
 | 
			
		||||
  For example, if you distribute copies of such a program, whether
 | 
			
		||||
gratis or for a fee, you must give the recipients all the rights that
 | 
			
		||||
you have.  You must make sure that they, too, receive or can get the
 | 
			
		||||
source code.  And you must show them these terms so they know their
 | 
			
		||||
rights.
 | 
			
		||||
 | 
			
		||||
  We protect your rights with two steps: (1) copyright the software, and
 | 
			
		||||
(2) offer you this license which gives you legal permission to copy,
 | 
			
		||||
distribute and/or modify the software.
 | 
			
		||||
 | 
			
		||||
  Also, for each author's protection and ours, we want to make certain
 | 
			
		||||
that everyone understands that there is no warranty for this free
 | 
			
		||||
software.  If the software is modified by someone else and passed on, we
 | 
			
		||||
want its recipients to know that what they have is not the original, so
 | 
			
		||||
that any problems introduced by others will not reflect on the original
 | 
			
		||||
authors' reputations.
 | 
			
		||||
 | 
			
		||||
  Finally, any free program is threatened constantly by software
 | 
			
		||||
patents.  We wish to avoid the danger that redistributors of a free
 | 
			
		||||
program will individually obtain patent licenses, in effect making the
 | 
			
		||||
program proprietary.  To prevent this, we have made it clear that any
 | 
			
		||||
patent must be licensed for everyone's free use or not licensed at all.
 | 
			
		||||
 | 
			
		||||
  The precise terms and conditions for copying, distribution and
 | 
			
		||||
modification follow.
 | 
			
		||||
 | 
			
		||||
		    GNU GENERAL PUBLIC LICENSE
 | 
			
		||||
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 | 
			
		||||
 | 
			
		||||
  0. This License applies to any program or other work which contains
 | 
			
		||||
a notice placed by the copyright holder saying it may be distributed
 | 
			
		||||
under the terms of this General Public License.  The "Program", below,
 | 
			
		||||
refers to any such program or work, and a "work based on the Program"
 | 
			
		||||
means either the Program or any derivative work under copyright law:
 | 
			
		||||
that is to say, a work containing the Program or a portion of it,
 | 
			
		||||
either verbatim or with modifications and/or translated into another
 | 
			
		||||
language.  (Hereinafter, translation is included without limitation in
 | 
			
		||||
the term "modification".)  Each licensee is addressed as "you".
 | 
			
		||||
 | 
			
		||||
Activities other than copying, distribution and modification are not
 | 
			
		||||
covered by this License; they are outside its scope.  The act of
 | 
			
		||||
running the Program is not restricted, and the output from the Program
 | 
			
		||||
is covered only if its contents constitute a work based on the
 | 
			
		||||
Program (independent of having been made by running the Program).
 | 
			
		||||
Whether that is true depends on what the Program does.
 | 
			
		||||
 | 
			
		||||
  1. You may copy and distribute verbatim copies of the Program's
 | 
			
		||||
source code as you receive it, in any medium, provided that you
 | 
			
		||||
conspicuously and appropriately publish on each copy an appropriate
 | 
			
		||||
copyright notice and disclaimer of warranty; keep intact all the
 | 
			
		||||
notices that refer to this License and to the absence of any warranty;
 | 
			
		||||
and give any other recipients of the Program a copy of this License
 | 
			
		||||
along with the Program.
 | 
			
		||||
 | 
			
		||||
You may charge a fee for the physical act of transferring a copy, and
 | 
			
		||||
you may at your option offer warranty protection in exchange for a fee.
 | 
			
		||||
 | 
			
		||||
  2. You may modify your copy or copies of the Program or any portion
 | 
			
		||||
of it, thus forming a work based on the Program, and copy and
 | 
			
		||||
distribute such modifications or work under the terms of Section 1
 | 
			
		||||
above, provided that you also meet all of these conditions:
 | 
			
		||||
 | 
			
		||||
    a) You must cause the modified files to carry prominent notices
 | 
			
		||||
    stating that you changed the files and the date of any change.
 | 
			
		||||
 | 
			
		||||
    b) You must cause any work that you distribute or publish, that in
 | 
			
		||||
    whole or in part contains or is derived from the Program or any
 | 
			
		||||
    part thereof, to be licensed as a whole at no charge to all third
 | 
			
		||||
    parties under the terms of this License.
 | 
			
		||||
 | 
			
		||||
    c) If the modified program normally reads commands interactively
 | 
			
		||||
    when run, you must cause it, when started running for such
 | 
			
		||||
    interactive use in the most ordinary way, to print or display an
 | 
			
		||||
    announcement including an appropriate copyright notice and a
 | 
			
		||||
    notice that there is no warranty (or else, saying that you provide
 | 
			
		||||
    a warranty) and that users may redistribute the program under
 | 
			
		||||
    these conditions, and telling the user how to view a copy of this
 | 
			
		||||
    License.  (Exception: if the Program itself is interactive but
 | 
			
		||||
    does not normally print such an announcement, your work based on
 | 
			
		||||
    the Program is not required to print an announcement.)
 | 
			
		||||
 | 
			
		||||
These requirements apply to the modified work as a whole.  If
 | 
			
		||||
identifiable sections of that work are not derived from the Program,
 | 
			
		||||
and can be reasonably considered independent and separate works in
 | 
			
		||||
themselves, then this License, and its terms, do not apply to those
 | 
			
		||||
sections when you distribute them as separate works.  But when you
 | 
			
		||||
distribute the same sections as part of a whole which is a work based
 | 
			
		||||
on the Program, the distribution of the whole must be on the terms of
 | 
			
		||||
this License, whose permissions for other licensees extend to the
 | 
			
		||||
entire whole, and thus to each and every part regardless of who wrote it.
 | 
			
		||||
 | 
			
		||||
Thus, it is not the intent of this section to claim rights or contest
 | 
			
		||||
your rights to work written entirely by you; rather, the intent is to
 | 
			
		||||
exercise the right to control the distribution of derivative or
 | 
			
		||||
collective works based on the Program.
 | 
			
		||||
 | 
			
		||||
In addition, mere aggregation of another work not based on the Program
 | 
			
		||||
with the Program (or with a work based on the Program) on a volume of
 | 
			
		||||
a storage or distribution medium does not bring the other work under
 | 
			
		||||
the scope of this License.
 | 
			
		||||
 | 
			
		||||
  3. You may copy and distribute the Program (or a work based on it,
 | 
			
		||||
under Section 2) in object code or executable form under the terms of
 | 
			
		||||
Sections 1 and 2 above provided that you also do one of the following:
 | 
			
		||||
 | 
			
		||||
    a) Accompany it with the complete corresponding machine-readable
 | 
			
		||||
    source code, which must be distributed under the terms of Sections
 | 
			
		||||
    1 and 2 above on a medium customarily used for software interchange; or,
 | 
			
		||||
 | 
			
		||||
    b) Accompany it with a written offer, valid for at least three
 | 
			
		||||
    years, to give any third party, for a charge no more than your
 | 
			
		||||
    cost of physically performing source distribution, a complete
 | 
			
		||||
    machine-readable copy of the corresponding source code, to be
 | 
			
		||||
    distributed under the terms of Sections 1 and 2 above on a medium
 | 
			
		||||
    customarily used for software interchange; or,
 | 
			
		||||
 | 
			
		||||
    c) Accompany it with the information you received as to the offer
 | 
			
		||||
    to distribute corresponding source code.  (This alternative is
 | 
			
		||||
    allowed only for noncommercial distribution and only if you
 | 
			
		||||
    received the program in object code or executable form with such
 | 
			
		||||
    an offer, in accord with Subsection b above.)
 | 
			
		||||
 | 
			
		||||
The source code for a work means the preferred form of the work for
 | 
			
		||||
making modifications to it.  For an executable work, complete source
 | 
			
		||||
code means all the source code for all modules it contains, plus any
 | 
			
		||||
associated interface definition files, plus the scripts used to
 | 
			
		||||
control compilation and installation of the executable.  However, as a
 | 
			
		||||
special exception, the source code distributed need not include
 | 
			
		||||
anything that is normally distributed (in either source or binary
 | 
			
		||||
form) with the major components (compiler, kernel, and so on) of the
 | 
			
		||||
operating system on which the executable runs, unless that component
 | 
			
		||||
itself accompanies the executable.
 | 
			
		||||
 | 
			
		||||
If distribution of executable or object code is made by offering
 | 
			
		||||
access to copy from a designated place, then offering equivalent
 | 
			
		||||
access to copy the source code from the same place counts as
 | 
			
		||||
distribution of the source code, even though third parties are not
 | 
			
		||||
compelled to copy the source along with the object code.
 | 
			
		||||
 | 
			
		||||
  4. You may not copy, modify, sublicense, or distribute the Program
 | 
			
		||||
except as expressly provided under this License.  Any attempt
 | 
			
		||||
otherwise to copy, modify, sublicense or distribute the Program is
 | 
			
		||||
void, and will automatically terminate your rights under this License.
 | 
			
		||||
However, parties who have received copies, or rights, from you under
 | 
			
		||||
this License will not have their licenses terminated so long as such
 | 
			
		||||
parties remain in full compliance.
 | 
			
		||||
 | 
			
		||||
  5. You are not required to accept this License, since you have not
 | 
			
		||||
signed it.  However, nothing else grants you permission to modify or
 | 
			
		||||
distribute the Program or its derivative works.  These actions are
 | 
			
		||||
prohibited by law if you do not accept this License.  Therefore, by
 | 
			
		||||
modifying or distributing the Program (or any work based on the
 | 
			
		||||
Program), you indicate your acceptance of this License to do so, and
 | 
			
		||||
all its terms and conditions for copying, distributing or modifying
 | 
			
		||||
the Program or works based on it.
 | 
			
		||||
 | 
			
		||||
  6. Each time you redistribute the Program (or any work based on the
 | 
			
		||||
Program), the recipient automatically receives a license from the
 | 
			
		||||
original licensor to copy, distribute or modify the Program subject to
 | 
			
		||||
these terms and conditions.  You may not impose any further
 | 
			
		||||
restrictions on the recipients' exercise of the rights granted herein.
 | 
			
		||||
You are not responsible for enforcing compliance by third parties to
 | 
			
		||||
this License.
 | 
			
		||||
 | 
			
		||||
  7. If, as a consequence of a court judgment or allegation of patent
 | 
			
		||||
infringement or for any other reason (not limited to patent issues),
 | 
			
		||||
conditions are imposed on you (whether by court order, agreement or
 | 
			
		||||
otherwise) that contradict the conditions of this License, they do not
 | 
			
		||||
excuse you from the conditions of this License.  If you cannot
 | 
			
		||||
distribute so as to satisfy simultaneously your obligations under this
 | 
			
		||||
License and any other pertinent obligations, then as a consequence you
 | 
			
		||||
may not distribute the Program at all.  For example, if a patent
 | 
			
		||||
license would not permit royalty-free redistribution of the Program by
 | 
			
		||||
all those who receive copies directly or indirectly through you, then
 | 
			
		||||
the only way you could satisfy both it and this License would be to
 | 
			
		||||
refrain entirely from distribution of the Program.
 | 
			
		||||
 | 
			
		||||
If any portion of this section is held invalid or unenforceable under
 | 
			
		||||
any particular circumstance, the balance of the section is intended to
 | 
			
		||||
apply and the section as a whole is intended to apply in other
 | 
			
		||||
circumstances.
 | 
			
		||||
 | 
			
		||||
It is not the purpose of this section to induce you to infringe any
 | 
			
		||||
patents or other property right claims or to contest validity of any
 | 
			
		||||
such claims; this section has the sole purpose of protecting the
 | 
			
		||||
integrity of the free software distribution system, which is
 | 
			
		||||
implemented by public license practices.  Many people have made
 | 
			
		||||
generous contributions to the wide range of software distributed
 | 
			
		||||
through that system in reliance on consistent application of that
 | 
			
		||||
system; it is up to the author/donor to decide if he or she is willing
 | 
			
		||||
to distribute software through any other system and a licensee cannot
 | 
			
		||||
impose that choice.
 | 
			
		||||
 | 
			
		||||
This section is intended to make thoroughly clear what is believed to
 | 
			
		||||
be a consequence of the rest of this License.
 | 
			
		||||
 | 
			
		||||
  8. If the distribution and/or use of the Program is restricted in
 | 
			
		||||
certain countries either by patents or by copyrighted interfaces, the
 | 
			
		||||
original copyright holder who places the Program under this License
 | 
			
		||||
may add an explicit geographical distribution limitation excluding
 | 
			
		||||
those countries, so that distribution is permitted only in or among
 | 
			
		||||
countries not thus excluded.  In such case, this License incorporates
 | 
			
		||||
the limitation as if written in the body of this License.
 | 
			
		||||
 | 
			
		||||
  9. The Free Software Foundation may publish revised and/or new versions
 | 
			
		||||
of the General Public License from time to time.  Such new versions will
 | 
			
		||||
be similar in spirit to the present version, but may differ in detail to
 | 
			
		||||
address new problems or concerns.
 | 
			
		||||
 | 
			
		||||
Each version is given a distinguishing version number.  If the Program
 | 
			
		||||
specifies a version number of this License which applies to it and "any
 | 
			
		||||
later version", you have the option of following the terms and conditions
 | 
			
		||||
either of that version or of any later version published by the Free
 | 
			
		||||
Software Foundation.  If the Program does not specify a version number of
 | 
			
		||||
this License, you may choose any version ever published by the Free Software
 | 
			
		||||
Foundation.
 | 
			
		||||
 | 
			
		||||
  10. If you wish to incorporate parts of the Program into other free
 | 
			
		||||
programs whose distribution conditions are different, write to the author
 | 
			
		||||
to ask for permission.  For software which is copyrighted by the Free
 | 
			
		||||
Software Foundation, write to the Free Software Foundation; we sometimes
 | 
			
		||||
make exceptions for this.  Our decision will be guided by the two goals
 | 
			
		||||
of preserving the free status of all derivatives of our free software and
 | 
			
		||||
of promoting the sharing and reuse of software generally.
 | 
			
		||||
 | 
			
		||||
			    NO WARRANTY
 | 
			
		||||
 | 
			
		||||
  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 | 
			
		||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
 | 
			
		||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
 | 
			
		||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
 | 
			
		||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 | 
			
		||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
 | 
			
		||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
 | 
			
		||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
 | 
			
		||||
REPAIR OR CORRECTION.
 | 
			
		||||
 | 
			
		||||
  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
 | 
			
		||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
 | 
			
		||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
 | 
			
		||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
 | 
			
		||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
 | 
			
		||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
 | 
			
		||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 | 
			
		||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 | 
			
		||||
POSSIBILITY OF SUCH DAMAGES.
 | 
			
		||||
 | 
			
		||||
		     END OF TERMS AND CONDITIONS
 | 
			
		||||
 | 
			
		||||
	    How to Apply These Terms to Your New Programs
 | 
			
		||||
 | 
			
		||||
  If you develop a new program, and you want it to be of the greatest
 | 
			
		||||
possible use to the public, the best way to achieve this is to make it
 | 
			
		||||
free software which everyone can redistribute and change under these terms.
 | 
			
		||||
 | 
			
		||||
  To do so, attach the following notices to the program.  It is safest
 | 
			
		||||
to attach them to the start of each source file to most effectively
 | 
			
		||||
convey the exclusion of warranty; and each file should have at least
 | 
			
		||||
the "copyright" line and a pointer to where the full notice is found.
 | 
			
		||||
 | 
			
		||||
    <one line to give the program's name and a brief idea of what it does.>
 | 
			
		||||
    Copyright (C) 19yy  <name of author>
 | 
			
		||||
 | 
			
		||||
    This program is free software; you can redistribute it and/or modify
 | 
			
		||||
    it under the terms of the GNU General Public License as published by
 | 
			
		||||
    the Free Software Foundation; either version 2 of the License, or
 | 
			
		||||
    (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
    This program is distributed in the hope that it will be useful,
 | 
			
		||||
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
    GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
    You should have received a copy of the GNU General Public License
 | 
			
		||||
    along with this program; if not, write to the Free Software
 | 
			
		||||
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Also add information on how to contact you by electronic and paper mail.
 | 
			
		||||
 | 
			
		||||
If the program is interactive, make it output a short notice like this
 | 
			
		||||
when it starts in an interactive mode:
 | 
			
		||||
 | 
			
		||||
    Gnomovision version 69, Copyright (C) 19yy name of author
 | 
			
		||||
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
 | 
			
		||||
    This is free software, and you are welcome to redistribute it
 | 
			
		||||
    under certain conditions; type `show c' for details.
 | 
			
		||||
 | 
			
		||||
The hypothetical commands `show w' and `show c' should show the appropriate
 | 
			
		||||
parts of the General Public License.  Of course, the commands you use may
 | 
			
		||||
be called something other than `show w' and `show c'; they could even be
 | 
			
		||||
mouse-clicks or menu items--whatever suits your program.
 | 
			
		||||
 | 
			
		||||
You should also get your employer (if you work as a programmer) or your
 | 
			
		||||
school, if any, to sign a "copyright disclaimer" for the program, if
 | 
			
		||||
necessary.  Here is a sample; alter the names:
 | 
			
		||||
 | 
			
		||||
  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
 | 
			
		||||
  `Gnomovision' (which makes passes at compilers) written by James Hacker.
 | 
			
		||||
 | 
			
		||||
  <signature of Ty Coon>, 1 April 1989
 | 
			
		||||
  Ty Coon, President of Vice
 | 
			
		||||
 | 
			
		||||
This General Public License does not permit incorporating your program into
 | 
			
		||||
proprietary programs.  If your program is a subroutine library, you may
 | 
			
		||||
consider it more useful to permit linking proprietary applications with the
 | 
			
		||||
library.  If this is what you want to do, use the GNU Library General
 | 
			
		||||
Public License instead of this License.
 | 
			
		||||
							
								
								
									
										58
									
								
								adns-0.6/INSTALL
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								adns-0.6/INSTALL
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,58 @@
 | 
			
		||||
INSTALLATION INSTRUCTIONS for ADNS
 | 
			
		||||
 | 
			
		||||
   $ ./configure
 | 
			
		||||
   $ make
 | 
			
		||||
   # make install
 | 
			
		||||
 | 
			
		||||
Unfortunately, since this is a beta, there is no good documentation
 | 
			
		||||
yet.  For now, use the comments in the public header file adns.h.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
You will find that adns requires a reasonably standard and up to date
 | 
			
		||||
system.
 | 
			
		||||
 | 
			
		||||
In particular, the build system assumes that you have ELF shared
 | 
			
		||||
libraries.  If you don't then please don't send me patches to support
 | 
			
		||||
your kind of shared libraries, and don't send me patches to use
 | 
			
		||||
libtool.  I'm not interested in supporting non-ELF shared libraries.
 | 
			
		||||
However, if you send me an appropriate patch I'd be willing to make it
 | 
			
		||||
easy or automatic to disable the ELF shared library arrangements.
 | 
			
		||||
 | 
			
		||||
The adnsresfilter utility uses `tsearch' from the C library (a la SVID
 | 
			
		||||
and X/Open).  If your C library doesn't have tsearch you will find
 | 
			
		||||
that configure arranges for adnsresfilter not to be built.  To rectify
 | 
			
		||||
this, install a C library containing tsearch, such as the GNU C
 | 
			
		||||
library.  It is best if tsearch uses an automatically-balancing tree
 | 
			
		||||
algorithm, like the glibc version does.  Simple binary trees may
 | 
			
		||||
perform badly.
 | 
			
		||||
 | 
			
		||||
You will probably find that GNU Make is required.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
COPYRIGHT
 | 
			
		||||
 | 
			
		||||
This file, INSTALL, contains installation instructions and other
 | 
			
		||||
details for adns.
 | 
			
		||||
 | 
			
		||||
adns is
 | 
			
		||||
 Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
 | 
			
		||||
adns is free software; you can redistribute it and/or modify it under
 | 
			
		||||
the terms of the GNU General Public License as published by the Free
 | 
			
		||||
Software Foundation; either version 2 of the License, or (at your
 | 
			
		||||
option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful, but
 | 
			
		||||
WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
			
		||||
General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with userv as the file COPYING; if not, email me at the address
 | 
			
		||||
above or write to the Free Software Foundation, 59 Temple Place -
 | 
			
		||||
Suite 330, Boston, MA 02111-1307, USA.
 | 
			
		||||
 | 
			
		||||
# Local variables:
 | 
			
		||||
# mode: text
 | 
			
		||||
# End:
 | 
			
		||||
							
								
								
									
										68
									
								
								adns-0.6/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								adns-0.6/Makefile.in
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,68 @@
 | 
			
		||||
# Makefile - top-level Makefile
 | 
			
		||||
#  
 | 
			
		||||
#  This file is
 | 
			
		||||
#    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
#
 | 
			
		||||
#  It is part of adns, which is
 | 
			
		||||
#    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
#    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
# 
 | 
			
		||||
#  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
#  it under the terms of the GNU General Public License as published by
 | 
			
		||||
#  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
#  any later version.
 | 
			
		||||
#  
 | 
			
		||||
#  This program is distributed in the hope that it will be useful,
 | 
			
		||||
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
#  GNU General Public License for more details.
 | 
			
		||||
#  
 | 
			
		||||
#  You should have received a copy of the GNU General Public License
 | 
			
		||||
#  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
#  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 | 
			
		||||
DISTVERSION=	0.6
 | 
			
		||||
srcdir=		@srcdir@
 | 
			
		||||
VPATH=		@srcdir@
 | 
			
		||||
 | 
			
		||||
SUBDIRS= src dynamic client regress
 | 
			
		||||
 | 
			
		||||
all install uninstall clean distclean mostlyclean maintainer-clean distprep:
 | 
			
		||||
	set -e; for d in $(SUBDIRS); do $(MAKE) -C $$d $@; done
 | 
			
		||||
	$(MAKE) $@-here
 | 
			
		||||
 | 
			
		||||
all-here install-here uninstall-here distprep-here:	README
 | 
			
		||||
 | 
			
		||||
clean-here mostlyclean-here:
 | 
			
		||||
		rm -f *~ ./#*# core *.orig *.rej adns-*.tar.gz
 | 
			
		||||
		rm -rf dist_tmp
 | 
			
		||||
 | 
			
		||||
distclean-here maintainer-clean-here:	clean-here
 | 
			
		||||
		rm -f settings.make config.h config.cache config.log config.status
 | 
			
		||||
 | 
			
		||||
install-strip:
 | 
			
		||||
	$(MAKE) INSTALL_PROGRAM_FLAGS=-s
 | 
			
		||||
 | 
			
		||||
dist_tmp=dist_tmp/adns-$(DISTVERSION)
 | 
			
		||||
dist:			distprep
 | 
			
		||||
	rm -rf dist_tmp*
 | 
			
		||||
	mkdir dist_tmp $(dist_tmp)
 | 
			
		||||
	find \( -name CVS -o -name dist_tmp* \) -prune -o -type d -print | \
 | 
			
		||||
		sed -e 's#.*#mkdir -p $(dist_tmp)/&#' | sh
 | 
			
		||||
	find \( -name CVS -o -name dist_tmp* \) -prune -o -type f -print | \
 | 
			
		||||
		sed -e 's#.*#ln & $(dist_tmp)/&#' | sh
 | 
			
		||||
	$(MAKE) -C dist_tmp/adns-$(DISTVERSION) distclean
 | 
			
		||||
	cd dist_tmp && tar cf ../$(dist_tmp).tar `basename $(dist_tmp)`
 | 
			
		||||
	gzip -9 $(dist_tmp).tar
 | 
			
		||||
	mv $(dist_tmp).tar.gz .
 | 
			
		||||
 | 
			
		||||
check:			all
 | 
			
		||||
	$(MAKE) -C regress check
 | 
			
		||||
 | 
			
		||||
README README-update:
 | 
			
		||||
	lynx -dump -number_links -cfg=/dev/null \
 | 
			
		||||
		http://www.chiark.greenend.org.uk/~ian/adns/ >README.tmp
 | 
			
		||||
	mv -f README.tmp README
 | 
			
		||||
 | 
			
		||||
TAGS info dvi:
 | 
			
		||||
	# do nothing
 | 
			
		||||
							
								
								
									
										148
									
								
								adns-0.6/README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								adns-0.6/README
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,148 @@
 | 
			
		||||
 | 
			
		||||
                                   GNU adns
 | 
			
		||||
                                       
 | 
			
		||||
   Advanced, easy to use, asynchronous-capable DNS client library.
 | 
			
		||||
   
 | 
			
		||||
   adns is a resolver library for C (and C++) programs. In contrast with
 | 
			
		||||
   the existing interfaces, gethostbyname et al and libresolv, it has the
 | 
			
		||||
   following features:
 | 
			
		||||
     * It is reasonably easy to use for simple programs which just want
 | 
			
		||||
       to translate names to addresses, look up MX records, etc.
 | 
			
		||||
     * It can be used in an asynchronous, non-blocking, manner. Many
 | 
			
		||||
       queries can be handled simultaneously.
 | 
			
		||||
     * Responses are decoded automatically into a natural representation
 | 
			
		||||
       for a C program - there is no need to deal with DNS packet
 | 
			
		||||
       formats.
 | 
			
		||||
     * Sanity checking (eg, name syntax checking, reverse/forward
 | 
			
		||||
       correspondence, CNAME pointing to CNAME) is performed
 | 
			
		||||
       automatically.
 | 
			
		||||
     * Time-to-live, CNAME and other similar information is returned in
 | 
			
		||||
       an easy-to-use form, without getting in the way.
 | 
			
		||||
     * There is no global state in the library; resolver state is an
 | 
			
		||||
       opaque data structure which the client creates explicitly. A
 | 
			
		||||
       program can have several instances of the resolver.
 | 
			
		||||
     * Errors are reported to the application in a way that distinguishes
 | 
			
		||||
       the various causes of failure properly.
 | 
			
		||||
     * Understands conventional resolv.conf, but this can overridden by
 | 
			
		||||
       environment variables.
 | 
			
		||||
     * Flexibility. For example, the application can tell adns to: ignore
 | 
			
		||||
       environment variables (for setuid programs), disable sanity checks
 | 
			
		||||
       eg to return arbitrary data, override or ignore resolv.conf in
 | 
			
		||||
       favour of supplied configuration, etc.
 | 
			
		||||
     * Believed to be correct ! For example, will correctly back off to
 | 
			
		||||
       TCP in case of long replies or queries, or to other nameservers if
 | 
			
		||||
       several are available. It has sensible handling of bad responses
 | 
			
		||||
       etc.
 | 
			
		||||
       
 | 
			
		||||
Forthcoming:
 | 
			
		||||
 | 
			
		||||
   I hope that future versions may also have the following features:
 | 
			
		||||
     * The library should be useable by threads in a multithreaded
 | 
			
		||||
       program in a natural way. It should multiplex many threads'
 | 
			
		||||
       queries through a single query socket.
 | 
			
		||||
     * IPv6 support.
 | 
			
		||||
     * Some kind of awareness of DNSSEC.
 | 
			
		||||
     * Possibly some very limited caching behaviour.
 | 
			
		||||
       
 | 
			
		||||
   (Technical note: adns requires a real nameserver like [1]BIND or
 | 
			
		||||
   [2]Dents running on the same system or a nearby one, which must be
 | 
			
		||||
   willing to provide `recursive service'. I.e., adns is a `stub
 | 
			
		||||
   resolver'. All properly configured UN*X and GNU systems will already
 | 
			
		||||
   have such nameserver(s); they are usually listed in /etc/resolv.conf.)
 | 
			
		||||
   
 | 
			
		||||
Documentation
 | 
			
		||||
 | 
			
		||||
   I'm afraid there is no manual yet. However, competent C programmers
 | 
			
		||||
   should be able to use the library based on the commented [3]adns.h
 | 
			
		||||
   header file (from version 0.4).
 | 
			
		||||
   
 | 
			
		||||
Feedback
 | 
			
		||||
 | 
			
		||||
   I'd be pleased if you would let me know if you're using my library in
 | 
			
		||||
   your project, and what you think of it.
 | 
			
		||||
   
 | 
			
		||||
   If you are subscribed to adns-discuss please send feedback, including
 | 
			
		||||
   bug reports, there; otherwise send mail to
 | 
			
		||||
   adns-bugreports@chiark.greenend.org.uk. If you'd prefer that your
 | 
			
		||||
   message wasn't forwarded to the adns-bugreports list, send it to
 | 
			
		||||
   adns-maint@chiark.greendend.org.uk.
 | 
			
		||||
   
 | 
			
		||||
Mailinglists
 | 
			
		||||
 | 
			
		||||
   I have set up mailinglists adns-announce and adns-discuss. The
 | 
			
		||||
   announcements list is moderated and will contain only announcements of
 | 
			
		||||
   important bugs, new versions, &c. The bug reports address mentioned
 | 
			
		||||
   above is also a mailing list; feel free to subscribe to it.
 | 
			
		||||
   
 | 
			
		||||
   There are [4]archives and subscription web pages, or you can subscribe
 | 
			
		||||
   by sending mail containing the word `subscribe' to
 | 
			
		||||
   adns-announce-REQUEST@chiark.greenend.org.uk or
 | 
			
		||||
   adns-discuss-REQUEST@chiark.greenend.org.uk.
 | 
			
		||||
   
 | 
			
		||||
Download
 | 
			
		||||
 | 
			
		||||
   Available for download from [5]chiark.greenend.org.uk are:
 | 
			
		||||
     * The [6]current pre-release version as a gzipped tarfile.
 | 
			
		||||
     * [7]adns.h API header file with comments (currently there is no
 | 
			
		||||
       manual, sorry).
 | 
			
		||||
     * All versions released so far are also available via [8]anonymous
 | 
			
		||||
       FTP.
 | 
			
		||||
     * A mirror of my CVS repository is available via rsync from
 | 
			
		||||
       rsync.chiark.greenend.org.uk::ftp/users/ian/cvs-pub/adns (use FTP
 | 
			
		||||
       first to find your way around).
 | 
			
		||||
       
 | 
			
		||||
   adns is also available from the [9]GNU Project FTP servers and their
 | 
			
		||||
   [10]mirrors.
 | 
			
		||||
   
 | 
			
		||||
Copyright and licensing
 | 
			
		||||
 | 
			
		||||
   adns is Copyright 1997-1999 Ian Jackson.
 | 
			
		||||
   
 | 
			
		||||
   adns is free software; you can redistribute it and/or modify it under
 | 
			
		||||
   the terms of the GNU General Public License as published by the Free
 | 
			
		||||
   Software Foundation; either version 2 of the License, or (at your
 | 
			
		||||
   option) any later version.
 | 
			
		||||
   
 | 
			
		||||
   This program and documentation is distributed in the hope that it will
 | 
			
		||||
   be useful, but without any warranty; without even the implied warranty
 | 
			
		||||
   of merchantability or fitness for a particular purpose. See the
 | 
			
		||||
   [11]GNU General Public License for more details.
 | 
			
		||||
   
 | 
			
		||||
   You should have received a copy of the GNU General Public License
 | 
			
		||||
   along with adns, or one should be available above; if not, write to
 | 
			
		||||
   the [12]Free Software Foundation, 59 Temple Place - Suite 330, Boston,
 | 
			
		||||
   MA 02111-1307, USA, or email adns-maint@chiark.greenend.org.uk.
 | 
			
		||||
     _________________________________________________________________
 | 
			
		||||
   
 | 
			
		||||
   [13]Ian Jackson / [14]adns-maint@chiark.greenend.org.uk; more [15]free
 | 
			
		||||
   software by me.
 | 
			
		||||
   
 | 
			
		||||
   [16]GNU home page; [17]chiark home page; [18]site or mirror home page
 | 
			
		||||
   
 | 
			
		||||
   This web page is Copyright (C)1996-1999 Ian Jackson. See the
 | 
			
		||||
   [19]Copyright/acknowledgements.
 | 
			
		||||
   
 | 
			
		||||
   Use any browser - [20]Campaign for a non-browser-specific WWW
 | 
			
		||||
 | 
			
		||||
References
 | 
			
		||||
 | 
			
		||||
   1. http://www.isc.org/view.cgi?/products/BIND/index.phtml
 | 
			
		||||
   2. http://www.dents.org/
 | 
			
		||||
   3. http://www.chiark.greenend.org.uk/~ian/adns/adns.h.0.4.txt
 | 
			
		||||
   4. http://www.chiark.greenend.org.uk/mailman/listinfo
 | 
			
		||||
   5. http://www.chiark.greenend.org.uk/~ian/adns/
 | 
			
		||||
   6. http://www.chiark.greenend.org.uk/~ian/adns/adns.tar.gz
 | 
			
		||||
   7. http://www.chiark.greenend.org.uk/~ian/adns/adns.h.0.5.txt
 | 
			
		||||
   8. ftp://ftp.chiark.greenend.org.uk/users/ian/adns/
 | 
			
		||||
   9. http://www.gnu.org/
 | 
			
		||||
  10. http://www.gnu.org/order/ftp.html
 | 
			
		||||
  11. http://www.chiark.greenend.org.uk/~ian/COPYING.txt
 | 
			
		||||
  12. http://www.fsf.org/
 | 
			
		||||
  13. http://www.chiark.greenend.org.uk/
 | 
			
		||||
  14. mailto:adns-maint@chiark.greenend.org.uk
 | 
			
		||||
  15. http://www.chiark.greenend.org.uk/~ian/software/
 | 
			
		||||
  16. http://www.gnu.org/
 | 
			
		||||
  17. http://www.chiark.greenend.org.uk/
 | 
			
		||||
  18. http://www.chiark.greenend.org.uk/
 | 
			
		||||
  19. http://www.chiark.greenend.org.uk/~ian/sw-www-copy.html
 | 
			
		||||
  20. http://www.anybrowser.org/campaign/
 | 
			
		||||
							
								
								
									
										15
									
								
								adns-0.6/TODO
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								adns-0.6/TODO
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
INVESTIGATE:
 | 
			
		||||
* coredump in adnstest_s
 | 
			
		||||
 | 
			
		||||
BUGS:
 | 
			
		||||
* adns_qf_quoteok_cname should be the default.
 | 
			
		||||
 | 
			
		||||
WISHLIST:
 | 
			
		||||
* Easy way to make a reverse query.
 | 
			
		||||
* Make timeouts configurable.
 | 
			
		||||
* `fake' reverse queries (give nnn.nnn.nnn.nnn either always or on error)
 | 
			
		||||
* `fake' forward queries (allow nnn.nnn.nnn.nnn -> A)
 | 
			
		||||
* DNSSEC compatibility - be able to retreive KEY and SIG RRs
 | 
			
		||||
* DNSSEC minimum functionality - ignore Additional when AD set.
 | 
			
		||||
* DNSSEC functionality - provide security ?
 | 
			
		||||
* Easy-to-use scripting query tool
 | 
			
		||||
							
								
								
									
										109
									
								
								adns-0.6/acconfig.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								adns-0.6/acconfig.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,109 @@
 | 
			
		||||
/*
 | 
			
		||||
 * acconfig.h
 | 
			
		||||
 * input file for autoheader/autoconf/configure: extra stuff for config.h
 | 
			
		||||
 */
 | 
			
		||||
/*
 | 
			
		||||
 *  This file is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *
 | 
			
		||||
 *  It is part of adns, which is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
 *  any later version.
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *  
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
 *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* Define if function attributes a la GCC 2.5 and higher are available.  */
 | 
			
		||||
#undef HAVE_GNUC25_ATTRIB
 | 
			
		||||
 | 
			
		||||
/* Define if constant functions a la GCC 2.5 and higher are available.  */
 | 
			
		||||
#undef HAVE_GNUC25_CONST
 | 
			
		||||
 | 
			
		||||
/* Define if nonreturning functions a la GCC 2.5 and higher are available.  */
 | 
			
		||||
#undef HAVE_GNUC25_NORETURN
 | 
			
		||||
 | 
			
		||||
/* Define if printf-format argument lists a la GCC are available.  */
 | 
			
		||||
#undef HAVE_GNUC25_PRINTFFORMAT
 | 
			
		||||
 | 
			
		||||
/* Define if we want to include rpc/types.h.  Crap BSDs put INADDR_LOOPBACK there. */
 | 
			
		||||
#undef HAVEUSE_RPCTYPES_H
 | 
			
		||||
 | 
			
		||||
@BOTTOM@
 | 
			
		||||
 | 
			
		||||
/* Use the definitions: */
 | 
			
		||||
 | 
			
		||||
#ifdef HAVE_POLL
 | 
			
		||||
#include <sys/poll.h>
 | 
			
		||||
#else
 | 
			
		||||
/* kludge it up */
 | 
			
		||||
struct pollfd { int fd; short events; short revents; };
 | 
			
		||||
#define POLLIN  1
 | 
			
		||||
#define POLLPRI 2
 | 
			
		||||
#define POLLOUT 4
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* GNU C attributes. */
 | 
			
		||||
#ifndef FUNCATTR
 | 
			
		||||
#ifdef HAVE_GNUC25_ATTRIB
 | 
			
		||||
#define FUNCATTR(x) __attribute__(x)
 | 
			
		||||
#else
 | 
			
		||||
#define FUNCATTR(x)
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* GNU C printf formats, or null. */
 | 
			
		||||
#ifndef ATTRPRINTF
 | 
			
		||||
#ifdef HAVE_GNUC25_PRINTFFORMAT
 | 
			
		||||
#define ATTRPRINTF(si,tc) format(printf,si,tc)
 | 
			
		||||
#else
 | 
			
		||||
#define ATTRPRINTF(si,tc)
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef PRINTFFORMAT
 | 
			
		||||
#define PRINTFFORMAT(si,tc) FUNCATTR((ATTRPRINTF(si,tc)))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* GNU C nonreturning functions, or null. */
 | 
			
		||||
#ifndef ATTRNORETURN
 | 
			
		||||
#ifdef HAVE_GNUC25_NORETURN
 | 
			
		||||
#define ATTRNORETURN noreturn
 | 
			
		||||
#else
 | 
			
		||||
#define ATTRNORETURN
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef NONRETURNING
 | 
			
		||||
#define NONRETURNING FUNCATTR((ATTRNORETURN))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Combination of both the above. */
 | 
			
		||||
#ifndef NONRETURNPRINTFFORMAT
 | 
			
		||||
#define NONRETURNPRINTFFORMAT(si,tc) FUNCATTR((ATTRPRINTF(si,tc),ATTRNORETURN))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* GNU C constant functions, or null. */
 | 
			
		||||
#ifndef ATTRCONST
 | 
			
		||||
#ifdef HAVE_GNUC25_CONST
 | 
			
		||||
#define ATTRCONST const
 | 
			
		||||
#else
 | 
			
		||||
#define ATTRCONST
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef CONSTANT
 | 
			
		||||
#define CONSTANT FUNCATTR((ATTRCONST))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef HAVEUSE_RPCTYPES_H
 | 
			
		||||
#include <rpc/types.h>
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										70
									
								
								adns-0.6/aclocal.m4
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								adns-0.6/aclocal.m4
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,70 @@
 | 
			
		||||
# aclocal.m4 - package-specific macros for autoconf
 | 
			
		||||
#  
 | 
			
		||||
#  This file is
 | 
			
		||||
#    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
#
 | 
			
		||||
#  It is part of adns, which is
 | 
			
		||||
#    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
#    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
#  
 | 
			
		||||
#  This file is part of adns, which is Copyright (C) 1997-1999 Ian Jackson
 | 
			
		||||
#
 | 
			
		||||
#  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
#  it under the terms of the GNU General Public License as published by
 | 
			
		||||
#  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
#  any later version.
 | 
			
		||||
#  
 | 
			
		||||
#  This program is distributed in the hope that it will be useful,
 | 
			
		||||
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
#  GNU General Public License for more details.
 | 
			
		||||
#  
 | 
			
		||||
#  You should have received a copy of the GNU General Public License
 | 
			
		||||
#  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
#  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 | 
			
		||||
dnl DPKG_CACHED_TRY_COMPILE(<description>,<cachevar>,<include>,<program>,<ifyes>,<ifno>)
 | 
			
		||||
define(DPKG_CACHED_TRY_COMPILE,[
 | 
			
		||||
 AC_MSG_CHECKING($1)
 | 
			
		||||
 AC_CACHE_VAL($2,[
 | 
			
		||||
  AC_TRY_COMPILE([$3],[$4],[$2=yes],[$2=no])
 | 
			
		||||
 ])
 | 
			
		||||
 if test "x$$2" = xyes; then
 | 
			
		||||
  true
 | 
			
		||||
  $5
 | 
			
		||||
 else
 | 
			
		||||
  true
 | 
			
		||||
  $6
 | 
			
		||||
 fi
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
define(ADNS_C_GCCATTRIB,[
 | 
			
		||||
 DPKG_CACHED_TRY_COMPILE(__attribute__((,,)),adns_cv_c_attribute_supported,,
 | 
			
		||||
  [extern int testfunction(int x) __attribute__((,,))],
 | 
			
		||||
  AC_MSG_RESULT(yes)
 | 
			
		||||
  AC_DEFINE(HAVE_GNUC25_ATTRIB)
 | 
			
		||||
   DPKG_CACHED_TRY_COMPILE(__attribute__((noreturn)),adns_cv_c_attribute_noreturn,,
 | 
			
		||||
    [extern int testfunction(int x) __attribute__((noreturn))],
 | 
			
		||||
    AC_MSG_RESULT(yes)
 | 
			
		||||
    AC_DEFINE(HAVE_GNUC25_NORETURN),
 | 
			
		||||
    AC_MSG_RESULT(no))
 | 
			
		||||
   DPKG_CACHED_TRY_COMPILE(__attribute__((const)),adns_cv_c_attribute_const,,
 | 
			
		||||
    [extern int testfunction(int x) __attribute__((const))],
 | 
			
		||||
    AC_MSG_RESULT(yes)
 | 
			
		||||
    AC_DEFINE(HAVE_GNUC25_CONST),
 | 
			
		||||
    AC_MSG_RESULT(no))
 | 
			
		||||
   DPKG_CACHED_TRY_COMPILE(__attribute__((format...)),adns_cv_attribute_format,,
 | 
			
		||||
    [extern int testfunction(char *y, ...) __attribute__((format(printf,1,2)))],
 | 
			
		||||
    AC_MSG_RESULT(yes)
 | 
			
		||||
    AC_DEFINE(HAVE_GNUC25_PRINTFFORMAT),
 | 
			
		||||
    AC_MSG_RESULT(no)),
 | 
			
		||||
  AC_MSG_RESULT(no))
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
define(ADNS_C_GETFUNC,[
 | 
			
		||||
 AC_CHECK_FUNC([$1],,[
 | 
			
		||||
  AC_CHECK_LIB([$2],[$1],[$3],[
 | 
			
		||||
    AC_MSG_ERROR([cannot find library function $1])
 | 
			
		||||
  ])
 | 
			
		||||
 ])
 | 
			
		||||
])
 | 
			
		||||
							
								
								
									
										164
									
								
								adns-0.6/changelog
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								adns-0.6/changelog
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,164 @@
 | 
			
		||||
adns (0.6) BETA; urgency=high
 | 
			
		||||
 | 
			
		||||
  Core library bugfixes:
 | 
			
		||||
  * Avoid infinite timeouts, causing lockup, when they should be zero !
 | 
			
		||||
  * TCP handling revamped (avoids undefined behaviour due to reentrancy).
 | 
			
		||||
  * Do not fail assertion if _qf_owner, _qf_search, domain ends in `.'.
 | 
			
		||||
  * Many memory leaks fixed.
 | 
			
		||||
 | 
			
		||||
  Cool new utility:
 | 
			
		||||
  * adnsresfilter is like `cat' but converts addresses to names without
 | 
			
		||||
    delaying the output.  Pipe `netstat -n', `tcpdump -ln', etc. into it.
 | 
			
		||||
 | 
			
		||||
  Test and client program bug and portability fixes:
 | 
			
		||||
  * Dynamic library building works properly.
 | 
			
		||||
  * adnshost prints somewhat better messages about some wrong usages.
 | 
			
		||||
  * Include <stdlib.h> and <sys/types.h> in adnshost.h.
 | 
			
		||||
  * adnslogres: parsing and error checking improved (Tony Finch).
 | 
			
		||||
  * Regression tests can cope with zero-length reads.
 | 
			
		||||
  * Regression tests check for memory leaks.
 | 
			
		||||
  * adnstest copes with empty query type list.
 | 
			
		||||
  * adnstest uninitialised memory bug fixed.
 | 
			
		||||
 | 
			
		||||
  General improvements
 | 
			
		||||
  * Better control of adnshost output and error messages (new -F options).
 | 
			
		||||
  * New adns_if_logpid option (functionality suggested by Tony Finch).
 | 
			
		||||
  * New fanftest test program from Tony Finch (ignored by `make install').
 | 
			
		||||
  * Reads /etc/resolv-adns.conf if it exists.
 | 
			
		||||
  * Declare flags parameters as enums again, not ints.
 | 
			
		||||
 | 
			
		||||
 -- Ian Jackson <ian@davenant.greenend.org.uk>  Wed, 24 Nov 1999 17:13:03 +0000
 | 
			
		||||
 | 
			
		||||
adns (0.5) unstable; urgency=high
 | 
			
		||||
 | 
			
		||||
  New features:
 | 
			
		||||
  * adnslogres, ~100x faster replacement for Apache logresolve;
 | 
			
		||||
    Thanks to Tony Finch for the program and the performance figure.
 | 
			
		||||
  * Internal consistency checking with assert if right options set.
 | 
			
		||||
  * adns_wait_poll function like adns_wait but uses poll, not select.
 | 
			
		||||
  * adns_reverse_submit function for easy in-addr queries.
 | 
			
		||||
  * adns_errtypeabbrev funcion for getting eg "permfail" from _s_nodata.
 | 
			
		||||
  * adnshost utility for scripts and the like (rather alpha).
 | 
			
		||||
 | 
			
		||||
  Incompatible changes:
 | 
			
		||||
  * RRs with mailboxes never rejected due to strange chars if _raw.
 | 
			
		||||
  * Lack of a mailbox produces `.' not `<>'.
 | 
			
		||||
  * Better usage messages (and no default query domain) for adnstest.
 | 
			
		||||
  * Return EAGAIN from _check instead of EWOULDBLOCK.
 | 
			
		||||
  * adns_rr_info on _r_mx etc. shows status type abbrev and status number.
 | 
			
		||||
  
 | 
			
		||||
  Bugfixes:
 | 
			
		||||
  * Do not invoke __autosys indirectly from __procdgram (result: coredump
 | 
			
		||||
    usually in memmove, unless adns_if_noautosys was used).
 | 
			
		||||
  * Do not scramble innards when a query on the output queue is cancelled.
 | 
			
		||||
  * Do not close tcp socket twice.
 | 
			
		||||
  * Mailboxes containing spaces in their names are quoted.
 | 
			
		||||
  * Give ESRCH, not EAGAIN, if _check called with no queries outstanding.
 | 
			
		||||
  * adns_rr_hostaddr naddrs is -1 on temporary failure (as documented).
 | 
			
		||||
  * Reject TXT RRs with no strings.
 | 
			
		||||
  * Correct error messages for qname CNAME foo, foo CNAME bar.
 | 
			
		||||
  * adns_processany actually does something.
 | 
			
		||||
  * Fixed typos in adns.h.
 | 
			
		||||
 | 
			
		||||
  General improvements:
 | 
			
		||||
  * Promise not to change fds in adns_beforepoll (if now is specified).
 | 
			
		||||
  * Improved textual error string for _s_prohibitedcname.
 | 
			
		||||
  * New comment in adns_processany and return 0 (not r which is 0).
 | 
			
		||||
  * Documentation of resolv.conf directives and options, and of environment
 | 
			
		||||
    variables understood, in adns.h
 | 
			
		||||
  * Regression test scripts set EF_DISABLE_BANNER (for Electric Fence).
 | 
			
		||||
 | 
			
		||||
  Portability and build improvements:
 | 
			
		||||
  * Give install the '-c' flag (otherwise some delete the original !).
 | 
			
		||||
  * Do not remove top-level Makefile on `make clean'.
 | 
			
		||||
  * Don't complain so much about poll(2) tests if not available.
 | 
			
		||||
  * Do not give -u 0 -g 0 options to install.
 | 
			
		||||
  * Remove trailing , from some enums in adns.h.
 | 
			
		||||
  * Dynamically linked clients now made with -l, so as to avoid rpath.
 | 
			
		||||
  * Do not use $^ in make rules (should help with non-GNU make).
 | 
			
		||||
  * Declare flags parameters as ints not enums because C++ is crap.
 | 
			
		||||
 | 
			
		||||
 -- Ian Jackson <ian@davenant.greenend.org.uk>  Wed, 13 Oct 1999 02:24:35 +0100
 | 
			
		||||
 | 
			
		||||
adns (0.4) unstable; urgency=high
 | 
			
		||||
 | 
			
		||||
  General important bugfixes:
 | 
			
		||||
  * make _qf_owner work if _qf_search not specified, and test it (oops!)
 | 
			
		||||
  * ads->configerrno now initialised (in setup.c).
 | 
			
		||||
  * timercmp(,,<=) doesn't work - use !timercmp(,,>).
 | 
			
		||||
  * Changed memory semantics of internal queries to fix bugs.
 | 
			
		||||
  * Restarting a TCP-using query (eg due to CNAME) doesn't abort.
 | 
			
		||||
  
 | 
			
		||||
  Fixes for handling of broken kinds of reply:
 | 
			
		||||
  * Only accept a reply from the subset of servers we sent the query.
 | 
			
		||||
  * Ignore CNAME(s) in answer after RR(s) (and test).
 | 
			
		||||
 | 
			
		||||
  Other bugfixes and improvements:
 | 
			
		||||
  * adns_s_systemfail is in table of errors (for eg adns_strerror).
 | 
			
		||||
  * Do not ship config.cache, Makefile, etc.
 | 
			
		||||
  * Improvements to install instructions, TODO, etc.
 | 
			
		||||
  * Regression tests compile on systems without poll(2).
 | 
			
		||||
  * Do not install adnstest_s.
 | 
			
		||||
  * _submit returns ENOSYS, not adns_s_unknownquery; documented, tested.
 | 
			
		||||
  * <adns.h> includes <sys/types.h>, <sys/time.h>, <unistd.h>.
 | 
			
		||||
 | 
			
		||||
 -- Ian Jackson <ian@davenant.greenend.org.uk>  Thu, 5 Aug 1999 01:17:38 +0100
 | 
			
		||||
 | 
			
		||||
adns (0.3) unstable; urgency=low
 | 
			
		||||
 | 
			
		||||
  Incompatible changes:
 | 
			
		||||
  * Low adns_status values (below adns_s_max_tempfail) renumbered to make
 | 
			
		||||
    room for future locally-induced and locally-detected errors.
 | 
			
		||||
  * Event loop functions for use by select(2) renamed and tidied up.
 | 
			
		||||
  
 | 
			
		||||
  Features / improvements:
 | 
			
		||||
  * New adns_errabbrev() for getting status abbreviation strings.
 | 
			
		||||
  * regress/checkall prints summary list of failed tests, if any.
 | 
			
		||||
  * Event loop functions for poll(2), and some raw variants.
 | 
			
		||||
  * adnstest has ability to use poll(2), and user can set initflags.
 | 
			
		||||
  * checkall prints passed list as well as failed list, if any failed.
 | 
			
		||||
  * You can iterate over outstanding queries (but only once at a time).
 | 
			
		||||
  
 | 
			
		||||
  Bugfixes:
 | 
			
		||||
  * Non-RFC822 mailbox `domain' formatting now works, and clarified.
 | 
			
		||||
  * Rejection of bad characters in domains (without quoteok) works.
 | 
			
		||||
  * Clean up parents from adns->childw (otherwise would abort/segfault).
 | 
			
		||||
  * In adnstest, allocate enough space for, and terminate, query types.
 | 
			
		||||
  * In adnstest, don't print errno values as adns_status values.
 | 
			
		||||
 
 | 
			
		||||
  * Added TODO file.
 | 
			
		||||
  * Made adnstest.c test context pointers.
 | 
			
		||||
 | 
			
		||||
 -- Ian Jackson <ian@davenant.greenend.org.uk>  Thu, 15 Jul 1999 00:23:12 +0100
 | 
			
		||||
 | 
			
		||||
adns (0.2) experimental; urgency=low
 | 
			
		||||
 | 
			
		||||
  Portability fixes for compilation on various platforms:
 | 
			
		||||
  * Include <sys/socket.h> and <netinet/in.h> in files with <arpa/inet.h>.
 | 
			
		||||
  * Don't use GCC union assignment feature (.rrs=0 => .rrs.untyped=0).
 | 
			
		||||
  * Explictly cast things to [const] struct sockaddr* in syscall args.
 | 
			
		||||
  * Check whether we need -lsocket.
 | 
			
		||||
  * Include <sys/times.h> in a few more files.
 | 
			
		||||
  * Include <unistd.h> and <sys/time.h> for select.
 | 
			
		||||
  * Look for inet_aton and inet_ntoa (in -lnsl and -lsocket).
 | 
			
		||||
  * LDLIBS removed from dependency lists (some makes don't support this).
 | 
			
		||||
  * An `ambiguous else' warning from some compilers in types.c is removed.
 | 
			
		||||
 | 
			
		||||
  Other changes:
 | 
			
		||||
  * Added COPYING (copy of the GPL).
 | 
			
		||||
  * Regression test failure output improved.
 | 
			
		||||
  * Missing targets in regress/Makefile.in added.
 | 
			
		||||
  * Regression test doesn't rely on value of fcntl flags eg O_NONBLOCK.
 | 
			
		||||
 | 
			
		||||
 -- Ian Jackson <ian@davenant.greenend.org.uk>  Thu, 20 May 1999 00:27:32 +0100
 | 
			
		||||
 | 
			
		||||
adns (0.1) experimental; urgency=low
 | 
			
		||||
 | 
			
		||||
  * Initial public alpha release.
 | 
			
		||||
 | 
			
		||||
 -- Ian Jackson <ian@davenant.greenend.org.uk>  Sat, 17 April 1999 17:42:19
 | 
			
		||||
 | 
			
		||||
Local variables:
 | 
			
		||||
mode: debian-changelog
 | 
			
		||||
fill-column: 75
 | 
			
		||||
End:
 | 
			
		||||
							
								
								
									
										11
									
								
								adns-0.6/client/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								adns-0.6/client/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
Makefile
 | 
			
		||||
adnstest
 | 
			
		||||
adnstest_s
 | 
			
		||||
adnslogres
 | 
			
		||||
adnslogres_s
 | 
			
		||||
adnshost
 | 
			
		||||
adnshost_s
 | 
			
		||||
adnsresfilter
 | 
			
		||||
adnsresfilter_s
 | 
			
		||||
fanftest
 | 
			
		||||
fanftest_s
 | 
			
		||||
							
								
								
									
										74
									
								
								adns-0.6/client/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								adns-0.6/client/Makefile.in
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,74 @@
 | 
			
		||||
# client/Makefile - client program(s) Makefile
 | 
			
		||||
# 
 | 
			
		||||
#  This file is
 | 
			
		||||
#    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
#
 | 
			
		||||
#  It is part of adns, which is
 | 
			
		||||
#    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
#    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
#  
 | 
			
		||||
#  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
#  it under the terms of the GNU General Public License as published by
 | 
			
		||||
#  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
#  any later version.
 | 
			
		||||
#  
 | 
			
		||||
#  This program is distributed in the hope that it will be useful,
 | 
			
		||||
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
#  GNU General Public License for more details.
 | 
			
		||||
#  
 | 
			
		||||
#  You should have received a copy of the GNU General Public License
 | 
			
		||||
#  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
#  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 | 
			
		||||
srcdir=		@srcdir@
 | 
			
		||||
VPATH=		@srcdir@
 | 
			
		||||
 | 
			
		||||
PROGS_SYSDEP=		@PROGS_HAVE_TSEARCH@
 | 
			
		||||
 | 
			
		||||
PROGRAMS=	adnstest adnslogres adnshost $(PROGS_SYSDEP)
 | 
			
		||||
PROGRAMS_LOCAL=	fanftest
 | 
			
		||||
PROGRAMS_ALL=	$(PROGRAMS) $(PROGRAMS_LOCAL)
 | 
			
		||||
 | 
			
		||||
TARG_INSTALL=	$(PROGRAMS)
 | 
			
		||||
TARG_LOCAL=	$(addsuffix _s, $(PROGRAMS_ALL))
 | 
			
		||||
TARGETS=	$(TARG_LOCAL) $(TARG_INSTALL)
 | 
			
		||||
include		$(srcdir)/../settings.make
 | 
			
		||||
 | 
			
		||||
DIRCFLAGS=	-I$(srcdir)/../src
 | 
			
		||||
 | 
			
		||||
TARG_OBJS=	$(addsuffix .o, $(PROGRAMS_ALL))
 | 
			
		||||
ADH_OBJS=	adh-main.o adh-opts.o adh-query.o
 | 
			
		||||
ALL_OBJS=	$(ADH_OBJS) $(TARG_OBJS)
 | 
			
		||||
 | 
			
		||||
ADNSDIR=	$(srcdir)/../src/
 | 
			
		||||
 | 
			
		||||
STATIC_LIB=	$(ADNSDIR)/libadns.a
 | 
			
		||||
DYNAMIC_DEP=	$(srcdir)/../dynamic/$(SHLIBFILE)
 | 
			
		||||
DYNAMIC_LINK=	-L$(srcdir)/../dynamic -ladns
 | 
			
		||||
 | 
			
		||||
all:		$(TARGETS)
 | 
			
		||||
 | 
			
		||||
install:	$(TARG_INSTALL)
 | 
			
		||||
		set -xe; for f in $(TARG_INSTALL); \
 | 
			
		||||
			do $(INSTALL_PROGRAM) $$f $(bin_dir)/$$f; done
 | 
			
		||||
 | 
			
		||||
uninstall:
 | 
			
		||||
		for f in $(TARGETS); do rm -f $(bin_dir)/$$f; done
 | 
			
		||||
 | 
			
		||||
adnshost:	$(ADH_OBJS) $(DYNAMIC_DEP)
 | 
			
		||||
		$(CC) $(LDFLAGS) $(ADH_OBJS) $(DYNAMIC_LINK) -o $@ $(LDLIBS)
 | 
			
		||||
 | 
			
		||||
adnshost_s:	$(ADH_OBJS) $(STATIC_LIB)
 | 
			
		||||
		$(CC) $(LDFLAGS) $(ADH_OBJS) $(STATIC_LIB) -o $@ $(LDLIBS)
 | 
			
		||||
 | 
			
		||||
$(ADH_OBJS):		adnshost.h
 | 
			
		||||
$(ALL_OBJS):		$(ADNSDIR)/adns.h $(ADNSDIR)/config.h
 | 
			
		||||
adnsresfilter.o:	$(ADNSDIR)/tvarith.h
 | 
			
		||||
 | 
			
		||||
%:		%.o $(DYNAMIC_DEP)
 | 
			
		||||
		$(CC) $(LDFLAGS) $< $(DYNAMIC_LINK) -o $@ $(LDLIBS)
 | 
			
		||||
 | 
			
		||||
%_s:		%.o $(STATIC_LIB)
 | 
			
		||||
		$(CC) $(LDFLAGS) $< $(STATIC_LIB) -o $@ $(LDLIBS)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										243
									
								
								adns-0.6/client/adh-main.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										243
									
								
								adns-0.6/client/adh-main.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,243 @@
 | 
			
		||||
/*
 | 
			
		||||
 * adh-main.c
 | 
			
		||||
 * - useful general-purpose resolver client program
 | 
			
		||||
 *   main program and useful subroutines
 | 
			
		||||
 */
 | 
			
		||||
/*
 | 
			
		||||
 *  This file is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *
 | 
			
		||||
 *  It is part of adns, which is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
 *  any later version.
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *  
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
 *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "adnshost.h"
 | 
			
		||||
 | 
			
		||||
void sysfail(const char *what, int errnoval) {
 | 
			
		||||
  fprintf(stderr,"adnshost failed: %s: %s\n",what,strerror(errnoval));
 | 
			
		||||
  exit(10);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void usageerr(const char *fmt, ...) {
 | 
			
		||||
  va_list al;
 | 
			
		||||
  fputs("adnshost usage error: ",stderr);
 | 
			
		||||
  va_start(al,fmt);
 | 
			
		||||
  vfprintf(stderr,fmt,al);
 | 
			
		||||
  va_end(al);
 | 
			
		||||
  putc('\n',stderr);
 | 
			
		||||
  exit(11);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void outerr(void) {
 | 
			
		||||
  sysfail("write to stdout",errno);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void *xmalloc(size_t sz) {
 | 
			
		||||
  void *p;
 | 
			
		||||
 | 
			
		||||
  p= malloc(sz); if (!p) sysfail("malloc",sz);
 | 
			
		||||
  return p;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
char *xstrsave(const char *str) {
 | 
			
		||||
  char *p;
 | 
			
		||||
  
 | 
			
		||||
  p= xmalloc(strlen(str)+1);
 | 
			
		||||
  strcpy(p,str);
 | 
			
		||||
  return p;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void of_type(const struct optioninfo *oi, const char *arg) {
 | 
			
		||||
  static const struct typename {
 | 
			
		||||
    adns_rrtype type;
 | 
			
		||||
    const char *desc;
 | 
			
		||||
  } typenames[]= {
 | 
			
		||||
    /* enhanced versions */
 | 
			
		||||
    { adns_r_ns,     "ns"     },
 | 
			
		||||
    { adns_r_soa,    "soa"    },
 | 
			
		||||
    { adns_r_ptr,    "ptr"    },
 | 
			
		||||
    { adns_r_mx,     "mx"     },
 | 
			
		||||
    { adns_r_rp,     "rp"     },
 | 
			
		||||
    { adns_r_addr,   "addr"   },
 | 
			
		||||
    
 | 
			
		||||
    /* types with only one version */
 | 
			
		||||
    { adns_r_cname,  "cname"  },
 | 
			
		||||
    { adns_r_hinfo,  "hinfo"  },
 | 
			
		||||
    { adns_r_txt,    "txt"    },
 | 
			
		||||
    
 | 
			
		||||
    /* raw versions */
 | 
			
		||||
    { adns_r_a,        "a"    },
 | 
			
		||||
    { adns_r_ns_raw,   "ns-"  },
 | 
			
		||||
    { adns_r_soa_raw,  "soa-" },
 | 
			
		||||
    { adns_r_ptr_raw,  "ptr-" },
 | 
			
		||||
    { adns_r_mx_raw,   "mx-"  },
 | 
			
		||||
    { adns_r_rp_raw,   "rp-"  },
 | 
			
		||||
 | 
			
		||||
    { adns_r_none, 0 }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const struct typename *tnp;
 | 
			
		||||
 | 
			
		||||
  for (tnp=typenames;
 | 
			
		||||
       tnp->type && strcmp(arg,tnp->desc);
 | 
			
		||||
       tnp++);
 | 
			
		||||
  if (!tnp->type) usageerr("unknown RR type %s",arg);
 | 
			
		||||
  ov_type= tnp->type;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int rcode;
 | 
			
		||||
 | 
			
		||||
static void process_optarg(const char *arg,
 | 
			
		||||
			   const char *const **argv_p,
 | 
			
		||||
			   const char *value) {
 | 
			
		||||
  const struct optioninfo *oip;
 | 
			
		||||
  int invert;
 | 
			
		||||
 | 
			
		||||
  if (arg[0] == '-' || arg[0] == '+') {
 | 
			
		||||
    if (arg[0] == '-' && arg[1] == '-') {
 | 
			
		||||
      if (!strncmp(arg,"--no-",5)) {
 | 
			
		||||
	invert= 1;
 | 
			
		||||
	oip= opt_findl(arg+5);
 | 
			
		||||
      } else {
 | 
			
		||||
	invert= 0;
 | 
			
		||||
	oip= opt_findl(arg+2);
 | 
			
		||||
      }
 | 
			
		||||
      if (oip->type == ot_funcarg) {
 | 
			
		||||
	arg= argv_p ? *++(*argv_p) : value;
 | 
			
		||||
	if (!arg) usageerr("option --%s requires a value argument",oip->lopt);
 | 
			
		||||
      } else {
 | 
			
		||||
	if (value) usageerr("option --%s does not take a value",oip->lopt);
 | 
			
		||||
	arg= 0;
 | 
			
		||||
      }
 | 
			
		||||
      opt_do(oip,arg,invert);
 | 
			
		||||
    } else if (arg[0] == '-' && arg[1] == 0) {
 | 
			
		||||
      arg= argv_p ? *++(*argv_p) : value;
 | 
			
		||||
      if (!arg) usageerr("option `-' must be followed by a domain");
 | 
			
		||||
      query_do(arg);
 | 
			
		||||
    } else { /* arg[1] != '-', != '\0' */
 | 
			
		||||
      invert= (arg[0] == '+');
 | 
			
		||||
      ++arg;
 | 
			
		||||
      while (*arg) {
 | 
			
		||||
	oip= opt_finds(&arg);
 | 
			
		||||
	if (oip->type == ot_funcarg) {
 | 
			
		||||
	  if (!*arg) {
 | 
			
		||||
	    arg= argv_p ? *++(*argv_p) : value;
 | 
			
		||||
	    if (!arg) usageerr("option -%s requires a value argument",oip->sopt);
 | 
			
		||||
	  } else {
 | 
			
		||||
	    if (value) usageerr("two values for option -%s given !",oip->sopt);
 | 
			
		||||
	  }
 | 
			
		||||
	  opt_do(oip,arg,invert);
 | 
			
		||||
	  arg= "";
 | 
			
		||||
	} else {
 | 
			
		||||
	  if (value) usageerr("option -%s does not take a value",oip->sopt);
 | 
			
		||||
	  opt_do(oip,0,invert);
 | 
			
		||||
	}
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  } else { /* arg[0] != '-' */
 | 
			
		||||
    query_do(arg);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
    
 | 
			
		||||
static void read_stdin(void) {
 | 
			
		||||
  static int used, avail;
 | 
			
		||||
  static char *buf;
 | 
			
		||||
 | 
			
		||||
  int anydone, r;
 | 
			
		||||
  char *newline, *space;
 | 
			
		||||
 | 
			
		||||
  anydone= 0;
 | 
			
		||||
  while (!anydone || used) {
 | 
			
		||||
    while (!(newline= memchr(buf,'\n',used))) {
 | 
			
		||||
      if (used == avail) {
 | 
			
		||||
	avail += 20; avail <<= 1;
 | 
			
		||||
	buf= realloc(buf,avail);
 | 
			
		||||
	if (!buf) sysfail("realloc stdin buffer",errno);
 | 
			
		||||
      }
 | 
			
		||||
      do {
 | 
			
		||||
	r= read(0,buf+used,avail-used);
 | 
			
		||||
      } while (r < 0 && errno == EINTR);
 | 
			
		||||
      if (r == 0) {
 | 
			
		||||
	if (used) {
 | 
			
		||||
	  /* fake up final newline */
 | 
			
		||||
	  buf[used++]= '\n';
 | 
			
		||||
	  r= 1;
 | 
			
		||||
	} else {
 | 
			
		||||
	  ov_pipe= 0;
 | 
			
		||||
	  return;
 | 
			
		||||
	}
 | 
			
		||||
      }
 | 
			
		||||
      if (r < 0) sysfail("read stdin",errno);
 | 
			
		||||
      used += r;
 | 
			
		||||
    }
 | 
			
		||||
    *newline++= 0;
 | 
			
		||||
    space= strchr(buf,' ');
 | 
			
		||||
    if (space) *space++= 0;
 | 
			
		||||
    process_optarg(buf,0,space);
 | 
			
		||||
    used -= (newline-buf);
 | 
			
		||||
    memmove(buf,newline,used);
 | 
			
		||||
    anydone= 1;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, const char *const *argv) {
 | 
			
		||||
  struct timeval *tv, tvbuf;
 | 
			
		||||
  adns_query qu;
 | 
			
		||||
  void *qun_v;
 | 
			
		||||
  adns_answer *answer;
 | 
			
		||||
  int r, maxfd;
 | 
			
		||||
  fd_set readfds, writefds, exceptfds;
 | 
			
		||||
  const char *arg;
 | 
			
		||||
  
 | 
			
		||||
  while ((arg= *++argv)) process_optarg(arg,&argv,0);
 | 
			
		||||
 | 
			
		||||
  if (!ov_pipe && !ads) usageerr("no domains given, and -f/--pipe not used; try --help");
 | 
			
		||||
 | 
			
		||||
  ensure_adns_init();
 | 
			
		||||
 | 
			
		||||
  for (;;) {
 | 
			
		||||
    for (;;) {
 | 
			
		||||
      qu= ov_asynch ? 0 : outstanding.head ? outstanding.head->qu : 0;
 | 
			
		||||
      r= adns_check(ads,&qu,&answer,&qun_v);
 | 
			
		||||
      if (r == EAGAIN) break;
 | 
			
		||||
      if (r == ESRCH) { if (!ov_pipe) goto x_quit; else break; }
 | 
			
		||||
      assert(!r);
 | 
			
		||||
      query_done(qun_v,answer);
 | 
			
		||||
    }
 | 
			
		||||
    maxfd= 0;
 | 
			
		||||
    FD_ZERO(&readfds);
 | 
			
		||||
    FD_ZERO(&writefds);
 | 
			
		||||
    FD_ZERO(&exceptfds);
 | 
			
		||||
    if (ov_pipe) {
 | 
			
		||||
      maxfd= 1;
 | 
			
		||||
      FD_SET(0,&readfds);
 | 
			
		||||
    }
 | 
			
		||||
    tv= 0;
 | 
			
		||||
    adns_beforeselect(ads, &maxfd, &readfds,&writefds,&exceptfds, &tv,&tvbuf,0);
 | 
			
		||||
    r= select(maxfd, &readfds,&writefds,&exceptfds, tv);
 | 
			
		||||
    if (r == -1) {
 | 
			
		||||
      if (errno == EINTR) continue;
 | 
			
		||||
      sysfail("select",errno);
 | 
			
		||||
    }
 | 
			
		||||
    adns_afterselect(ads, maxfd, &readfds,&writefds,&exceptfds, 0);
 | 
			
		||||
    if (ov_pipe && FD_ISSET(0,&readfds)) read_stdin();
 | 
			
		||||
  }
 | 
			
		||||
x_quit:
 | 
			
		||||
  if (fclose(stdout)) outerr();
 | 
			
		||||
  exit(rcode);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										337
									
								
								adns-0.6/client/adh-opts.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										337
									
								
								adns-0.6/client/adh-opts.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,337 @@
 | 
			
		||||
/*
 | 
			
		||||
 * adh-opts.c
 | 
			
		||||
 * - useful general-purpose resolver client program
 | 
			
		||||
 *   option handling tables etc.
 | 
			
		||||
 */
 | 
			
		||||
/*
 | 
			
		||||
 *  This file is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *
 | 
			
		||||
 *  It is part of adns, which is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
 *  any later version.
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *  
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
 *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "adnshost.h"
 | 
			
		||||
 | 
			
		||||
int ov_env=1, ov_pipe=0, ov_asynch=0;
 | 
			
		||||
int ov_verbose= 0;
 | 
			
		||||
adns_rrtype ov_type= adns_r_none;
 | 
			
		||||
int ov_search=0, ov_qc_query=0, ov_qc_anshost=0, ov_qc_cname=1;
 | 
			
		||||
int ov_tcp=0, ov_cname=0, ov_format=fmt_default;
 | 
			
		||||
char *ov_id= 0;
 | 
			
		||||
struct perqueryflags_remember ov_pqfr = { 1,1,1, tm_none };
 | 
			
		||||
 | 
			
		||||
static const struct optioninfo global_options[]= {
 | 
			
		||||
  { ot_desconly, "global binary options:" },
 | 
			
		||||
  { ot_flag,             "Do not look at environment variables at all",
 | 
			
		||||
    "e", "env",            &ov_env, 0 },
 | 
			
		||||
  { ot_flag,             "Read queries on stdin instead of using args",
 | 
			
		||||
    "f", "pipe",           &ov_pipe, 1 },
 | 
			
		||||
  { ot_flag,             "Allow answers to be reordered",
 | 
			
		||||
    "a", "asynch",         &ov_asynch, 1 },
 | 
			
		||||
  
 | 
			
		||||
  { ot_desconly, "answer/error output format and destination (see below):" },
 | 
			
		||||
  { ot_value,            "Answers to stdout, errors as messages to stderr (default)",
 | 
			
		||||
    "Fs", "fmt-simple",    &ov_format, fmt_simple },
 | 
			
		||||
  { ot_value,            "Answers and errors both to stdout in parseable format",
 | 
			
		||||
    "Fi", "fmt-inline",    &ov_format, fmt_inline },
 | 
			
		||||
  { ot_value,            "Fully-parseable output format (default for --asynch)",
 | 
			
		||||
    "Fa", "fmt-asynch",    &ov_format, fmt_asynch },
 | 
			
		||||
  		         
 | 
			
		||||
  { ot_desconly, "global verbosity level:" },
 | 
			
		||||
  { ot_value,            "Do not print anything to stderr",
 | 
			
		||||
    "Vq", "quiet",         &ov_verbose, adns_if_noerrprint },
 | 
			
		||||
  { ot_value,            "Report unexpected kinds of problem only  (default)",
 | 
			
		||||
    "Vn", "no-quiet",      &ov_verbose, 0 },
 | 
			
		||||
  { ot_value,            "Debugging mode",
 | 
			
		||||
    "Vd", "debug",         &ov_verbose, adns_if_debug },
 | 
			
		||||
  		         
 | 
			
		||||
  { ot_desconly, "other global options:" },
 | 
			
		||||
  { ot_func,             "Print usage information",
 | 
			
		||||
    0, "help",             0,0, of_help },
 | 
			
		||||
 | 
			
		||||
  { ot_end }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const struct optioninfo perquery_options[]= {
 | 
			
		||||
  { ot_desconly, "per-query options:" },
 | 
			
		||||
  { ot_funcarg,          "Query type (see below)",
 | 
			
		||||
    "t", "type",           0,0, &of_type, "type" },
 | 
			
		||||
  { ot_funcarg,          "Do reverse query (address -> name lookup)",
 | 
			
		||||
    "i", "ptr",            0,0, &of_ptr, "addr" },
 | 
			
		||||
 | 
			
		||||
  { ot_desconly, "per-query binary options:" },
 | 
			
		||||
  { ot_flag,             "Use the search list",
 | 
			
		||||
    "s", "search",         &ov_search, 1 },
 | 
			
		||||
  { ot_flag,             "Let query domains contain quote-requiring chars",
 | 
			
		||||
    "Qq", "qc-query",      &ov_qc_query, 1 },
 | 
			
		||||
  { ot_flag,             "Let hostnames in answers contain ...",
 | 
			
		||||
    "Qa", "qc-anshost",    &ov_qc_anshost, 1 },
 | 
			
		||||
  { ot_flag,             "Prevent CNAME target domains from containing ...",
 | 
			
		||||
    "Qc", "qc-cname",      &ov_qc_cname, 0 },
 | 
			
		||||
  { ot_flag,             "Force use of a virtual circuit",
 | 
			
		||||
    "u", "tcp",            &ov_tcp, 1 },
 | 
			
		||||
  { ot_flag,             "Do not display owner name in output",
 | 
			
		||||
    "Do", "show-owner",   &ov_pqfr.show_owner, 0 },
 | 
			
		||||
  { ot_flag,             "Do not display RR type in output",
 | 
			
		||||
    "Dt", "show-type",    &ov_pqfr.show_type, 0 },
 | 
			
		||||
  { ot_flag,             "Do not display CNAME target in output",
 | 
			
		||||
    "Dc", "show-cname",    &ov_pqfr.show_cname, 0 },
 | 
			
		||||
  
 | 
			
		||||
  { ot_desconly, "per-query TTL mode (NB TTL is minimum across all info in reply):" },
 | 
			
		||||
  { ot_value,            "Show the TTL as a TTL",
 | 
			
		||||
    "Tt", "ttl-ttl",       &ov_pqfr.ttl, tm_rel },
 | 
			
		||||
  { ot_value,            "Show the TTL as a time_t when the data might expire",
 | 
			
		||||
    "Ta", "ttl-abs",       &ov_pqfr.ttl, tm_abs },
 | 
			
		||||
  { ot_value,            "Do not show the TTL (default)",
 | 
			
		||||
    "Tn", "no-ttl",        &ov_pqfr.ttl, tm_none },
 | 
			
		||||
  
 | 
			
		||||
  { ot_desconly, "per-query CNAME handling mode:" },
 | 
			
		||||
  { ot_value,            "Call it an error if a CNAME is found",
 | 
			
		||||
    "Cf", "cname-reject",  &ov_cname, adns_qf_cname_forbid },
 | 
			
		||||
  { ot_value,            "Allow references to CNAMEs in other RRs",
 | 
			
		||||
    "Cl", "cname-loose",   &ov_cname, adns_qf_cname_loose },
 | 
			
		||||
  { ot_value,            "CNAME ok for query domain, but not in RRs (default)",
 | 
			
		||||
    "Cs", "cname-ok",      &ov_cname, 0 },
 | 
			
		||||
  
 | 
			
		||||
  { ot_desconly, "asynchronous/pipe mode options:" },
 | 
			
		||||
  { ot_funcarg,          "Set <id>, default is decimal sequence starting 0",
 | 
			
		||||
    0, "asynch-id",        0,0, &of_asynch_id, "id" },
 | 
			
		||||
  { ot_funcarg,          "Cancel the query with id <id> (no error if not found)",
 | 
			
		||||
    0, "cancel-id",        0,0, &of_cancel_id, "id" },
 | 
			
		||||
 | 
			
		||||
  { ot_end }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static void printusage(void) {
 | 
			
		||||
  static const struct optioninfo *const all_optiontables[]= {
 | 
			
		||||
    global_options, perquery_options, 0
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const struct optioninfo *const *oiap, *oip=0;
 | 
			
		||||
  int maxsopt, maxlopt, l;
 | 
			
		||||
 | 
			
		||||
  maxsopt= maxlopt= 0;
 | 
			
		||||
  
 | 
			
		||||
  for (oiap=all_optiontables; *oiap; oiap++) {
 | 
			
		||||
    for (oip=*oiap; oip->type != ot_end; oip++) {
 | 
			
		||||
      if (oip->type == ot_funcarg) continue;
 | 
			
		||||
      if (oip->sopt) { l= strlen(oip->sopt); if (l>maxsopt) maxsopt= l; }
 | 
			
		||||
      if (oip->lopt) {
 | 
			
		||||
	l= strlen(oip->lopt);
 | 
			
		||||
	if (oip->type == ot_flag && !oip->value) l+= 3;
 | 
			
		||||
	if (l>maxlopt) maxlopt= l;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
	
 | 
			
		||||
  fputs("usage: adnshost [global-opts] [query-opts] query-domain\n"
 | 
			
		||||
	"                             [[query-opts] query-domain ...]\n"
 | 
			
		||||
	"       adnshost [global-opts] [query-opts] -f|--pipe\n",
 | 
			
		||||
	stdout);
 | 
			
		||||
 | 
			
		||||
  for (oiap=all_optiontables; *oiap; oiap++) {
 | 
			
		||||
    putchar('\n');
 | 
			
		||||
    for (oip=*oiap; oip->type != ot_end; oip++) {
 | 
			
		||||
      switch (oip->type) {
 | 
			
		||||
      case ot_flag:
 | 
			
		||||
	if (!oip->value) {
 | 
			
		||||
	  if (oip->sopt) {
 | 
			
		||||
	    printf(" +%-*s --no-%-*s %s\n",
 | 
			
		||||
		   maxsopt, oip->sopt,
 | 
			
		||||
		   maxlopt-2, oip->lopt,
 | 
			
		||||
		   oip->desc);
 | 
			
		||||
	  } else {
 | 
			
		||||
	    printf(" --no-%-*s %s\n",
 | 
			
		||||
		   maxlopt+maxsopt+1, oip->lopt,
 | 
			
		||||
		   oip->desc);
 | 
			
		||||
	  }
 | 
			
		||||
	  break;
 | 
			
		||||
	}
 | 
			
		||||
      case ot_value: case ot_func: /* fall through */
 | 
			
		||||
	if (oip->sopt) {
 | 
			
		||||
	  printf(" -%-*s --%-*s %s\n",
 | 
			
		||||
		 maxsopt, oip->sopt,
 | 
			
		||||
		 maxlopt+1, oip->lopt,
 | 
			
		||||
		 oip->desc);
 | 
			
		||||
	} else {
 | 
			
		||||
	  printf(" --%-*s %s\n",
 | 
			
		||||
		 maxlopt+maxsopt+3, oip->lopt,
 | 
			
		||||
		 oip->desc);
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
      case ot_funcarg:
 | 
			
		||||
	if (oip->sopt) {
 | 
			
		||||
	  l= (maxlopt + maxsopt - 9 -
 | 
			
		||||
	      (strlen(oip->sopt) + strlen(oip->lopt) + 2*strlen(oip->argdesc)));
 | 
			
		||||
	  printf(" -%s<%s> / --%s <%s>%*s%s\n",
 | 
			
		||||
		 oip->sopt, oip->argdesc, oip->lopt, oip->argdesc,
 | 
			
		||||
		 l>2 ? l : 2, "",
 | 
			
		||||
		 oip->desc);
 | 
			
		||||
	} else {
 | 
			
		||||
	  l= (maxlopt + maxsopt + 1 -
 | 
			
		||||
	      (strlen(oip->lopt) + strlen(oip->argdesc)));
 | 
			
		||||
	  printf(" --%s <%s>%*s%s\n",
 | 
			
		||||
		 oip->lopt, oip->argdesc,
 | 
			
		||||
		 l>2 ? l : 2, "",
 | 
			
		||||
		 oip->desc);
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
      case ot_desconly:
 | 
			
		||||
	printf("%s\n", oip->desc);
 | 
			
		||||
	break;
 | 
			
		||||
      default:
 | 
			
		||||
	abort();
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  printf("\nEscaping domains which might start with `-':\n"
 | 
			
		||||
	 " - %-*s Next argument is a domain, but more options may follow\n",
 | 
			
		||||
	 maxlopt+maxsopt+3, "<domain>");
 | 
			
		||||
  
 | 
			
		||||
  fputs("\n"
 | 
			
		||||
	"Query domains should always be quoted according to master file format.\n"
 | 
			
		||||
	"\n"
 | 
			
		||||
	"For binary options, --FOO and --no-FOO are opposites, as are\n"
 | 
			
		||||
	"-X and +X.  In each case the default is the one not listed.\n"
 | 
			
		||||
	"Per query options stay set a particular way until they are reset,\n"
 | 
			
		||||
	"whether they appear on the command line or on stdin.\n"
 | 
			
		||||
	"All global options must preceed the first query domain.\n"
 | 
			
		||||
	"\n"
 | 
			
		||||
	"With -f, the input should be lines with either an option, possibly\n"
 | 
			
		||||
	"with a value argument (separated from the option by a space if it's a long\n"
 | 
			
		||||
	"option), or a domain (possibly preceded by a hyphen and a space to\n"
 | 
			
		||||
	"distinguish it from an option).\n"
 | 
			
		||||
	"\n"
 | 
			
		||||
	"Output format is master file format without class or TTL by default:\n"
 | 
			
		||||
	"   [<owner>] [<ttl>] [<type>] <data>\n"
 | 
			
		||||
	"or if the <owner> domain refers to a CNAME and --show-cname is on\n"
 | 
			
		||||
	"   [<owner>] [<ttl>] CNAME <cname>\n"
 | 
			
		||||
	"   [<cname>] [<ttl>] <type> <data>\n"
 | 
			
		||||
	"When a query fails you get an error message to stderr (with --fmt-simple).\n"
 | 
			
		||||
	"Specify --fmt-inline for lines like this (broken here for readability):\n"
 | 
			
		||||
	"   ; failed <statustype> <statusnum> <statusabbrev> \\\n"
 | 
			
		||||
	"       [<owner>] [<ttl>] [<cname>] \"<status string>\"\n"
 | 
			
		||||
	"If you use --fmt-asynch, which is the default for --asynch,\n"
 | 
			
		||||
	"each answer (success or failure) is preceded by a line\n"
 | 
			
		||||
	"   <id> <nrrs> <statustype> <statusnum> <statusabbrev> \\\n"
 | 
			
		||||
	"       [<owner>] [<ttl>] [<cname>] \"<status string>\"\n"
 | 
			
		||||
	"where <nrrs> is the number of RRs that follow and <cname> will be `$' or\n"
 | 
			
		||||
	"the CNAME target; the CNAME indirection and error formats above are not used.\n"
 | 
			
		||||
	"\n"
 | 
			
		||||
	"Exit status:\n"
 | 
			
		||||
	" 0    all went well\n"
 | 
			
		||||
	" 1-6  at least one query failed with statustype:\n"
 | 
			
		||||
	"   1    localfail   )\n"
 | 
			
		||||
	"   2    remotefail  ) temporary errors\n"
 | 
			
		||||
	"   3    tempfail  __)_________________\n"
 | 
			
		||||
	"   4    misconfig   )\n"
 | 
			
		||||
	"   5    misquery    ) permanent errors\n"
 | 
			
		||||
	"   6    permfail    )\n"
 | 
			
		||||
	" 10   system trouble\n"
 | 
			
		||||
	" 11   usage problems\n"
 | 
			
		||||
	"\n"
 | 
			
		||||
	"Query types (see adns.h; default is addr):\n"
 | 
			
		||||
	"  ns  soa  ptr  mx  rp  addr       - enhanced versions\n"
 | 
			
		||||
	"  cname  hinfo  txt                - types with only one version\n"
 | 
			
		||||
	"  a  ns-  soa-  ptr-  mx-  rp-     - _raw versions\n"
 | 
			
		||||
	"Default is addr, or ptr for -i/--ptr queries\n",
 | 
			
		||||
	stdout);
 | 
			
		||||
  if (ferror(stdout)) sysfail("write usage message",errno);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void of_help(const struct optioninfo *oi, const char *arg) {
 | 
			
		||||
  printusage();
 | 
			
		||||
  if (fclose(stdout)) sysfail("finish writing output",errno);
 | 
			
		||||
  exit(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
typedef int comparer_type(const char **optp, const struct optioninfo *entry);
 | 
			
		||||
 | 
			
		||||
static int oc_long(const char **optp, const struct optioninfo *entry) {
 | 
			
		||||
  return entry->lopt && !strcmp(*optp,entry->lopt);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int oc_short(const char **optp, const struct optioninfo *entry) {
 | 
			
		||||
  const char *sopt;
 | 
			
		||||
  int l;
 | 
			
		||||
 | 
			
		||||
  sopt= entry->sopt;
 | 
			
		||||
  if (!sopt) return 0;
 | 
			
		||||
  l= strlen(sopt);
 | 
			
		||||
  if (memcmp(*optp,sopt,l)) return 0;
 | 
			
		||||
  (*optp) += l;
 | 
			
		||||
  return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const struct optioninfo *find1(const char **optp,
 | 
			
		||||
				      const struct optioninfo *table,
 | 
			
		||||
				      comparer_type *comparer) {
 | 
			
		||||
  for (;;) {
 | 
			
		||||
    if (table->type == ot_end) return 0;
 | 
			
		||||
    if (comparer(optp,table)) return table;
 | 
			
		||||
    table++;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const struct optioninfo *find(const char **optp,
 | 
			
		||||
				     const char *prefix,
 | 
			
		||||
				     comparer_type *comparer) {
 | 
			
		||||
  const struct optioninfo *oip;
 | 
			
		||||
  const char *opt;
 | 
			
		||||
 | 
			
		||||
  opt= *optp;
 | 
			
		||||
  oip= find1(optp,perquery_options,comparer);
 | 
			
		||||
  if (oip) return oip;
 | 
			
		||||
  oip= find1(optp,global_options,comparer);
 | 
			
		||||
  if (!oip) usageerr("unknown option %s%s",prefix,opt);
 | 
			
		||||
  if (ads) usageerr("global option %s%s specified after query domain(s)",prefix,opt);
 | 
			
		||||
  return oip;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const struct optioninfo *opt_findl(const char *opt) { return find(&opt,"--",oc_long); }
 | 
			
		||||
const struct optioninfo *opt_finds(const char **optp) { return find(optp,"-",oc_short); }
 | 
			
		||||
 | 
			
		||||
static void noninvert(const struct optioninfo *oip) NONRETURNING;
 | 
			
		||||
static void noninvert(const struct optioninfo *oip) {
 | 
			
		||||
  usageerr("option %s%s%s%s%s may not be inverted",
 | 
			
		||||
	   oip->sopt ? "-" : "", oip->sopt ? oip->sopt : "",
 | 
			
		||||
	   oip->lopt && oip->sopt ? " / " : "",
 | 
			
		||||
	   oip->lopt ? "--" : "", oip->lopt ? oip->lopt : "");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void opt_do(const struct optioninfo *oip, const char *arg, int invert) {
 | 
			
		||||
  switch (oip->type) {
 | 
			
		||||
  case ot_flag:
 | 
			
		||||
    assert(!arg);
 | 
			
		||||
    *oip->storep= !invert;
 | 
			
		||||
    return;
 | 
			
		||||
  case ot_value:
 | 
			
		||||
    assert(!arg);
 | 
			
		||||
    if (invert) noninvert(oip);
 | 
			
		||||
    *oip->storep= oip->value;
 | 
			
		||||
    return;
 | 
			
		||||
  case ot_func: case ot_funcarg:
 | 
			
		||||
    if (invert) noninvert(oip);
 | 
			
		||||
    oip->func(oip,arg);
 | 
			
		||||
    return;
 | 
			
		||||
  default:
 | 
			
		||||
    abort();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										274
									
								
								adns-0.6/client/adh-query.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										274
									
								
								adns-0.6/client/adh-query.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,274 @@
 | 
			
		||||
/*
 | 
			
		||||
 * adh-query.c
 | 
			
		||||
 * - useful general-purpose resolver client program
 | 
			
		||||
 *   make queries and print answers
 | 
			
		||||
 */
 | 
			
		||||
/*
 | 
			
		||||
 *  This file is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *
 | 
			
		||||
 *  It is part of adns, which is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
 *  any later version.
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *  
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
 *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "adnshost.h"
 | 
			
		||||
 | 
			
		||||
adns_state ads;
 | 
			
		||||
struct outstanding_list outstanding;
 | 
			
		||||
 | 
			
		||||
static unsigned long idcounter;
 | 
			
		||||
 | 
			
		||||
void ensure_adns_init(void) {
 | 
			
		||||
  int r;
 | 
			
		||||
  
 | 
			
		||||
  if (ads) return;
 | 
			
		||||
 | 
			
		||||
  if (signal(SIGPIPE,SIG_IGN) == SIG_ERR) sysfail("ignore SIGPIPE",errno);
 | 
			
		||||
  r= adns_init(&ads,
 | 
			
		||||
	       adns_if_noautosys|adns_if_nosigpipe |
 | 
			
		||||
	       (ov_env ? 0 : adns_if_noenv) |
 | 
			
		||||
	       ov_verbose,
 | 
			
		||||
	       0);
 | 
			
		||||
  if (r) sysfail("adns_init",r);
 | 
			
		||||
 | 
			
		||||
  if (ov_format == fmt_default)
 | 
			
		||||
    ov_format= ov_asynch ? fmt_asynch : fmt_simple;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void prep_query(struct query_node **qun_r, int *quflags_r) {
 | 
			
		||||
  struct query_node *qun;
 | 
			
		||||
  char idbuf[20];
 | 
			
		||||
  
 | 
			
		||||
  if (ov_pipe && !ads) usageerr("-f/--pipe not consistent with domains on command line");
 | 
			
		||||
  ensure_adns_init();
 | 
			
		||||
  
 | 
			
		||||
  qun= malloc(sizeof(*qun));
 | 
			
		||||
  qun->pqfr= ov_pqfr;
 | 
			
		||||
  if (ov_id) {
 | 
			
		||||
    qun->id= xstrsave(ov_id);
 | 
			
		||||
  } else {
 | 
			
		||||
    sprintf(idbuf,"%lu",idcounter++);
 | 
			
		||||
    idcounter &= 0x0fffffffflu;
 | 
			
		||||
    qun->id= xstrsave(idbuf);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  *quflags_r=
 | 
			
		||||
    (ov_search ? adns_qf_search : 0) |
 | 
			
		||||
    (ov_tcp ? adns_qf_usevc : 0) |
 | 
			
		||||
    ((ov_pqfr.show_owner || ov_format == fmt_simple) ? adns_qf_owner : 0) |
 | 
			
		||||
    (ov_qc_query ? adns_qf_quoteok_query : 0) |
 | 
			
		||||
    (ov_qc_anshost ? adns_qf_quoteok_anshost : 0) |
 | 
			
		||||
    (ov_qc_cname ? 0 : adns_qf_quoteok_cname) |
 | 
			
		||||
    ov_cname,
 | 
			
		||||
    
 | 
			
		||||
  *qun_r= qun;
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
void of_ptr(const struct optioninfo *oi, const char *arg) {
 | 
			
		||||
  struct query_node *qun;
 | 
			
		||||
  int quflags, r;
 | 
			
		||||
  struct sockaddr_in sa;
 | 
			
		||||
 | 
			
		||||
  memset(&sa,0,sizeof(sa));
 | 
			
		||||
  sa.sin_family= AF_INET;
 | 
			
		||||
  if (!inet_aton(arg,&sa.sin_addr)) usageerr("invalid IP address %s",arg);
 | 
			
		||||
 | 
			
		||||
  prep_query(&qun,&quflags);
 | 
			
		||||
  r= adns_submit_reverse(ads,
 | 
			
		||||
			 (struct sockaddr*)&sa,
 | 
			
		||||
			 ov_type == adns_r_none ? adns_r_ptr : ov_type,
 | 
			
		||||
			 quflags,
 | 
			
		||||
			 qun,
 | 
			
		||||
			 &qun->qu);
 | 
			
		||||
  if (r) sysfail("adns_submit_reverse",r);
 | 
			
		||||
 | 
			
		||||
  LIST_LINK_TAIL(outstanding,qun);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void query_do(const char *domain) {
 | 
			
		||||
  struct query_node *qun;
 | 
			
		||||
  int quflags, r;
 | 
			
		||||
 | 
			
		||||
  prep_query(&qun,&quflags);
 | 
			
		||||
  r= adns_submit(ads, domain,
 | 
			
		||||
		 ov_type == adns_r_none ? adns_r_addr : ov_type,
 | 
			
		||||
		 quflags,
 | 
			
		||||
		 qun,
 | 
			
		||||
		 &qun->qu);
 | 
			
		||||
  if (r) sysfail("adns_submit",r);
 | 
			
		||||
 | 
			
		||||
  LIST_LINK_TAIL(outstanding,qun);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void dequeue_query(struct query_node *qun) {
 | 
			
		||||
  LIST_UNLINK(outstanding,qun);
 | 
			
		||||
  free(qun->id);
 | 
			
		||||
  free(qun);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void print_withspace(const char *str) {
 | 
			
		||||
  if (printf("%s ", str) == EOF) outerr();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void print_ttl(struct query_node *qun, adns_answer *answer) {
 | 
			
		||||
  unsigned long ttl;
 | 
			
		||||
  time_t now;
 | 
			
		||||
  
 | 
			
		||||
  switch (qun->pqfr.ttl) {
 | 
			
		||||
  case tm_none:
 | 
			
		||||
    return;
 | 
			
		||||
  case tm_rel:
 | 
			
		||||
    if (time(&now) == (time_t)-1) sysfail("get current time",errno);
 | 
			
		||||
    ttl= answer->expires < now ? 0 : answer->expires - now;
 | 
			
		||||
    break;
 | 
			
		||||
  case tm_abs:
 | 
			
		||||
    ttl= answer->expires;
 | 
			
		||||
    break;
 | 
			
		||||
  default:
 | 
			
		||||
    abort();
 | 
			
		||||
  }
 | 
			
		||||
  if (printf("%lu ",ttl) == EOF) outerr();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void print_owner_ttl(struct query_node *qun, adns_answer *answer) {
 | 
			
		||||
  if (qun->pqfr.show_owner) print_withspace(answer->owner);
 | 
			
		||||
  print_ttl(qun,answer);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void check_status(adns_status st) {
 | 
			
		||||
  static const adns_status statuspoints[]= {
 | 
			
		||||
    adns_s_ok,
 | 
			
		||||
    adns_s_max_localfail, adns_s_max_remotefail, adns_s_max_tempfail,
 | 
			
		||||
    adns_s_max_misconfig, adns_s_max_misquery
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const adns_status *spp;
 | 
			
		||||
  int minrcode;
 | 
			
		||||
 | 
			
		||||
  for (minrcode=0, spp=statuspoints;
 | 
			
		||||
       spp < statuspoints + (sizeof(statuspoints)/sizeof(statuspoints[0]));
 | 
			
		||||
       spp++)
 | 
			
		||||
    if (st > *spp) minrcode++;
 | 
			
		||||
  if (rcode < minrcode) rcode= minrcode;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void print_status(adns_status st, struct query_node *qun, adns_answer *answer) {
 | 
			
		||||
  const char *statustypeabbrev, *statusabbrev, *statusstring;
 | 
			
		||||
 | 
			
		||||
  statustypeabbrev= adns_errtypeabbrev(st);
 | 
			
		||||
  statusabbrev= adns_errabbrev(st);
 | 
			
		||||
  statusstring= adns_strerror(st);
 | 
			
		||||
  assert(!strchr(statusstring,'"'));
 | 
			
		||||
 | 
			
		||||
  if (printf("%s %d %s ", statustypeabbrev, st, statusabbrev)
 | 
			
		||||
      == EOF) outerr();
 | 
			
		||||
  print_owner_ttl(qun,answer);
 | 
			
		||||
  if (qun->pqfr.show_cname)
 | 
			
		||||
    print_withspace(answer->cname ? answer->cname : "$");
 | 
			
		||||
  if (printf("\"%s\"\n", statusstring) == EOF) outerr();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void print_dnsfail(adns_status st, struct query_node *qun, adns_answer *answer) {
 | 
			
		||||
  int r;
 | 
			
		||||
  const char *typename, *statusstring;
 | 
			
		||||
  adns_status ist;
 | 
			
		||||
  
 | 
			
		||||
  if (ov_format == fmt_inline) {
 | 
			
		||||
    if (fputs("; failed ",stdout) == EOF) outerr();
 | 
			
		||||
    print_status(st,qun,answer);
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  assert(ov_format == fmt_simple);
 | 
			
		||||
  if (st == adns_s_nxdomain) {
 | 
			
		||||
    r= fprintf(stderr,"%s does not exist\n", answer->owner);
 | 
			
		||||
  } else {
 | 
			
		||||
    ist= adns_rr_info(answer->type, &typename, 0,0,0,0);
 | 
			
		||||
    if (st == adns_s_nodata) {
 | 
			
		||||
      r= fprintf(stderr,"%s has no %s record\n", answer->owner, typename);
 | 
			
		||||
    } else {
 | 
			
		||||
      statusstring= adns_strerror(st);
 | 
			
		||||
      r= fprintf(stderr,"Error during DNS %s lookup for %s: %s\n",
 | 
			
		||||
		 typename, answer->owner, statusstring);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (r == EOF) sysfail("write error message to stderr",errno);
 | 
			
		||||
}
 | 
			
		||||
    
 | 
			
		||||
void query_done(struct query_node *qun, adns_answer *answer) {
 | 
			
		||||
  adns_status st, ist;
 | 
			
		||||
  int rrn, nrrs;
 | 
			
		||||
  const char *rrp, *realowner, *typename;
 | 
			
		||||
  char *datastr;
 | 
			
		||||
 | 
			
		||||
  st= answer->status;
 | 
			
		||||
  nrrs= answer->nrrs;
 | 
			
		||||
  if (ov_format == fmt_asynch) {
 | 
			
		||||
    check_status(st);
 | 
			
		||||
    if (printf("%s %d ", qun->id, nrrs) == EOF) outerr();
 | 
			
		||||
    print_status(st,qun,answer);
 | 
			
		||||
  } else {
 | 
			
		||||
    if (qun->pqfr.show_cname && answer->cname) {
 | 
			
		||||
      print_owner_ttl(qun,answer);
 | 
			
		||||
      if (qun->pqfr.show_type) print_withspace("CNAME");
 | 
			
		||||
      if (printf("%s\n", answer->cname) == EOF) outerr();
 | 
			
		||||
    }
 | 
			
		||||
    if (st) {
 | 
			
		||||
      check_status(st);
 | 
			
		||||
      print_dnsfail(st,qun,answer);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (qun->pqfr.show_owner) {
 | 
			
		||||
    realowner= answer->cname ? answer->cname : answer->owner;
 | 
			
		||||
    assert(realowner);
 | 
			
		||||
  } else {
 | 
			
		||||
    realowner= 0;
 | 
			
		||||
  }
 | 
			
		||||
  if (nrrs) {
 | 
			
		||||
    for (rrn=0, rrp = answer->rrs.untyped;
 | 
			
		||||
	 rrn < nrrs;
 | 
			
		||||
	 rrn++, rrp += answer->rrsz) {
 | 
			
		||||
      if (realowner) print_withspace(realowner);
 | 
			
		||||
      print_ttl(qun,answer);
 | 
			
		||||
      ist= adns_rr_info(answer->type, &typename, 0, 0, rrp, &datastr);
 | 
			
		||||
      if (ist == adns_s_nomemory) sysfail("adns_rr_info failed",ENOMEM);
 | 
			
		||||
      assert(!ist);
 | 
			
		||||
      if (qun->pqfr.show_type) print_withspace(typename);
 | 
			
		||||
      if (printf("%s\n",datastr) == EOF) outerr();
 | 
			
		||||
      free(datastr);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (fflush(stdout)) outerr();
 | 
			
		||||
  free(answer);
 | 
			
		||||
  dequeue_query(qun);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void of_asynch_id(const struct optioninfo *oi, const char *arg) {
 | 
			
		||||
  free(ov_id);
 | 
			
		||||
  ov_id= xstrsave(arg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void of_cancel_id(const struct optioninfo *oi, const char *arg) {
 | 
			
		||||
  struct query_node *qun;
 | 
			
		||||
 | 
			
		||||
  for (qun= outstanding.head;
 | 
			
		||||
       qun && strcmp(qun->id,arg);
 | 
			
		||||
       qun= qun->next);
 | 
			
		||||
  if (!qun) return;
 | 
			
		||||
  adns_cancel(qun->qu);
 | 
			
		||||
  dequeue_query(qun);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										118
									
								
								adns-0.6/client/adnshost.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								adns-0.6/client/adnshost.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,118 @@
 | 
			
		||||
/*
 | 
			
		||||
 * adnshost.h
 | 
			
		||||
 * - useful general-purpose resolver client program, header file
 | 
			
		||||
 */
 | 
			
		||||
/*
 | 
			
		||||
 *  This file is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *
 | 
			
		||||
 *  It is part of adns, which is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
 *  any later version.
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *  
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
 *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef ADNSHOST_H_INCLUDED
 | 
			
		||||
#define ADNSHOST_H_INCLUDED
 | 
			
		||||
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#include <signal.h>
 | 
			
		||||
#include <stdarg.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
#include <netinet/in.h>
 | 
			
		||||
#include <arpa/inet.h>
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#include "adns.h"
 | 
			
		||||
#include "dlist.h"
 | 
			
		||||
 | 
			
		||||
/* declarations related to option processing */
 | 
			
		||||
 | 
			
		||||
struct optioninfo;
 | 
			
		||||
typedef void optfunc(const struct optioninfo *oi, const char *arg);
 | 
			
		||||
 | 
			
		||||
struct optioninfo {
 | 
			
		||||
  enum oi_type {
 | 
			
		||||
    ot_end, ot_desconly,
 | 
			
		||||
    ot_flag, ot_value, ot_func, ot_funcarg
 | 
			
		||||
  } type;
 | 
			
		||||
  const char *desc;
 | 
			
		||||
  const char *sopt, *lopt;
 | 
			
		||||
  int *storep, value;
 | 
			
		||||
  optfunc *func;
 | 
			
		||||
  const char *argdesc;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum ttlmode { tm_none, tm_rel, tm_abs };
 | 
			
		||||
enum outputformat { fmt_default, fmt_simple, fmt_inline, fmt_asynch };
 | 
			
		||||
 | 
			
		||||
struct perqueryflags_remember {
 | 
			
		||||
  int show_owner, show_type, show_cname;
 | 
			
		||||
  int ttl;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern int ov_env, ov_pipe, ov_asynch;
 | 
			
		||||
extern int ov_verbose;
 | 
			
		||||
extern adns_rrtype ov_type;
 | 
			
		||||
extern int ov_search, ov_qc_query, ov_qc_anshost, ov_qc_cname;
 | 
			
		||||
extern int ov_tcp, ov_cname, ov_format;
 | 
			
		||||
extern char *ov_id;
 | 
			
		||||
extern struct perqueryflags_remember ov_pqfr;
 | 
			
		||||
 | 
			
		||||
extern optfunc of_help, of_type, of_ptr, of_asynch_id, of_cancel_id;
 | 
			
		||||
 | 
			
		||||
const struct optioninfo *opt_findl(const char *opt);
 | 
			
		||||
const struct optioninfo *opt_finds(const char **optp);
 | 
			
		||||
void opt_do(const struct optioninfo *oip, const char *arg, int invert);
 | 
			
		||||
 | 
			
		||||
/* declarations related to query processing */
 | 
			
		||||
 | 
			
		||||
struct query_node {
 | 
			
		||||
  struct query_node *next, *back;
 | 
			
		||||
  struct perqueryflags_remember pqfr;
 | 
			
		||||
  char *id;
 | 
			
		||||
  adns_query qu;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
extern adns_state ads;
 | 
			
		||||
extern struct outstanding_list { struct query_node *head, *tail; } outstanding;
 | 
			
		||||
 | 
			
		||||
void ensure_adns_init(void);
 | 
			
		||||
void query_do(const char *domain);
 | 
			
		||||
void query_done(struct query_node *qun, adns_answer *answer);
 | 
			
		||||
 | 
			
		||||
void of_asynch_id(const struct optioninfo *oi, const char *arg);
 | 
			
		||||
void of_cancel_id(const struct optioninfo *oi, const char *arg);
 | 
			
		||||
 | 
			
		||||
/* declarations related to main program and useful utility functions */
 | 
			
		||||
 | 
			
		||||
void sysfail(const char *what, int errnoval) NONRETURNING;
 | 
			
		||||
void usageerr(const char *what, ...) NONRETURNPRINTFFORMAT(1,2);
 | 
			
		||||
void outerr(void) NONRETURNING;
 | 
			
		||||
 | 
			
		||||
void *xmalloc(size_t sz);
 | 
			
		||||
char *xstrsave(const char *str);
 | 
			
		||||
 | 
			
		||||
extern int rcode;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										239
									
								
								adns-0.6/client/adnslogres.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										239
									
								
								adns-0.6/client/adnslogres.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,239 @@
 | 
			
		||||
/*
 | 
			
		||||
 * adnslogres.c
 | 
			
		||||
 * - a replacement for the Apache logresolve program using adns
 | 
			
		||||
 */
 | 
			
		||||
/*
 | 
			
		||||
 *  This file is
 | 
			
		||||
 *   Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
 *   Copyright (C) 1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *
 | 
			
		||||
 *  It is part of adns, which is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
 *  any later version.
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *  
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
 *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 | 
			
		||||
 *
 | 
			
		||||
 * This version was originally supplied by Tony Finch, but has been
 | 
			
		||||
 * modified by Ian Jackson as it was incorporated into adns.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
static const char * const cvsid =
 | 
			
		||||
	"$Id: adnslogres.c,v 1.1.1.1 2000-02-16 17:32:28 sdyoung Exp $";
 | 
			
		||||
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <ctype.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
 | 
			
		||||
#include "adns.h"
 | 
			
		||||
 | 
			
		||||
/* maximum number of concurrent DNS queries */
 | 
			
		||||
#define MAXPENDING 1000
 | 
			
		||||
 | 
			
		||||
/* maximum length of a line */
 | 
			
		||||
#define MAXLINE 1024
 | 
			
		||||
 | 
			
		||||
/* option flags */
 | 
			
		||||
#define OPT_DEBUG 1
 | 
			
		||||
#define OPT_POLL 2
 | 
			
		||||
 | 
			
		||||
static const char *progname;
 | 
			
		||||
 | 
			
		||||
#define msg(fmt, args...) fprintf(stderr, "%s: " fmt "\n", progname, ##args)
 | 
			
		||||
 | 
			
		||||
static void aargh(const char *cause) {
 | 
			
		||||
  const char *why = strerror(errno);
 | 
			
		||||
  if (!why) why = "Unknown error";
 | 
			
		||||
  msg("%s: %s (%d)", cause, why, errno);
 | 
			
		||||
  exit(1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Parse the IP address and convert to a reverse domain name.
 | 
			
		||||
 */
 | 
			
		||||
static char *ipaddr2domain(char *start, char **addr, char **rest) {
 | 
			
		||||
  static char buf[30]; /* "123.123.123.123.in-addr.arpa.\0" */
 | 
			
		||||
  char *ptrs[5];
 | 
			
		||||
  int i;
 | 
			
		||||
 | 
			
		||||
  ptrs[0]= start;
 | 
			
		||||
retry:
 | 
			
		||||
  while (!isdigit(*ptrs[0]))
 | 
			
		||||
    if (!*ptrs[0]++) {
 | 
			
		||||
      strcpy(buf, "invalid.");
 | 
			
		||||
      *addr= *rest= NULL;
 | 
			
		||||
      return buf;
 | 
			
		||||
    }
 | 
			
		||||
  for (i= 1; i < 5; i++) {
 | 
			
		||||
    ptrs[i]= ptrs[i-1];
 | 
			
		||||
    while (isdigit(*ptrs[i]++));
 | 
			
		||||
    if ((i == 4 && !isspace(ptrs[i][-1])) ||
 | 
			
		||||
	(i != 4 && ptrs[i][-1] != '.') ||
 | 
			
		||||
	(ptrs[i]-ptrs[i-1] > 4)) {
 | 
			
		||||
      ptrs[0]= ptrs[i]-1;
 | 
			
		||||
      goto retry;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  sprintf(buf, "%.*s.%.*s.%.*s.%.*s.in-addr.arpa.",
 | 
			
		||||
	  ptrs[4]-ptrs[3]-1, ptrs[3],
 | 
			
		||||
	  ptrs[3]-ptrs[2]-1, ptrs[2],
 | 
			
		||||
	  ptrs[2]-ptrs[1]-1, ptrs[1],
 | 
			
		||||
	  ptrs[1]-ptrs[0]-1, ptrs[0]);
 | 
			
		||||
  *addr= ptrs[0];
 | 
			
		||||
  *rest= ptrs[4]-1;
 | 
			
		||||
  return buf;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void printline(FILE *outf, char *start, char *addr, char *rest, char *domain) {
 | 
			
		||||
  if (domain)
 | 
			
		||||
    fprintf(outf, "%.*s%s%s", addr - start, start, domain, rest);
 | 
			
		||||
  else
 | 
			
		||||
    fputs(start, outf);
 | 
			
		||||
  if (ferror(outf)) aargh("write output");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
typedef struct logline {
 | 
			
		||||
  struct logline *next;
 | 
			
		||||
  char *start, *addr, *rest;
 | 
			
		||||
  adns_query query;
 | 
			
		||||
} logline;
 | 
			
		||||
 | 
			
		||||
static logline *readline(FILE *inf, adns_state adns, int opts) {
 | 
			
		||||
  static char buf[MAXLINE];
 | 
			
		||||
  char *str;
 | 
			
		||||
  logline *line;
 | 
			
		||||
 | 
			
		||||
  if (fgets(buf, MAXLINE, inf)) {
 | 
			
		||||
    str= malloc(sizeof(*line) + strlen(buf) + 1);
 | 
			
		||||
    if (!str) aargh("malloc");
 | 
			
		||||
    line= (logline*)str;
 | 
			
		||||
    line->next= NULL;
 | 
			
		||||
    line->start= str+sizeof(logline);
 | 
			
		||||
    strcpy(line->start, buf);
 | 
			
		||||
    str= ipaddr2domain(line->start, &line->addr, &line->rest);
 | 
			
		||||
    if (opts & OPT_DEBUG)
 | 
			
		||||
      msg("submitting %.*s -> %s", line->rest-line->addr, line->addr, str);
 | 
			
		||||
    if (adns_submit(adns, str, adns_r_ptr,
 | 
			
		||||
		    adns_qf_quoteok_cname|adns_qf_cname_loose,
 | 
			
		||||
		    NULL, &line->query))
 | 
			
		||||
      aargh("adns_submit");
 | 
			
		||||
    return line;
 | 
			
		||||
  }
 | 
			
		||||
  if (!feof(inf))
 | 
			
		||||
    aargh("fgets");
 | 
			
		||||
  return NULL;
 | 
			
		||||
}
 | 
			
		||||
	
 | 
			
		||||
static void proclog(FILE *inf, FILE *outf, int opts) {
 | 
			
		||||
  int eof, err, len;
 | 
			
		||||
  adns_state adns;
 | 
			
		||||
  adns_answer *answer;
 | 
			
		||||
  logline *head, *tail, *line;
 | 
			
		||||
 | 
			
		||||
  errno= adns_init(&adns, (opts & OPT_DEBUG) ? adns_if_debug : 0, 0);
 | 
			
		||||
  if (errno) aargh("adns_init");
 | 
			
		||||
  head= tail= readline(inf, adns, opts);
 | 
			
		||||
  len= 1; eof= 0;
 | 
			
		||||
  while (head) {
 | 
			
		||||
    if (opts & OPT_DEBUG)
 | 
			
		||||
      msg("%d in queue; checking %.*s", len,
 | 
			
		||||
	  head->rest-head->addr, head->addr);
 | 
			
		||||
    if (eof || len > MAXPENDING)
 | 
			
		||||
      if (opts & OPT_POLL)
 | 
			
		||||
	err= adns_wait_poll(adns, &head->query, &answer, NULL);
 | 
			
		||||
      else
 | 
			
		||||
	err= adns_wait(adns, &head->query, &answer, NULL);
 | 
			
		||||
    else
 | 
			
		||||
      err= adns_check(adns, &head->query, &answer, NULL);
 | 
			
		||||
    if (err != EAGAIN) {
 | 
			
		||||
      printline(outf, head->start, head->addr, head->rest,
 | 
			
		||||
		answer->status == adns_s_ok ? *answer->rrs.str : NULL);
 | 
			
		||||
      line= head; head= head->next;
 | 
			
		||||
      free(line); free(answer);
 | 
			
		||||
      len--;
 | 
			
		||||
    }
 | 
			
		||||
    if (!eof) {
 | 
			
		||||
      line= readline(inf, adns, opts);
 | 
			
		||||
      if (!line)
 | 
			
		||||
	eof= 1;
 | 
			
		||||
      else {
 | 
			
		||||
	if (!head)
 | 
			
		||||
	  head= line;
 | 
			
		||||
	else
 | 
			
		||||
	  tail->next= line;
 | 
			
		||||
	tail= line;
 | 
			
		||||
	len++;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  adns_finish(adns);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void usage(void) {
 | 
			
		||||
  fprintf(stderr, "usage: %s [-d] [-p] [logfile]\n", progname);
 | 
			
		||||
  exit(1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char *argv[]) {
 | 
			
		||||
  int c, opts;
 | 
			
		||||
  FILE *inf;
 | 
			
		||||
 | 
			
		||||
  progname= strrchr(*argv, '/');
 | 
			
		||||
  if (progname)
 | 
			
		||||
    progname++;
 | 
			
		||||
  else
 | 
			
		||||
    progname= *argv;
 | 
			
		||||
  opts= 0;
 | 
			
		||||
 | 
			
		||||
  while ((c= getopt(argc, argv, "dp")) != -1)
 | 
			
		||||
    switch (c) {
 | 
			
		||||
    case 'd':
 | 
			
		||||
      opts|= OPT_DEBUG;
 | 
			
		||||
      break;
 | 
			
		||||
    case 'p':
 | 
			
		||||
      opts|= OPT_POLL;
 | 
			
		||||
      break;
 | 
			
		||||
    default:
 | 
			
		||||
      usage();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  argc-= optind;
 | 
			
		||||
  argv+= optind;
 | 
			
		||||
 | 
			
		||||
  inf= NULL;
 | 
			
		||||
  if (argc == 0)
 | 
			
		||||
    inf= stdin;
 | 
			
		||||
  else if (argc == 1)
 | 
			
		||||
    inf= fopen(*argv, "r");
 | 
			
		||||
  else
 | 
			
		||||
    usage();
 | 
			
		||||
 | 
			
		||||
  if (!inf)
 | 
			
		||||
    aargh("couldn't open input");
 | 
			
		||||
 | 
			
		||||
  proclog(inf, stdout, opts);
 | 
			
		||||
 | 
			
		||||
  if (fclose(inf))
 | 
			
		||||
    aargh("fclose input");
 | 
			
		||||
  if (fclose(stdout))
 | 
			
		||||
    aargh("fclose output");
 | 
			
		||||
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										454
									
								
								adns-0.6/client/adnsresfilter.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										454
									
								
								adns-0.6/client/adnsresfilter.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,454 @@
 | 
			
		||||
/*
 | 
			
		||||
 * adnsresfilter.c
 | 
			
		||||
 * - filter which does resolving, not part of the library
 | 
			
		||||
 */
 | 
			
		||||
/*
 | 
			
		||||
 *  This file is
 | 
			
		||||
 *    Copyright (C) 1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *
 | 
			
		||||
 *  It is part of adns, which is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
 *  any later version.
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *  
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
 *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#include <search.h>
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
#include <ctype.h>
 | 
			
		||||
 | 
			
		||||
#include <sys/fcntl.h>
 | 
			
		||||
 | 
			
		||||
#include "adns.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#include "dlist.h"
 | 
			
		||||
#include "tvarith.h"
 | 
			
		||||
 | 
			
		||||
struct outqueuenode {
 | 
			
		||||
  struct outqueuenode *next, *back;
 | 
			
		||||
  void *buffer;
 | 
			
		||||
  char *textp;
 | 
			
		||||
  int textlen;
 | 
			
		||||
  struct timeval printbefore;
 | 
			
		||||
  struct treething *addr;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static int bracket, forever, address;
 | 
			
		||||
static unsigned long timeout=100;
 | 
			
		||||
static adns_rrtype rrt= adns_r_ptr;
 | 
			
		||||
 | 
			
		||||
static int outblocked, inputeof;
 | 
			
		||||
static struct { struct outqueuenode *head, *tail; } outqueue;
 | 
			
		||||
static int peroutqueuenode, outqueuelen;
 | 
			
		||||
 | 
			
		||||
static struct sockaddr_in sa;
 | 
			
		||||
static adns_state ads;
 | 
			
		||||
 | 
			
		||||
static char addrtextbuf[14];
 | 
			
		||||
static int cbyte, inbyte, inbuf;
 | 
			
		||||
static unsigned char bytes[4];
 | 
			
		||||
static struct timeval printbefore;
 | 
			
		||||
 | 
			
		||||
struct treething {
 | 
			
		||||
  unsigned char bytes[4];
 | 
			
		||||
  adns_query qu;
 | 
			
		||||
  adns_answer *ans;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct treething *newthing;
 | 
			
		||||
static void *treeroot;
 | 
			
		||||
 | 
			
		||||
static int nonblock(int fd, int isnonblock) {
 | 
			
		||||
  int r;
 | 
			
		||||
 | 
			
		||||
  r= fcntl(fd,F_GETFL); 
 | 
			
		||||
  if (r==-1) return -1;
 | 
			
		||||
  r= fcntl(fd,F_SETFL, isnonblock ? r|O_NONBLOCK : r&~O_NONBLOCK);
 | 
			
		||||
  if (r==-1) return -1;
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void quit(int exitstatus) NONRETURNING;
 | 
			
		||||
static void quit(int exitstatus) {
 | 
			
		||||
  nonblock(0,0);
 | 
			
		||||
  nonblock(1,0);
 | 
			
		||||
  exit(exitstatus);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void sysfail(const char *what) NONRETURNING;
 | 
			
		||||
static void sysfail(const char *what) {
 | 
			
		||||
  fprintf(stderr,"adnsresfilter: system call failed: %s: %s\n",what,strerror(errno));
 | 
			
		||||
  quit(2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void *xmalloc(size_t sz) {
 | 
			
		||||
  void *r;
 | 
			
		||||
  r= malloc(sz);  if (r) return r;
 | 
			
		||||
  sysfail("malloc");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void outputerr(void) NONRETURNING;
 | 
			
		||||
static void outputerr(void) { sysfail("write to stdout"); }
 | 
			
		||||
 | 
			
		||||
static void usage(void) {
 | 
			
		||||
  if (printf("usage: adnsresfilter [<options ...>]\n"
 | 
			
		||||
	     "       adnsresfilter  -h|--help\n"
 | 
			
		||||
	     "options: -t<milliseconds>|--timeout <milliseconds>\n"
 | 
			
		||||
	     "         -w|--wait        (always wait for queries to time out or fail)\n"
 | 
			
		||||
	     "         -b|--brackets    (require [...] around IP addresses)\n"
 | 
			
		||||
	     "         -a|--address     (always include [address] in output)\n"
 | 
			
		||||
	     "         -u|--unchecked   (do not forward map for checking)\n"
 | 
			
		||||
	     "Timeout is the maximum amount to delay any particular bit of output for.\n"
 | 
			
		||||
	     "Lookups will go on in the background.  Default timeout = 100 (ms).\n")
 | 
			
		||||
      == EOF) outputerr();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void usageerr(const char *why) NONRETURNING;
 | 
			
		||||
static void usageerr(const char *why) {
 | 
			
		||||
  fprintf(stderr,"adnsresfilter: bad usage: %s\n",why);
 | 
			
		||||
  usage();
 | 
			
		||||
  quit(1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void adnsfail(const char *what, int e) NONRETURNING;
 | 
			
		||||
static void adnsfail(const char *what, int e) {
 | 
			
		||||
  fprintf(stderr,"adnsresfilter: adns call failed: %s: %s\n",what,strerror(e));
 | 
			
		||||
  quit(2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void settimeout(const char *arg) {
 | 
			
		||||
  char *ep;
 | 
			
		||||
  timeout= strtoul(arg,&ep,0);
 | 
			
		||||
  if (*ep) usageerr("invalid timeout");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void parseargs(const char *const *argv) {
 | 
			
		||||
  const char *arg;
 | 
			
		||||
  int c;
 | 
			
		||||
 | 
			
		||||
  while ((arg= *++argv)) {
 | 
			
		||||
    if (arg[0] != '-') usageerr("no non-option arguments are allowed");
 | 
			
		||||
    if (arg[1] == '-') {
 | 
			
		||||
      if (!strcmp(arg,"--brackets")) {
 | 
			
		||||
	bracket= 1;
 | 
			
		||||
      } else if (!strcmp(arg,"--unchecked")) {
 | 
			
		||||
	rrt= adns_r_ptr_raw;
 | 
			
		||||
      } else if (!strcmp(arg,"--wait")) {
 | 
			
		||||
	forever= 1;
 | 
			
		||||
      } else if (!strcmp(arg,"--address")) {
 | 
			
		||||
	address= 1;
 | 
			
		||||
      } else if (!strcmp(arg,"--help")) {
 | 
			
		||||
	usage(); quit(0);
 | 
			
		||||
      } else if (!strcmp(arg,"--timeout")) {
 | 
			
		||||
	if (!(arg= *++argv)) usageerr("--timeout needs a value");
 | 
			
		||||
	settimeout(arg);
 | 
			
		||||
	forever= 0;
 | 
			
		||||
      } else {
 | 
			
		||||
	usageerr("unknown long option");
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      while ((c= *++arg)) {
 | 
			
		||||
	switch (c) {
 | 
			
		||||
	case 'b':
 | 
			
		||||
	  bracket= 1;
 | 
			
		||||
	  break;
 | 
			
		||||
	case 'u':
 | 
			
		||||
	  rrt= adns_r_ptr_raw;
 | 
			
		||||
	  break;
 | 
			
		||||
	case 'w':
 | 
			
		||||
	  forever= 1;
 | 
			
		||||
	  break;
 | 
			
		||||
	case 'a':
 | 
			
		||||
	  address= 1;
 | 
			
		||||
	  break;
 | 
			
		||||
	case 'h':
 | 
			
		||||
	  usage();
 | 
			
		||||
	  quit(0);
 | 
			
		||||
	case 't':
 | 
			
		||||
	  if (*++arg) settimeout(arg);
 | 
			
		||||
	  else if ((arg= *++argv)) settimeout(arg);
 | 
			
		||||
	  else usageerr("-t needs a value");
 | 
			
		||||
	  forever= 0;
 | 
			
		||||
	  arg= "\0";
 | 
			
		||||
	  break;
 | 
			
		||||
	default:
 | 
			
		||||
	  usageerr("unknown short option");
 | 
			
		||||
	}
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void queueoutchar(int c) {
 | 
			
		||||
  struct outqueuenode *entry;
 | 
			
		||||
  
 | 
			
		||||
  entry= outqueue.tail;
 | 
			
		||||
  if (!entry || entry->addr || entry->textlen >= peroutqueuenode) {
 | 
			
		||||
    peroutqueuenode= !peroutqueuenode || !entry || entry->addr ? 128 : 
 | 
			
		||||
      peroutqueuenode >= 1024 ? 4096 : peroutqueuenode<<2;
 | 
			
		||||
    entry= xmalloc(sizeof(*entry));
 | 
			
		||||
    entry->buffer= xmalloc(peroutqueuenode);
 | 
			
		||||
    entry->textp= entry->buffer;
 | 
			
		||||
    entry->textlen= 0;
 | 
			
		||||
    entry->addr= 0;
 | 
			
		||||
    LIST_LINK_TAIL(outqueue,entry);
 | 
			
		||||
    outqueuelen++;
 | 
			
		||||
  }
 | 
			
		||||
  entry->textp[entry->textlen++]= c;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void queueoutstr(const char *str, int len) {
 | 
			
		||||
  while (len-- > 0) queueoutchar(*str++);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void writestdout(struct outqueuenode *entry) {
 | 
			
		||||
  int r;
 | 
			
		||||
 | 
			
		||||
  while (entry->textlen) {
 | 
			
		||||
    r= write(1, entry->textp, entry->textlen);
 | 
			
		||||
    if (r < 0) {
 | 
			
		||||
      if (errno == EINTR) continue;
 | 
			
		||||
      if (errno == EAGAIN) { outblocked= 1; break; }
 | 
			
		||||
      sysfail("write stdout");
 | 
			
		||||
    }
 | 
			
		||||
    assert(r <= entry->textlen);
 | 
			
		||||
    entry->textp += r;
 | 
			
		||||
    entry->textlen -= r;
 | 
			
		||||
  }
 | 
			
		||||
  if (!entry->textlen) {
 | 
			
		||||
    LIST_UNLINK(outqueue,entry);
 | 
			
		||||
    free(entry->buffer);
 | 
			
		||||
    free(entry);
 | 
			
		||||
    outqueuelen--;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void replacetextwithname(struct outqueuenode *entry) {
 | 
			
		||||
  char *name, *newbuf;
 | 
			
		||||
  int namelen, newlen;
 | 
			
		||||
 | 
			
		||||
  name= entry->addr->ans->rrs.str[0];
 | 
			
		||||
  namelen= strlen(name);
 | 
			
		||||
  if (!address) {
 | 
			
		||||
    free(entry->buffer);
 | 
			
		||||
    entry->buffer= 0;
 | 
			
		||||
    entry->textp= name;
 | 
			
		||||
    entry->textlen= namelen;
 | 
			
		||||
  } else {
 | 
			
		||||
    newlen= entry->textlen + namelen + (bracket ? 0 : 2);
 | 
			
		||||
    newbuf= xmalloc(newlen + 1);
 | 
			
		||||
    sprintf(newbuf, bracket ? "%s%.*s" : "%s[%.*s]", name, entry->textlen, entry->textp);
 | 
			
		||||
    free(entry->buffer);
 | 
			
		||||
    entry->buffer= entry->textp= newbuf;
 | 
			
		||||
    entry->textlen= newlen;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void checkadnsqueries(void) {
 | 
			
		||||
  adns_query qu;
 | 
			
		||||
  adns_answer *ans;
 | 
			
		||||
  void *context;
 | 
			
		||||
  struct treething *foundthing;
 | 
			
		||||
  int r;
 | 
			
		||||
 | 
			
		||||
  for (;;) {
 | 
			
		||||
    qu= 0; context= 0; ans= 0;
 | 
			
		||||
    r= adns_check(ads,&qu,&ans,&context);
 | 
			
		||||
    if (r == ESRCH || r == EAGAIN) break;
 | 
			
		||||
    assert(!r);
 | 
			
		||||
    foundthing= context;
 | 
			
		||||
    foundthing->ans= ans;
 | 
			
		||||
    foundthing->qu= 0;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void restartbuf(void) {
 | 
			
		||||
  if (inbuf>0) queueoutstr(addrtextbuf,inbuf);
 | 
			
		||||
  inbuf= 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int comparer(const void *a, const void *b) {
 | 
			
		||||
  return memcmp(a,b,4);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void procaddr(void) {
 | 
			
		||||
  struct treething *foundthing;
 | 
			
		||||
  void **searchfound;
 | 
			
		||||
  struct outqueuenode *entry;
 | 
			
		||||
  int r;
 | 
			
		||||
  
 | 
			
		||||
  if (!newthing) {
 | 
			
		||||
    newthing= xmalloc(sizeof(struct treething));
 | 
			
		||||
    newthing->qu= 0;
 | 
			
		||||
    newthing->ans= 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  memcpy(newthing->bytes,bytes,4);
 | 
			
		||||
  searchfound= tsearch(newthing,&treeroot,comparer);
 | 
			
		||||
  if (!searchfound) sysfail("tsearch");
 | 
			
		||||
  foundthing= *searchfound;
 | 
			
		||||
 | 
			
		||||
  if (foundthing == newthing) {
 | 
			
		||||
    newthing= 0;
 | 
			
		||||
    memcpy(&sa.sin_addr,bytes,4);
 | 
			
		||||
    r= adns_submit_reverse(ads, (const struct sockaddr*)&sa,
 | 
			
		||||
			   rrt,0,foundthing,&foundthing->qu);
 | 
			
		||||
    if (r) adnsfail("submit",r);
 | 
			
		||||
  }
 | 
			
		||||
  entry= xmalloc(sizeof(*entry));
 | 
			
		||||
  entry->buffer= xmalloc(inbuf);
 | 
			
		||||
  entry->textp= entry->buffer;
 | 
			
		||||
  memcpy(entry->textp,addrtextbuf,inbuf);
 | 
			
		||||
  entry->textlen= inbuf;
 | 
			
		||||
  entry->addr= foundthing;
 | 
			
		||||
  entry->printbefore= printbefore;
 | 
			
		||||
  LIST_LINK_TAIL(outqueue,entry);
 | 
			
		||||
  outqueuelen++;
 | 
			
		||||
  inbuf= 0;
 | 
			
		||||
  cbyte= -1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void startaddr(void) {
 | 
			
		||||
  bytes[cbyte=0]= 0;
 | 
			
		||||
  inbyte= 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void readstdin(void) {
 | 
			
		||||
  char readbuf[512], *p;
 | 
			
		||||
  int r, c, nbyte;
 | 
			
		||||
 | 
			
		||||
  while ((r= read(0,readbuf,sizeof(readbuf))) <= 0) {
 | 
			
		||||
    if (r == 0) { inputeof= 1; return; }
 | 
			
		||||
    if (r == EAGAIN) return;
 | 
			
		||||
    if (r != EINTR) sysfail("read stdin");
 | 
			
		||||
  }
 | 
			
		||||
  for (p=readbuf; r>0; r--,p++) {
 | 
			
		||||
    c= *p;
 | 
			
		||||
    if (cbyte==-1 && bracket && c=='[') {
 | 
			
		||||
      addrtextbuf[inbuf++]= c;
 | 
			
		||||
      startaddr();
 | 
			
		||||
    } else if (cbyte==-1 && !bracket && !isalnum(c)) {
 | 
			
		||||
      queueoutchar(c);
 | 
			
		||||
      startaddr();
 | 
			
		||||
    } else if (cbyte>=0 && inbyte<3 && c>='0' && c<='9' &&
 | 
			
		||||
	       (nbyte= bytes[cbyte]*10 + (c-'0')) <= 255) {
 | 
			
		||||
      bytes[cbyte]= nbyte;
 | 
			
		||||
      addrtextbuf[inbuf++]= c;
 | 
			
		||||
      inbyte++;
 | 
			
		||||
    } else if (cbyte>=0 && cbyte<3 && inbyte>0 && c=='.') {
 | 
			
		||||
      bytes[++cbyte]= 0;
 | 
			
		||||
      addrtextbuf[inbuf++]= c;
 | 
			
		||||
      inbyte= 0;
 | 
			
		||||
    } else if (cbyte==3 && inbyte>0 && bracket && c==']') {
 | 
			
		||||
      addrtextbuf[inbuf++]= c;
 | 
			
		||||
      procaddr();
 | 
			
		||||
    } else if (cbyte==3 && inbyte>0 && !bracket && !isalnum(c)) {
 | 
			
		||||
      procaddr();
 | 
			
		||||
      queueoutchar(c);
 | 
			
		||||
      startaddr();
 | 
			
		||||
    } else {
 | 
			
		||||
      restartbuf();
 | 
			
		||||
      queueoutchar(c);
 | 
			
		||||
      cbyte= -1;
 | 
			
		||||
      if (!bracket && !isalnum(c)) startaddr();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (cbyte==3 && inbyte>0 && !bracket) procaddr();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void startup(void) {
 | 
			
		||||
  int r;
 | 
			
		||||
 | 
			
		||||
  if (nonblock(0,1)) sysfail("set stdin to nonblocking mode");
 | 
			
		||||
  if (nonblock(1,1)) sysfail("set stdout to nonblocking mode");
 | 
			
		||||
  memset(&sa,0,sizeof(sa));
 | 
			
		||||
  sa.sin_family= AF_INET;
 | 
			
		||||
  r= adns_init(&ads,0,0);  if (r) adnsfail("init",r);
 | 
			
		||||
  cbyte= -1;
 | 
			
		||||
  inbyte= -1;
 | 
			
		||||
  inbuf= 0;
 | 
			
		||||
  if (!bracket) startaddr();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, const char *const *argv) {
 | 
			
		||||
  int r, maxfd;
 | 
			
		||||
  fd_set readfds, writefds, exceptfds;
 | 
			
		||||
  struct outqueuenode *entry;
 | 
			
		||||
  struct timeval *tv, tvbuf, now;
 | 
			
		||||
 | 
			
		||||
  parseargs(argv);
 | 
			
		||||
  startup();
 | 
			
		||||
 | 
			
		||||
  while (!inputeof || outqueue.head) {
 | 
			
		||||
    maxfd= 2;
 | 
			
		||||
    tv= 0;
 | 
			
		||||
    FD_ZERO(&readfds); FD_ZERO(&writefds); FD_ZERO(&exceptfds);
 | 
			
		||||
    if ((entry= outqueue.head) && !outblocked) {
 | 
			
		||||
      if (!entry->addr) {
 | 
			
		||||
	writestdout(entry);
 | 
			
		||||
	continue;
 | 
			
		||||
      }
 | 
			
		||||
      if (entry->addr->ans) {
 | 
			
		||||
	if (entry->addr->ans->nrrs) 
 | 
			
		||||
	  replacetextwithname(entry);
 | 
			
		||||
	entry->addr= 0;
 | 
			
		||||
	continue;
 | 
			
		||||
      }
 | 
			
		||||
      r= gettimeofday(&now,0);  if (r) sysfail("gettimeofday");
 | 
			
		||||
      if (forever) {
 | 
			
		||||
	tv= 0;
 | 
			
		||||
      } else if (!timercmp(&now,&entry->printbefore,<)) {
 | 
			
		||||
	entry->addr= 0;
 | 
			
		||||
	continue;
 | 
			
		||||
      } else {
 | 
			
		||||
	tvbuf.tv_sec= entry->printbefore.tv_sec - now.tv_sec - 1;
 | 
			
		||||
	tvbuf.tv_usec= entry->printbefore.tv_usec - now.tv_usec + 1000000;
 | 
			
		||||
	tvbuf.tv_sec += tvbuf.tv_usec / 1000000;
 | 
			
		||||
	tvbuf.tv_usec %= 1000000;
 | 
			
		||||
	tv= &tvbuf;
 | 
			
		||||
      }
 | 
			
		||||
      adns_beforeselect(ads,&maxfd,&readfds,&writefds,&exceptfds,
 | 
			
		||||
			&tv,&tvbuf,&now);
 | 
			
		||||
    }
 | 
			
		||||
    if (outblocked) FD_SET(1,&writefds);
 | 
			
		||||
    if (!inputeof && outqueuelen<1024) FD_SET(0,&readfds);
 | 
			
		||||
    
 | 
			
		||||
    r= select(maxfd,&readfds,&writefds,&exceptfds,tv);
 | 
			
		||||
    if (r < 0) { if (r == EINTR) continue; else sysfail("select"); }
 | 
			
		||||
 | 
			
		||||
    r= gettimeofday(&now,0);  if (r) sysfail("gettimeofday");
 | 
			
		||||
    adns_afterselect(ads,maxfd,&readfds,&writefds,&exceptfds,&now);
 | 
			
		||||
    checkadnsqueries();
 | 
			
		||||
 | 
			
		||||
    if (FD_ISSET(0,&readfds)) {
 | 
			
		||||
      if (!forever) {
 | 
			
		||||
	printbefore= now;
 | 
			
		||||
	timevaladd(&printbefore,timeout);
 | 
			
		||||
      }
 | 
			
		||||
      readstdin();
 | 
			
		||||
    } else if (FD_ISSET(1,&writefds)) {
 | 
			
		||||
      outblocked= 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (nonblock(0,0)) sysfail("un-nonblock stdin");
 | 
			
		||||
  if (nonblock(1,0)) sysfail("un-nonblock stdout");
 | 
			
		||||
  if (ferror(stdin) || fclose(stdin)) sysfail("read stdin");
 | 
			
		||||
  if (fclose(stdout)) sysfail("close stdout");
 | 
			
		||||
  exit(0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										337
									
								
								adns-0.6/client/adnstest.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										337
									
								
								adns-0.6/client/adnstest.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,337 @@
 | 
			
		||||
/*
 | 
			
		||||
 * adnstest.c
 | 
			
		||||
 * - simple test program, not part of the library
 | 
			
		||||
 */
 | 
			
		||||
/*
 | 
			
		||||
 *  This file is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *
 | 
			
		||||
 *  It is part of adns, which is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
 *  any later version.
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *  
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
 *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
 | 
			
		||||
#include "adns.h"
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#ifndef OUTPUTSTREAM
 | 
			
		||||
# define OUTPUTSTREAM stdout
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
struct myctx {
 | 
			
		||||
  adns_query qu;
 | 
			
		||||
  int doneyet, found;
 | 
			
		||||
  const char *fdom;
 | 
			
		||||
};
 | 
			
		||||
  
 | 
			
		||||
static struct myctx *mcs;
 | 
			
		||||
static adns_state ads;
 | 
			
		||||
static adns_rrtype *types_a;
 | 
			
		||||
 | 
			
		||||
static void quitnow(int rc) NONRETURNING;
 | 
			
		||||
static void quitnow(int rc) {
 | 
			
		||||
  free(mcs);
 | 
			
		||||
  free(types_a);
 | 
			
		||||
  if (ads) adns_finish(ads);
 | 
			
		||||
  
 | 
			
		||||
  exit(rc);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifndef HAVE_POLL
 | 
			
		||||
#undef poll
 | 
			
		||||
int poll(struct pollfd *ufds, int nfds, int timeout) {
 | 
			
		||||
  fputs("poll(2) not supported on this system\n",stderr);
 | 
			
		||||
  quitnow(5);
 | 
			
		||||
}
 | 
			
		||||
#define adns_beforepoll(a,b,c,d,e) 0
 | 
			
		||||
#define adns_afterpoll(a,b,c,d) 0
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
static void failure_status(const char *what, adns_status st) NONRETURNING;
 | 
			
		||||
static void failure_status(const char *what, adns_status st) {
 | 
			
		||||
  fprintf(stderr,"adns failure: %s: %s\n",what,adns_strerror(st));
 | 
			
		||||
  quitnow(2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void failure_errno(const char *what, int errnoval) NONRETURNING;
 | 
			
		||||
static void failure_errno(const char *what, int errnoval) {
 | 
			
		||||
  fprintf(stderr,"adns failure: %s: errno=%d\n",what,errnoval);
 | 
			
		||||
  quitnow(2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void usageerr(const char *why) NONRETURNING;
 | 
			
		||||
static void usageerr(const char *why) {
 | 
			
		||||
  fprintf(stderr,
 | 
			
		||||
	  "bad usage: %s\n"
 | 
			
		||||
	  "usage: adnstest [-<initflagsnum>[,<owninitflags>]] [/<initstring>]\n"
 | 
			
		||||
	  "              [ :<typenum>,... ]\n"
 | 
			
		||||
	  "              [ [<queryflagsnum>[,<ownqueryflags>]/]<domain> ... ]\n"
 | 
			
		||||
	  "initflags:   p  use poll(2) instead of select(2)\n"
 | 
			
		||||
	  "             s  use adns_wait with specified query, instead of 0\n"
 | 
			
		||||
	  "queryflags:  a  print status abbrevs instead of strings\n"
 | 
			
		||||
	  "exit status:  0 ok (though some queries may have failed)\n"
 | 
			
		||||
	  "              1 used by test harness to indicate test failed\n"
 | 
			
		||||
	  "              2 unable to submit or init or some such\n"
 | 
			
		||||
	  "              3 unexpected failure\n"
 | 
			
		||||
	  "              4 usage error\n"
 | 
			
		||||
	  "              5 operation not supported on this system\n",
 | 
			
		||||
	  why);
 | 
			
		||||
  quitnow(4);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const adns_rrtype defaulttypes[]= {
 | 
			
		||||
  adns_r_a,
 | 
			
		||||
  adns_r_ns_raw,
 | 
			
		||||
  adns_r_cname,
 | 
			
		||||
  adns_r_soa_raw,
 | 
			
		||||
  adns_r_ptr_raw,
 | 
			
		||||
  adns_r_hinfo,
 | 
			
		||||
  adns_r_mx_raw,
 | 
			
		||||
  adns_r_txt,
 | 
			
		||||
  adns_r_rp_raw,
 | 
			
		||||
  
 | 
			
		||||
  adns_r_addr,
 | 
			
		||||
  adns_r_ns,
 | 
			
		||||
  adns_r_ptr,
 | 
			
		||||
  adns_r_mx,
 | 
			
		||||
  
 | 
			
		||||
  adns_r_soa,
 | 
			
		||||
  adns_r_rp,
 | 
			
		||||
 | 
			
		||||
  adns_r_none
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static void dumptype(adns_status ri, const char *rrtn, const char *fmtn) {
 | 
			
		||||
  fprintf(stdout, "%s(%s)%s%s",
 | 
			
		||||
	  ri ? "?" : rrtn, ri ? "?" : fmtn ? fmtn : "-",
 | 
			
		||||
	  ri ? " " : "", ri ? adns_strerror(ri) : "");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void fdom_split(const char *fdom, const char **dom_r, int *qf_r,
 | 
			
		||||
		       char *ownflags, int ownflags_l) {
 | 
			
		||||
  int qf;
 | 
			
		||||
  char *ep;
 | 
			
		||||
 | 
			
		||||
  qf= strtoul(fdom,&ep,0);
 | 
			
		||||
  if (*ep == ',' && strchr(ep,'/')) {
 | 
			
		||||
    ep++;
 | 
			
		||||
    while (*ep != '/') {
 | 
			
		||||
      if (--ownflags_l <= 0) { fputs("too many flags\n",stderr); quitnow(3); }
 | 
			
		||||
      *ownflags++= *ep++;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  if (*ep != '/') { *dom_r= fdom; *qf_r= 0; }
 | 
			
		||||
  else { *dom_r= ep+1; *qf_r= qf; }
 | 
			
		||||
  *ownflags= 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int consistsof(const char *string, const char *accept) {
 | 
			
		||||
  return strspn(string,accept) == strlen(string);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char *const *argv) {
 | 
			
		||||
  adns_query qu;
 | 
			
		||||
  struct myctx *mc, *mcw;
 | 
			
		||||
  void *mcr;
 | 
			
		||||
  adns_answer *ans;
 | 
			
		||||
  const char *initstring, *rrtn, *fmtn;
 | 
			
		||||
  const char *const *fdomlist, *domain;
 | 
			
		||||
  char *show, *cp;
 | 
			
		||||
  int len, i, qc, qi, tc, ti, ch, qflags, initflagsnum;
 | 
			
		||||
  adns_status ri;
 | 
			
		||||
  int r;
 | 
			
		||||
  const adns_rrtype *types;
 | 
			
		||||
  struct timeval now;
 | 
			
		||||
  char ownflags[10];
 | 
			
		||||
  char *ep;
 | 
			
		||||
  const char *initflags, *owninitflags;
 | 
			
		||||
 | 
			
		||||
  if (argv[0] && argv[1] && argv[1][0] == '-') {
 | 
			
		||||
    initflags= argv[1]+1;
 | 
			
		||||
    argv++;
 | 
			
		||||
  } else {
 | 
			
		||||
    initflags= "";
 | 
			
		||||
  }
 | 
			
		||||
  if (argv[0] && argv[1] && argv[1][0] == '/') {
 | 
			
		||||
    initstring= argv[1]+1;
 | 
			
		||||
    argv++;
 | 
			
		||||
  } else {
 | 
			
		||||
    initstring= 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  initflagsnum= strtoul(initflags,&ep,0);
 | 
			
		||||
  if (*ep == ',') {
 | 
			
		||||
    owninitflags= ep+1;
 | 
			
		||||
    if (!consistsof(owninitflags,"ps")) usageerr("unknown owninitflag");
 | 
			
		||||
  } else if (!*ep) {
 | 
			
		||||
    owninitflags= "";
 | 
			
		||||
  } else {
 | 
			
		||||
    usageerr("bad <initflagsnum>[,<owninitflags>]");
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  if (argv[0] && argv[1] && argv[1][0] == ':') {
 | 
			
		||||
    for (cp= argv[1]+1, tc=1; (ch= *cp); cp++)
 | 
			
		||||
      if (ch==',') tc++;
 | 
			
		||||
    types_a= malloc(sizeof(*types_a)*(tc+1));
 | 
			
		||||
    if (!types_a) { perror("malloc types"); quitnow(3); }
 | 
			
		||||
    for (cp= argv[1]+1, ti=0; ti<tc; ti++) {
 | 
			
		||||
      types_a[ti]= strtoul(cp,&cp,10);
 | 
			
		||||
      if ((ch= *cp)) {
 | 
			
		||||
	if (ch != ',') usageerr("unexpected char (not comma) in or between types");
 | 
			
		||||
	cp++;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    types_a[ti]= adns_r_none;
 | 
			
		||||
    types= types_a;
 | 
			
		||||
    argv++;
 | 
			
		||||
  } else {
 | 
			
		||||
    types_a= 0;
 | 
			
		||||
    types= defaulttypes;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  if (!(argv[0] && argv[1])) usageerr("no query domains supplied");
 | 
			
		||||
  fdomlist= (const char *const*)argv+1;
 | 
			
		||||
 | 
			
		||||
  for (qc=0; fdomlist[qc]; qc++);
 | 
			
		||||
  for (tc=0; types[tc] != adns_r_none; tc++);
 | 
			
		||||
  mcs= malloc(tc ? sizeof(*mcs)*qc*tc : 1);
 | 
			
		||||
  if (!mcs) { perror("malloc mcs"); quitnow(3); }
 | 
			
		||||
 | 
			
		||||
  if (initstring) {
 | 
			
		||||
    r= adns_init_strcfg(&ads,
 | 
			
		||||
			(adns_if_debug|adns_if_noautosys|adns_if_checkc_freq)
 | 
			
		||||
			^initflagsnum,
 | 
			
		||||
			stdout,initstring);
 | 
			
		||||
  } else {
 | 
			
		||||
    r= adns_init(&ads,
 | 
			
		||||
		 (adns_if_debug|adns_if_noautosys)^initflagsnum,
 | 
			
		||||
		 0);
 | 
			
		||||
  }
 | 
			
		||||
  if (r) failure_errno("init",r);
 | 
			
		||||
 | 
			
		||||
  for (qi=0; qi<qc; qi++) {
 | 
			
		||||
    fdom_split(fdomlist[qi],&domain,&qflags,ownflags,sizeof(ownflags));
 | 
			
		||||
    if (!consistsof(ownflags,"a")) usageerr("unknown ownqueryflag");
 | 
			
		||||
    for (ti=0; ti<tc; ti++) {
 | 
			
		||||
      mc= &mcs[qi*tc+ti];
 | 
			
		||||
      mc->doneyet= 0;
 | 
			
		||||
      mc->fdom= fdomlist[qi];
 | 
			
		||||
 | 
			
		||||
      fprintf(stdout,"%s flags %d type %d",domain,qflags,types[ti]);
 | 
			
		||||
      r= adns_submit(ads,domain,types[ti],qflags,mc,&mc->qu);
 | 
			
		||||
      if (r == ENOSYS) {
 | 
			
		||||
	fprintf(stdout," not implemented\n");
 | 
			
		||||
	mc->qu= 0;
 | 
			
		||||
	mc->doneyet= 1;
 | 
			
		||||
      } else if (r) {
 | 
			
		||||
	failure_errno("submit",r);
 | 
			
		||||
      } else {
 | 
			
		||||
	ri= adns_rr_info(types[ti], &rrtn,&fmtn,0, 0,0);
 | 
			
		||||
	putc(' ',stdout);
 | 
			
		||||
	dumptype(ri,rrtn,fmtn);
 | 
			
		||||
	fprintf(stdout," submitted\n");
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  for (;;) {
 | 
			
		||||
    for (qi=0; qi<qc; qi++) {
 | 
			
		||||
      for (ti=0; ti<tc; ti++) {
 | 
			
		||||
	mc= &mcs[qi*tc+ti];
 | 
			
		||||
	mc->found= 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    for (adns_forallqueries_begin(ads);
 | 
			
		||||
	 (qu= adns_forallqueries_next(ads,&mcr));
 | 
			
		||||
	 ) {
 | 
			
		||||
      mc= mcr;
 | 
			
		||||
      assert(qu == mc->qu);
 | 
			
		||||
      assert(!mc->doneyet);
 | 
			
		||||
      mc->found= 1;
 | 
			
		||||
    }
 | 
			
		||||
    mcw= 0;
 | 
			
		||||
    for (qi=0; qi<qc; qi++) {
 | 
			
		||||
      for (ti=0; ti<tc; ti++) {
 | 
			
		||||
	mc= &mcs[qi*tc+ti];
 | 
			
		||||
	if (mc->doneyet) continue;
 | 
			
		||||
	assert(mc->found);
 | 
			
		||||
	if (!mcw) mcw= mc;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (!mcw) break;
 | 
			
		||||
 | 
			
		||||
    if (strchr(owninitflags,'s')) {
 | 
			
		||||
      qu= mcw->qu;
 | 
			
		||||
      mc= mcw;
 | 
			
		||||
    } else {
 | 
			
		||||
      qu= 0;
 | 
			
		||||
      mc= 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (strchr(owninitflags,'p')) {
 | 
			
		||||
      r= adns_wait_poll(ads,&qu,&ans,&mcr);
 | 
			
		||||
    } else {
 | 
			
		||||
      r= adns_wait(ads,&qu,&ans,&mcr);
 | 
			
		||||
    }
 | 
			
		||||
    if (r) failure_errno("wait/check",r);
 | 
			
		||||
    
 | 
			
		||||
    if (mc) assert(mcr==mc);
 | 
			
		||||
    else mc= mcr;
 | 
			
		||||
    assert(qu==mc->qu);
 | 
			
		||||
    assert(!mc->doneyet);
 | 
			
		||||
    
 | 
			
		||||
    fdom_split(mc->fdom,&domain,&qflags,ownflags,sizeof(ownflags));
 | 
			
		||||
 | 
			
		||||
    if (gettimeofday(&now,0)) { perror("gettimeofday"); quitnow(3); }
 | 
			
		||||
      
 | 
			
		||||
    ri= adns_rr_info(ans->type, &rrtn,&fmtn,&len, 0,0);
 | 
			
		||||
    fprintf(stdout, "%s flags %d type ",domain,qflags);
 | 
			
		||||
    dumptype(ri,rrtn,fmtn);
 | 
			
		||||
    fprintf(stdout, "%s%s: %s; nrrs=%d; cname=%s; owner=%s; ttl=%ld\n",
 | 
			
		||||
	    ownflags[0] ? " ownflags=" : "", ownflags,
 | 
			
		||||
	    strchr(ownflags,'a')
 | 
			
		||||
	    ? adns_errabbrev(ans->status)
 | 
			
		||||
	    : adns_strerror(ans->status),
 | 
			
		||||
	    ans->nrrs,
 | 
			
		||||
	    ans->cname ? ans->cname : "$",
 | 
			
		||||
	    ans->owner ? ans->owner : "$",
 | 
			
		||||
	    (long)ans->expires - (long)now.tv_sec);
 | 
			
		||||
    if (ans->nrrs) {
 | 
			
		||||
      assert(!ri);
 | 
			
		||||
      for (i=0; i<ans->nrrs; i++) {
 | 
			
		||||
	ri= adns_rr_info(ans->type, 0,0,0, ans->rrs.bytes + i*len, &show);
 | 
			
		||||
	if (ri) failure_status("info",ri);
 | 
			
		||||
	fprintf(stdout," %s\n",show);
 | 
			
		||||
	free(show);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    free(ans);
 | 
			
		||||
 | 
			
		||||
    mc->doneyet= 1;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  quitnow(0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										85
									
								
								adns-0.6/client/fanftest.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								adns-0.6/client/fanftest.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,85 @@
 | 
			
		||||
/*
 | 
			
		||||
 * fanftest.c
 | 
			
		||||
 * - a small test program from Tony Finch
 | 
			
		||||
 */
 | 
			
		||||
/*
 | 
			
		||||
 *  This file is
 | 
			
		||||
 *   Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
 *   Copyright (C) 1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *
 | 
			
		||||
 *  It is part of adns, which is
 | 
			
		||||
 *    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
 *    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
 *  it under the terms of the GNU General Public License as published by
 | 
			
		||||
 *  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
 *  any later version.
 | 
			
		||||
 *  
 | 
			
		||||
 *  This program is distributed in the hope that it will be useful,
 | 
			
		||||
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 *  GNU General Public License for more details.
 | 
			
		||||
 *  
 | 
			
		||||
 *  You should have received a copy of the GNU General Public License
 | 
			
		||||
 *  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
 *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 | 
			
		||||
 *
 | 
			
		||||
 * This version was originally supplied by Tony Finch, but has been
 | 
			
		||||
 * modified by Ian Jackson as it was incorporated into adns.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
static const char * const cvsid =
 | 
			
		||||
	"$Id: fanftest.c,v 1.1.1.1 2000-02-16 17:32:29 sdyoung Exp $";
 | 
			
		||||
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
 | 
			
		||||
#include "adns.h"
 | 
			
		||||
 | 
			
		||||
static const char *progname;
 | 
			
		||||
 | 
			
		||||
static void aargh(const char *msg) {
 | 
			
		||||
  fprintf(stderr, "%s: %s: %s (%d)\n", progname, msg,
 | 
			
		||||
	  strerror(errno) ? strerror(errno) : "Unknown error", errno);
 | 
			
		||||
  exit(1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char *argv[]) {
 | 
			
		||||
  adns_state adns;
 | 
			
		||||
  adns_query query;
 | 
			
		||||
  adns_answer *answer;
 | 
			
		||||
 | 
			
		||||
  progname= strrchr(*argv, '/');
 | 
			
		||||
  if (progname)
 | 
			
		||||
    progname++;
 | 
			
		||||
  else
 | 
			
		||||
    progname= *argv;
 | 
			
		||||
 | 
			
		||||
  if (argc != 2) {
 | 
			
		||||
    fprintf(stderr, "usage: %s <domain>\n", progname);
 | 
			
		||||
    exit(1);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  errno= adns_init(&adns, adns_if_debug, 0);
 | 
			
		||||
  if (errno) aargh("adns_init");
 | 
			
		||||
 | 
			
		||||
  errno= adns_submit(adns, argv[1], adns_r_ptr,
 | 
			
		||||
		     adns_qf_quoteok_cname|adns_qf_cname_loose,
 | 
			
		||||
		     NULL, &query);
 | 
			
		||||
  if (errno) aargh("adns_submit");
 | 
			
		||||
 | 
			
		||||
  errno= adns_wait(adns, &query, &answer, NULL);
 | 
			
		||||
  if (errno) aargh("adns_init");
 | 
			
		||||
 | 
			
		||||
  printf("%s\n", answer->status == adns_s_ok ? *answer->rrs.str : "dunno");
 | 
			
		||||
 | 
			
		||||
  adns_finish(adns);
 | 
			
		||||
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								adns-0.6/client/x.gdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								adns-0.6/client/x.gdb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
file adnsresfilter_s
 | 
			
		||||
set args <testinput -t2000
 | 
			
		||||
							
								
								
									
										1826
									
								
								adns-0.6/configure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										1826
									
								
								adns-0.6/configure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										101
									
								
								adns-0.6/configure.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								adns-0.6/configure.in
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,101 @@
 | 
			
		||||
# configure.in - input to autoconf
 | 
			
		||||
#  
 | 
			
		||||
#  This file is
 | 
			
		||||
#    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
#
 | 
			
		||||
#  It is part of adns, which is
 | 
			
		||||
#    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
#    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
#  
 | 
			
		||||
#  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
#  it under the terms of the GNU General Public License as published by
 | 
			
		||||
#  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
#  any later version.
 | 
			
		||||
#  
 | 
			
		||||
#  This program is distributed in the hope that it will be useful,
 | 
			
		||||
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
#  GNU General Public License for more details.
 | 
			
		||||
#  
 | 
			
		||||
#  You should have received a copy of the GNU General Public License
 | 
			
		||||
#  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
#  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 | 
			
		||||
AC_INIT(src/adns.h)
 | 
			
		||||
AC_CONFIG_HEADER(src/config.h)
 | 
			
		||||
AC_PROG_CC
 | 
			
		||||
AC_PROG_CPP
 | 
			
		||||
AC_PROG_RANLIB
 | 
			
		||||
 | 
			
		||||
AC_CHECK_FUNCS(poll)
 | 
			
		||||
ADNS_C_GETFUNC(socket,socket)
 | 
			
		||||
ADNS_C_GETFUNC(inet_ntoa,nsl)
 | 
			
		||||
 | 
			
		||||
PROGS_IF_TSEARCH=adnsresfilter
 | 
			
		||||
AC_SUBST(PROGS_HAVE_TSEARCH)
 | 
			
		||||
AC_CHECK_FUNC(tsearch,[
 | 
			
		||||
 PROGS_HAVE_TSEARCH=$PROGS_IF_TSEARCH
 | 
			
		||||
],[
 | 
			
		||||
 PROGS_HAVE_TSEARCH='';
 | 
			
		||||
 AC_MSG_WARN([tsearch missing - not building client program(s) $PROGS_IF_TSEARCH])
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
AC_MSG_CHECKING(for INADDR_LOOPBACK)
 | 
			
		||||
AC_CACHE_VAL(adns_cv_decl_inaddrloopback,[
 | 
			
		||||
 AC_TRY_COMPILE([
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
#include <netinet/in.h>
 | 
			
		||||
#include <arpa/inet.h>
 | 
			
		||||
 ],[
 | 
			
		||||
  INADDR_LOOPBACK;
 | 
			
		||||
 ],
 | 
			
		||||
 adns_cv_decl_inaddrloopback=yes,
 | 
			
		||||
 adns_cv_decl_inaddrloopback=no)])
 | 
			
		||||
if test "$adns_cv_decl_inaddrloopback" = yes; then
 | 
			
		||||
 AC_MSG_RESULT(found)
 | 
			
		||||
else
 | 
			
		||||
 AC_MSG_RESULT([not in standard headers, urgh...])
 | 
			
		||||
 AC_CHECK_HEADER(rpc/types.h,[
 | 
			
		||||
  AC_DEFINE(HAVEUSE_RPCTYPES_H)
 | 
			
		||||
 ],[
 | 
			
		||||
  AC_MSG_ERROR([cannot find INADDR_LOOPBACK or rpc/types.h])
 | 
			
		||||
 ])
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
ADNS_C_GETFUNC(inet_aton,resolv,[
 | 
			
		||||
 LIBS="-lresolv $LIBS";
 | 
			
		||||
 AC_MSG_WARN([inet_aton is in libresolv, urgh.  Must use -lresolv.])
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
ADNS_C_GCCATTRIB
 | 
			
		||||
 | 
			
		||||
AC_SUBST(WARNS)
 | 
			
		||||
 | 
			
		||||
if test "${GCC-no}" = yes; then
 | 
			
		||||
	WARNS="-Wall -Wmissing-prototypes -Wwrite-strings -Wstrict-prototypes -Wcast-qual -Wpointer-arith"
 | 
			
		||||
else
 | 
			
		||||
	WARNS=
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AC_SUBST(SHLIBCC)
 | 
			
		||||
AC_SUBST(MKSHLIB_1)
 | 
			
		||||
AC_SUBST(MKSHLIB_2)
 | 
			
		||||
AC_SUBST(MKSHLIB_3)
 | 
			
		||||
 | 
			
		||||
AC_SUBST(SHLIBFORLINK)
 | 
			
		||||
AC_SUBST(SHLIBFILE)
 | 
			
		||||
AC_SUBST(SHLIBSONAME)
 | 
			
		||||
 | 
			
		||||
SHLIBFORLINK='libadns.so'
 | 
			
		||||
SHLIBSONAME='$(SHLIBFORLINK).$(MAJOR)'
 | 
			
		||||
SHLIBFILE='$(SHLIBSONAME).$(MINOR)'
 | 
			
		||||
 | 
			
		||||
SHLIBCC='$(CC) $(CFLAGS) -fpic'
 | 
			
		||||
MKSHLIB_1='$(CC) $(LDFLAGS) -shared -Wl,-soname=$(SHLIBSONAME) -o'
 | 
			
		||||
MKSHLIB_2=''
 | 
			
		||||
MKSHLIB_3='-lc'
 | 
			
		||||
 | 
			
		||||
AC_OUTPUT(
 | 
			
		||||
	settings.make Makefile
 | 
			
		||||
	src/Makefile client/Makefile dynamic/Makefile regress/Makefile
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										2
									
								
								adns-0.6/dynamic/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								adns-0.6/dynamic/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
Makefile
 | 
			
		||||
libadns.so.*
 | 
			
		||||
							
								
								
									
										54
									
								
								adns-0.6/dynamic/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								adns-0.6/dynamic/Makefile.in
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,54 @@
 | 
			
		||||
# dynamic/Makefile - dynamic library Makefile
 | 
			
		||||
# 
 | 
			
		||||
#  This file is
 | 
			
		||||
#    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
#
 | 
			
		||||
#  It is part of adns, which is
 | 
			
		||||
#    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
#    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
#  
 | 
			
		||||
#  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
#  it under the terms of the GNU General Public License as published by
 | 
			
		||||
#  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
#  any later version.
 | 
			
		||||
#  
 | 
			
		||||
#  This program is distributed in the hope that it will be useful,
 | 
			
		||||
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
#  GNU General Public License for more details.
 | 
			
		||||
#  
 | 
			
		||||
#  You should have received a copy of the GNU General Public License
 | 
			
		||||
#  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
#  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 | 
			
		||||
srcdir=		@srcdir@
 | 
			
		||||
VPATH=		@srcdir@
 | 
			
		||||
 | 
			
		||||
TARGETS=	$(SHLIBFILE) $(SHLIBSONAME) $(SHLIBFORLINK)
 | 
			
		||||
include		$(srcdir)/../settings.make
 | 
			
		||||
include		$(srcdir)/../src/adns.make
 | 
			
		||||
 | 
			
		||||
ALLOBJS=	$(addsuffix _p.o, $(basename $(LIBOBJS)))
 | 
			
		||||
 | 
			
		||||
install:	$(SHLIBFILE)
 | 
			
		||||
		$(INSTALL_PROGRAM) $(SHLIBFILE) $(lib_dir)/$(SHLIBFILE)
 | 
			
		||||
		ln -sf $(SHLIBFILE) $(lib_dir)/$(SHLIBSONAME)
 | 
			
		||||
 | 
			
		||||
uninstall:
 | 
			
		||||
		rm -f $(lib_dir)/$(SHLIBFILE) $(lib_dir)/$(SHLIBSONAME)
 | 
			
		||||
 | 
			
		||||
$(SHLIBFORLINK):
 | 
			
		||||
		ln -s $(SHLIBSONAME) $(SHLIBFORLINK)
 | 
			
		||||
 | 
			
		||||
$(SHLIBSONAME):
 | 
			
		||||
		ln -s $(SHLIBFILE) $(SHLIBSONAME)
 | 
			
		||||
 | 
			
		||||
$(SHLIBFILE):	$(ALLOBJS)
 | 
			
		||||
		rm -f $@
 | 
			
		||||
		$(MKSHLIB_1) $@ $(MKSHLIB_2) $(ALLOBJS) $(LDLIBS) $(MKSHLIB_3)
 | 
			
		||||
 | 
			
		||||
%_p.o:		$(srcdir)/../src/%.c $(srcdir)/../src/adns.h \
 | 
			
		||||
			$(srcdir)/../src/internal.h $(srcdir)/../src/config.h
 | 
			
		||||
		$(SHLIBCC) -I$(srcdir)/../src -c -o $@ $<
 | 
			
		||||
 | 
			
		||||
$(LIBOBJS):	
 | 
			
		||||
							
								
								
									
										8
									
								
								adns-0.6/regress/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								adns-0.6/regress/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
			
		||||
Makefile
 | 
			
		||||
harness.h
 | 
			
		||||
hcommon.c
 | 
			
		||||
hrecord
 | 
			
		||||
hrecord.c
 | 
			
		||||
hplayback
 | 
			
		||||
hplayback.c
 | 
			
		||||
output-*.*
 | 
			
		||||
							
								
								
									
										65
									
								
								adns-0.6/regress/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								adns-0.6/regress/Makefile.in
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,65 @@
 | 
			
		||||
# regress/Makefile - regression test Makefile
 | 
			
		||||
# 
 | 
			
		||||
#  This file is
 | 
			
		||||
#    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
#
 | 
			
		||||
#  It is part of adns, which is
 | 
			
		||||
#    Copyright (C) 1997-1999 Ian Jackson <ian@davenant.greenend.org.uk>
 | 
			
		||||
#    Copyright (C) 1999 Tony Finch <dot@dotat.at>
 | 
			
		||||
#  
 | 
			
		||||
#  This program is free software; you can redistribute it and/or modify
 | 
			
		||||
#  it under the terms of the GNU General Public License as published by
 | 
			
		||||
#  the Free Software Foundation; either version 2, or (at your option)
 | 
			
		||||
#  any later version.
 | 
			
		||||
#  
 | 
			
		||||
#  This program is distributed in the hope that it will be useful,
 | 
			
		||||
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
#  GNU General Public License for more details.
 | 
			
		||||
#  
 | 
			
		||||
#  You should have received a copy of the GNU General Public License
 | 
			
		||||
#  along with this program; if not, write to the Free Software Foundation,
 | 
			
		||||
#  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
 | 
			
		||||
 | 
			
		||||
srcdir=		@srcdir@
 | 
			
		||||
VPATH=		@srcdir@
 | 
			
		||||
 | 
			
		||||
TARGETS=	hplayback hrecord
 | 
			
		||||
AUTOCSRCS=	harness.h hrecord.c hplayback.c hcommon.c
 | 
			
		||||
include		$(srcdir)/../settings.make
 | 
			
		||||
include		$(srcdir)/../src/adns.make
 | 
			
		||||
 | 
			
		||||
DIRCFLAGS=	-I$(srcdir)/../src
 | 
			
		||||
 | 
			
		||||
HCPPFLAGS:= $(foreach F,			\
 | 
			
		||||
	gettimeofday select poll		\
 | 
			
		||||
	socket fcntl connect close		\
 | 
			
		||||
	sendto recvfrom read write writev	\
 | 
			
		||||
	malloc realloc free exit		\
 | 
			
		||||
, -D$F=H$F)
 | 
			
		||||
 | 
			
		||||
HARNLOBJS=	$(addsuffix _d.o, $(basename $(LIBOBJS)))
 | 
			
		||||
ALLOBJS=	$(HARNLOBJS) dtest.o hrecord.o hplayback.o hcommon.o
 | 
			
		||||
 | 
			
		||||
.PRECIOUS:	$(AUTOCSRCS)
 | 
			
		||||
 | 
			
		||||
check:		$(TARGETS)
 | 
			
		||||
		./checkall
 | 
			
		||||
 | 
			
		||||
all install uninstall:
 | 
			
		||||
 | 
			
		||||
hrecord:	adnstest_c.o hrecord.o hcommon.o $(HARNLOBJS)
 | 
			
		||||
hplayback:	adnstest_c.o hplayback.o hcommon.o $(HARNLOBJS)
 | 
			
		||||
 | 
			
		||||
%_d.o:		$(srcdir)/../src/%.c
 | 
			
		||||
		$(CC) $(HCPPFLAGS) -c -g -o $@ $<
 | 
			
		||||
 | 
			
		||||
%_c.o:		$(srcdir)/../client/%.c
 | 
			
		||||
		$(CC) $(HCPPFLAGS) -I $(srcdir)/../src -c -g -o $@ $<
 | 
			
		||||
 | 
			
		||||
$(ALLOBJS):	$(srcdir)/../src/adns.h $(srcdir)/../src/internal.h harness.h
 | 
			
		||||
 | 
			
		||||
%::	%.m4 hmacros.i4 hsyscalls.i4
 | 
			
		||||
	$(M4) -P $< >$@-a.new
 | 
			
		||||
	sed -e 's/hm_comma/,/g; s/hm_squote/'\''/g; /^[	 ]*$$/d' <$@-a.new >$@-b.new
 | 
			
		||||
	@mv -f $@-b.new $@; rm -f $@-a.new
 | 
			
		||||
							
								
								
									
										9
									
								
								adns-0.6/regress/addcases
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								adns-0.6/regress/addcases
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
# usage: ./addcases <casename> ...
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
for f in "$@"
 | 
			
		||||
do
 | 
			
		||||
	cvs add "case-$f".{sys,out,err}
 | 
			
		||||
done
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-1stservbroken.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-1stservbroken.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										39
									
								
								adns-0.6/regress/case-1stservbroken.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								adns-0.6/regress/case-1stservbroken.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,39 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.2
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
trunc.test.iwj.relativity.greenend.org.uk flags 0 type 12 PTR(raw) submitted
 | 
			
		||||
adns warning: datagram receive error: Connection refused
 | 
			
		||||
adns debug: TCP connected (NS=172.18.45.2)
 | 
			
		||||
adns warning: TCP connection failed: read: Broken pipe (NS=172.18.45.2)
 | 
			
		||||
adns debug: TCP connected (NS=172.18.45.6)
 | 
			
		||||
trunc.test.iwj.relativity.greenend.org.uk flags 0 type PTR(raw): OK; nrrs=30; cname=$; owner=$; ttl=60
 | 
			
		||||
 long.domain.to.force.truncation.0.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.1.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.2.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.3.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.4.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.5.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.6.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.7.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.8.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.9.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.10.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.11.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.12.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.13.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.14.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.15.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.16.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.17.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.18.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.19.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.20.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.21.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.22.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.23.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.24.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.25.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.26.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.27.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.28.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.29.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										180
									
								
								adns-0.6/regress/case-1stservbroken.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										180
									
								
								adns-0.6/regress/case-1stservbroken.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,180 @@
 | 
			
		||||
1stservbroken
 | 
			
		||||
:12 trunc.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 start 940102940.701451
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000612
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000605
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000573
 | 
			
		||||
 sendto fd=4 addr=172.18.45.2:53
 | 
			
		||||
     311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001.
 | 
			
		||||
 sendto=59
 | 
			
		||||
 +0.006374
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.993626
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.001402
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=ECONNREFUSED
 | 
			
		||||
 +0.000666
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.991558
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.-02914
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001.
 | 
			
		||||
 sendto=59
 | 
			
		||||
 +0.002262
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.997738
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.000973
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8380 00010008 00000000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00
 | 
			
		||||
     01000000 3c004704 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275
 | 
			
		||||
     6e636174 696f6e01 30047465 73740369 776a0a72 656c6174 69766974 79086772
 | 
			
		||||
     65656e65 6e64036f 72670275 6b00c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0131 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0132 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0133 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0134 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0135 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0136 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0137 c069.
 | 
			
		||||
 +0.004340
 | 
			
		||||
 socket type=SOCK_STREAM
 | 
			
		||||
 socket=5
 | 
			
		||||
 +0.005126
 | 
			
		||||
 fcntl fd=5 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000742
 | 
			
		||||
 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000604
 | 
			
		||||
 connect fd=5 addr=172.18.45.2:53
 | 
			
		||||
 connect=EINPROGRESS
 | 
			
		||||
 +0.000797
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000829
 | 
			
		||||
 select max=6 rfds=[4] wfds=[5] efds=[] to=13.987562
 | 
			
		||||
 select=1 rfds=[] wfds=[5] efds=[]
 | 
			
		||||
 +0.001172
 | 
			
		||||
 read fd=5 buflen=1
 | 
			
		||||
 read=OK
 | 
			
		||||
     .
 | 
			
		||||
 +0.001161
 | 
			
		||||
 write fd=5
 | 
			
		||||
     003b311f 01000001 00000000 00000574 72756e63 04746573 74036977 6a0a7265
 | 
			
		||||
     6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000c00 01.
 | 
			
		||||
 write=61
 | 
			
		||||
 +0.003598
 | 
			
		||||
 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.981631
 | 
			
		||||
 select=1 rfds=[5] wfds=[] efds=[]
 | 
			
		||||
 +0.001370
 | 
			
		||||
 read fd=5 buflen=2
 | 
			
		||||
 read=EPIPE
 | 
			
		||||
 +0.001699
 | 
			
		||||
 close fd=5
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000687
 | 
			
		||||
 socket type=SOCK_STREAM
 | 
			
		||||
 socket=5
 | 
			
		||||
 +0.004866
 | 
			
		||||
 fcntl fd=5 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000611
 | 
			
		||||
 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000574
 | 
			
		||||
 connect fd=5 addr=172.18.45.6:53
 | 
			
		||||
 connect=EINPROGRESS
 | 
			
		||||
 +0.001082
 | 
			
		||||
 select max=6 rfds=[4] wfds=[5] efds=[] to=14.000000
 | 
			
		||||
 select=1 rfds=[] wfds=[5] efds=[]
 | 
			
		||||
 +0.001011
 | 
			
		||||
 read fd=5 buflen=1
 | 
			
		||||
 read=EAGAIN
 | 
			
		||||
 +0.000595
 | 
			
		||||
 write fd=5
 | 
			
		||||
     003b311f 01000001 00000000 00000574 72756e63 04746573 74036977 6a0a7265
 | 
			
		||||
     6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000c00 01.
 | 
			
		||||
 write=61
 | 
			
		||||
 +0.005087
 | 
			
		||||
 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.964049
 | 
			
		||||
 select=1 rfds=[5] wfds=[] efds=[]
 | 
			
		||||
 +0.001295
 | 
			
		||||
 read fd=5 buflen=2
 | 
			
		||||
 read=OK
 | 
			
		||||
     0638.
 | 
			
		||||
 +0.000649
 | 
			
		||||
 read fd=5 buflen=1592
 | 
			
		||||
 read=OK
 | 
			
		||||
     311f8580 0001001e 00010001 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00
 | 
			
		||||
     01000000 3c004704 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275
 | 
			
		||||
     6e636174 696f6e01 30047465 73740369 776a0a72 656c6174 69766974 79086772
 | 
			
		||||
     65656e65 6e64036f 72670275 6b00c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0131 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0132 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0133 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0134 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0135 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0136 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0137 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0138 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0139 c069c00c
 | 
			
		||||
     000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0231 30c069c0 0c000c00 01000000 3c002504 6c6f6e67
 | 
			
		||||
     06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3131c069
 | 
			
		||||
     c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263
 | 
			
		||||
     650a7472 756e6361 74696f6e 023132c0 69c00c00 0c000100 00003c00 25046c6f
 | 
			
		||||
     6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023133
 | 
			
		||||
     c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f
 | 
			
		||||
     7263650a 7472756e 63617469 6f6e0231 34c069c0 0c000c00 01000000 3c002504
 | 
			
		||||
     6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02
 | 
			
		||||
     3135c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05
 | 
			
		||||
     666f7263 650a7472 756e6361 74696f6e 023136c0 69c00c00 0c000100 00003c00
 | 
			
		||||
     25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f
 | 
			
		||||
     6e023137 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274
 | 
			
		||||
     6f05666f 7263650a 7472756e 63617469 6f6e0231 38c069c0 0c000c00 01000000
 | 
			
		||||
     3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174
 | 
			
		||||
     696f6e02 3139c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e
 | 
			
		||||
     02746f05 666f7263 650a7472 756e6361 74696f6e 023230c0 69c00c00 0c000100
 | 
			
		||||
     00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63
 | 
			
		||||
     6174696f 6e023231 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61
 | 
			
		||||
     696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0232 32c069c0 0c000c00
 | 
			
		||||
     01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275
 | 
			
		||||
     6e636174 696f6e02 3233c069 c00c000c 00010000 003c0025 046c6f6e 6706646f
 | 
			
		||||
     6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023234c0 69c00c00
 | 
			
		||||
     0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74
 | 
			
		||||
     72756e63 6174696f 6e023235 c069c00c 000c0001 0000003c 0025046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0232 36c069c0
 | 
			
		||||
     0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365
 | 
			
		||||
     0a747275 6e636174 696f6e02 3237c069 c00c000c 00010000 003c0025 046c6f6e
 | 
			
		||||
     6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023238c0
 | 
			
		||||
     69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72
 | 
			
		||||
     63650a74 72756e63 6174696f 6e023239 c069c069 00020001 0000003c 0006036e
 | 
			
		||||
     7330c072 036e7330 c0720001 00010001 51800004 ac122d06.
 | 
			
		||||
 +0.009426
 | 
			
		||||
 read fd=5 buflen=1594
 | 
			
		||||
 read=EAGAIN
 | 
			
		||||
 +0.033394
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.054384
 | 
			
		||||
 close fd=5
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000977
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-1stservtotcp.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-1stservtotcp.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										37
									
								
								adns-0.6/regress/case-1stservtotcp.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								adns-0.6/regress/case-1stservtotcp.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
			
		||||
adns debug: using nameserver 10.0.0.1
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
trunc.test.iwj.relativity.greenend.org.uk flags 0 type 12 PTR(raw) submitted
 | 
			
		||||
adns warning: TCP connection failed: unable to make connection: timed out (NS=10.0.0.1)
 | 
			
		||||
adns debug: TCP connected (NS=172.18.45.6)
 | 
			
		||||
trunc.test.iwj.relativity.greenend.org.uk flags 0 type PTR(raw): OK; nrrs=30; cname=$; owner=$; ttl=59
 | 
			
		||||
 long.domain.to.force.truncation.0.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.1.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.2.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.3.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.4.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.5.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.6.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.7.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.8.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.9.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.10.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.11.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.12.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.13.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.14.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.15.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.16.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.17.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.18.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.19.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.20.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.21.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.22.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.23.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.24.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.25.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.26.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.27.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.28.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.29.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										159
									
								
								adns-0.6/regress/case-1stservtotcp.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										159
									
								
								adns-0.6/regress/case-1stservtotcp.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,159 @@
 | 
			
		||||
1stservto
 | 
			
		||||
:12 trunc.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 start 940100259.965940
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000698
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000611
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000582
 | 
			
		||||
 sendto fd=4 addr=10.0.0.1:53
 | 
			
		||||
     311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001.
 | 
			
		||||
 sendto=59
 | 
			
		||||
 +0.006634
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.993366
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.-05507
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001.
 | 
			
		||||
 sendto=59
 | 
			
		||||
 +0.002310
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.997690
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.000996
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8380 00010008 00000000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00
 | 
			
		||||
     01000000 3c004704 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275
 | 
			
		||||
     6e636174 696f6e01 30047465 73740369 776a0a72 656c6174 69766974 79086772
 | 
			
		||||
     65656e65 6e64036f 72670275 6b00c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0131 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0132 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0133 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0134 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0135 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0136 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0137 c069.
 | 
			
		||||
 +0.004379
 | 
			
		||||
 socket type=SOCK_STREAM
 | 
			
		||||
 socket=5
 | 
			
		||||
 +0.009970
 | 
			
		||||
 fcntl fd=5 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000612
 | 
			
		||||
 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000602
 | 
			
		||||
 connect fd=5 addr=10.0.0.1:53
 | 
			
		||||
 connect=EINPROGRESS
 | 
			
		||||
 +0.000850
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000646
 | 
			
		||||
 select max=6 rfds=[4] wfds=[5] efds=[] to=13.982941
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +14.-10600
 | 
			
		||||
 close fd=5
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000750
 | 
			
		||||
 socket type=SOCK_STREAM
 | 
			
		||||
 socket=5
 | 
			
		||||
 +0.004957
 | 
			
		||||
 fcntl fd=5 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000593
 | 
			
		||||
 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000582
 | 
			
		||||
 connect fd=5 addr=172.18.45.6:53
 | 
			
		||||
 connect=EINPROGRESS
 | 
			
		||||
 +0.001140
 | 
			
		||||
 select max=6 rfds=[4] wfds=[5] efds=[] to=13.991978
 | 
			
		||||
 select=1 rfds=[] wfds=[5] efds=[]
 | 
			
		||||
 +0.001038
 | 
			
		||||
 read fd=5 buflen=1
 | 
			
		||||
 read=EAGAIN
 | 
			
		||||
 +0.001203
 | 
			
		||||
 write fd=5
 | 
			
		||||
     003b311f 01000001 00000000 00000574 72756e63 04746573 74036977 6a0a7265
 | 
			
		||||
     6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000c00 01.
 | 
			
		||||
 write=61
 | 
			
		||||
 +0.007301
 | 
			
		||||
 select max=6 rfds=[4,5] wfds=[] efds=[5] to=15.975977
 | 
			
		||||
 select=1 rfds=[5] wfds=[] efds=[]
 | 
			
		||||
 +0.001431
 | 
			
		||||
 read fd=5 buflen=2
 | 
			
		||||
 read=OK
 | 
			
		||||
     0638.
 | 
			
		||||
 +0.001841
 | 
			
		||||
 read fd=5 buflen=1592
 | 
			
		||||
 read=OK
 | 
			
		||||
     311f8580 0001001e 00010001 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00
 | 
			
		||||
     01000000 3c004704 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275
 | 
			
		||||
     6e636174 696f6e01 30047465 73740369 776a0a72 656c6174 69766974 79086772
 | 
			
		||||
     65656e65 6e64036f 72670275 6b00c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0131 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0132 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0133 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0134 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0135 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0136 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0137 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0138 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0139 c069c00c
 | 
			
		||||
     000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0231 30c069c0 0c000c00 01000000 3c002504 6c6f6e67
 | 
			
		||||
     06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3131c069
 | 
			
		||||
     c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263
 | 
			
		||||
     650a7472 756e6361 74696f6e 023132c0 69c00c00 0c000100 00003c00 25046c6f
 | 
			
		||||
     6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023133
 | 
			
		||||
     c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f
 | 
			
		||||
     7263650a 7472756e 63617469 6f6e0231 34c069c0 0c000c00 01000000 3c002504
 | 
			
		||||
     6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02
 | 
			
		||||
     3135c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05
 | 
			
		||||
     666f7263 650a7472 756e6361 74696f6e 023136c0 69c00c00 0c000100 00003c00
 | 
			
		||||
     25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f
 | 
			
		||||
     6e023137 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274
 | 
			
		||||
     6f05666f 7263650a 7472756e 63617469 6f6e0231 38c069c0 0c000c00 01000000
 | 
			
		||||
     3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174
 | 
			
		||||
     696f6e02 3139c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e
 | 
			
		||||
     02746f05 666f7263 650a7472 756e6361 74696f6e 023230c0 69c00c00 0c000100
 | 
			
		||||
     00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63
 | 
			
		||||
     6174696f 6e023231 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61
 | 
			
		||||
     696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0232 32c069c0 0c000c00
 | 
			
		||||
     01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275
 | 
			
		||||
     6e636174 696f6e02 3233c069 c00c000c 00010000 003c0025 046c6f6e 6706646f
 | 
			
		||||
     6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023234c0 69c00c00
 | 
			
		||||
     0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74
 | 
			
		||||
     72756e63 6174696f 6e023235 c069c00c 000c0001 0000003c 0025046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0232 36c069c0
 | 
			
		||||
     0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365
 | 
			
		||||
     0a747275 6e636174 696f6e02 3237c069 c00c000c 00010000 003c0025 046c6f6e
 | 
			
		||||
     6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023238c0
 | 
			
		||||
     69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72
 | 
			
		||||
     63650a74 72756e63 6174696f 6e023239 c069c069 00020001 0000003c 0006036e
 | 
			
		||||
     7330c072 036e7330 c0720001 00010001 51800004 ac122d06.
 | 
			
		||||
 +1.-990207
 | 
			
		||||
 read fd=5 buflen=1594
 | 
			
		||||
 read=EAGAIN
 | 
			
		||||
 +0.040526
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.065240
 | 
			
		||||
 close fd=5
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000982
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-2ndservok.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-2ndservok.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										6
									
								
								adns-0.6/regress/case-2ndservok.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								adns-0.6/regress/case-2ndservok.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.36
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
davenant.relativity.greenend.org.uk flags 0 type 1 A(-) submitted
 | 
			
		||||
davenant.relativity.greenend.org.uk flags 0 type A(-): OK; nrrs=1; cname=$; owner=$; ttl=86400
 | 
			
		||||
 172.18.45.6
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										47
									
								
								adns-0.6/regress/case-2ndservok.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								adns-0.6/regress/case-2ndservok.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
			
		||||
2ndserver
 | 
			
		||||
:1 davenant.relativity.greenend.org.uk
 | 
			
		||||
 start 940100095.012145
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000173
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000053
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000042
 | 
			
		||||
 sendto fd=4 addr=172.18.45.36:53
 | 
			
		||||
     311f0100 00010000 00000000 08646176 656e616e 740a7265 6c617469 76697479
 | 
			
		||||
     08677265 656e656e 64036f72 6702756b 00000100 01.
 | 
			
		||||
 sendto=53
 | 
			
		||||
 +0.001041
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998959
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.-04931
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=0.003890
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +0.009910
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 08646176 656e616e 740a7265 6c617469 76697479
 | 
			
		||||
     08677265 656e656e 64036f72 6702756b 00000100 01.
 | 
			
		||||
 sendto=53
 | 
			
		||||
 +0.000863
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.999137
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.000126
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8580 00010001 00030003 08646176 656e616e 740a7265 6c617469 76697479
 | 
			
		||||
     08677265 656e656e 64036f72 6702756b 00000100 01c00c00 01000100 01518000
 | 
			
		||||
     04ac122d 060a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b
 | 
			
		||||
     00000200 01000151 80000603 6e7330c0 45c04500 02000100 01518000 06036e73
 | 
			
		||||
     31c045c0 45000200 01000151 80000603 6e7332c0 45c06b00 01000100 01518000
 | 
			
		||||
     04ac122d 06c07d00 01000100 01518000 04ac122d 41c08f00 01000100 01518000
 | 
			
		||||
     04ac122d 01.
 | 
			
		||||
 +0.001026
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000423
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000435
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-2ndservtcp.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-2ndservtcp.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										37
									
								
								adns-0.6/regress/case-2ndservtcp.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								adns-0.6/regress/case-2ndservtcp.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.36
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
trunc.test.iwj.relativity.greenend.org.uk flags 0 type 12 PTR(raw) submitted
 | 
			
		||||
adns warning: TCP connection failed: connect/read: No route to host (NS=172.18.45.36)
 | 
			
		||||
adns debug: TCP connected (NS=172.18.45.6)
 | 
			
		||||
trunc.test.iwj.relativity.greenend.org.uk flags 0 type PTR(raw): OK; nrrs=30; cname=$; owner=$; ttl=60
 | 
			
		||||
 long.domain.to.force.truncation.0.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.1.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.2.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.3.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.4.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.5.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.6.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.7.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.8.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.9.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.10.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.11.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.12.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.13.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.14.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.15.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.16.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.17.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.18.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.19.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.20.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.21.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.22.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.23.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.24.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.25.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.26.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.27.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.28.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 long.domain.to.force.truncation.29.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										165
									
								
								adns-0.6/regress/case-2ndservtcp.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										165
									
								
								adns-0.6/regress/case-2ndservtcp.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,165 @@
 | 
			
		||||
2ndserver
 | 
			
		||||
:12 trunc.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 start 940100083.268555
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000169
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000053
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000040
 | 
			
		||||
 sendto fd=4 addr=172.18.45.36:53
 | 
			
		||||
     311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001.
 | 
			
		||||
 sendto=59
 | 
			
		||||
 +0.001167
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998833
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.-01463
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=0.000296
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +0.009912
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001.
 | 
			
		||||
 sendto=59
 | 
			
		||||
 +0.001357
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998643
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.000126
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8380 00010008 00000000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00
 | 
			
		||||
     01000000 3c004704 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275
 | 
			
		||||
     6e636174 696f6e01 30047465 73740369 776a0a72 656c6174 69766974 79086772
 | 
			
		||||
     65656e65 6e64036f 72670275 6b00c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0131 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0132 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0133 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0134 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0135 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0136 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0137 c069.
 | 
			
		||||
 +0.002022
 | 
			
		||||
 socket type=SOCK_STREAM
 | 
			
		||||
 socket=5
 | 
			
		||||
 +0.000905
 | 
			
		||||
 fcntl fd=5 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000041
 | 
			
		||||
 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000038
 | 
			
		||||
 connect fd=5 addr=172.18.45.36:53
 | 
			
		||||
 connect=EINPROGRESS
 | 
			
		||||
 +0.000162
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000062
 | 
			
		||||
 select max=6 rfds=[4] wfds=[5] efds=[] to=13.996770
 | 
			
		||||
 select=1 rfds=[] wfds=[5] efds=[]
 | 
			
		||||
 +1.-14443
 | 
			
		||||
 read fd=5 buflen=1
 | 
			
		||||
 read=EHOSTUNREACH
 | 
			
		||||
 +0.000193
 | 
			
		||||
 close fd=5
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000146
 | 
			
		||||
 socket type=SOCK_STREAM
 | 
			
		||||
 socket=5
 | 
			
		||||
 +0.000678
 | 
			
		||||
 fcntl fd=5 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000042
 | 
			
		||||
 fcntl fd=5 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000039
 | 
			
		||||
 connect fd=5 addr=172.18.45.6:53
 | 
			
		||||
 connect=EINPROGRESS
 | 
			
		||||
 +0.000455
 | 
			
		||||
 select max=6 rfds=[4] wfds=[5] efds=[] to=14.000000
 | 
			
		||||
 select=1 rfds=[] wfds=[5] efds=[]
 | 
			
		||||
 +0.000135
 | 
			
		||||
 read fd=5 buflen=1
 | 
			
		||||
 read=EAGAIN
 | 
			
		||||
 +0.000062
 | 
			
		||||
 write fd=5
 | 
			
		||||
     003b311f 01000001 00000000 00000574 72756e63 04746573 74036977 6a0a7265
 | 
			
		||||
     6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000c00 01.
 | 
			
		||||
 write=61
 | 
			
		||||
 +0.004082
 | 
			
		||||
 select max=6 rfds=[4,5] wfds=[] efds=[5] to=29.005381
 | 
			
		||||
 select=1 rfds=[5] wfds=[] efds=[]
 | 
			
		||||
 +0.000149
 | 
			
		||||
 read fd=5 buflen=2
 | 
			
		||||
 read=OK
 | 
			
		||||
     0638.
 | 
			
		||||
 +0.000210
 | 
			
		||||
 read fd=5 buflen=1592
 | 
			
		||||
 read=OK
 | 
			
		||||
     311f8580 0001001e 00010001 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 0c0001c0 0c000c00
 | 
			
		||||
     01000000 3c004704 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275
 | 
			
		||||
     6e636174 696f6e01 30047465 73740369 776a0a72 656c6174 69766974 79086772
 | 
			
		||||
     65656e65 6e64036f 72670275 6b00c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0131 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0132 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0133 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0134 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0135 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0136 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0137 c069c00c
 | 
			
		||||
     000c0001 0000003c 0024046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0138 c069c00c 000c0001 0000003c 0024046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0139 c069c00c
 | 
			
		||||
     000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f 7263650a
 | 
			
		||||
     7472756e 63617469 6f6e0231 30c069c0 0c000c00 01000000 3c002504 6c6f6e67
 | 
			
		||||
     06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02 3131c069
 | 
			
		||||
     c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05 666f7263
 | 
			
		||||
     650a7472 756e6361 74696f6e 023132c0 69c00c00 0c000100 00003c00 25046c6f
 | 
			
		||||
     6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f 6e023133
 | 
			
		||||
     c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274 6f05666f
 | 
			
		||||
     7263650a 7472756e 63617469 6f6e0231 34c069c0 0c000c00 01000000 3c002504
 | 
			
		||||
     6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174 696f6e02
 | 
			
		||||
     3135c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e 02746f05
 | 
			
		||||
     666f7263 650a7472 756e6361 74696f6e 023136c0 69c00c00 0c000100 00003c00
 | 
			
		||||
     25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63 6174696f
 | 
			
		||||
     6e023137 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61 696e0274
 | 
			
		||||
     6f05666f 7263650a 7472756e 63617469 6f6e0231 38c069c0 0c000c00 01000000
 | 
			
		||||
     3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275 6e636174
 | 
			
		||||
     696f6e02 3139c069 c00c000c 00010000 003c0025 046c6f6e 6706646f 6d61696e
 | 
			
		||||
     02746f05 666f7263 650a7472 756e6361 74696f6e 023230c0 69c00c00 0c000100
 | 
			
		||||
     00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74 72756e63
 | 
			
		||||
     6174696f 6e023231 c069c00c 000c0001 0000003c 0025046c 6f6e6706 646f6d61
 | 
			
		||||
     696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0232 32c069c0 0c000c00
 | 
			
		||||
     01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365 0a747275
 | 
			
		||||
     6e636174 696f6e02 3233c069 c00c000c 00010000 003c0025 046c6f6e 6706646f
 | 
			
		||||
     6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023234c0 69c00c00
 | 
			
		||||
     0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72 63650a74
 | 
			
		||||
     72756e63 6174696f 6e023235 c069c00c 000c0001 0000003c 0025046c 6f6e6706
 | 
			
		||||
     646f6d61 696e0274 6f05666f 7263650a 7472756e 63617469 6f6e0232 36c069c0
 | 
			
		||||
     0c000c00 01000000 3c002504 6c6f6e67 06646f6d 61696e02 746f0566 6f726365
 | 
			
		||||
     0a747275 6e636174 696f6e02 3237c069 c00c000c 00010000 003c0025 046c6f6e
 | 
			
		||||
     6706646f 6d61696e 02746f05 666f7263 650a7472 756e6361 74696f6e 023238c0
 | 
			
		||||
     69c00c00 0c000100 00003c00 25046c6f 6e670664 6f6d6169 6e02746f 05666f72
 | 
			
		||||
     63650a74 72756e63 6174696f 6e023239 c069c069 00020001 0000003c 0006036e
 | 
			
		||||
     7330c072 036e7330 c0720001 00010001 51800004 ac122d06.
 | 
			
		||||
 +0.006071
 | 
			
		||||
 read fd=5 buflen=1594
 | 
			
		||||
 read=EAGAIN
 | 
			
		||||
 +0.005347
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.004675
 | 
			
		||||
 close fd=5
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000433
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-abbrev.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-abbrev.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										40
									
								
								adns-0.6/regress/case-abbrev.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								adns-0.6/regress/case-abbrev.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
greenend.org.uk flags 0 type 1 A(-) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 2 NS(raw) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 5 CNAME(-) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 6 SOA(raw) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 12 PTR(raw) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 13 HINFO(-) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 15 MX(raw) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 16 TXT(-) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 17 RP(raw) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 65537 A(addr) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 65538 NS(+addr) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 65548 PTR(checked) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 65551 MX(+addr) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 131078 SOA(822) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 131089 RP(822) submitted
 | 
			
		||||
greenend.org.uk flags 0 type A(-) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
greenend.org.uk flags 0 type NS(raw) ownflags=a: ok; nrrs=2; cname=$; owner=$; ttl=86400
 | 
			
		||||
 ns1.relativity.greenend.org.uk
 | 
			
		||||
 ns0.relativity.greenend.org.uk
 | 
			
		||||
greenend.org.uk flags 0 type CNAME(-) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
greenend.org.uk flags 0 type SOA(raw) ownflags=a: ok; nrrs=1; cname=$; owner=$; ttl=86400
 | 
			
		||||
 ns.chiark.greenend.org.uk hostmaster.greenend.org.uk 1999061300 28800 7200 604800 86400
 | 
			
		||||
greenend.org.uk flags 0 type PTR(raw) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
greenend.org.uk flags 0 type HINFO(-) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
greenend.org.uk flags 0 type MX(raw) ownflags=a: ok; nrrs=1; cname=$; owner=$; ttl=86400
 | 
			
		||||
 10 chiark.greenend.org.uk
 | 
			
		||||
greenend.org.uk flags 0 type TXT(-) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
greenend.org.uk flags 0 type RP(raw) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
greenend.org.uk flags 0 type A(addr) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
greenend.org.uk flags 0 type NS(+addr) ownflags=a: ok; nrrs=2; cname=$; owner=$; ttl=86400
 | 
			
		||||
 ns0.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.6 )
 | 
			
		||||
 ns1.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.65 )
 | 
			
		||||
greenend.org.uk flags 0 type PTR(checked) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
greenend.org.uk flags 0 type MX(+addr) ownflags=a: ok; nrrs=1; cname=$; owner=$; ttl=86400
 | 
			
		||||
 10 chiark.greenend.org.uk ok 0 ok "OK" ( INET 195.224.76.132 )
 | 
			
		||||
greenend.org.uk flags 0 type SOA(822) ownflags=a: ok; nrrs=1; cname=$; owner=$; ttl=86400
 | 
			
		||||
 ns.chiark.greenend.org.uk hostmaster@greenend.org.uk 1999061300 28800 7200 604800 86400
 | 
			
		||||
greenend.org.uk flags 0 type RP(822) ownflags=a: nodata; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										282
									
								
								adns-0.6/regress/case-abbrev.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										282
									
								
								adns-0.6/regress/case-abbrev.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,282 @@
 | 
			
		||||
default
 | 
			
		||||
,a/greenend.org.uk
 | 
			
		||||
 start 929580078.542974
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000202
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000086
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000061
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000623
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31200100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000425
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31210100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000500
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000371
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31220100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000369
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31230100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000369
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31240100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000d00
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000414
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31250100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000371
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31260100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001000
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000368
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000368
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000100
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000367
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31290100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000200
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000367
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312a0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000c00
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000366
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312b0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000378
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312c0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00000600
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000391
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 08677265 656e656e 64036f72 6702756b 00001100
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=33
 | 
			
		||||
 +0.000467
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.993986
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.005183
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00000100
 | 
			
		||||
     01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61
 | 
			
		||||
     73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180.
 | 
			
		||||
 +0.000588
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000147
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.988691
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.004348
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31208580 00010002 00000002 08677265 656e656e 64036f72 6702756b 00000200
 | 
			
		||||
     01c00c00 02000100 01518000 11036e73 310a7265 6c617469 76697479 c00cc00c
 | 
			
		||||
     00020001 00015180 0006036e 7330c031 c02d0001 00010001 51800004 ac122d41
 | 
			
		||||
     c04a0001 00010001 51800004 ac122d06.
 | 
			
		||||
 +0.000642
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000247
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.983879
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.002737
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31218580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00000500
 | 
			
		||||
     01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61
 | 
			
		||||
     73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180.
 | 
			
		||||
 +0.000541
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000099
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.980873
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.005000
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31228580 00010001 00020002 08677265 656e656e 64036f72 6702756b 00000600
 | 
			
		||||
     01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61
 | 
			
		||||
     73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180c00c 00020001
 | 
			
		||||
     00015180 0011036e 73310a72 656c6174 69766974 79c00cc0 0c000200 01000151
 | 
			
		||||
     80000603 6e7330c0 6ac06600 01000100 01518000 04ac122d 41c08300 01000100
 | 
			
		||||
     01518000 04ac122d 06.
 | 
			
		||||
 +0.000913
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000195
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.975134
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.002529
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31238580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00000c00
 | 
			
		||||
     01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61
 | 
			
		||||
     73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180.
 | 
			
		||||
 +0.000541
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000100
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.972333
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.003175
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31248580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00000d00
 | 
			
		||||
     01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61
 | 
			
		||||
     73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180.
 | 
			
		||||
 +0.000538
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000122
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.968912
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.005109
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31258580 00010001 00020003 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01c00c00 0f000100 01518000 0b000a06 63686961 726bc00c c00c0002 00010001
 | 
			
		||||
     51800011 036e7331 0a72656c 61746976 697479c0 0cc00c00 02000100 01518000
 | 
			
		||||
     06036e73 30c048c0 2f000100 01000151 800004c3 e04c84c0 44000100 01000151
 | 
			
		||||
     800004ac 122d41c0 61000100 01000151 800004ac 122d06.
 | 
			
		||||
 +0.000826
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000173
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.963175
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.002746
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31268580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00001000
 | 
			
		||||
     01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61
 | 
			
		||||
     73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180.
 | 
			
		||||
 +0.000539
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000127
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.960131
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.003161
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31278580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00001100
 | 
			
		||||
     01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61
 | 
			
		||||
     73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180.
 | 
			
		||||
 +0.000537
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000098
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.956703
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.003055
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31288580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00000100
 | 
			
		||||
     01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61
 | 
			
		||||
     73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180.
 | 
			
		||||
 +0.000537
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000126
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.953352
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.004322
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31298580 00010002 00000002 08677265 656e656e 64036f72 6702756b 00000200
 | 
			
		||||
     01c00c00 02000100 01518000 11036e73 300a7265 6c617469 76697479 c00cc00c
 | 
			
		||||
     00020001 00015180 0006036e 7331c031 c02d0001 00010001 51800004 ac122d06
 | 
			
		||||
     c04a0001 00010001 51800004 ac122d41.
 | 
			
		||||
 +0.000638
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000268
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.948491
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.002741
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312a8580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00000c00
 | 
			
		||||
     01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61
 | 
			
		||||
     73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180.
 | 
			
		||||
 +0.000540
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000129
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.945447
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.005215
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312b8580 00010001 00020003 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01c00c00 0f000100 01518000 0b000a06 63686961 726bc00c c00c0002 00010001
 | 
			
		||||
     51800011 036e7330 0a72656c 61746976 697479c0 0cc00c00 02000100 01518000
 | 
			
		||||
     06036e73 31c048c0 2f000100 01000151 800004c3 e04c84c0 44000100 01000151
 | 
			
		||||
     800004ac 122d06c0 61000100 01000151 800004ac 122d41.
 | 
			
		||||
 +0.000822
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000197
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.939591
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.004484
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312c8580 00010001 00020002 08677265 656e656e 64036f72 6702756b 00000600
 | 
			
		||||
     01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61
 | 
			
		||||
     73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180c00c 00020001
 | 
			
		||||
     00015180 0011036e 73300a72 656c6174 69766974 79c00cc0 0c000200 01000151
 | 
			
		||||
     80000603 6e7331c0 6ac06600 01000100 01518000 04ac122d 06c08300 01000100
 | 
			
		||||
     01518000 04ac122d 41.
 | 
			
		||||
 +0.000910
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000223
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.934365
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.002704
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312d8580 00010000 00010000 08677265 656e656e 64036f72 6702756b 00001100
 | 
			
		||||
     01c00c00 06000100 01518000 2d026e73 06636869 61726bc0 0c0a686f 73746d61
 | 
			
		||||
     73746572 c00c7727 41340000 70800000 1c200009 3a800001 5180.
 | 
			
		||||
 +0.000537
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000099
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000153
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-abbrevto.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-abbrevto.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										32
									
								
								adns-0.6/regress/case-abbrevto.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								adns-0.6/regress/case-abbrevto.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.36
 | 
			
		||||
greenend.org.uk flags 0 type 1 A(-) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 2 NS(raw) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 5 CNAME(-) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 6 SOA(raw) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 12 PTR(raw) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 13 HINFO(-) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 15 MX(raw) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 16 TXT(-) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 17 RP(raw) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 65537 A(addr) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 65538 NS(+addr) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 65548 PTR(checked) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 65551 MX(+addr) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 131078 SOA(822) submitted
 | 
			
		||||
greenend.org.uk flags 0 type 131089 RP(822) submitted
 | 
			
		||||
greenend.org.uk flags 0 type A(-) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type NS(raw) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type CNAME(-) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type SOA(raw) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type PTR(raw) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type HINFO(-) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type MX(raw) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type TXT(-) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type RP(raw) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type A(addr) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type NS(+addr) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type PTR(checked) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type MX(+addr) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type SOA(822) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
greenend.org.uk flags 0 type RP(822) ownflags=a: timeout; nrrs=0; cname=$; owner=$; ttl=604770
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										1236
									
								
								adns-0.6/regress/case-abbrevto.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1236
									
								
								adns-0.6/regress/case-abbrevto.sys
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										0
									
								
								adns-0.6/regress/case-brokenmail.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-brokenmail.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										38
									
								
								adns-0.6/regress/case-brokenmail.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								adns-0.6/regress/case-brokenmail.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,38 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
broken-mail.test.iwj.relativity.greenend.org.uk. flags 0 type 15 MX(raw) submitted
 | 
			
		||||
broken-mail.test.iwj.relativity.greenend.org.uk. flags 0 type 65551 MX(+addr) submitted
 | 
			
		||||
broken-mail.test.iwj.relativity.greenend.org.uk. flags 256 type 15 MX(raw) submitted
 | 
			
		||||
broken-mail.test.iwj.relativity.greenend.org.uk. flags 256 type 65551 MX(+addr) submitted
 | 
			
		||||
broken-mail.test.iwj.relativity.greenend.org.uk. flags 260 type 15 MX(raw) submitted
 | 
			
		||||
broken-mail.test.iwj.relativity.greenend.org.uk. flags 260 type 65551 MX(+addr) submitted
 | 
			
		||||
broken-mail.test.iwj.relativity.greenend.org.uk. flags 0 type MX(raw): OK; nrrs=4; cname=$; owner=$; ttl=60
 | 
			
		||||
 10 manyaddrs.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 20 host.broken-delg.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 30 172.18.45.36
 | 
			
		||||
 40 cname-ptr.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
broken-mail.test.iwj.relativity.greenend.org.uk. flags 256 type MX(raw): OK; nrrs=4; cname=$; owner=$; ttl=60
 | 
			
		||||
 10 manyaddrs.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 20 host.broken-delg.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 30 172.18.45.36
 | 
			
		||||
 40 cname-ptr.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
broken-mail.test.iwj.relativity.greenend.org.uk. flags 260 type MX(raw): OK; nrrs=4; cname=$; owner=broken-mail.test.iwj.relativity.greenend.org.uk; ttl=60
 | 
			
		||||
 10 manyaddrs.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 20 host.broken-delg.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 30 172.18.45.36
 | 
			
		||||
 40 cname-ptr.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
broken-mail.test.iwj.relativity.greenend.org.uk. flags 0 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=30
 | 
			
		||||
 10 manyaddrs.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 127.0.0.1 INET 172.18.45.6 INET 172.18.45.1 INET 172.18.45.35 )
 | 
			
		||||
 20 host.broken-delg.test.iwj.relativity.greenend.org.uk remotefail 30 timeout "DNS query timed out" ?
 | 
			
		||||
 30 172.18.45.36 permfail 300 nxdomain "No such domain" ( )
 | 
			
		||||
 40 cname-ptr.test.iwj.relativity.greenend.org.uk misconfig 101 prohibitedcname "DNS alias found where canonical name wanted" ( )
 | 
			
		||||
broken-mail.test.iwj.relativity.greenend.org.uk. flags 256 type MX(+addr): OK; nrrs=4; cname=$; owner=$; ttl=30
 | 
			
		||||
 10 manyaddrs.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 127.0.0.1 INET 172.18.45.6 INET 172.18.45.1 INET 172.18.45.35 )
 | 
			
		||||
 20 host.broken-delg.test.iwj.relativity.greenend.org.uk remotefail 30 timeout "DNS query timed out" ?
 | 
			
		||||
 30 172.18.45.36 permfail 300 nxdomain "No such domain" ( )
 | 
			
		||||
 40 cname-ptr.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.37 )
 | 
			
		||||
broken-mail.test.iwj.relativity.greenend.org.uk. flags 260 type MX(+addr): OK; nrrs=4; cname=$; owner=broken-mail.test.iwj.relativity.greenend.org.uk; ttl=30
 | 
			
		||||
 10 manyaddrs.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 127.0.0.1 INET 172.18.45.6 INET 172.18.45.1 INET 172.18.45.35 )
 | 
			
		||||
 20 host.broken-delg.test.iwj.relativity.greenend.org.uk remotefail 30 timeout "DNS query timed out" ?
 | 
			
		||||
 30 172.18.45.36 permfail 300 nxdomain "No such domain" ( )
 | 
			
		||||
 40 cname-ptr.test.iwj.relativity.greenend.org.uk ok 0 ok "OK" ( INET 172.18.45.37 )
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										516
									
								
								adns-0.6/regress/case-brokenmail.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										516
									
								
								adns-0.6/regress/case-brokenmail.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,516 @@
 | 
			
		||||
default
 | 
			
		||||
:15,65551 broken-mail.test.iwj.relativity.greenend.org.uk. 256/broken-mail.test.iwj.relativity.greenend.org.uk. 0x104/broken-mail.test.iwj.relativity.greenend.org.uk.
 | 
			
		||||
 start 934726868.117908
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000425
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000059
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000043
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 0b62726f 6b656e2d 6d61696c 04746573 74036977
 | 
			
		||||
     6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=65
 | 
			
		||||
 +0.001836
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31200100 00010000 00000000 0b62726f 6b656e2d 6d61696c 04746573 74036977
 | 
			
		||||
     6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=65
 | 
			
		||||
 +0.002502
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31210100 00010000 00000000 0b62726f 6b656e2d 6d61696c 04746573 74036977
 | 
			
		||||
     6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=65
 | 
			
		||||
 +0.001986
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31220100 00010000 00000000 0b62726f 6b656e2d 6d61696c 04746573 74036977
 | 
			
		||||
     6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=65
 | 
			
		||||
 +0.002269
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31230100 00010000 00000000 0b62726f 6b656e2d 6d61696c 04746573 74036977
 | 
			
		||||
     6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=65
 | 
			
		||||
 +0.001950
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31240100 00010000 00000000 0b62726f 6b656e2d 6d61696c 04746573 74036977
 | 
			
		||||
     6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01.
 | 
			
		||||
 sendto=65
 | 
			
		||||
 +0.001914
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.987543
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.000654
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8580 00010004 00010005 0b62726f 6b656e2d 6d61696c 04746573 74036977
 | 
			
		||||
     6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01c00c00 0f000100 00003c00 38001404 686f7374 0b62726f 6b656e2d 64656c67
 | 
			
		||||
     04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72
 | 
			
		||||
     6702756b 00c00c00 0f000100 00003c00 10001e03 31373202 31380234 35023336
 | 
			
		||||
     00c00c00 0f000100 00003c00 0e002809 636e616d 652d7074 72c060c0 0c000f00
 | 
			
		||||
     01000000 3c000e00 0a096d61 6e796164 647273c0 60c06000 02000100 00003c00
 | 
			
		||||
     06036e73 30c069c0 c9000100 01000000 3c0004ac 122d23c0 c9000100 01000000
 | 
			
		||||
     3c0004ac 122d06c0 c9000100 01000000 3c0004ac 122d01c0 c9000100 01000000
 | 
			
		||||
     3c00047f 000001c0 e1000100 01000151 800004ac 122d06.
 | 
			
		||||
 +0.001320
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31208580 00010004 00010005 0b62726f 6b656e2d 6d61696c 04746573 74036977
 | 
			
		||||
     6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01c00c00 0f000100 00003c00 10001e03 31373202 31380234 35023336 00c00c00
 | 
			
		||||
     0f000100 00003c00 31002809 636e616d 652d7074 72047465 73740369 776a0a72
 | 
			
		||||
     656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 000f0001
 | 
			
		||||
     0000003c 000e000a 096d616e 79616464 7273c075 c00c000f 00010000 003c0015
 | 
			
		||||
     00140468 6f73740b 62726f6b 656e2d64 656c67c0 75c07500 02000100 00003c00
 | 
			
		||||
     06036e73 30c07ec0 a8000100 01000000 3c0004ac 122d23c0 a8000100 01000000
 | 
			
		||||
     3c0004ac 122d06c0 a8000100 01000000 3c0004ac 122d01c0 a8000100 01000000
 | 
			
		||||
     3c00047f 000001c0 e1000100 01000151 800004ac 122d06.
 | 
			
		||||
 +0.001688
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31250100 00010000 00000000 03313732 02313802 34350233 36000001 0001.
 | 
			
		||||
 sendto=30
 | 
			
		||||
 +0.000653
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31260100 00010000 00000000 09636e61 6d652d70 74720474 65737403 69776a0a
 | 
			
		||||
     72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001.
 | 
			
		||||
 sendto=63
 | 
			
		||||
 +0.000825
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.001147
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31218580 00010004 00010005 0b62726f 6b656e2d 6d61696c 04746573 74036977
 | 
			
		||||
     6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01c00c00 0f000100 00003c00 31002809 636e616d 652d7074 72047465 73740369
 | 
			
		||||
     776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c
 | 
			
		||||
     000f0001 0000003c 000e000a 096d616e 79616464 7273c059 c00c000f 00010000
 | 
			
		||||
     003c0015 00140468 6f73740b 62726f6b 656e2d64 656c67c0 59c00c00 0f000100
 | 
			
		||||
     00003c00 10001e03 31373202 31380234 35023336 00c05900 02000100 00003c00
 | 
			
		||||
     06036e73 30c062c0 8c000100 01000000 3c0004ac 122d23c0 8c000100 01000000
 | 
			
		||||
     3c0004ac 122d06c0 8c000100 01000000 3c0004ac 122d01c0 8c000100 01000000
 | 
			
		||||
     3c00047f 000001c0 e1000100 01000151 800004ac 122d06.
 | 
			
		||||
 +0.001330
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31228580 00010004 00010005 0b62726f 6b656e2d 6d61696c 04746573 74036977
 | 
			
		||||
     6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01c00c00 0f000100 00003c00 31000a09 6d616e79 61646472 73047465 73740369
 | 
			
		||||
     776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c
 | 
			
		||||
     000f0001 0000003c 00150014 04686f73 740b6272 6f6b656e 2d64656c 67c059c0
 | 
			
		||||
     0c000f00 01000000 3c001000 1e033137 32023138 02343502 333600c0 0c000f00
 | 
			
		||||
     01000000 3c000e00 2809636e 616d652d 707472c0 59c05900 02000100 00003c00
 | 
			
		||||
     06036e73 30c062c0 4f000100 01000000 3c0004ac 122d23c0 4f000100 01000000
 | 
			
		||||
     3c0004ac 122d06c0 4f000100 01000000 3c0004ac 122d01c0 4f000100 01000000
 | 
			
		||||
     3c00047f 000001c0 e1000100 01000151 800004ac 122d06.
 | 
			
		||||
 +0.001524
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.001003
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31290100 00010000 00000000 03313732 02313802 34350233 36000001 0001.
 | 
			
		||||
 sendto=30
 | 
			
		||||
 +0.000569
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312a0100 00010000 00000000 09636e61 6d652d70 74720474 65737403 69776a0a
 | 
			
		||||
     72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001.
 | 
			
		||||
 sendto=63
 | 
			
		||||
 +0.000842
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31238580 00010004 00010005 0b62726f 6b656e2d 6d61696c 04746573 74036977
 | 
			
		||||
     6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01c00c00 0f000100 00003c00 38001404 686f7374 0b62726f 6b656e2d 64656c67
 | 
			
		||||
     04746573 74036977 6a0a7265 6c617469 76697479 08677265 656e656e 64036f72
 | 
			
		||||
     6702756b 00c00c00 0f000100 00003c00 10001e03 31373202 31380234 35023336
 | 
			
		||||
     00c00c00 0f000100 00003c00 0e002809 636e616d 652d7074 72c060c0 0c000f00
 | 
			
		||||
     01000000 3c000e00 0a096d61 6e796164 647273c0 60c06000 02000100 00003c00
 | 
			
		||||
     06036e73 30c069c0 c9000100 01000000 3c0004ac 122d23c0 c9000100 01000000
 | 
			
		||||
     3c0004ac 122d06c0 c9000100 01000000 3c0004ac 122d01c0 c9000100 01000000
 | 
			
		||||
     3c00047f 000001c0 e1000100 01000151 800004ac 122d06.
 | 
			
		||||
 +0.001306
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31248580 00010004 00010005 0b62726f 6b656e2d 6d61696c 04746573 74036977
 | 
			
		||||
     6a0a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b 00000f00
 | 
			
		||||
     01c00c00 0f000100 00003c00 10001e03 31373202 31380234 35023336 00c00c00
 | 
			
		||||
     0f000100 00003c00 31002809 636e616d 652d7074 72047465 73740369 776a0a72
 | 
			
		||||
     656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b00c00c 000f0001
 | 
			
		||||
     0000003c 000e000a 096d616e 79616464 7273c075 c00c000f 00010000 003c0015
 | 
			
		||||
     00140468 6f73740b 62726f6b 656e2d64 656c67c0 75c07500 02000100 00003c00
 | 
			
		||||
     06036e73 30c07ec0 a8000100 01000000 3c0004ac 122d23c0 a8000100 01000000
 | 
			
		||||
     3c0004ac 122d06c0 a8000100 01000000 3c0004ac 122d01c0 a8000100 01000000
 | 
			
		||||
     3c00047f 000001c0 e1000100 01000151 800004ac 122d06.
 | 
			
		||||
 +0.001507
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312b0100 00010000 00000000 03313732 02313802 34350233 36000001 0001.
 | 
			
		||||
 sendto=30
 | 
			
		||||
 +0.000637
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312c0100 00010000 00000000 09636e61 6d652d70 74720474 65737403 69776a0a
 | 
			
		||||
     72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001.
 | 
			
		||||
 sendto=63
 | 
			
		||||
 +0.000932
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000931
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31258583 00010000 00000000 03313732 02313802 34350233 36000001 0001.
 | 
			
		||||
 +0.000242
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31268580 00010002 00010001 09636e61 6d652d70 74720474 65737403 69776a0a
 | 
			
		||||
     72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0
 | 
			
		||||
     0c000500 01000000 3c002903 70747204 74657374 0369776a 0a72656c 61746976
 | 
			
		||||
     69747908 67726565 6e656e64 036f7267 02756b00 c04b0001 00010000 003c0004
 | 
			
		||||
     ac122d25 c04f0002 00010000 003c0006 036e7330 c058c090 00010001 00015180
 | 
			
		||||
     0004ac12 2d06.
 | 
			
		||||
 +0.000737
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31298583 00010000 00000000 03313732 02313802 34350233 36000001 0001.
 | 
			
		||||
 +0.000223
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312a8580 00010002 00010001 09636e61 6d652d70 74720474 65737403 69776a0a
 | 
			
		||||
     72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0
 | 
			
		||||
     0c000500 01000000 3c002903 70747204 74657374 0369776a 0a72656c 61746976
 | 
			
		||||
     69747908 67726565 6e656e64 036f7267 02756b00 c04b0001 00010000 003c0004
 | 
			
		||||
     ac122d25 c04f0002 00010000 003c0006 036e7330 c058c090 00010001 00015180
 | 
			
		||||
     0004ac12 2d06.
 | 
			
		||||
 +0.000756
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312b8583 00010000 00000000 03313732 02313802 34350233 36000001 0001.
 | 
			
		||||
 +0.000291
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312c8580 00010002 00010001 09636e61 6d652d70 74720474 65737403 69776a0a
 | 
			
		||||
     72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0
 | 
			
		||||
     0c000500 01000000 3c002903 70747204 74657374 0369776a 0a72656c 61746976
 | 
			
		||||
     69747908 67726565 6e656e64 036f7267 02756b00 c04b0001 00010000 003c0004
 | 
			
		||||
     ac122d25 c04f0002 00010000 003c0006 036e7330 c058c090 00010001 00015180
 | 
			
		||||
     0004ac12 2d06.
 | 
			
		||||
 +0.000726
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000162
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.980649
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.-04341
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000794
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000608
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000695
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.997903
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.007910
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000823
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000611
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000571
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.997995
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.007991
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000694
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000579
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000571
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998156
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.008157
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000655
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000749
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000606
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.997990
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.007995
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000836
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000612
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000631
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.997921
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.007925
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000699
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000725
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000606
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.997970
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.007965
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000739
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000582
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000570
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998109
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.008104
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000641
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000598
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000716
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998045
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.008043
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000646
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000576
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000594
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998184
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.008190
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000673
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000578
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000572
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998177
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.008168
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000659
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000577
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000571
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998193
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.008199
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000653
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000604
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000573
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998170
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.008181
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000699
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000589
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000758
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.997954
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.008126
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000684
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000582
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04686f73 740b6272 6f6b656e 2d64656c 67047465
 | 
			
		||||
     73740369 776a0a72 656c6174 69766974 79086772 65656e65 6e64036f 72670275
 | 
			
		||||
     6b000001 0001.
 | 
			
		||||
 sendto=70
 | 
			
		||||
 +0.000578
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998156
 | 
			
		||||
 select=0 rfds=[] wfds=[] efds=[]
 | 
			
		||||
 +2.007969
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000812
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-child.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-child.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										5
									
								
								adns-0.6/regress/case-child.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								adns-0.6/regress/case-child.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
134.76.224.195.in-addr.arpa flags 0 type 65548 PTR(checked) submitted
 | 
			
		||||
134.76.224.195.in-addr.arpa flags 0 type PTR(checked): OK; nrrs=1; cname=$; owner=$; ttl=78694
 | 
			
		||||
 permutation-city.greenend.org.uk
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										58
									
								
								adns-0.6/regress/case-child.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								adns-0.6/regress/case-child.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,58 @@
 | 
			
		||||
default
 | 
			
		||||
:65548 134.76.224.195.in-addr.arpa
 | 
			
		||||
 start 929574747.401802
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000189
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000080
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000058
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 03313334 02373603 32323403 31393507 696e2d61
 | 
			
		||||
     64647204 61727061 00000c00 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.000595
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.999405
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.008975
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8180 00010001 00050005 03313334 02373603 32323403 31393507 696e2d61
 | 
			
		||||
     64647204 61727061 00000c00 01c00c00 0c000100 01336600 22107065 726d7574
 | 
			
		||||
     6174696f 6e2d6369 74790867 7265656e 656e6403 6f726702 756b0002 37360332
 | 
			
		||||
     32340331 39350769 6e2d6164 64720461 72706100 00020001 00013366 00110464
 | 
			
		||||
     6e733006 656c6d61 696c0263 6fc057c0 5b000200 01000133 66000704 646e7331
 | 
			
		||||
     c083c05b 00020001 00013366 00070464 6e7332c0 83c05b00 02000100 01336600
 | 
			
		||||
     0e036e73 32047861 7261036e 657400c0 5b000200 01000133 66000603 6e7333c0
 | 
			
		||||
     c5c07e00 01000100 00149d00 04c17ae9 11c09b00 01000100 00149d00 04c17ae9
 | 
			
		||||
     01c0ae00 01000100 00149d00 04c3e04c c1c0c100 01000100 0284e500 04c28fa1
 | 
			
		||||
     6bc0db00 01000100 0284e500 04c28fa3 19.
 | 
			
		||||
 +0.001671
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31200100 00010000 00000000 10706572 6d757461 74696f6e 2d636974 79086772
 | 
			
		||||
     65656e65 6e64036f 72670275 6b000001 0001.
 | 
			
		||||
 sendto=50
 | 
			
		||||
 +0.000683
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000108
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.997538
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.005811
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31208580 00010001 00020002 10706572 6d757461 74696f6e 2d636974 79086772
 | 
			
		||||
     65656e65 6e64036f 72670275 6b000001 0001c00c 00010001 00015180 0004c3e0
 | 
			
		||||
     4c860867 7265656e 656e6403 6f726702 756b0000 02000100 01518000 11036e73
 | 
			
		||||
     300a7265 6c617469 76697479 c042c042 00020001 00015180 0006036e 7331c061
 | 
			
		||||
     c05d0001 00010001 51800004 ac122d06 c07a0001 00010001 51800004 ac122d41.
 | 
			
		||||
 +0.000862
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000193
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000207
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-cnametocname.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-cnametocname.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										5
									
								
								adns-0.6/regress/case-cnametocname.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								adns-0.6/regress/case-cnametocname.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
intel.ugcs.caltech.edu. flags 0 type 1 A(-) submitted
 | 
			
		||||
adns debug: allegedly canonical name ugintel.best.ugcs.caltech.edu is actually alias for drachma.ugcs.caltech.edu (QNAME=intel.ugcs.caltech.edu, QTYPE=A, NS=172.18.45.6)
 | 
			
		||||
intel.ugcs.caltech.edu. flags 0 type A(-): DNS alias found where canonical name wanted; nrrs=0; cname=ugintel.best.ugcs.caltech.edu; owner=$; ttl=497758
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										39
									
								
								adns-0.6/regress/case-cnametocname.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								adns-0.6/regress/case-cnametocname.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,39 @@
 | 
			
		||||
default
 | 
			
		||||
:1 intel.ugcs.caltech.edu.
 | 
			
		||||
 start 938369896.279735
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000179
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000054
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000041
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 05696e74 656c0475 67637307 63616c74 65636803
 | 
			
		||||
     65647500 00010001.
 | 
			
		||||
 sendto=40
 | 
			
		||||
 +0.001628
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998372
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.586476
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8180 00010003 00050005 05696e74 656c0475 67637307 63616c74 65636803
 | 
			
		||||
     65647500 00010001 05696e74 656c0475 67637307 63616c74 65636803 65647500
 | 
			
		||||
     00050001 0007985e 000f0775 67696e74 656c0462 657374c0 2ec04a00 05000100
 | 
			
		||||
     00000a00 0a076472 6163686d 61c02ec0 65000100 01000798 83000483 d72bacc0
 | 
			
		||||
     2e000200 01000935 be000b08 70757263 68617365 c02ec02e 00020001 000935be
 | 
			
		||||
     00070465 6e7679c0 2ec02e00 02000100 0935be00 09036f66 62036e65 7400c02e
 | 
			
		||||
     00020001 000935be 00090674 7962616c 74c033c0 2e000200 01000935 be000e08
 | 
			
		||||
     6d657263 7574696f 026e69c0 33c08b00 01000100 0935be00 0483d72b a7c0a200
 | 
			
		||||
     01000100 0935be00 0483d72b 87c0b500 01000100 001ef800 04c6b4b6 07c0ca00
 | 
			
		||||
     01000100 0100d700 0483d78b 64c0df00 01000100 0100d700 0483d7fe 63.
 | 
			
		||||
 +0.001423
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000646
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000242
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-datapluscname.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-datapluscname.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										39
									
								
								adns-0.6/regress/case-datapluscname.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								adns-0.6/regress/case-datapluscname.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,39 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 1 A(-) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 2 NS(raw) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 5 CNAME(-) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 6 SOA(raw) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 12 PTR(raw) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 13 HINFO(-) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 15 MX(raw) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 16 TXT(-) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 17 RP(raw) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 65537 A(addr) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 65538 NS(+addr) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 65548 PTR(checked) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 65551 MX(+addr) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 131078 SOA(822) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 131089 RP(822) submitted
 | 
			
		||||
adns debug: ignoring CNAME (to 170.168.99.219.194.in-addr.arpa) coexisting with RR (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(raw), NS=172.18.45.6)
 | 
			
		||||
adns debug: ignoring RR with an unexpected owner 170.168.99.219.194.in-addr.arpa (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(raw), NS=172.18.45.6)
 | 
			
		||||
adns debug: ignoring CNAME (to 170.168.99.219.194.in-addr.arpa) coexisting with RR (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(checked), NS=172.18.45.6)
 | 
			
		||||
adns debug: ignoring RR with an unexpected owner 170.168.99.219.194.in-addr.arpa (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(checked), NS=172.18.45.6)
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type A(-): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type NS(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type SOA(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type PTR(raw): OK; nrrs=1; cname=$; owner=170.99.219.194.in-addr.arpa; ttl=171727
 | 
			
		||||
 proxy.scoplife.gr
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type HINFO(-): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type MX(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type TXT(-): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type RP(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type A(addr): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type NS(+addr): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type MX(+addr): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type SOA(822): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type RP(822): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type PTR(checked): OK; nrrs=1; cname=$; owner=170.99.219.194.in-addr.arpa; ttl=171727
 | 
			
		||||
 proxy.scoplife.gr
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type CNAME(-): OK; nrrs=1; cname=$; owner=170.99.219.194.in-addr.arpa; ttl=171726
 | 
			
		||||
 170.168.99.219.194.in-addr.arpa
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										233
									
								
								adns-0.6/regress/case-datapluscname.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										233
									
								
								adns-0.6/regress/case-datapluscname.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,233 @@
 | 
			
		||||
default
 | 
			
		||||
292/170.99.219.194.in-addr.arpa
 | 
			
		||||
 start 933809668.543946
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000199
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000081
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000063
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000100 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.003027
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31200100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000200 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.002832
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31210100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000500 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.004403
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31220100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000600 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.004763
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31230100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000c00 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.002558
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31240100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000d00 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.004339
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31250100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000f00 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.002664
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31260100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00001000 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.004889
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00001100 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.002642
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000100 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.002552
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31290100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000200 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.007571
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312a0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000c00 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.004820
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312b0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000f00 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.004771
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312c0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000600 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.004879
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00001100 01.
 | 
			
		||||
 sendto=45
 | 
			
		||||
 +0.004728
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.938562
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.000329
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000100 01c00c00 05000100 02a2ec00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100.
 | 
			
		||||
 +0.000688
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31208180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000200 01c00c00 05000100 02a2ec00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100.
 | 
			
		||||
 +0.003135
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31228180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000600 01c00c00 05000100 02a2ec00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100.
 | 
			
		||||
 +0.000762
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31238180 00010003 00040004 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000c00 01c00c00 0c000100 029ecf00 13057072 6f787908
 | 
			
		||||
     73636f70 6c696665 02677200 c00c0005 00010002 a2ec0021 03313730 03313638
 | 
			
		||||
     02393903 32313903 31393407 696e2d61 64647204 61727061 00c05800 0c000100
 | 
			
		||||
     029ecf00 02c039c0 5c000200 0100029e cf001004 696e666f 08666f72 74686e65
 | 
			
		||||
     74c048c0 5c000200 0100029e cf000805 6e736865 72c098c0 5c000200 0100029e
 | 
			
		||||
     cf000805 6e737468 65c098c0 5c000200 0100029e cf000c09 74656972 65736961
 | 
			
		||||
     73c098c0 93000100 010004be 3900048b 5b0111c0 af000100 01000542 ba0004c1
 | 
			
		||||
     5c1e13c0 c3000100 01000542 800004c1 5c6e01c0 d7000100 01000542 800004c2
 | 
			
		||||
     dbe302.
 | 
			
		||||
 +0.001873
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31248180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000d00 01c00c00 05000100 02a2ec00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100.
 | 
			
		||||
 +0.000969
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31258180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000f00 01c00c00 05000100 02a2ec00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100.
 | 
			
		||||
 +0.000699
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31268180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00001000 01c00c00 05000100 02a2ec00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100.
 | 
			
		||||
 +0.000717
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31278180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00001100 01c00c00 05000100 02a2ec00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100.
 | 
			
		||||
 +0.003514
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31288180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000100 01c00c00 05000100 02a2ec00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100.
 | 
			
		||||
 +0.000783
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31298180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000200 01c00c00 05000100 02a2ec00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100.
 | 
			
		||||
 +0.003279
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312a8180 00010003 00040004 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000c00 01c00c00 0c000100 029ecf00 13057072 6f787908
 | 
			
		||||
     73636f70 6c696665 02677200 c00c0005 00010002 a2ec0021 03313730 03313638
 | 
			
		||||
     02393903 32313903 31393407 696e2d61 64647204 61727061 00c05800 0c000100
 | 
			
		||||
     029ecf00 02c039c0 5c000200 0100029e cf001004 696e666f 08666f72 74686e65
 | 
			
		||||
     74c048c0 5c000200 0100029e cf000805 6e736865 72c098c0 5c000200 0100029e
 | 
			
		||||
     cf000805 6e737468 65c098c0 5c000200 0100029e cf000c09 74656972 65736961
 | 
			
		||||
     73c098c0 93000100 010004be 3900048b 5b0111c0 af000100 01000542 ba0004c1
 | 
			
		||||
     5c1e13c0 c3000100 01000542 800004c1 5c6e01c0 d7000100 01000542 800004c2
 | 
			
		||||
     dbe302.
 | 
			
		||||
 +0.001960
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312e0100 00010000 00000000 0570726f 78790873 636f706c 69666502 67720000
 | 
			
		||||
     010001.
 | 
			
		||||
 sendto=35
 | 
			
		||||
 +0.005061
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312b8180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000f00 01c00c00 05000100 02a2ec00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100.
 | 
			
		||||
 +0.003253
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312c8180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000600 01c00c00 05000100 02a2ec00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100.
 | 
			
		||||
 +0.000782
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312d8180 00010001 00000000 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00001100 01c00c00 05000100 02a2ec00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100.
 | 
			
		||||
 +0.000698
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000173
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.915746
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.014046
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312e8180 00010001 00040004 0570726f 78790873 636f706c 69666502 67720000
 | 
			
		||||
     010001c0 0c000100 01000288 220004c2 db63aa08 73636f70 6c696665 02677200
 | 
			
		||||
     00020001 000542ba 0011056e 73617468 08666f72 74686e65 74c03cc0 33000200
 | 
			
		||||
     01000542 ba000805 6e736865 72c050c0 33000200 01000542 ba000805 6e737468
 | 
			
		||||
     65c050c0 33000200 01000542 ba000c09 74656972 65736961 73c050c0 4a000100
 | 
			
		||||
     01000542 800004c1 5c9603c0 67000100 01000542 ba0004c1 5c1e13c0 7b000100
 | 
			
		||||
     01000542 800004c1 5c6e01c0 8f000100 01000542 800004c2 dbe302.
 | 
			
		||||
 +0.001422
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000197
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.900081
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.203705
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31218180 00010001 00050005 03313730 02393903 32313903 31393407 696e2d61
 | 
			
		||||
     64647204 61727061 00000500 01c00c00 05000100 029ece00 21033137 30033136
 | 
			
		||||
     38023939 03323139 03313934 07696e2d 61646472 04617270 6100c041 00020001
 | 
			
		||||
     00029ece 00120469 6e666f08 666f7274 686e6574 02677200 c0410002 00010002
 | 
			
		||||
     9ece0008 056e7368 6572c06b c0410002 00010002 9ece0008 056e7374 6865c06b
 | 
			
		||||
     c0410002 00010002 9ece0008 056e7361 7468c06b c0410002 00010002 9ece000c
 | 
			
		||||
     09746569 72657369 6173c06b c0660001 00010005 41ce0004 8b5b0111 c0840001
 | 
			
		||||
     00010005 42b90004 c15c1e13 c0980001 00010005 427f0004 c15c6e01 c0ac0001
 | 
			
		||||
     00010005 427f0004 c15c9603 c0c00001 00010005 427f0004 c2dbe302.
 | 
			
		||||
 +0.001798
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000249
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000219
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-datapluscnamewait.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-datapluscnamewait.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										78
									
								
								adns-0.6/regress/case-datapluscnamewait.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								adns-0.6/regress/case-datapluscnamewait.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,78 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 1 A(-) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 2 NS(raw) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 5 CNAME(-) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 6 SOA(raw) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 12 PTR(raw) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 13 HINFO(-) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 15 MX(raw) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 16 TXT(-) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 17 RP(raw) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 65537 A(addr) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 65538 NS(+addr) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 65548 PTR(checked) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 65551 MX(+addr) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 131078 SOA(822) submitted
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type 131089 RP(822) submitted
 | 
			
		||||
adns debug: ignoring CNAME (to 170.168.99.219.194.in-addr.arpa) coexisting with RR (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(raw), NS=172.18.45.6)
 | 
			
		||||
adns debug: ignoring RR with an unexpected owner 170.168.99.219.194.in-addr.arpa (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(raw), NS=172.18.45.6)
 | 
			
		||||
adns debug: ignoring CNAME (to 170.168.99.219.194.in-addr.arpa) coexisting with RR (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(checked), NS=172.18.45.6)
 | 
			
		||||
adns debug: ignoring RR with an unexpected owner 170.168.99.219.194.in-addr.arpa (QNAME=170.99.219.194.in-addr.arpa, QTYPE=PTR(checked), NS=172.18.45.6)
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type PTR(raw): OK; nrrs=1; cname=$; owner=170.99.219.194.in-addr.arpa; ttl=171763
 | 
			
		||||
 proxy.scoplife.gr
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type PTR(checked): OK; nrrs=1; cname=$; owner=170.99.219.194.in-addr.arpa; ttl=171763
 | 
			
		||||
 proxy.scoplife.gr
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type A(-): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=600
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type MX(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type RP(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type A(addr): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=600
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type NS(+addr): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type MX(+addr): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type RP(822): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=0
 | 
			
		||||
adns debug: reply not found, id 3120, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3122, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3124, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3126, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type NS(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=600
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type SOA(raw): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=600
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type HINFO(-): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=600
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type TXT(-): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=600
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type SOA(822): No such data; nrrs=0; cname=170.168.99.219.194.in-addr.arpa; owner=170.99.219.194.in-addr.arpa; ttl=599
 | 
			
		||||
adns debug: reply not found, id 312d, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 312c, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 312b, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3129, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3128, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3127, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3126, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3125, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3124, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3122, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3120, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 311f, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 312d, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 312c, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 312b, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3129, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3128, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3127, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3126, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3125, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3124, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3122, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3120, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 311f, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 312b, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3129, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3128, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3127, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3126, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3125, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3124, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3122, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3120, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 311f, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 312c, query owner 170.168.99.219.194.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
170.99.219.194.in-addr.arpa flags 292 type CNAME(-): OK; nrrs=1; cname=$; owner=170.99.219.194.in-addr.arpa; ttl=110056
 | 
			
		||||
 170.168.99.219.194.in-addr.arpa
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										1480
									
								
								adns-0.6/regress/case-datapluscnamewait.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1480
									
								
								adns-0.6/regress/case-datapluscnamewait.sys
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1
									
								
								adns-0.6/regress/case-flags10.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								adns-0.6/regress/case-flags10.err
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
too many flags
 | 
			
		||||
							
								
								
									
										2
									
								
								adns-0.6/regress/case-flags10.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								adns-0.6/regress/case-flags10.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
rc=3
 | 
			
		||||
							
								
								
									
										15
									
								
								adns-0.6/regress/case-flags10.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								adns-0.6/regress/case-flags10.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
default
 | 
			
		||||
:1 ,aaaaaaaaaa/chiark.greenend.org.uk
 | 
			
		||||
 start 929580072.670441
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000191
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000084
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000061
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000001
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-flags9.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-flags9.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										5
									
								
								adns-0.6/regress/case-flags9.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								adns-0.6/regress/case-flags9.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
chiark.greenend.org.uk flags 0 type 1 A(-) submitted
 | 
			
		||||
chiark.greenend.org.uk flags 0 type A(-) ownflags=aaaaaaaaa: ok; nrrs=1; cname=$; owner=$; ttl=86400
 | 
			
		||||
 195.224.76.132
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										34
									
								
								adns-0.6/regress/case-flags9.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								adns-0.6/regress/case-flags9.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,34 @@
 | 
			
		||||
default
 | 
			
		||||
:1 ,aaaaaaaaa/chiark.greenend.org.uk
 | 
			
		||||
 start 929580075.263215
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000212
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000083
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000060
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 06636869 61726b08 67726565 6e656e64 036f7267
 | 
			
		||||
     02756b00 00010001.
 | 
			
		||||
 sendto=40
 | 
			
		||||
 +0.000625
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.999375
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.007374
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8580 00010001 00020002 06636869 61726b08 67726565 6e656e64 036f7267
 | 
			
		||||
     02756b00 00010001 c00c0001 00010001 51800004 c3e04c84 08677265 656e656e
 | 
			
		||||
     64036f72 6702756b 00000200 01000151 80001103 6e73300a 72656c61 74697669
 | 
			
		||||
     7479c038 c0380002 00010001 51800006 036e7331 c057c053 00010001 00015180
 | 
			
		||||
     0004ac12 2d06c070 00010001 00015180 0004ac12 2d41.
 | 
			
		||||
 +0.001238
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000228
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000205
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-mailboxes.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-mailboxes.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										10
									
								
								adns-0.6/regress/case-mailboxes.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								adns-0.6/regress/case-mailboxes.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
silly-rp.test.iwj.relativity.greenend.org.uk flags 0 type 131089 RP(822) submitted
 | 
			
		||||
silly-rp.test.iwj.relativity.greenend.org.uk flags 0 type RP(822): OK; nrrs=6; cname=$; owner=$; ttl=60
 | 
			
		||||
 . .
 | 
			
		||||
 i@ucam.org .
 | 
			
		||||
 i.j@ucam.org .
 | 
			
		||||
 "i..j"@ucam.org .
 | 
			
		||||
 ".i"@ucam.org .
 | 
			
		||||
 "i."@ucam.org .
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										35
									
								
								adns-0.6/regress/case-mailboxes.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								adns-0.6/regress/case-mailboxes.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
			
		||||
default
 | 
			
		||||
:131089 silly-rp.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 start 923859567.899146
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000411
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000094
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000073
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 0873696c 6c792d72 70047465 73740369 776a0a72
 | 
			
		||||
     656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000011 0001.
 | 
			
		||||
 sendto=62
 | 
			
		||||
 +0.000670
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.999330
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.008169
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8180 00010006 00000000 0873696c 6c792d72 70047465 73740369 776a0a72
 | 
			
		||||
     656c6174 69766974 79086772 65656e65 6e64036f 72670275 6b000011 0001c00c
 | 
			
		||||
     00110001 0000003c 00020000 c00c0011 00010000 003c000d 01690475 63616d03
 | 
			
		||||
     6f726700 00c00c00 11000100 00003c00 0703692e 6ac05a00 c00c0011 00010000
 | 
			
		||||
     003c0008 04692e2e 6ac05a00 c00c0011 00010000 003c0006 022e69c0 5a00c00c
 | 
			
		||||
     00110001 0000003c 00060269 2ec05a00.
 | 
			
		||||
 +0.000992
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000604
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000359
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-manya.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-manya.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										8
									
								
								adns-0.6/regress/case-manya.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								adns-0.6/regress/case-manya.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
manyaddrs.test.iwj.relativity.greenend.org.uk flags 0 type 1 A(-) submitted
 | 
			
		||||
manyaddrs.test.iwj.relativity.greenend.org.uk flags 0 type A(-): OK; nrrs=4; cname=$; owner=$; ttl=60
 | 
			
		||||
 127.0.0.1
 | 
			
		||||
 172.18.45.6
 | 
			
		||||
 172.18.45.1
 | 
			
		||||
 172.18.45.35
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										36
									
								
								adns-0.6/regress/case-manya.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								adns-0.6/regress/case-manya.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,36 @@
 | 
			
		||||
default
 | 
			
		||||
:1 manyaddrs.test.iwj.relativity.greenend.org.uk
 | 
			
		||||
 start 912888920.123769
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000245
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000705
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000073
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 096d616e 79616464 72730474 65737403 69776a0a
 | 
			
		||||
     72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001.
 | 
			
		||||
 sendto=63
 | 
			
		||||
 +0.000698
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.999302
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.006236
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8580 00010004 00010001 096d616e 79616464 72730474 65737403 69776a0a
 | 
			
		||||
     72656c61 74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001c0
 | 
			
		||||
     0c000100 01000000 3c0004ac 122d23c0 0c000100 01000000 3c0004ac 122d06c0
 | 
			
		||||
     0c000100 01000000 3c0004ac 122d01c0 0c000100 01000000 3c00047f 00000104
 | 
			
		||||
     74657374 0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267
 | 
			
		||||
     02756b00 00020001 0000003c 0006036e 7330c088 c0ae0001 00010001 51800004
 | 
			
		||||
     ac122d06.
 | 
			
		||||
 +0.001078
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000329
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000240
 | 
			
		||||
							
								
								
									
										0
									
								
								adns-0.6/regress/case-manyptrwrong.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-manyptrwrong.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										153
									
								
								adns-0.6/regress/case-manyptrwrong.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										153
									
								
								adns-0.6/regress/case-manyptrwrong.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,153 @@
 | 
			
		||||
adns debug: using nameserver 195.224.55.129
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 1 A(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 2 NS(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 5 CNAME(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 6 SOA(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 12 PTR(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 13 HINFO(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 15 MX(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 16 TXT(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 17 RP(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 65537 A(addr) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 65538 NS(+addr) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 65548 PTR(checked) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 65551 MX(+addr) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 131078 SOA(822) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type 131089 RP(822) submitted
 | 
			
		||||
adns debug: TCP connected (NS=195.224.55.129)
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type PTR(raw): OK; nrrs=94; cname=$; owner=$; ttl=80790
 | 
			
		||||
 ns.security.co.nz
 | 
			
		||||
 tetra.co.nz
 | 
			
		||||
 mail.agate.co.nz
 | 
			
		||||
 ns.agate.co.nz
 | 
			
		||||
 securitytraining.co.nz
 | 
			
		||||
 ns.giftbasket.co.nz
 | 
			
		||||
 ns.security.gen.nz
 | 
			
		||||
 bouquet.co.nz
 | 
			
		||||
 investigation.co.nz
 | 
			
		||||
 ns.nzipi.org.nz
 | 
			
		||||
 mail.neru.co.nz
 | 
			
		||||
 security.co.nz
 | 
			
		||||
 ns.storewatch.co.nz
 | 
			
		||||
 security.gen.nz
 | 
			
		||||
 ns.tetra.co.nz
 | 
			
		||||
 mail.tetra.co.nz
 | 
			
		||||
 ns.securicard.co.nz
 | 
			
		||||
 ns.underhour.co.nz
 | 
			
		||||
 bcc.co.nz
 | 
			
		||||
 security.org.nz
 | 
			
		||||
 burglaralarms.co.nz
 | 
			
		||||
 ns.safes.co.nz
 | 
			
		||||
 ns.security.org.nz
 | 
			
		||||
 couperconsulting.co.nz
 | 
			
		||||
 securityguards.co.nz
 | 
			
		||||
 ns.guards.co.nz
 | 
			
		||||
 asis.org.nz
 | 
			
		||||
 neru.co.nz
 | 
			
		||||
 giftbasket.co.nz
 | 
			
		||||
 magic.co.nz
 | 
			
		||||
 mail.bcc.co.nz
 | 
			
		||||
 ns.investigation.co.nz
 | 
			
		||||
 nzipi.org.nz
 | 
			
		||||
 ns.bouquet.co.nz
 | 
			
		||||
 mail.safes.co.nz
 | 
			
		||||
 ns.bcc.co.nz
 | 
			
		||||
 ns.burglaralarms.co.nz
 | 
			
		||||
 ns.securityguards.co.nz
 | 
			
		||||
 covertcameras.co.nz
 | 
			
		||||
 ns.neru.co.nz
 | 
			
		||||
 ns.covertcameras.co.nz
 | 
			
		||||
 bouquets.co.nz
 | 
			
		||||
 concentric.co.nz
 | 
			
		||||
 ns.securitytraining.co.nz
 | 
			
		||||
 mail.couperconsulting.co.nz
 | 
			
		||||
 retailsecurity.co.nz
 | 
			
		||||
 ns.concentric.co.nz
 | 
			
		||||
 mail.magic.co.nz
 | 
			
		||||
 nzangling.co.nz
 | 
			
		||||
 ns.couperconsulting.co.nz
 | 
			
		||||
 ns.nzangling.co.nz
 | 
			
		||||
 mail.storewatch.co.nz
 | 
			
		||||
 swift.co.nz
 | 
			
		||||
 mail.selective.co.nz
 | 
			
		||||
 ns.forefront.co.nz
 | 
			
		||||
 mail.nzangling.co.nz
 | 
			
		||||
 guards.co.nz
 | 
			
		||||
 mail.nzdesigns.co.nz
 | 
			
		||||
 storewatch.co.nz
 | 
			
		||||
 ns.securitymanagement.co.nz
 | 
			
		||||
 mail.woolworths.co.nz
 | 
			
		||||
 mail.concentric.co.nz
 | 
			
		||||
 selective.co.nz
 | 
			
		||||
 specialinvestigations.co.nz
 | 
			
		||||
 ns.swift.co.nz
 | 
			
		||||
 mail.swift.co.nz
 | 
			
		||||
 ns.securenet.net.nz
 | 
			
		||||
 privateinvestigation.co.nz
 | 
			
		||||
 ns.privateinvestigation.co.nz
 | 
			
		||||
 etrade.co.nz
 | 
			
		||||
 ns.specialinvestigations.co.nz
 | 
			
		||||
 mail.ansett.co.nz
 | 
			
		||||
 ftp.warrent.co.nz
 | 
			
		||||
 ns.retailsecurity.co.nz
 | 
			
		||||
 mail.securitymanagement.co.nz
 | 
			
		||||
 ns.magic.co.nz
 | 
			
		||||
 mail.forefront.co.nz
 | 
			
		||||
 mail.securicard.co.nz
 | 
			
		||||
 securicard.co.nz
 | 
			
		||||
 ns.nzdesigns.co.nz
 | 
			
		||||
 safes.co.nz
 | 
			
		||||
 ns.selective.co.nz
 | 
			
		||||
 forefront.co.nz
 | 
			
		||||
 securitymanagement.co.nz
 | 
			
		||||
 underhour.co.nz
 | 
			
		||||
 securenet.net.nz
 | 
			
		||||
 mail.specialinvestigations.co.nz
 | 
			
		||||
 nzdesigns.co.nz
 | 
			
		||||
 ns.etrade.co.nz
 | 
			
		||||
 mail.nzipi.org.nz
 | 
			
		||||
 mail.underhour.co.nz
 | 
			
		||||
 ns.asis.org.nz
 | 
			
		||||
 ns.bouquets.co.nz
 | 
			
		||||
 agate.co.nz
 | 
			
		||||
adns debug: reply not found, id 313b, query owner security.gen.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 313c, query owner ns.tetra.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 313d, query owner mail.tetra.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 313e, query owner ns.securicard.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 313f, query owner ns.underhour.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3140, query owner bcc.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3141, query owner security.org.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3142, query owner burglaralarms.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3143, query owner ns.safes.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3144, query owner ns.security.org.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3145, query owner couperconsulting.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3146, query owner securityguards.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3147, query owner ns.guards.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3148, query owner asis.org.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3149, query owner neru.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 314a, query owner giftbasket.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 314b, query owner magic.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 314c, query owner mail.bcc.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 314d, query owner ns.investigation.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 314e, query owner nzipi.org.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 314f, query owner ns.bouquet.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3150, query owner mail.safes.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3151, query owner ns.bcc.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3152, query owner ns.burglaralarms.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 3153, query owner ns.securityguards.co.nz (NS=195.224.55.129)
 | 
			
		||||
adns debug: reply not found, id 318b, query owner agate.co.nz (NS=195.224.55.129)
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type PTR(checked): Inconsistent resource records in DNS; nrrs=0; cname=$; owner=$; ttl=80790
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type A(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type NS(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type CNAME(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type SOA(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type HINFO(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type MX(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type TXT(-): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type RP(raw): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type A(addr): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type NS(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type MX(+addr): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type SOA(822): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 0 type RP(822): No such data; nrrs=0; cname=$; owner=$; ttl=86400
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										1287
									
								
								adns-0.6/regress/case-manyptrwrong.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1287
									
								
								adns-0.6/regress/case-manyptrwrong.sys
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										0
									
								
								adns-0.6/regress/case-manyptrwrongrem.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-manyptrwrongrem.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										127
									
								
								adns-0.6/regress/case-manyptrwrongrem.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								adns-0.6/regress/case-manyptrwrongrem.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,127 @@
 | 
			
		||||
adns debug: using nameserver 140.200.128.13
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 1 A(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 2 NS(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 5 CNAME(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 6 SOA(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 12 PTR(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 13 HINFO(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 15 MX(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 16 TXT(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 17 RP(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 65537 A(addr) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 65538 NS(+addr) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 65548 PTR(checked) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 65551 MX(+addr) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 131078 SOA(822) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 131089 RP(822) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type A(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type CNAME(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type SOA(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type NS(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type HINFO(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type TXT(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type MX(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type RP(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type A(addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type MX(+addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type NS(+addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type SOA(822): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type RP(822): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
adns debug: TCP connected (NS=140.200.128.13)
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type PTR(raw): OK; nrrs=94; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
 ns.security.co.nz
 | 
			
		||||
 tetra.co.nz
 | 
			
		||||
 mail.agate.co.nz
 | 
			
		||||
 ns.agate.co.nz
 | 
			
		||||
 securitytraining.co.nz
 | 
			
		||||
 ns.giftbasket.co.nz
 | 
			
		||||
 ns.security.gen.nz
 | 
			
		||||
 bouquet.co.nz
 | 
			
		||||
 investigation.co.nz
 | 
			
		||||
 ns.nzipi.org.nz
 | 
			
		||||
 mail.neru.co.nz
 | 
			
		||||
 security.co.nz
 | 
			
		||||
 ns.storewatch.co.nz
 | 
			
		||||
 security.gen.nz
 | 
			
		||||
 ns.tetra.co.nz
 | 
			
		||||
 mail.tetra.co.nz
 | 
			
		||||
 ns.securicard.co.nz
 | 
			
		||||
 ns.underhour.co.nz
 | 
			
		||||
 bcc.co.nz
 | 
			
		||||
 security.org.nz
 | 
			
		||||
 burglaralarms.co.nz
 | 
			
		||||
 ns.safes.co.nz
 | 
			
		||||
 ns.security.org.nz
 | 
			
		||||
 couperconsulting.co.nz
 | 
			
		||||
 securityguards.co.nz
 | 
			
		||||
 ns.guards.co.nz
 | 
			
		||||
 asis.org.nz
 | 
			
		||||
 neru.co.nz
 | 
			
		||||
 giftbasket.co.nz
 | 
			
		||||
 magic.co.nz
 | 
			
		||||
 mail.bcc.co.nz
 | 
			
		||||
 ns.investigation.co.nz
 | 
			
		||||
 nzipi.org.nz
 | 
			
		||||
 ns.bouquet.co.nz
 | 
			
		||||
 mail.safes.co.nz
 | 
			
		||||
 ns.bcc.co.nz
 | 
			
		||||
 ns.burglaralarms.co.nz
 | 
			
		||||
 ns.securityguards.co.nz
 | 
			
		||||
 covertcameras.co.nz
 | 
			
		||||
 ns.neru.co.nz
 | 
			
		||||
 ns.covertcameras.co.nz
 | 
			
		||||
 bouquets.co.nz
 | 
			
		||||
 concentric.co.nz
 | 
			
		||||
 ns.securitytraining.co.nz
 | 
			
		||||
 mail.couperconsulting.co.nz
 | 
			
		||||
 retailsecurity.co.nz
 | 
			
		||||
 ns.concentric.co.nz
 | 
			
		||||
 mail.magic.co.nz
 | 
			
		||||
 nzangling.co.nz
 | 
			
		||||
 ns.couperconsulting.co.nz
 | 
			
		||||
 ns.nzangling.co.nz
 | 
			
		||||
 mail.storewatch.co.nz
 | 
			
		||||
 swift.co.nz
 | 
			
		||||
 mail.selective.co.nz
 | 
			
		||||
 ns.forefront.co.nz
 | 
			
		||||
 mail.nzangling.co.nz
 | 
			
		||||
 guards.co.nz
 | 
			
		||||
 mail.nzdesigns.co.nz
 | 
			
		||||
 storewatch.co.nz
 | 
			
		||||
 ns.securitymanagement.co.nz
 | 
			
		||||
 mail.woolworths.co.nz
 | 
			
		||||
 mail.concentric.co.nz
 | 
			
		||||
 selective.co.nz
 | 
			
		||||
 specialinvestigations.co.nz
 | 
			
		||||
 ns.swift.co.nz
 | 
			
		||||
 mail.swift.co.nz
 | 
			
		||||
 ns.securenet.net.nz
 | 
			
		||||
 privateinvestigation.co.nz
 | 
			
		||||
 ns.privateinvestigation.co.nz
 | 
			
		||||
 etrade.co.nz
 | 
			
		||||
 ns.specialinvestigations.co.nz
 | 
			
		||||
 mail.ansett.co.nz
 | 
			
		||||
 ftp.warrent.co.nz
 | 
			
		||||
 ns.retailsecurity.co.nz
 | 
			
		||||
 mail.securitymanagement.co.nz
 | 
			
		||||
 ns.magic.co.nz
 | 
			
		||||
 mail.forefront.co.nz
 | 
			
		||||
 mail.securicard.co.nz
 | 
			
		||||
 securicard.co.nz
 | 
			
		||||
 ns.nzdesigns.co.nz
 | 
			
		||||
 safes.co.nz
 | 
			
		||||
 ns.selective.co.nz
 | 
			
		||||
 forefront.co.nz
 | 
			
		||||
 securitymanagement.co.nz
 | 
			
		||||
 underhour.co.nz
 | 
			
		||||
 securenet.net.nz
 | 
			
		||||
 mail.specialinvestigations.co.nz
 | 
			
		||||
 nzdesigns.co.nz
 | 
			
		||||
 ns.etrade.co.nz
 | 
			
		||||
 mail.nzipi.org.nz
 | 
			
		||||
 mail.underhour.co.nz
 | 
			
		||||
 ns.asis.org.nz
 | 
			
		||||
 ns.bouquets.co.nz
 | 
			
		||||
 agate.co.nz
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type PTR(checked): Inconsistent resource records in DNS; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86399
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										1145
									
								
								adns-0.6/regress/case-manyptrwrongrem.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1145
									
								
								adns-0.6/regress/case-manyptrwrongrem.sys
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										0
									
								
								adns-0.6/regress/case-manyptrwrongrst.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-manyptrwrongrst.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										132
									
								
								adns-0.6/regress/case-manyptrwrongrst.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								adns-0.6/regress/case-manyptrwrongrst.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,132 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 1 A(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 2 NS(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 5 CNAME(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 6 SOA(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 12 PTR(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 13 HINFO(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 15 MX(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 16 TXT(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 17 RP(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 65537 A(addr) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 65538 NS(+addr) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 65548 PTR(checked) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 65551 MX(+addr) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 131078 SOA(822) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 131089 RP(822) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type A(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=162
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type NS(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type CNAME(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type HINFO(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type A(addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=162
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type TXT(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=162
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type SOA(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type MX(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
adns debug: reply not found, id 3129, query owner 254.0.99.203.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type NS(+addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=600
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type MX(+addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=600
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type SOA(822): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=600
 | 
			
		||||
adns debug: reply not found, id 312b, query owner 254.0.99.203.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 312c, query owner 254.0.99.203.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type RP(822): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
adns debug: reply not found, id 312d, query owner 254.0.99.203.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type RP(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=598
 | 
			
		||||
adns debug: TCP connected (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 312a, query owner 254.0.99.203.in-addr.arpa (NS=172.18.45.6)
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type PTR(raw): OK; nrrs=94; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=20169
 | 
			
		||||
 ns.security.co.nz
 | 
			
		||||
 tetra.co.nz
 | 
			
		||||
 mail.agate.co.nz
 | 
			
		||||
 ns.agate.co.nz
 | 
			
		||||
 securitytraining.co.nz
 | 
			
		||||
 ns.giftbasket.co.nz
 | 
			
		||||
 ns.security.gen.nz
 | 
			
		||||
 bouquet.co.nz
 | 
			
		||||
 investigation.co.nz
 | 
			
		||||
 ns.nzipi.org.nz
 | 
			
		||||
 mail.neru.co.nz
 | 
			
		||||
 security.co.nz
 | 
			
		||||
 ns.storewatch.co.nz
 | 
			
		||||
 security.gen.nz
 | 
			
		||||
 ns.tetra.co.nz
 | 
			
		||||
 mail.tetra.co.nz
 | 
			
		||||
 ns.securicard.co.nz
 | 
			
		||||
 ns.underhour.co.nz
 | 
			
		||||
 bcc.co.nz
 | 
			
		||||
 security.org.nz
 | 
			
		||||
 burglaralarms.co.nz
 | 
			
		||||
 ns.safes.co.nz
 | 
			
		||||
 ns.security.org.nz
 | 
			
		||||
 couperconsulting.co.nz
 | 
			
		||||
 securityguards.co.nz
 | 
			
		||||
 ns.guards.co.nz
 | 
			
		||||
 asis.org.nz
 | 
			
		||||
 neru.co.nz
 | 
			
		||||
 giftbasket.co.nz
 | 
			
		||||
 magic.co.nz
 | 
			
		||||
 mail.bcc.co.nz
 | 
			
		||||
 ns.investigation.co.nz
 | 
			
		||||
 nzipi.org.nz
 | 
			
		||||
 ns.bouquet.co.nz
 | 
			
		||||
 mail.safes.co.nz
 | 
			
		||||
 ns.bcc.co.nz
 | 
			
		||||
 ns.burglaralarms.co.nz
 | 
			
		||||
 ns.securityguards.co.nz
 | 
			
		||||
 covertcameras.co.nz
 | 
			
		||||
 ns.neru.co.nz
 | 
			
		||||
 ns.covertcameras.co.nz
 | 
			
		||||
 bouquets.co.nz
 | 
			
		||||
 concentric.co.nz
 | 
			
		||||
 ns.securitytraining.co.nz
 | 
			
		||||
 mail.couperconsulting.co.nz
 | 
			
		||||
 retailsecurity.co.nz
 | 
			
		||||
 ns.concentric.co.nz
 | 
			
		||||
 mail.magic.co.nz
 | 
			
		||||
 nzangling.co.nz
 | 
			
		||||
 ns.couperconsulting.co.nz
 | 
			
		||||
 ns.nzangling.co.nz
 | 
			
		||||
 mail.storewatch.co.nz
 | 
			
		||||
 swift.co.nz
 | 
			
		||||
 mail.selective.co.nz
 | 
			
		||||
 ns.forefront.co.nz
 | 
			
		||||
 mail.nzangling.co.nz
 | 
			
		||||
 guards.co.nz
 | 
			
		||||
 mail.nzdesigns.co.nz
 | 
			
		||||
 storewatch.co.nz
 | 
			
		||||
 ns.securitymanagement.co.nz
 | 
			
		||||
 mail.woolworths.co.nz
 | 
			
		||||
 mail.concentric.co.nz
 | 
			
		||||
 selective.co.nz
 | 
			
		||||
 specialinvestigations.co.nz
 | 
			
		||||
 ns.swift.co.nz
 | 
			
		||||
 mail.swift.co.nz
 | 
			
		||||
 ns.securenet.net.nz
 | 
			
		||||
 privateinvestigation.co.nz
 | 
			
		||||
 ns.privateinvestigation.co.nz
 | 
			
		||||
 etrade.co.nz
 | 
			
		||||
 ns.specialinvestigations.co.nz
 | 
			
		||||
 mail.ansett.co.nz
 | 
			
		||||
 ftp.warrent.co.nz
 | 
			
		||||
 ns.retailsecurity.co.nz
 | 
			
		||||
 mail.securitymanagement.co.nz
 | 
			
		||||
 ns.magic.co.nz
 | 
			
		||||
 mail.forefront.co.nz
 | 
			
		||||
 mail.securicard.co.nz
 | 
			
		||||
 securicard.co.nz
 | 
			
		||||
 ns.nzdesigns.co.nz
 | 
			
		||||
 safes.co.nz
 | 
			
		||||
 ns.selective.co.nz
 | 
			
		||||
 forefront.co.nz
 | 
			
		||||
 securitymanagement.co.nz
 | 
			
		||||
 underhour.co.nz
 | 
			
		||||
 securenet.net.nz
 | 
			
		||||
 mail.specialinvestigations.co.nz
 | 
			
		||||
 nzdesigns.co.nz
 | 
			
		||||
 ns.etrade.co.nz
 | 
			
		||||
 mail.nzipi.org.nz
 | 
			
		||||
 mail.underhour.co.nz
 | 
			
		||||
 ns.asis.org.nz
 | 
			
		||||
 ns.bouquets.co.nz
 | 
			
		||||
 agate.co.nz
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type PTR(checked): Inconsistent resource records in DNS; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=20167
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										1209
									
								
								adns-0.6/regress/case-manyptrwrongrst.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1209
									
								
								adns-0.6/regress/case-manyptrwrongrst.sys
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										0
									
								
								adns-0.6/regress/case-manyptrwrongrty.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-manyptrwrongrty.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										164
									
								
								adns-0.6/regress/case-manyptrwrongrty.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								adns-0.6/regress/case-manyptrwrongrty.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,164 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 1 A(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 2 NS(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 5 CNAME(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 6 SOA(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 12 PTR(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 13 HINFO(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 15 MX(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 16 TXT(-) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 17 RP(raw) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 65537 A(addr) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 65538 NS(+addr) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 65548 PTR(checked) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 65551 MX(+addr) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 131078 SOA(822) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type 131089 RP(822) submitted
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type A(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type NS(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type SOA(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=540
 | 
			
		||||
adns debug: TCP connected (NS=172.18.45.6)
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type HINFO(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=540
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type MX(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=540
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type TXT(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type RP(raw): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type PTR(raw): OK; nrrs=94; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86351
 | 
			
		||||
 ns.security.co.nz
 | 
			
		||||
 tetra.co.nz
 | 
			
		||||
 mail.agate.co.nz
 | 
			
		||||
 ns.agate.co.nz
 | 
			
		||||
 securitytraining.co.nz
 | 
			
		||||
 ns.giftbasket.co.nz
 | 
			
		||||
 ns.security.gen.nz
 | 
			
		||||
 bouquet.co.nz
 | 
			
		||||
 investigation.co.nz
 | 
			
		||||
 ns.nzipi.org.nz
 | 
			
		||||
 mail.neru.co.nz
 | 
			
		||||
 security.co.nz
 | 
			
		||||
 ns.storewatch.co.nz
 | 
			
		||||
 security.gen.nz
 | 
			
		||||
 ns.tetra.co.nz
 | 
			
		||||
 mail.tetra.co.nz
 | 
			
		||||
 ns.securicard.co.nz
 | 
			
		||||
 ns.underhour.co.nz
 | 
			
		||||
 bcc.co.nz
 | 
			
		||||
 security.org.nz
 | 
			
		||||
 burglaralarms.co.nz
 | 
			
		||||
 ns.safes.co.nz
 | 
			
		||||
 ns.security.org.nz
 | 
			
		||||
 couperconsulting.co.nz
 | 
			
		||||
 securityguards.co.nz
 | 
			
		||||
 ns.guards.co.nz
 | 
			
		||||
 asis.org.nz
 | 
			
		||||
 neru.co.nz
 | 
			
		||||
 giftbasket.co.nz
 | 
			
		||||
 magic.co.nz
 | 
			
		||||
 mail.bcc.co.nz
 | 
			
		||||
 ns.investigation.co.nz
 | 
			
		||||
 nzipi.org.nz
 | 
			
		||||
 ns.bouquet.co.nz
 | 
			
		||||
 mail.safes.co.nz
 | 
			
		||||
 ns.bcc.co.nz
 | 
			
		||||
 ns.burglaralarms.co.nz
 | 
			
		||||
 ns.securityguards.co.nz
 | 
			
		||||
 covertcameras.co.nz
 | 
			
		||||
 ns.neru.co.nz
 | 
			
		||||
 ns.covertcameras.co.nz
 | 
			
		||||
 bouquets.co.nz
 | 
			
		||||
 concentric.co.nz
 | 
			
		||||
 ns.securitytraining.co.nz
 | 
			
		||||
 mail.couperconsulting.co.nz
 | 
			
		||||
 retailsecurity.co.nz
 | 
			
		||||
 ns.concentric.co.nz
 | 
			
		||||
 mail.magic.co.nz
 | 
			
		||||
 nzangling.co.nz
 | 
			
		||||
 ns.couperconsulting.co.nz
 | 
			
		||||
 ns.nzangling.co.nz
 | 
			
		||||
 mail.storewatch.co.nz
 | 
			
		||||
 swift.co.nz
 | 
			
		||||
 mail.selective.co.nz
 | 
			
		||||
 ns.forefront.co.nz
 | 
			
		||||
 mail.nzangling.co.nz
 | 
			
		||||
 guards.co.nz
 | 
			
		||||
 mail.nzdesigns.co.nz
 | 
			
		||||
 storewatch.co.nz
 | 
			
		||||
 ns.securitymanagement.co.nz
 | 
			
		||||
 mail.woolworths.co.nz
 | 
			
		||||
 mail.concentric.co.nz
 | 
			
		||||
 selective.co.nz
 | 
			
		||||
 specialinvestigations.co.nz
 | 
			
		||||
 ns.swift.co.nz
 | 
			
		||||
 mail.swift.co.nz
 | 
			
		||||
 ns.securenet.net.nz
 | 
			
		||||
 privateinvestigation.co.nz
 | 
			
		||||
 ns.privateinvestigation.co.nz
 | 
			
		||||
 etrade.co.nz
 | 
			
		||||
 ns.specialinvestigations.co.nz
 | 
			
		||||
 mail.ansett.co.nz
 | 
			
		||||
 ftp.warrent.co.nz
 | 
			
		||||
 ns.retailsecurity.co.nz
 | 
			
		||||
 mail.securitymanagement.co.nz
 | 
			
		||||
 ns.magic.co.nz
 | 
			
		||||
 mail.forefront.co.nz
 | 
			
		||||
 mail.securicard.co.nz
 | 
			
		||||
 securicard.co.nz
 | 
			
		||||
 ns.nzdesigns.co.nz
 | 
			
		||||
 safes.co.nz
 | 
			
		||||
 ns.selective.co.nz
 | 
			
		||||
 forefront.co.nz
 | 
			
		||||
 securitymanagement.co.nz
 | 
			
		||||
 underhour.co.nz
 | 
			
		||||
 securenet.net.nz
 | 
			
		||||
 mail.specialinvestigations.co.nz
 | 
			
		||||
 nzdesigns.co.nz
 | 
			
		||||
 ns.etrade.co.nz
 | 
			
		||||
 mail.nzipi.org.nz
 | 
			
		||||
 mail.underhour.co.nz
 | 
			
		||||
 ns.asis.org.nz
 | 
			
		||||
 ns.bouquets.co.nz
 | 
			
		||||
 agate.co.nz
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type A(addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type NS(+addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type MX(+addr): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=540
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type SOA(822): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=540
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type RP(822): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=539
 | 
			
		||||
adns debug: reply not found, id 313b, query owner security.gen.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 313c, query owner ns.tetra.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 313d, query owner mail.tetra.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 313e, query owner ns.securicard.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 313f, query owner ns.underhour.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3140, query owner bcc.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3141, query owner security.org.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3142, query owner burglaralarms.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3143, query owner ns.safes.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3144, query owner ns.security.org.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3145, query owner couperconsulting.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3146, query owner securityguards.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3147, query owner ns.guards.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3148, query owner asis.org.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3149, query owner neru.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 314a, query owner giftbasket.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 314b, query owner magic.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 314c, query owner mail.bcc.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 314d, query owner ns.investigation.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 314e, query owner nzipi.org.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 314f, query owner ns.bouquet.co.nz (NS=172.18.45.6)
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type PTR(checked): Inconsistent resource records in DNS; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86351
 | 
			
		||||
adns debug: reply not found, id 3150, query owner mail.safes.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3151, query owner ns.bcc.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3152, query owner ns.burglaralarms.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3153, query owner ns.securityguards.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3154, query owner covertcameras.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3155, query owner ns.neru.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3156, query owner ns.covertcameras.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3157, query owner bouquets.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3158, query owner concentric.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 3159, query owner ns.securitytraining.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 315a, query owner mail.couperconsulting.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 315b, query owner retailsecurity.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 315c, query owner ns.concentric.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 315d, query owner mail.magic.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 315e, query owner nzangling.co.nz (NS=172.18.45.6)
 | 
			
		||||
adns debug: reply not found, id 315f, query owner ns.couperconsulting.co.nz (NS=172.18.45.6)
 | 
			
		||||
254.0.99.203.in-addr.arpa flags 292 type CNAME(-): No such data; nrrs=0; cname=$; owner=254.0.99.203.in-addr.arpa; ttl=86400
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										1436
									
								
								adns-0.6/regress/case-manyptrwrongrty.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1436
									
								
								adns-0.6/regress/case-manyptrwrongrty.sys
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										0
									
								
								adns-0.6/regress/case-ndots-as.err
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								adns-0.6/regress/case-ndots-as.err
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										16
									
								
								adns-0.6/regress/case-ndots-as.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								adns-0.6/regress/case-ndots-as.out
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
adns debug: using nameserver 172.18.45.6
 | 
			
		||||
newsx.davenant flags 5 type 1 A(-) submitted
 | 
			
		||||
news.davenant flags 5 type 1 A(-) submitted
 | 
			
		||||
news.davenant.greenend.org.uk flags 5 type 1 A(-) submitted
 | 
			
		||||
trunc.test.iwj.relativity flags 5 type 1 A(-) submitted
 | 
			
		||||
trunx.test.iwj.relativity flags 5 type 1 A(-) submitted
 | 
			
		||||
test.iwj.relativity flags 5 type 1 A(-) submitted
 | 
			
		||||
news.davenant.greenend.org.uk flags 5 type A(-): OK; nrrs=1; cname=davenant.relativity.greenend.org.uk; owner=news.davenant.greenend.org.uk; ttl=86400
 | 
			
		||||
 172.18.45.6
 | 
			
		||||
newsx.davenant flags 5 type A(-): No such domain; nrrs=0; cname=$; owner=newsx.davenant.greenend.org.uk; ttl=86400
 | 
			
		||||
news.davenant flags 5 type A(-): OK; nrrs=1; cname=davenant.relativity.greenend.org.uk; owner=news.davenant.greenend.org.uk; ttl=86400
 | 
			
		||||
 172.18.45.6
 | 
			
		||||
trunc.test.iwj.relativity flags 5 type A(-): No such data; nrrs=0; cname=$; owner=trunc.test.iwj.relativity.greenend.org.uk; ttl=60
 | 
			
		||||
trunx.test.iwj.relativity flags 5 type A(-): No such domain; nrrs=0; cname=$; owner=trunx.test.iwj.relativity.greenend.org.uk; ttl=60
 | 
			
		||||
test.iwj.relativity flags 5 type A(-): No such data; nrrs=0; cname=$; owner=test.iwj.relativity.greenend.org.uk; ttl=60
 | 
			
		||||
rc=0
 | 
			
		||||
							
								
								
									
										316
									
								
								adns-0.6/regress/case-ndots-as.sys
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										316
									
								
								adns-0.6/regress/case-ndots-as.sys
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,316 @@
 | 
			
		||||
default
 | 
			
		||||
:1 5/newsx.davenant 5/news.davenant 5/news.davenant.greenend.org.uk 5/trunc.test.iwj.relativity 5/trunx.test.iwj.relativity 5/test.iwj.relativity
 | 
			
		||||
 start 931992163.221752
 | 
			
		||||
 socket type=SOCK_DGRAM
 | 
			
		||||
 socket=4
 | 
			
		||||
 +0.000186
 | 
			
		||||
 fcntl fd=4 cmd=F_GETFL
 | 
			
		||||
 fcntl=~O_NONBLOCK&...
 | 
			
		||||
 +0.000086
 | 
			
		||||
 fcntl fd=4 cmd=F_SETFL O_NONBLOCK|...
 | 
			
		||||
 fcntl=OK
 | 
			
		||||
 +0.000066
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     311f0100 00010000 00000000 056e6577 73780864 6176656e 616e7400 00010001.
 | 
			
		||||
 sendto=32
 | 
			
		||||
 +0.000567
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31200100 00010000 00000000 046e6577 73086461 76656e61 6e740000 010001.
 | 
			
		||||
 sendto=31
 | 
			
		||||
 +0.000453
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31210100 00010000 00000000 046e6577 73086461 76656e61 6e740867 7265656e
 | 
			
		||||
     656e6403 6f726702 756b0000 010001.
 | 
			
		||||
 sendto=47
 | 
			
		||||
 +0.000507
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31220100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790000 010001.
 | 
			
		||||
 sendto=43
 | 
			
		||||
 +0.000479
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31230100 00010000 00000000 05747275 6e780474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790000 010001.
 | 
			
		||||
 sendto=43
 | 
			
		||||
 +0.000624
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31240100 00010000 00000000 04746573 74036977 6a0a7265 6c617469 76697479
 | 
			
		||||
     00000100 01.
 | 
			
		||||
 sendto=37
 | 
			
		||||
 +0.000457
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.996913
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.022284
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31218580 00010002 00030003 046e6577 73086461 76656e61 6e740867 7265656e
 | 
			
		||||
     656e6403 6f726702 756b0000 010001c0 0c000500 01000151 80002508 64617665
 | 
			
		||||
     6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00
 | 
			
		||||
     c03b0001 00010001 51800004 ac122d06 c0440002 00010001 51800006 036e7330
 | 
			
		||||
     c044c044 00020001 00015180 0006036e 7331c044 c0440002 00010001 51800006
 | 
			
		||||
     036e7332 c044c07c 00010001 00015180 0004ac12 2d06c08e 00010001 00015180
 | 
			
		||||
     0004ac12 2d41c0a0 00010001 00015180 0004ac12 2d01.
 | 
			
		||||
 +0.001420
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000291
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.972918
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.387236
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     311f8583 00010000 00010000 056e6577 73780864 6176656e 616e7400 00010001
 | 
			
		||||
     00000600 01000151 80003e01 410c524f 4f542d53 45525645 5253034e 4554000a
 | 
			
		||||
     686f7374 6d617374 65720849 4e544552 4e4943c0 3a772768 44000007 08000003
 | 
			
		||||
     8400093a 80000151 80.
 | 
			
		||||
 +0.000745
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31250100 00010000 00000000 056e6577 73780864 6176656e 616e7408 64617665
 | 
			
		||||
     6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01.
 | 
			
		||||
 sendto=57
 | 
			
		||||
 +0.000559
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000102
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.584843
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.005460
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31258583 00010000 00010000 056e6577 73780864 6176656e 616e7408 64617665
 | 
			
		||||
     6e616e74 08677265 656e656e 64036f72 6702756b 00000100 01086772 65656e65
 | 
			
		||||
     6e64036f 72670275 6b000006 00010001 5180002d 026e7306 63686961 726bc039
 | 
			
		||||
     0a686f73 746d6173 746572c0 39772741 34000070 8000001c 2000093a 80000151
 | 
			
		||||
     80.
 | 
			
		||||
 +0.000861
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31260100 00010000 00000000 056e6577 73780864 6176656e 616e7408 67726565
 | 
			
		||||
     6e656e64 036f7267 02756b00 00010001.
 | 
			
		||||
 sendto=48
 | 
			
		||||
 +0.000511
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000100
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.577911
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.003716
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31268583 00010000 00010000 056e6577 73780864 6176656e 616e7408 67726565
 | 
			
		||||
     6e656e64 036f7267 02756b00 00010001 08677265 656e656e 64036f72 6702756b
 | 
			
		||||
     00000600 01000151 80002d02 6e730663 68696172 6bc0300a 686f7374 6d617374
 | 
			
		||||
     6572c030 77274134 00007080 00001c20 00093a80 00015180.
 | 
			
		||||
 +0.000808
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000127
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.573260
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.075508
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31208583 00010000 00010000 046e6577 73086461 76656e61 6e740000 01000100
 | 
			
		||||
     00060001 00015180 003e0141 0c524f4f 542d5345 52564552 53034e45 54000a68
 | 
			
		||||
     6f73746d 61737465 7208494e 5445524e 4943c039 77276844 00000708 00000384
 | 
			
		||||
     00093a80 00015180.
 | 
			
		||||
 +0.000755
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31270100 00010000 00000000 046e6577 73086461 76656e61 6e740864 6176656e
 | 
			
		||||
     616e7408 67726565 6e656e64 036f7267 02756b00 00010001.
 | 
			
		||||
 sendto=56
 | 
			
		||||
 +0.000532
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000101
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.497324
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.005326
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31278583 00010000 00010000 046e6577 73086461 76656e61 6e740864 6176656e
 | 
			
		||||
     616e7408 67726565 6e656e64 036f7267 02756b00 00010001 08677265 656e656e
 | 
			
		||||
     64036f72 6702756b 00000600 01000151 80002d02 6e730663 68696172 6bc0380a
 | 
			
		||||
     686f7374 6d617374 6572c038 77274134 00007080 00001c20 00093a80 00015180.
 | 
			
		||||
 +0.000855
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31280100 00010000 00000000 046e6577 73086461 76656e61 6e740867 7265656e
 | 
			
		||||
     656e6403 6f726702 756b0000 010001.
 | 
			
		||||
 sendto=47
 | 
			
		||||
 +0.000503
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000100
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.490540
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.007220
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31288580 00010002 00030003 046e6577 73086461 76656e61 6e740867 7265656e
 | 
			
		||||
     656e6403 6f726702 756b0000 010001c0 0c000500 01000151 80002508 64617665
 | 
			
		||||
     6e616e74 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00
 | 
			
		||||
     c03b0001 00010001 51800004 ac122d06 c0440002 00010001 51800006 036e7330
 | 
			
		||||
     c044c044 00020001 00015180 0006036e 7331c044 c0440002 00010001 51800006
 | 
			
		||||
     036e7332 c044c07c 00010001 00015180 0004ac12 2d06c08e 00010001 00015180
 | 
			
		||||
     0004ac12 2d41c0a0 00010001 00015180 0004ac12 2d01.
 | 
			
		||||
 +0.001356
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000223
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.481741
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.023419
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31228583 00010000 00010000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790000 01000100 00060001 00015180 003e0141 0c524f4f 542d5345
 | 
			
		||||
     52564552 53034e45 54000a68 6f73746d 61737465 7208494e 5445524e 4943c045
 | 
			
		||||
     77276844 00000708 00000384 00093a80 00015180.
 | 
			
		||||
 +0.000802
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     31290100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00
 | 
			
		||||
     00010001.
 | 
			
		||||
 sendto=68
 | 
			
		||||
 +0.000607
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000101
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.457291
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.005416
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31298583 00010000 00010000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00
 | 
			
		||||
     00010001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002d02
 | 
			
		||||
     6e730663 68696172 6bc0440a 686f7374 6d617374 6572c044 77274134 00007080
 | 
			
		||||
     00001c20 00093a80 00015180.
 | 
			
		||||
 +0.000925
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312a0100 00010000 00000000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001.
 | 
			
		||||
 sendto=59
 | 
			
		||||
 +0.000575
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000101
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.450274
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.006009
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312a8580 00010000 00010000 05747275 6e630474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 01000104 74657374
 | 
			
		||||
     0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00
 | 
			
		||||
     00060001 0000003c 0027036e 7330c044 0a686f73 746d6173 746572c0 44000000
 | 
			
		||||
     1800000e 10000000 780064c8 00000000 3c.
 | 
			
		||||
 +0.000954
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000145
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.443166
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.014229
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31238583 00010000 00010000 05747275 6e780474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790000 01000100 00060001 00015180 003e0141 0c524f4f 542d5345
 | 
			
		||||
     52564552 53034e45 54000a68 6f73746d 61737465 7208494e 5445524e 4943c045
 | 
			
		||||
     77276844 00000708 00000384 00093a80 00015180.
 | 
			
		||||
 +0.000805
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312b0100 00010000 00000000 05747275 6e780474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00
 | 
			
		||||
     00010001.
 | 
			
		||||
 sendto=68
 | 
			
		||||
 +0.000606
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000101
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.428049
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.005331
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312b8583 00010000 00010000 05747275 6e780474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790864 6176656e 616e7408 67726565 6e656e64 036f7267 02756b00
 | 
			
		||||
     00010001 08677265 656e656e 64036f72 6702756b 00000600 01000151 80002d02
 | 
			
		||||
     6e730663 68696172 6bc0440a 686f7374 6d617374 6572c044 77274134 00007080
 | 
			
		||||
     00001c20 00093a80 00015180.
 | 
			
		||||
 +0.000923
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312c0100 00010000 00000000 05747275 6e780474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 010001.
 | 
			
		||||
 sendto=59
 | 
			
		||||
 +0.000584
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000101
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.421110
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.004042
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312c8583 00010000 00010000 05747275 6e780474 65737403 69776a0a 72656c61
 | 
			
		||||
     74697669 74790867 7265656e 656e6403 6f726702 756b0000 01000104 74657374
 | 
			
		||||
     0369776a 0a72656c 61746976 69747908 67726565 6e656e64 036f7267 02756b00
 | 
			
		||||
     00060001 0000003c 0027036e 7330c044 0a686f73 746d6173 746572c0 44000000
 | 
			
		||||
     1800000e 10000000 780064c8 00000000 3c.
 | 
			
		||||
 +0.000951
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000153
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.415964
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.026227
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     31248583 00010000 00010000 04746573 74036977 6a0a7265 6c617469 76697479
 | 
			
		||||
     00000100 01000006 00010001 5180003e 01410c52 4f4f542d 53455256 45525303
 | 
			
		||||
     4e455400 0a686f73 746d6173 74657208 494e5445 524e4943 c03f7727 68440000
 | 
			
		||||
     07080000 03840009 3a800001 5180.
 | 
			
		||||
 +0.000817
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312d0100 00010000 00000000 04746573 74036977 6a0a7265 6c617469 76697479
 | 
			
		||||
     08646176 656e616e 74086772 65656e65 6e64036f 72670275 6b000001 0001.
 | 
			
		||||
 sendto=62
 | 
			
		||||
 +0.000579
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000102
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998502
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.005185
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312d8583 00010000 00010000 04746573 74036977 6a0a7265 6c617469 76697479
 | 
			
		||||
     08646176 656e616e 74086772 65656e65 6e64036f 72670275 6b000001 00010867
 | 
			
		||||
     7265656e 656e6403 6f726702 756b0000 06000100 01518000 2d026e73 06636869
 | 
			
		||||
     61726bc0 3e0a686f 73746d61 73746572 c03e7727 41340000 70800000 1c200009
 | 
			
		||||
     3a800001 5180.
 | 
			
		||||
 +0.000918
 | 
			
		||||
 sendto fd=4 addr=172.18.45.6:53
 | 
			
		||||
     312e0100 00010000 00000000 04746573 74036977 6a0a7265 6c617469 76697479
 | 
			
		||||
     08677265 656e656e 64036f72 6702756b 00000100 01.
 | 
			
		||||
 sendto=53
 | 
			
		||||
 +0.000524
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000102
 | 
			
		||||
 select max=5 rfds=[4] wfds=[] efds=[] to=1.998456
 | 
			
		||||
 select=1 rfds=[4] wfds=[] efds=[]
 | 
			
		||||
 +0.004007
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=OK addr=172.18.45.6:53
 | 
			
		||||
     312e8580 00010000 00010000 04746573 74036977 6a0a7265 6c617469 76697479
 | 
			
		||||
     08677265 656e656e 64036f72 6702756b 00000100 01c00c00 06000100 00003c00
 | 
			
		||||
     41036e73 300a7265 6c617469 76697479 08677265 656e656e 64036f72 6702756b
 | 
			
		||||
     000a686f 73746d61 73746572 c0450000 00180000 0e100000 00780064 c8000000
 | 
			
		||||
     003c.
 | 
			
		||||
 +0.000867
 | 
			
		||||
 recvfrom fd=4 buflen=512 *addrlen=16
 | 
			
		||||
 recvfrom=EAGAIN
 | 
			
		||||
 +0.000175
 | 
			
		||||
 close fd=4
 | 
			
		||||
 close=OK
 | 
			
		||||
 +0.000183
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue
	
	Block a user