Browse Source

Import upstream version 0.9.2

Alexander Barton 16 years ago
commit
4736aa9617
100 changed files with 37293 additions and 0 deletions
  1. 35 0
      AUTHORS
  2. 340 0
      COPYING
  3. 632 0
      ChangeLog
  4. 186 0
      INSTALL
  5. 46 0
      Makefile.am
  6. 555 0
      Makefile.in
  7. 211 0
      NEWS
  8. 87 0
      README
  9. 1010 0
      aclocal.m4
  10. 1466 0
      config.guess
  11. 1579 0
      config.sub
  12. 10130 0
      configure
  13. 418 0
      configure.in
  14. 28 0
      contrib/Debian/Makefile.am
  15. 292 0
      contrib/Debian/Makefile.in
  16. 187 0
      contrib/Debian/changelog
  17. 1 0
      contrib/Debian/compat
  18. 47 0
      contrib/Debian/control
  19. 13 0
      contrib/Debian/copyright
  20. 75 0
      contrib/Debian/ngircd.init
  21. 14 0
      contrib/Debian/ngircd.postinst
  22. 172 0
      contrib/Debian/rules
  23. 20 0
      contrib/MacOSX/Makefile.am
  24. 283 0
      contrib/MacOSX/Makefile.in
  25. 22 0
      contrib/Makefile.am
  26. 433 0
      contrib/Makefile.in
  27. 27 0
      contrib/README
  28. 55 0
      contrib/ngircd.spec
  29. 77 0
      contrib/systrace.policy
  30. 479 0
      depcomp
  31. 56 0
      doc/CVS.txt
  32. 79 0
      doc/FAQ.txt
  33. 42 0
      doc/Makefile.am
  34. 311 0
      doc/Makefile.in
  35. 65 0
      doc/Platforms.txt
  36. 118 0
      doc/Protocol.txt
  37. 67 0
      doc/README-AUX.txt
  38. 53 0
      doc/README-BeOS.txt
  39. 33 0
      doc/RFC.txt
  40. 181 0
      doc/sample-ngircd.conf
  41. 294 0
      install-sh
  42. 22 0
      man/Makefile.am
  43. 386 0
      man/Makefile.in
  44. 80 0
      man/ngircd.8
  45. 250 0
      man/ngircd.conf.5
  46. 336 0
      missing
  47. 111 0
      mkinstalldirs
  48. 24 0
      src/Makefile.am
  49. 453 0
      src/Makefile.in
  50. 308 0
      src/config.h.in
  51. 99 0
      src/ngircd/Makefile.am
  52. 675 0
      src/ngircd/Makefile.in
  53. 896 0
      src/ngircd/channel.c
  54. 111 0
      src/ngircd/channel.h
  55. 1183 0
      src/ngircd/client.c
  56. 161 0
      src/ngircd/client.h
  57. 1075 0
      src/ngircd/conf.c
  58. 148 0
      src/ngircd/conf.h
  59. 264 0
      src/ngircd/conn-func.c
  60. 62 0
      src/ngircd/conn-func.h
  61. 210 0
      src/ngircd/conn-zip.c
  62. 38 0
      src/ngircd/conn-zip.h
  63. 1723 0
      src/ngircd/conn.c
  64. 107 0
      src/ngircd/conn.h
  65. 112 0
      src/ngircd/defines.h
  66. 125 0
      src/ngircd/hash.c
  67. 27 0
      src/ngircd/hash.h
  68. 495 0
      src/ngircd/irc-channel.c
  69. 33 0
      src/ngircd/irc-channel.h
  70. 1021 0
      src/ngircd/irc-info.c
  71. 44 0
      src/ngircd/irc-info.h
  72. 577 0
      src/ngircd/irc-login.c
  73. 32 0
      src/ngircd/irc-login.h
  74. 728 0
      src/ngircd/irc-mode.c
  75. 28 0
      src/ngircd/irc-mode.h
  76. 126 0
      src/ngircd/irc-op.c
  77. 28 0
      src/ngircd/irc-op.h
  78. 216 0
      src/ngircd/irc-oper.c
  79. 32 0
      src/ngircd/irc-oper.h
  80. 427 0
      src/ngircd/irc-server.c
  81. 29 0
      src/ngircd/irc-server.h
  82. 428 0
      src/ngircd/irc-write.c
  83. 39 0
      src/ngircd/irc-write.h
  84. 345 0
      src/ngircd/irc.c
  85. 32 0
      src/ngircd/irc.h
  86. 488 0
      src/ngircd/lists.c
  87. 46 0
      src/ngircd/lists.h
  88. 327 0
      src/ngircd/log.c
  89. 56 0
      src/ngircd/log.h
  90. 253 0
      src/ngircd/match.c
  91. 27 0
      src/ngircd/match.h
  92. 128 0
      src/ngircd/messages.h
  93. 811 0
      src/ngircd/ngircd.c
  94. 57 0
      src/ngircd/ngircd.h
  95. 456 0
      src/ngircd/parse.c
  96. 49 0
      src/ngircd/parse.h
  97. 366 0
      src/ngircd/rendezvous.c
  98. 39 0
      src/ngircd/rendezvous.h
  99. 325 0
      src/ngircd/resolve.c
  100. 0 0
      src/ngircd/resolve.h

+ 35 - 0
AUTHORS

@@ -0,0 +1,35 @@
+
+                     ngIRCd - Next Generation IRC Server
+
+                        (c)2001-2005 Alexander Barton,
+                    alex@barton.de, http://www.barton.de/
+
+               ngIRCd is free software and published under the
+                   terms of the GNU General Public License.
+
+                       -- AUTHORS and CONTRIBUTORS --
+
+
+Main Authors
+~~~~~~~~~~~~
+Alexander Barton, <alex@barton.de> (alex)
+
+
+Contributors
+~~~~~~~~~~~~
+Goetz Hoffart, <goetz@hoffart.de> (goetz)
+Ilja Osthoff, <i.osthoff@gmx.net> (ilja)
+Benjamin Pineau, <ben@zouh.org>
+Sean Reifschneider, <jafo-rpms@tummy.com>
+Florian Westphal, <westphal@foo.fh-furtwangen.de> (fw)
+
+
+Code snippets
+~~~~~~~~~~~~~
+J. Kercheval: pattern matching functions
+Patrick Powell, <papowell@astart.com>: snprintf()-function
+Andrew Tridgell & Martin Pool: strl{cpy|cat}()-functions
+
+
+-- 
+$Id: AUTHORS,v 1.11 2005/03/19 14:24:52 alex Exp $

+ 340 - 0
COPYING

@@ -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.

+ 632 - 0
ChangeLog

@@ -0,0 +1,632 @@
+
+                     ngIRCd - Next Generation IRC Server
+
+                        (c)2001-2005 Alexander Barton,
+                    alex@barton.de, http://www.barton.de/
+
+               ngIRCd is free software and published under the
+                   terms of the GNU General Public License.
+
+                               -- ChangeLog --
+
+
+ngIRCd 0.9.2 (2005-10-15)
+
+  - Fixed a bug that could cause the damon to crash when outgoing server
+    connections can't be established.
+  - Fixed a bug that caused the daemon to leak file descriptors when no
+    resolver subprocesses could be created.
+  - Fixed server NOTICEs to users with "s" mode ("server messages").
+  - Fixed a format string bug in "connection statistics" messages to clients.
+
+ngIRCd 0.9.1 (2005-08-03)
+
+  - The KILL command killed much more than desired (including server links!)
+    when the target user is connected to a remote server. Bug introduced in
+    ngIRCd 0.9.0 ...  Reported by <qssl@fastmail.fm>, Thanks!
+  - Changed some constants to be "signed" (instead of unsigned) to solve
+    problems with old (pre-ANSI) compilers.
+
+ngIRCd 0.9.0 (2005-07-24)
+
+  ngIRCd 0.9.0-pre1 (2005-07-09)
+  - Fixed maximum length of user names, now allow up to 9 characters.
+  - Cut off oversized IRC messages that should be sent to the network instead
+    of shuttding down the (wrong) connection.
+  - Don't generate error messages for unknown commands received before the
+    client is registered with the server (like the original ircd).
+  - Never run with root privileges but always switch the user ID.
+  - Make "netsplit" messages RFC compliant.
+  - Fix handling of QUIT Messages: send only one message, even if the client
+    is member of multiple channels.
+  - Don't exit server if closing of a socket fails; instead ignore it and
+    pray that this will be "the right thing" ...
+  - Implemented the IRC function "WHOWAS".
+  - Don't enable assert() calls when not ./configure'd with --enable-debug.
+  - Fixed ./configure test for TCP Wrappers: now it runs on Mac OS X as well.
+  - Enhanced configure script: now you can pass an (optional) search path
+    to all --with-XXX parameters, e. g. "--with-ident=/opt/ident".
+  - Removed typedefs for the native C datatypes.
+    Use stdbool.h / inttypes.h if available.
+  - New configuration option "OperServerMode" to enable a workaround needed
+    when running an network with ircd2 servers and "OperCanUseMode" enabled
+    to prevent the ircd2 daemon to drop mode changes of IRC operators.
+    Patch by Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+  - Implemented support for "secret channels" (channel mode "s").
+  - New configuration option "Mask" for [Operator] sections to limit OPER
+    commands to users with a specific IRC mask. Patch from Florian Westphal.
+  - Write "error file" (/tmp/ngircd-XXX.err) only if compiled with debug
+    code ("--enable-debug") and running as daemon process.
+  - Don't create version information string each time a client connects
+    but instead on server startup. By Florian Westphal.
+  - New configuration variable "PidFile", section "[Global]": if defined,
+    the server writes its process ID (PID) to this file. Default: off.
+    Idea of Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+  - Code cleanups from Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+  - Raised the maximum length of passwords to 20 characters.
+  - Fixed a memory leak when resizing the connection pool and realloc()
+    failed. Now we don't fall back to malloc(), which should be sane anyway.
+    Patch from Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+  - Added support for the Howl (http://www.porchdogsoft.com/products/howl/)
+    Rendezvous API, in addition to the API of Apple (Mac OS X). The available
+    API will be autodetected when you call "./configure --with-rendezvous".
+  - Made ngIRCd compile on HP/UX 10.20 with native HP pre-ANSI C compiler and
+    most probably other older C compilers on other systems.
+  - When the daemon should switch to another user ID (ServerID is defined in
+    the configuration file) and is not running in a chroot environment, it
+    changes its working directory to the home directory of this user. This
+    should enable the system to write proper core files when not running with
+    root privileges ...
+
+ngIRCd 0.8.3 (2005-02-03)
+
+  - Fixed a bug that could case a root exploit when the daemon is compiled
+    to do IDENT lookups and is logging to syslog. Bug discovered by CoKi,
+    <coki@nosystem.com.ar>, thanks a lot!
+    (http://www.nosystem.com.ar/advisories/advisory-11.txt)
+
+ngIRCd 0.8.2 (2005-01-26)
+
+  - Added doc/SSL.txt to distribution.
+  - Fixed a buffer overflow that could cause the daemon to crash. Bug found
+    by Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+  - Fixed a possible buffer underrun when reading the MOTD file. Thanks
+    to Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+  - Fixed detection of IRC lines which are too long to send. Detected by
+    Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+  - Fixed return values of our own implementation of strlcpy(). The code has
+    been taken from rsync and they fixed it, but we didn't until today :-/
+    It has only been used when the system didn't implement strlcpy by itself,
+    not on "modern" systems. Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+
+ngIRCd 0.8.1 (2004-12-25)
+
+  - Autoconf: Updated config.guess and config.sub
+  - Added some more debug code ...
+  - Fixed wrong variable names in output of "ngircd --configtest".
+  - Debian: Fixed the name of the "default file" in the init script for
+    ngircd-full packages. And do the test if the binary is executable after
+    reading this file.
+  - Enhanced the "test suite": please have a look at src/testsuite/README!
+
+ngIRCd 0.8.0 (2004-06-26)
+
+  - Fixed wrong buffer size calculation for results of the resolver.
+
+  ngircd 0.8.0-pre2 (2004-05-16)
+  - Enhanced logging to console when running in "no-detached mode": added
+    PID and log messages of resolver sub-processes.
+  - Fixed host name lookups when using IDENT user lookups.
+  - "make clean" and "make maintainer-clean" remove more files now.
+
+  ngIRCd 0.8.0-pre1 (2004-05-07)
+  - Two new configuration options: "ChrootDir" and "MotdPhrase", thanks to
+    Benjamin Pineau <ben@zouh.org>. Now you can force the daemon to change
+    its root and working directory to something "safe". MotdPhrase is used
+    to define an "MOTD string" instead of a whole file, useful if the
+    "real" MOTD file would be outside the "jail".
+  - INVITE- and BAN-lists become synchronized between IRC+ servers when
+    establishing new connections, if the peer supports this as well.
+  - Reorganized autogen.sh and configure scripts.
+  - Fixed a wrong assert() which could cause the daemon to exit spuriously
+    when closing down connections.
+  - Better logging of decompression errors returned by zlib.
+  - Servers other than the destination server didn't clean up the invite
+    list of an "invite-only" channel properly when an INVITE'd user joined.
+  - Changed the reply of the MODE command to match the syntax of the
+    original ircd exactly: the unnecessary but missing ":" before the last
+    parameter has been added.
+  - Fixed TRACE: don't output "Serv" lines for ourself; display more info.
+  - Results of the resolver (hostnames and IDENT names) are discarded after
+    the client is successfully registered with the server.
+  - Better logging while establishing and shutting down connections.
+  - The type of service (TOS) of all sockets is set to "interactive" now.
+  - Added short command line option "-t" as alternative to "--configtest".
+  - Added optional support for "IDENT" lookups on incoming connections. You
+    have to enable this function with the ./configure switch "--with-ident".
+    The default is not to do IDENT lookups.
+
+ngIRCd 0.7.7 (2004-02-05)
+
+  - The info text ("real name") of users is set to "-" if none has been
+    specified using the USER command (e. g. "USER user * * :"). Reason:
+    the original ircd doesn't like empty ones and would KILL such users.
+  - Fixed (optional) TCP Wrapper test which was broken and could result in
+    false results. Thanks to Fuminori Tanizaki <tany@mcnet.ad.jp>!
+  - Removed "USE_" prefixes of configuration #defines.
+
+ngIRCd 0.7.6 (2003-12-05)
+
+  - Fixed abort() ("server crash") when INVITE'ing users to nonexistent
+    channels. Bug found by <hiddenx@wp.pl>.
+  - Extended version numbering of CVS versions (added date).
+  - Enhanced/fixed doc/Protocol.txt;
+
+ngIRCd 0.7.5 (2003-11-07)
+
+  - Fixed ban behavior: users which are banned from a channel can't no
+    longer send PRIVMSG's to this channel (fixes Bug #47).
+  - Fixed and enhanced the "penalty handling" of the server: commands that
+    require more resources block the client for a short time.
+  - Changed the internal time resolution to one second.
+  - New configuration variable "MaxConnectionsIP" to limit the number of
+    simultaneous connections from a single IP that the server will accept.
+    This configuration options lowers the risk of denial of service attacks
+    (DoS), the default is 5 connections per client IP.
+  - Fixed build problems under Mac OS X 10.3.
+  - Use "-pipe" when compiling with gcc, speeds things up a little :-)
+  - Added new configuration variable "Listen" to bind all listening
+    sockets of the server to a single IP address.
+  - Suppress misleading error message of diff during make run.
+  - Enhanced test-suite and made it work on GNU/Hurd.
+  - Fixed minor typo in debug output :-)
+
+ngIRCd 0.7.1 (2003-07-18)
+
+  - Included files to build Debian packages (located in "debian/").
+  - Updated config.guess and config.sub to newer upstream versions.
+  - NJOIN propagates user channel modes correctly again ... Upsa.
+  - Made Makefile more compatible with "make -j<n>".
+  - Added support for GNU/Hurd.
+  - Fixed a compiler warning related to an unnecessary assert().
+  - Enhanced VERSION command when using debug versions.
+
+ngIRCd 0.7.0 (2003-05-01)
+
+  - "ServerName" is checked better now: a dot (".") is required.
+  - The KILL command verifies and logs more parameters.
+
+  ngIRCd 0.7.0-pre2 (2003-04-27)
+  - CVS build system fixes (made autogen.sh more portable).
+  - Fixed compilation and test-suite on Solaris (tested with 2.6).
+  - New documentation file "doc/Platforms.txt" describing the status of
+    ngIRCd on the various tested platforms.
+  - Test for broken GCC on Mac OS X and disable "-pedantic" in this case.
+  - Disable "-ansi" on Cygwin: system headers are incompatible.
+  - The server tried to connect to other servers only once when DNS or
+    socket failures occurred.
+  - Fixed --configtest: There is no variable "ServerPwd", it's "Password".
+
+  ngIRCd 0.7.0-pre1 (2003-04-22)
+  - New signal handler (more secure, actions are executed outside).
+  - GCC: the compiler is now called with more warning options enabled.
+  - Replaced a lot of str[n]cpy(), str[n]cat() and sprintf() calls with the
+    more secure functions strlcpy(), strlcat() and snprintf(). On systems
+    that don't support strlcpy() and strlcat(), these functions are included
+    in the libngportab now (with prototypes in portab.h).
+  - If the server can't close a socket, it panics now. This is an error that
+    can't occur during normal operation so there is something broken.
+  - The order of log messages during disconnects is more "natural" now ;-)
+  - Cleaned up handling of server configuration structures: modifying and
+    removing servers during runtime works more reliable now.
+  - Compression code from "conn.[ch]" is now found in new "conn-zip.[ch]"
+  - Moved some connection functions from "conn.[ch]" to "conn-func.[ch]".
+  - New command CONNECT to enable and add server links. The syntax is not
+    RFC-compatible: use "CONNECT <name> <port>" to enable and connect an
+    configured server and "CONNECT <name> <port> <host> <mypwd> <peerpwd>"
+    to add a new server (ngIRCd tries to connect new servers only once!).
+  - Added DISCONNECT command ("DISCONNECT <name>") to disable servers.
+  - Restructured the documentation: Now the main language is English. The
+    german documentation has been removed (until there is a maintainer).
+  - Enhanced killing of users caused by a nickname collision.
+  - Better error detection for status code ("numerics") forwarding.
+  - Moved tool functions to own library: "libngtool".
+  - New command TRACE (you can trace only servers at the moment).
+  - New command HELP that lists all understood commands.
+  - There should no longer remain "unknown connections" (see e.g. LUSERS)
+    if an outgoing server link can't be established.
+  - Added AC_PREREQ(2.50) to configure.in for better autoconf compatibility.
+  - Conn_Close() now handles recursive calls for the same link correctly.
+  - ngIRCd can register itself with Rendezvous: to enable support pass the
+    new switch "--with-rendezvous" to configure.
+  - Added support for TCP Wrappers library: pass "--with-tcp-wrappers" to
+    configure to enable it.
+  - Changed some configure options to use "--with"/"--without" as prefix
+    instead of "--enable"/"--disable": "--without-syslog", "--without-zlib",
+    "--with-tcp-wrappers", and "--with-rendezvous".
+  - Better error reporting to clients on connect.
+  - Enhanced manual pages ngircd(8) and ngircd.conf(5).
+  - Documentation is now installed in $(datadir)/doc/ngircd.
+  - Enhanced hanling of NJOIN in case of nick collisions.
+
+ngIRCd 0.6.1, 2003-01-21
+
+  - Fixed KILL: you can't crash the server by killing yourself any more,
+    ngIRCd no longer sends a QUIT to other servers after the KILL, and you
+    can kill only valid users now.
+  - The server no longer forwards commands to ordinary users, instead it
+    answers with the correct error message ("no such server") now.
+  - WHOIS commands weren't always forwarded as requested.
+  - The server sets a correct default AWAY message now when propagating
+    between servers (bug introduced in 0.6.0).
+  - Fixed up and enhanced CHANINFO command: channel keys and user limits
+    are synchronized between servers now, too.
+  - MODE returns the key and user limit for channel members correctly now.
+  - Non-members of a channel could crash the server when trying to change
+    its modes or modes of its members.
+  - The server didn't validate weather a target user is a valid channel
+    member when changing his channel user modes which could crash ngIRCd.
+
+
+Older changes (sorry, only available in german language):
+
+ngIRCd 0.6.0, 2002-12-24
+
+  ngIRCd 0.6.0-pre2, 2002-12-23
+  - neuer Numeric 005 ("Features") beim Connect.
+  - LUSERS erweitert: nun wird die maximale Anzahl der lokalen und globalen
+    Clients, die dem Server bzw. im Netzwerk seit dem letzten (Re-)Start
+    dem Server gleichzeitig bekannt waren, angezeigt.
+
+  ngIRCd 0.6.0-pre1, 2002-12-18
+  - beim Schliessen einer Verbindung zeigt der Server nun vor dem ERROR
+    noch eine Statistik ueber die empfangene und gesendete Datenmenge an.
+  - der Server wartet bei einer eingehenden Verbindung nun laenger auf den
+    Resolver (4 Sekunden), wenn das Ergebnis eintrifft setzt er aber den
+    Login sofort fort (bisher wurde immer mind. 1 Sekunde gewartet).
+  - Connection-Strukturen werden nun "pool-weise" verwaltet; der Pool wird
+    bei Bedarf bis zu einem konfigurierten Limit vergroessert.
+  - Mit der neuen Konfigurationsvariable "MaxConnections" (Sektion "Global")
+    kann die maximale Anzahl gleichzeitiger Verbindungen begrenzt werden.
+    Der Default ist -1, "unlimitiert".
+  - der Server erkennt nun, ob bereits eine eingehende Verbindung von einem
+    Peer-Server besteht und versucht dann nicht mehr, selber eine eigene
+    ausgehende Verbindung zu diesem auufzubauen. Dadurch kann nun auf beiden
+    Servern in der Konfiguration ein Port fuer den Connect konfiguriert
+    werden (beide Server versuchen sich dann gegenseitig zu connectieren).
+  - Test-Suite und Dokumentation an A/UX angepasst.
+  - unter HP-UX definiert das configure-Script nun _XOPEN_SOURCE_EXTENDED.
+  - Server identifizieren sich nun mit asyncronen Passwoertern, d.h. das
+    Passwort, welches A an B schickt, kann ein anderes sein als das, welches
+    B als Antwort an A sendet. In der Konfig.-Datei, Abschnitt "Server",
+    wurde "Password" dazu durch "MyPassword" und "PeerPassword" ersetzt.
+  - Der Server kann nun zur Laufzeit die Konfiguration neu einlesen: dies
+    macht er nach dem Befehl REHASH oder wenn ein HUP-Signal empfangen wird.
+  - Channel-Mode "P" ("persistent") kann nur noch von IRC-Operatoren gesetzt
+    werden. Grund: User koennen den Server sonst leicht "Channel-Flooden".
+  - MOTD kann nun an andere Server geforwarded werden.
+  - IRC-Befehl "TIME" implementiert.
+  - Server-Server-Links koennen nun komprimiert werden, dazu wird die zlib
+    (www.zlib.org) benoetigt. Unterstuetzt die Gegenseite die Komprimierung
+    nicht, wird automatisch unkomprimiert kommuniziert. Das Verfahren ist
+    kompatibel mit dem Original-ircd 2.10.3, d.h. beide Server koennen
+    miteinander ueber komprimiert Links kommunizieren.
+  - Handling der Schreibpuffer umgestellt: Server sollte schneller arbeiten.
+  - Prefix-Fehler werden besser protokolliert (mit verursachendem Befehl).
+  - SQUIT wird nicht mehr doppelt an andere Server weitergeleitet.
+  - Der Server versucht nun vor dem Schliessen einer Verbindung Daten, die
+    noch im Schreibpuffer stehen, zu senden.
+  - Source in weiteres Modul "irc-info" aufgespalten.
+  - Konfigurationsvariablen werden besser validiert: Laengen, Zahlen, ...
+  - neuen Befehl STATS begonnen: bisher unterstuetzt wird "l" und "m".
+  - bei ISON und USERHOST fehlte im Ergebnis-String der korrekte Absender.
+  - IRC Operatoren koennen nun mit KILL User toeten. Achtung: ein Grund muss
+    zwingend als zweiter Parameter angegeben werden!
+  - neue Konfigurations-Variable "MaxJoins": Hiermit kann die maximale Zahl
+    der Channels, in denen ein User Mitglied sein kann, begrent werden.
+  - neuer, deutlich flexiblerer Parser fuer den MODE Befehl.
+  - neue Channel-Modes l (User-Limit) und k (Channel-Key) implementiert.
+
+ngIRCd 0.5.4, 24.11.2002
+
+  - Fehler-Handling von connect() gefixed: der Server kann sich nun auch   
+    unter A/UX wieder zu anderen verbinden.
+  - in den Konfigurationsvariablen ServerUID und ServerGID kann nun nicht
+    nur die numerische ID, sondern auch der Name des Users bzw. der Gruppe
+    verwendet werden. Beim Start des Daemons wird nun beides angezeigt.
+  - Besseres Logging von Prefix-Fehlern.
+  - angenommene Sockets werden nun korrekt auf "non-blocking" konfiguriert,
+    beim Senden und Empfangen werden Blockierungen besser abgefangen.
+  - RPL_UMODEIS hat Code 221, nicht 211 ... *argl*
+  - select() in Try_Write() hat falschen (keinen!) Timeout verwendet;
+    die "Zeit-Aufloesung" des Servers sind zudem nun 2 Sekunden (TIME_RES).
+    Insgesamt sollte die Reaktionszeit des Server nun besser sein.
+
+ngIRCd 0.5.3, 08.11.2002
+
+  - NOTICE liefert nun wirklich nie mehr einen Fehler, auch dann nicht,
+    wenn der sendende Client noch gar nicht registriert ist.
+  - ein "schneller Server-Reconnect" wird nur noch dann versucht, wenn die
+    Verbindung zuvor ordentlich (="lange genug") in Ordnung war; somit also
+    nicht meht, wenn der Peer-Server gleich beim Connect ein ERROR liefert.
+    Das vermeidet "Connect-Orgien".
+  - einige Datentypen aufgeraumt: z.B. sind viele INT32s nun LONGs. Das ist
+    auf Platformen mit 8-Byte-Integern kompatibler.
+  - RPL_YOURHOST_MSG ist nun ircII- und RFC-kompatibel ;-)
+  - Segfault unter hoher Netzaktivitaet behoben: in Conn_Close() wird die
+    Connection-Struktur nun frueher als "ungueltig" markiert.
+
+ngIRCd 0.5.2, 04.10.2002
+
+  - Buffer Overflow in Read_Resolver_Result() behoben.
+  - Format-String-Bugs, die zum Abbruch des Servers fuehrten, behoben.
+  - Maximale Laenge eines IRC-Prefix wurde falsch berechnet.
+
+ngIRCd 0.5.1, 03.10.2002
+
+  - in RPL_YOURHOST_MSG wurde ein fehlerhafter Versionsstring geliefert.
+  - Test-Suite: start-server.sh, stop-server.sh und stress-server.sh koennen
+    nun "manuell" von der Kommandozeile gestartet werden, stress-server.sh
+    startet per Default nur noch 5 Sessions, eine andere Zahl kann auf der
+    Kommandozeile uebergeben werden (Syntax: "stress-server.sh <count>").
+  - In bestimmten Faellen hat der Server versucht auf einen bereits wieder
+    geschlossenen Socket Daten zu schreiben; das fuehrte zu einem Abbruch des
+    Servers durch ein assert(). Nun wird geprueft, ob der Socket noch ok ist.
+  - im "contrib"-Verzeichnis befindet sich nun eine RPM-Spec-Datei, aus den
+    .tar.gz's koennen nun mit "rpm -ta <archiv>" RPM's erzeugt werden. Danke
+    an Sean Reifschneider <jafo@tummy.com>!
+  - Syntax von RPL_MYINFO_MSG korrigiert: liefert nun vier Parameter.
+
+ngIRCd 0.5.0, 20.09.2002
+
+  - Dokumentation aktualisiert.
+  - Fehler bei Validierung von "AdminInfo2" behoben.
+  - Test der Flags fuer "ps" in der Testsuite verbessert, ist nun zu mehr
+    Plattformen kompatibler.
+
+  ngIRCd 0.5.0-pre2, 17.09.2002
+  - Fix in IRC_WriteStrServersPrefix() war "badly broken" -- behoben.
+
+  ngIRCd 0.5.0-pre1, 16.09.2002
+  - Manual-Pages ngircd.8 und ngircd.conf.5 begonnen.
+  - Wird der Netzwerk-Sniffer aktiviert (--sniffer), so schaltet der
+    ngIRCd nun automatisch in den Debug-Modus.
+  - auf Systemen, die inet_aton() nicht kennen (wie z.B. A/UX), kann der
+    ngIRCd nun dennoch auch aktiv Server-Links aufbauen.
+  - h_errno wird auf Systemen, die das nicht kennen (wie z.B. HP-UX 10.20)
+    nicht mehr verwendet. Somit compiliert der ngIRCd nun auch dort :-)
+  - um auf dem Ziel-System nicht vorhandene Funktionen nachzubilden wird nun
+    die "libngportab" erzeugt; genutzt wird dies bisher fuer vsnprintf().
+    Nun compiliert der ngIRCd auch unter Solaris 2.5.1.
+  - "persistente Channels" (Mode 'P') implementiert: diese koennen in der
+    Konfigurationsdatei definiert werden (Sektion "Channel", vgl. Beispiel-
+    Konfiguration "sample-ngircd.conf") und bleiben auch dann bestehen,
+    wenn kein User mehr im Channel ist. Zu Channel-Operatoren werden bisher
+    nur IRC-Operatoren, die den Channel betreten. Die persistenten Channels
+    werden durch das Flag "P" gelennzeichnet, welches normal durch Channel-
+    Op's gesetzt und geloescht werden kann.
+  - bei "--configtest" werden keine leere Abschnitte mehr ausgegeben.
+  - Source in weitere Module aufgespalten: lists, irc-op und resolve.
+  - #include's aufgeraeumt: Header includieren keine anderen mehr.
+  - KICK implementiert (bisher kann nur ein User aus einem Channel geckicked
+    werden, Listen, wir im RFC vorgesehen, werden bisher nicht unterstuetzt).
+  - INVITE, den Channel-Mode "i" sowie Invite-Lists ueber den MODE-Befehl
+    (setzen, erfragen und loeschen) implementiert.
+  - Source an ansi2knr fuer pre-ANSI-Compiler angepasst; ansi2knr in Source-
+    Tree aufgenommen und in Build-System integriert; der ngIRCd compiliert
+    nun z.B. unter A/UX mit dem nativen Compiler von Apple.
+  - TOPIC lieferte bei unbekanntem Channel einen falschen Fehlercode.
+  - LIST versteht nun Wildcards und kann an andere Server geforwarded werden.
+  - wurde ein KILL fuer nicht-lokale Clients empfangen, so wurden die
+    Verwaltungs-Strukturen nicht korrekt freigegeben.
+  - empfangene NJOIN's wurden "zerhackt" an andere Server weitergegeben.
+  - neue Konfigurationsoption "OperCanUseMode" (Sektion "Global"):
+    ist sie aktiv, koennen IRC-Operatoren immer Channel-Modes setzen.
+  - Dokumentation des neuen IRC+-Protokolls begonnen: doc/Protocol.txt
+  - Protokoll- und Server-ID bei PASS-Befehlen auf neues Format umgestellt;
+    bei empfangenen PASS-Befehlen werden diese zudem nun auch ausgewertet.
+    Die unterstuetzten Flags sind in doc/Protocol.txt beschrieben.
+  - mit dem neuen Befehl CHANINFO syncronisieren Server, die das IRC+-
+    Protokoll unterstuetzen, Channel-Modes und Topics.
+  - neue Option "--disable-ircplus" fuer das configure-Script, um das
+    IRC+-Protokoll abzuschalten (per Default ist es aktiviert).
+  - Ban-Lists (setzen, erfragen und loeschen) implementiert.
+  - wird der Server mit "-n"/"--nodaemon" gestartet, so werden keine Mel-
+    dungen mehr ueber Syslog ausgegeben, sondern nur noch auf der Konsole.
+  - "Test-Suite" begonnen (in "make check" integriert): Dabei wird ein
+    speziell konfigurierter Server auf Port 6789 gestartet, mit dem dann
+    einige Tests durchgefuehrt werden (u.a. "Stress-Test" mit 50 Clients).
+  - zu lange Operator-Namen in der Konfiguration wurden falsch gekuerzt.
+  - kleine Anpassung an AIX 3.2.5: nun laeuft der ngIRCd auch dort :-)
+  - ADMIN-Befehl implementiert. Die Daten hierzu werden in der Konfig-Datei
+    im [Global]-Abschnitt mit den Variablen "AdminInfo1", "AdminInfo2" und
+    "AdminEMail" konfiguriert.
+  
+ngIRCd 0.4.3, 11.06.2002
+
+  - Bei PRIVMSG und NOTICE hat der ngIRCd nicht ueberpruft, ob das Ziel
+    ueberhaupt ein User ist. War es keiner, so fuehrte dies zu einem
+    Abbruch des Servers [es wurde assert() aufgerufen].
+
+ngIRCd 0.4.2, 29.04.2002
+
+  - LUSERS verzaehlt sich bei eigenen Server-Links nicht mehr.
+  - QUIT wird nun auch von noch nicht registrierten Clients akzeptiert.
+  - IRC-Funktion LIST implementiert; bisher werden allerdings noch keine
+    Wildcards (bis auf "*") unterstuetzt.
+
+ngIRCd 0.4.1, 08.04.2002
+
+  - Bei Server-Links wird nicht mehr an Hand der Anzahl der Parameter
+    eines empfangenen SERVER-Befehls, sondern "intern" erkannt, ob es
+    sich um eine ein- oder ausgehende Verbindung handelt und somit das
+    eigene PASS-SERVER-Paar gesendet werden muss oder nicht. Da sich
+    verschiedene Versionen des Original-ircd's anders verhalten, schlug
+    die Anmeldung je nach Gehenseite evtl. fehl.
+  - Bei einem NICK-Befehl eines lokalen Client konnte der Server ab-
+    stuerzen, da ein Format-String einer Log-Meldung fehlerhaft war.
+
+ngIRCd 0.4.0, 01.04.2002
+
+  - IRC-Befehle nochmal auf weitere Source-Dateien aufgespalten.
+  - WHO implementiert (bisher ohne komplette Unterstuetzung von Masks).
+  - Der AWAY-Mode wurde nicht ueber mehrere Server-Links weitergegeben.
+  - stderr wird nun in eine Datei umgelenkt (/tmp/ngircd-<PID>.err).
+    Laeuft der Server nicht im Debug-Modus, so wird diese bei Programm-
+    ende geloescht. Sollte der Server abstuerzen, finden sich hier evtl.
+    zusaetzliche Informationen.
+  - In Nicknames wird das Zeichen "-" nun als zulaessig erkannt.
+  - die Beispiel-Konfigurationsdatei (doc/sample-ngircd.conf) wird als
+    ngircd.conf installiert, wenn noch keine "echte" Konfigurationsdatei
+    vorhanden ist.
+  - bei WHO, WHOIS und NAMES wird nun nur noch der Status "Operator" oder
+    "voiced" geliefert -- nicht mehr beides.
+  - Server-Gruppen implementiert: es wird immer nur zu einem Server in
+    einer Gruppe eine Verbindung aufgebaut, klappt es beim ersten Server
+    nicht, so wird der naechste probiert (Variable "Group" in der Kon-
+    figurationsdatei, Sektion [Server]).
+  - IRC_PING() ist, wenn nicht im "strict RFC"-Mode, toleranter und ak-
+    zeptiert beliebig viele Parameter (z.B. BitchX sendet soetwas).
+  - die "Portab-Header" werden nicht mehr benoetigt, die System-Erkennung
+    wird nun ausschliesslich vom configure-Script durchgefuehrt. System-
+    abhaengige Definitionen finden sich nun unter src/portrab/.
+  - Clients und Channels werden nicht mehr ueber ihren Namen, sondern
+    einen Hash-Wert gesucht: sollte deutlich schneller sein.
+  - neuer Kommandozeilen-Parameter "--configtest": die Konfiguration wird
+    gelesen und dann die verwendeten Werte angezeigt.
+  - Client-Mode "s" (Server Notices) implementiert.
+  - mit dem neuen Kommandozeilen-Parameter "--config"/"-f" kann eine
+    alternative Konfigurationsdatei angegeben werden.
+  - nach dem Start kann der ngIRCd, wenn er mit root-Rechten laeuft,
+    zu einer anderen User-ID und Group-ID wechseln.
+  - URL der Homepage wird u.a. bei "--version" mit angezeigt.
+
+ngIRCd 0.3.0, 02.03.2002
+
+  - bekommt der Server ein HUP-Signal, so startet er neu -- genau so, wie
+    er auf den IRC-Befehl RESTART reagiert.
+  - FAQ um Hinweise auf den Bugtracker erweitert.
+  - neuer Kommandozeilen-Schalter "--passive" (-p): wird er angegeben, so
+    verbindet sich der ngIRCd nicht mehr automatisch zu anderen Servern.
+    Zum Debuggen manchmal ganz praktisch :-)
+  - direkt nach dem Start schreibt der ngIRCd nun die aktiven Kommando-
+    zeilenschalter in's Logfile (Passive, Debug, Sniffer ...).
+  - das Signal-Flag SA_RESTART wird nur noch gesetzt, wenn es auf dem
+    jeweiligen System auch definiert ist.
+  - bei ausgehenden Verbindungen wird nun der Ziel-Port protokolliert.
+  - neue Befehle VERSION und KILL implementiert.
+  - make-Target "check" (und "distcheck") mit Sinn erfuellt :-)
+    (die Tests sind aber bisher nicht all zu tiefgehend ...)
+  - Durch einen Ueberlauf konnte die Idle-Time bei WHOIS negativ werden ...
+  - Anpassungen an A/UX: gehoert nun auch zu den unterstuetzten Platformen.
+  - WHOIS wird nicht mehr automatisch an den "Original-Server" weiterge-
+    leitet: war eh nicht RFC-konform und machte mit Clients Probleme.
+  - an User wird nun immer ein "komplettes" Prefix (mit Host-Mask) ver-
+    schickt, Server bekommen nach wie vor kurze: das "Original" hat bei
+    bestimmten Befehlen (PRIVMSG) ansonsten evtl. Probleme ...
+  - NAMES korrigiert und vollstaendig implementiert.
+  - SQUIT wird auf jeden Fall geforwarded, zudem besseres Logging.
+  - Ist ein Nick bei der User-Registrierung bereits belegt, nimmt der
+    Server nun korrekt weitere NICK-Befehle an und verwendet diese.
+  - PRIVMSG beachtet nun die Channel-Modes "n" und "m".
+  - AWAY implementiert. PRIVMSG, MODE, USERHOST und WHOIS angepasst.
+  - der ngIRCd unterstuetzt nun Channel-Topics (TOPIC-Befehl).
+  - ausgehende Server-Verbindungen werden nun asyncron connectiert und
+    blockieren nicht mehr den ganzen Server, wenn die Gegenseite nicht
+    erreicht werden kann (bis zum Timeout konnten Minuten vergehen!).
+  - Wert der Konfigurations-Variable "ConnectRetry" wird besser beachtet.
+  - Channel- und Nicknames werden nun ordentlich validiert.
+
+ngIRCd 0.2.1, 17.02.2002
+
+  - NICK korrigiert: es werden nun auch alle "betroffenen" User informiert.
+  - configure-Script erweitert, u.a. bessere Anpassung an BeOS: dort wird
+    nun die "libbe" zum ngIRCd gelinkt, somit funktioniert auch syslog.
+  - Fehlerhafte bzw. noch nicht verstandene Modes werden nun ausfuehrlicher
+    an den Client geliefert.
+
+ngIRCd 0.2.0, 15.02.2002
+
+  - Nicknames und Channel-Namen werden etwas besser auf Gueltigkeit ueber-
+    prueft; ist aber nach wie vor noch nicht ausreichend.
+  - NJOINS von Servern wurden nicht an andere Server weitergeleitet.
+  - Begonnen Channel-Modes und User-Channel-Modes zu implementieren: der
+    Server versteht an User-Modes o und v, beachtet letzteres allerdings
+    noch nirgends. Bekannte (aber nicht beachtete!) Channel-Modes sind
+    bisher a, m, n, p, q, s und t. Diese Modes werden von Usern ange-
+    nommen, von anderen Servern werden auch unbekannte Modes uebernommen.
+  - Benutzer von connectierenden Servern wurden nicht in den Channels ange-
+    kuendigt, es wurden nur die internen Strukturen angepasst.
+  - Nach dem Connect eines Users werden LUSERS-Informationen angezeigt.
+
+ngIRCd 0.1.0, 29.01.2002
+
+  - User-Modes bei User-Registrierungen von andere Servern (NICK-Befehl)
+    wurden falsch uebernommen. Zudem wurden die Modes falsch gekuerzt.
+  - Server-Verbindungen werden nun nach dem Start erst nach einer kurzen
+    Pause aufgebaut (zur Zeit drei Sekunden).
+  - Hilfetext korrigiert: --help und --version waren vertauscht, die
+    Option --sniffer wurde gar nicht erwaehnt.
+  - FAQ.txt in doc/ begonnen.
+  - der IRC-Sniffer wird nur noch aktiviert, wenn die Option auf der
+    Kommandozeile angegeben wurde (bei entsprechend compiliertem Server).
+  - Channels implementiert, bisher jedoch noch ohne Channel-Modes, d.h.
+    es gibt keine Channel-Ops, kein Topic, kein "topic lock" etc. pp.
+    Chatten in Channels ist aber natuerlich moeglich ;-)
+  - neue Befehle fuer Channles: JOIN, PART und NJOIN.
+  - durch die Channels einige Aenderungen an PRIVMSG, WHOIS, MODE etc.
+  - neu connectierenden Servern werden nun Channels mit NJOIN angekuendigt.
+  - Signal-Hander geaendert: die Fehlermeldung "interrupted system call"
+    sollte so nicht mehr auftreten.
+  - "spaeter" neu connectierende Server werden nun im Netz angekuendigt.
+  - SERVER-Meldungen an andere Server sind nun korrekt sortiert.
+  - Clients werden nun korrekt sowohl nur ueber den Nickname als auch die
+    komplette "Host Mask" erkannt.
+
+ngIRCd 0.0.3, 16.01.2002
+
+  - Server-Links vollstaendig implementiert: der ngIRCd kann nun auch
+    "Sub-Server" haben, also sowohl als Leaf-Node als auch Hub in einem
+    IRC-Netzwerk arbeiten.
+  - MODE und NICK melden nun die Aenderungen an andere Server, ebenso
+    die Befehle QUIT und SQUIT.
+  - WHOIS wird nun immer an den "Original-Server" weitergeleitet.
+  - Parses handhabt Leerzeichen zw. Parametern nun etwas "lockerer".
+  - Status-Codes an den Server selber werden ignorier.
+  - Log-Meldungen und Log-Level ueberarbeitet und korrigiert.
+  - Kommandozeilen-Parser: Debug- und No-Daemon-Modus, Hilfe.
+  - ngIRCd wandelt sich nun in einen Daemon (Hintergrundprozess) um.
+  - WHOIS korrigiert: Anfrage wurde u.U. an User geforwarded anstatt vom
+    Server beantwortet zu werden.
+  - neue Befehle: LUSERS, LINKS
+  - Client-Modes von Remote-Servern wurden nicht korrekt uerbernommen.
+
+ngIRCd 0.0.2, 06.01.2002
+
+  - Struktur der Konfigurationsdatei geaendert: sie ist nun "Samba like",
+    d.h. sie besteht aus Abschnitten (siehe "doc/sample-ngircd.conf").
+  - Es koennen mehrere IRC-Server-Opertatoren konfiguriert werden.
+  - Zombies der Resolver-Prozesse werden nun ordentlich "getoetet".
+  - NICK kann nun die Gross- und Kleinschreibung eines Nicks aendern.
+  - ein Server-Passwort ist nun konfigurierbar.
+  - neue Befehle: ERROR, SERVER, NJOIN (nur als "Fake"), SQUIT.
+  - Asyncroner Resolver Hostname->IP implementiert.
+  - Server-Links teilweise implementiert: bisher kann der ngIRCd jedoch
+    nur "leafed server" sein, d.h. keine "Client-Server" haben. Einige
+    Befehle sind auch noch nicht (optimal) angepasst: PRIVMSG funktioniert
+    aber bereits, ebenso wie WHOIS (letzterer wird immer an den Server,
+    auf dem der User registriert ist, weitergegeben).
+  - "arpa/inet.h" wird nur noch includiert, wenn vorhanden.
+  - Fehler bei select() fuerhen nun zum Abbruch von ngIRCd, bisher landete
+    der Server zumeist in einer Endlosschleife.
+  - Logmeldungen und Level an vielen Stellen verbessert.
+  - lokalen Usernamen wird nun ein "~" vorangestellt, da bisher noch keine
+    Ident-Anfragen gemacht werden.
+
+ngIRCd 0.0.1, 31.12.2001
+
+  - erste oeffentliche Version von ngIRCd als "public preview" :-)
+
+
+-- 
+$Id: ChangeLog,v 1.276.2.12 2005/10/15 12:44:08 alex Exp $

+ 186 - 0
INSTALL

@@ -0,0 +1,186 @@
+
+                     ngIRCd - Next Generation IRC Server
+
+                      (c)2001-2004 by Alexander Barton,
+                    alex@barton.de, http://www.barton.de/
+
+               ngIRCd is free software and published under the
+                   terms of the GNU General Public License.
+
+                                -- INSTALL --
+
+                         
+
+I. Upgrade Information
+~~~~~~~~~~~~~~~~~~~~~~
+
+Differences to version 0.8.x
+
+- The maximum length of passwords has been raised to 20 characters (instead
+  of 8 characters). If your passwords are longer than 8 characters then they
+  are cut at an other position now.
+
+Differences to version 0.6.x
+
+- Some options of the configure script have been renamed:
+    --disable-syslog  ->  --without-syslog
+    --disable-zlib    ->  --without-zlib
+  Please call "./configure --help" to review the full list of options!
+
+Differences to version 0.5.x
+
+- Starting with version 0.6.0, other servers are identified using asynchronous
+  passwords: therefore the variable "Password" in [Server]-sections has been
+  replaced by "MyPassword" and "PeerPassword".
+
+- New configuration variables, section [Global]: MaxConnections, MaxJoins
+  (see example configuration file "doc/sample-ngircd.conf"!).
+
+
+II. Standard Installation
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ngIRCd is developed for UNIX-based systems, which means that the installation
+on modern UNIX-like systems that are supported by GNU autoconf and GNU
+automake ("configure") should be no problem.
+
+The normal installation procedure after getting (and expanding) the source
+files (using a distribution archive or CVS) is as following:
+
+  1) ./autogen.sh	[only necessary when using CVS]
+  2) ./configure
+  3) make
+  4) make install
+
+(Please see details below!)
+
+Now the newly compiled executable "ngircd" is installed in its standard
+location, /usr/local/sbin/.
+
+The next step is to configure and afterwards starting the daemon. Please
+have a look at the ngircd(8) and ngircd.conf(5) manual pages for details
+and all possible options.
+
+If no previous version of the configuration file exists (the standard name
+is /usr/local/etc/ngircd.conf), a sample configuration file containing all
+possible options will be installed there. You'll find its template in the
+doc/ directory: sample-ngircd.conf.
+
+
+1): "autogen.sh"
+
+The first step, autogen.sh, is only necessary if the configure-script isn't
+already generated. This never happens in official ("stable") releases in
+tar.gz-archives, but when using CVS.
+
+This step is therefore only interesting for developers.
+
+autogen.sh produces the Makefile.in's, which are necessary for the configure
+script itself, and some more files for make. To run autogen.sh you'll need
+GNU autoconf and GNU automake (use recent versions! autoconf 2.53 and
+automake 1.6.1 are known to work).
+
+Again: "end users" do not need this step!
+
+
+2): "./configure"
+
+The configure-script is used to detect local system dependencies.
+
+In the perfect case, configure should recognise all needed libraries, header
+files and so on. If this shouldn't work, "./configure --help" shows all
+possible options.
+
+In addition, you can pass some command line options to "configure" to enable
+and/or disable some features of ngIRCd. All these options are shown using
+"./configure --help", too.
+
+Compiling a static binary will avoid you the hassle of feeding a chroot dir
+(if you want use the chroot feature). Just do something like:
+  CFLAGS=-static ./configure [--your-options ...]
+Then you can use a void directory as ChrootDir (like OpenSSH's /var/empty).
+
+
+3): "make"
+
+The make command uses the Makefiles produced by configure and compiles the
+ngIRCd daemon.
+
+
+4): "make install"
+
+Use "make install" to install the server and a sample configuration file on
+the local system. Normally, root privileges are necessary to complete this
+step. If there is already an older configuration file present, it won't be
+overwritten.
+
+This files will be installed by default:
+
+- /usr/local/sbin/ngircd: executable server
+- /usr/local/etc/ngircd.conf: sample configuration (if not already present)
+- /usr/local/share/doc/ngircd/: documentation
+
+
+II. Useful make-targets
+~~~~~~~~~~~~~~~~~~~~~~~
+
+The Makefile produced by the configure-script contains always these useful
+targets:
+
+ - clean: delete every product from the compiler/linker
+   next step: -> make
+
+ - distclean: the above plus erase all generated Makefiles
+   next step: -> ./configure
+
+ - maintainer-clean: erase all automatic generated files
+   next step: -> ./autogen.sh
+
+
+III. Sample configuration file ngircd.conf
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In the sample configuration file, there are comments beginning with "#" OR
+";" -- this is only for the better understanding of the file.
+
+The file is separated in four blocks: [Global], [Operator], [Server], and
+[Channel].
+
+In the [Global] section, there is the main configuration like the server
+name and the ports, on which the server should be listening. IRC operators
+of this server are defined in [Operator] blocks. [Server] is the section
+where server links are configured. And [Channel] blocks are used to
+configure pre-defined ("persistent") IRC channels.
+
+The meaning of the variables in the configuration file is explained in the 
+"doc/sample-ngircd.conf", which is used as sample configuration file in
+/usr/local/etc after running "make install" (if you don't already have one)
+and in the "ngircd.conf" manual page.
+
+
+IV. Command line options
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+These parameters could be passed to the ngIRCd:
+
+-f, --config <file>
+	The daemon uses the file <file> as configuration file rather than
+	the standard configuration /usr/local/etc/ngircd.conf.
+
+-n, --nodaemon
+	ngIRCd should be running as a foreground process.
+
+-p, --passive
+	Server-links won't be automatically established.
+
+-t, --configtest
+	Reads, validates and dumps the configuration file as interpreted
+	by the server. Then exits.
+
+Use "--help" to see a short help text describing all available parameters
+the server understands, with "--version" the ngIRCd shows its version
+number. In both cases the server exits after the output.
+
+
+-- 
+$Id: INSTALL,v 1.21 2005/02/10 08:20:09 alex Exp $

+ 46 - 0
Makefile.am

@@ -0,0 +1,46 @@
+#
+# ngIRCd -- The Next Generation IRC Daemon
+# Copyright (c)2001-2003 by Alexander Barton (alex@barton.de)
+#
+# 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.
+# Please read the file COPYING, README and AUTHORS for more information.
+#
+# $Id: Makefile.am,v 1.16 2005/04/09 12:27:40 alex Exp $
+#
+
+AUTOMAKE_OPTIONS = gnu
+
+SUBDIRS = doc src man contrib
+
+clean-local:
+	rm -f build-stamp*
+
+maintainer-clean-local:
+	rm -rf autom4te.cache
+	rm -f Makefile.in Makefile aclocal.m4 configure
+	rm -f mkinstalldirs missing depcomp install-sh
+	rm -f config.log debian
+
+lint:
+	make -C src/ngircd lint
+
+srcdoc:
+	make -C src srcdoc
+
+xcode:
+	@xcodebuild -project contrib/MacOSX/ngIRCd.xcode -list >/dev/null 2>&1 \
+	 || ( echo; echo "Error: \"xcodebuild\" not found!"; echo; exit 1 )
+	xcodebuild -project contrib/MacOSX/ngIRCd.xcode -alltargets \
+	 -buildstyle Development
+
+rpm: distcheck
+	rpm -ta ngircd-*.tar.gz
+
+deb:
+	[ -f debian/rules ] || ln -s contrib/Debian debian
+	dpkg-buildpackage -rfakeroot
+
+# -eof-

+ 555 - 0
Makefile.in

@@ -0,0 +1,555 @@
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# 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.
+
+@SET_MAKE@
+
+#
+# ngIRCd -- The Next Generation IRC Daemon
+# Copyright (c)2001-2003 by Alexander Barton (alex@barton.de)
+#
+# 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.
+# Please read the file COPYING, README and AUTHORS for more information.
+#
+# $Id: Makefile.am,v 1.16 2005/04/09 12:27:40 alex Exp $
+#
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = .
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+U = @U@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+AUTOMAKE_OPTIONS = gnu
+
+SUBDIRS = doc src man contrib
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/src/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
+	ps-recursive install-info-recursive uninstall-info-recursive \
+	all-recursive install-data-recursive install-exec-recursive \
+	installdirs-recursive install-recursive uninstall-recursive \
+	check-recursive installcheck-recursive
+DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure AUTHORS \
+	COPYING ChangeLog INSTALL Makefile.am NEWS aclocal.m4 \
+	config.guess config.sub configure.in depcomp install-sh missing \
+	mkinstalldirs
+DIST_SUBDIRS = $(SUBDIRS)
+all: all-recursive
+
+.SUFFIXES:
+
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno
+$(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
+	cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
+
+$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+$(srcdir)/configure:  $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+	cd $(srcdir) && $(AUTOCONF)
+
+$(ACLOCAL_M4):  configure.in 
+	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+uninstall-info-am:
+
+# 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.
+$(RECURSIVE_TARGETS):
+	@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; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	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
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if (etags --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	else \
+	  include_option=--include; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -f $$subdir/TAGS && \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(ETAGS_ARGS)$$tags$$unique" \
+	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	     $$tags $$unique
+
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = .
+distdir = $(PACKAGE)-$(VERSION)
+
+am__remove_distdir = \
+  { test ! -d $(distdir) \
+    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr $(distdir); }; }
+
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+
+distdir: $(DISTFILES)
+	$(am__remove_distdir)
+	mkdir $(distdir)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d $(distdir)/$$subdir \
+	    || mkdir $(distdir)/$$subdir \
+	    || exit 1; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$(top_distdir)" \
+	        distdir=../$(distdir)/$$subdir \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r $(distdir)
+dist-gzip: distdir
+	$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+dist dist-all: distdir
+	$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_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
+	$(am__remove_distdir)
+	GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	mkdir $(distdir)/_build
+	mkdir $(distdir)/_inst
+	chmod a-w $(distdir)
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && cd $(distdir)/_build \
+	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
+	  && rm -f $(distdir).tar.gz \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+	$(am__remove_distdir)
+	@echo "$(distdir).tar.gz is ready for distribution" | \
+	  sed 'h;s/./=/g;p;x;p;x'
+distuninstallcheck:
+	@cd $(distuninstallcheck_dir) \
+	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-local mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic \
+	maintainer-clean-local
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
+	clean-generic clean-local clean-recursive ctags ctags-recursive \
+	dist dist-all dist-gzip distcheck distclean distclean-generic \
+	distclean-recursive distclean-tags distcleancheck distdir \
+	distuninstallcheck dvi dvi-am dvi-recursive info info-am \
+	info-recursive install install-am install-data install-data-am \
+	install-data-recursive install-exec install-exec-am \
+	install-exec-recursive install-info install-info-am \
+	install-info-recursive install-man install-recursive \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am installdirs-recursive maintainer-clean \
+	maintainer-clean-generic maintainer-clean-local \
+	maintainer-clean-recursive mostlyclean mostlyclean-generic \
+	mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \
+	ps-recursive tags tags-recursive uninstall uninstall-am \
+	uninstall-info-am uninstall-info-recursive uninstall-recursive
+
+
+clean-local:
+	rm -f build-stamp*
+
+maintainer-clean-local:
+	rm -rf autom4te.cache
+	rm -f Makefile.in Makefile aclocal.m4 configure
+	rm -f mkinstalldirs missing depcomp install-sh
+	rm -f config.log debian
+
+lint:
+	make -C src/ngircd lint
+
+srcdoc:
+	make -C src srcdoc
+
+xcode:
+	@xcodebuild -project contrib/MacOSX/ngIRCd.xcode -list >/dev/null 2>&1 \
+	 || ( echo; echo "Error: \"xcodebuild\" not found!"; echo; exit 1 )
+	xcodebuild -project contrib/MacOSX/ngIRCd.xcode -alltargets \
+	 -buildstyle Development
+
+rpm: distcheck
+	rpm -ta ngircd-*.tar.gz
+
+deb:
+	[ -f debian/rules ] || ln -s contrib/Debian debian
+	dpkg-buildpackage -rfakeroot
+
+# -eof-
+# 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:

+ 211 - 0
NEWS

@@ -0,0 +1,211 @@
+
+                     ngIRCd - Next Generation IRC Server
+
+                        (c)2001-2005 Alexander Barton,
+                    alex@barton.de, http://www.barton.de/
+
+               ngIRCd is free software and published under the
+                   terms of the GNU General Public License.
+
+                                  -- NEWS --
+
+
+ngIRCd 0.9.0 (2005-07-24)
+
+  - Never run with root privileges but always switch the user ID.
+  - Make "netsplit" messages RFC compliant.
+  - Implemented the IRC function "WHOWAS".
+  - New configuration option "OperServerMode" to enable a workaround needed
+    when running an network with ircd2 servers and "OperCanUseMode" enabled
+    to prevent the ircd2 daemon to drop mode changes of IRC operators.
+    Patch by Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+  - Implemented support for "secret channels" (channel mode "s").
+  - New configuration option "Mask" for [Operator] sections to limit OPER
+    commands to users with a specific IRC mask. Patch from Florian Westphal.
+  - New configuration variable "PidFile", section "[Global]": if defined,
+    the server writes its process ID (PID) to this file. Default: off.
+    Idea of Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+  - Added support for the Howl (http://www.porchdogsoft.com/products/howl/)
+    Rendezvous API, in addition to the API of Apple (Mac OS X). The available
+    API will be autodetected when you call "./configure --with-rendezvous".
+
+ngIRCd 0.8.0 (2004-06-26)
+
+  - Two new configuration options: "ChrootDir" and "MotdPhrase", thanks to
+    Benjamin Pineau <ben@zouh.org>. Now you can force the daemon to change
+    its root and working directory to something "safe". MotdPhrase is used
+    to define an "MOTD string" instead of a whole file, useful if the
+    "real" MOTD file would be outside the "jail".
+  - INVITE- and BAN-lists become synchronized between IRC+ servers when
+    establishing new connections, if the peer supports this as well.
+  - The type of service (TOS) of all sockets is set to "interactive" now.
+  - Added short command line option "-t" as alternative to "--configtest".
+  - Added optional support for "IDENT" lookups on incoming connections. You
+    have to enable this function with the ./configure switch "--with-ident".
+    The default is not to do IDENT lookups.
+
+ngIRCd 0.7.5 (2003-07-11)
+
+  - New configuration variable "MaxConnectionsIP" to limit the number of
+    simultaneous connections from a single IP that the server will accept.
+    This configuration options lowers the risk of denial of service attacks
+    (DoS), the default is 5 connections per client IP.
+  - Added new configuration variable "Listen" to bind all listening
+    sockets of the server to a single IP address.
+       
+ngIRCd 0.7.1 (2003-07-18)
+
+  - Added support for GNU/Hurd.
+
+ngIRCd 0.7.0 (2003-05-01)
+
+  - New command CONNECT to enable and add server links. The syntax is not
+    RFC-compatible: use "CONNECT <name> <port>" to enable and connect an
+    configured server and "CONNECT <name> <port> <host> <mypwd> <peerpwd>"
+    to add a new server (ngIRCd tries to connect new servers only once!).
+  - Added DISCONNECT command ("DISCONNECT <name>") to disable servers.
+  - New command TRACE (you can trace only servers at the moment).
+  - New command HELP that lists all understood commands.
+  - ngIRCd can register itself with Rendezvous: to enable support pass the
+    new switch "--with-rendezvous" to configure.
+  - Added support for TCP Wrappers library: pass "--with-tcp-wrappers" to
+    configure to enable it.
+  - Changed some configure options to use "--with"/"--without" as prefix
+    instead of "--enable"/"--disable": "--without-syslog", "--without-zlib",
+    "--with-tcp-wrappers", and "--with-rendezvous".
+  - Enhanced manual pages ngircd(8) and ngircd.conf(5).
+  - Documentation is now installed in $(datadir)/doc/ngircd.
+
+
+Older news (sorry, only available in german language):
+
+ngIRCd 0.6.0, 2002-12-24
+
+  - beim Schliessen einer Verbindung zeigt der Server nun vor dem ERROR
+    noch eine Statistik ueber die empfangene und gesendete Datenmenge an.
+  - Connection-Strukturen werden nun "pool-weise" verwaltet; der Pool wird
+    bei Bedarf bis zu einem konfigurierten Limit vergroessert.
+  - Mit der neuen Konfigurationsvariable "MaxConnections" (Sekion "Global")
+    kann die maximale Anzahl gleichzeitiger Verbindungen begrenzt werden.
+    Der Default ist -1, "unlimitiert".
+  - der Server erkennt nun, ob bereits eine eingehende Verbindung von einem
+    Peer-Server besteht und versucht dann nicht mehr, selber eine eigene
+    ausgehende Verbindung zu diesem auufzubauen. Dadurch kann nun auf beiden
+    Servern in der Konfiguration ein Port fuer den Connect konfiguriert
+    werden (beide Server versuchen sich dann gegenseitig zu connectieren).
+  - Server identifizieren sich nun mit asyncronen Passwoertern, d.h. das
+    Passwort, welches A an B schickt, kann ein anderes sein als das, welches
+    B als Antwort an A sendet. In der Konfig.-Datei, Abschnitt "Server",
+    wurde "Password" dazu durch "MyPassword" und "PeerPassword" ersetzt.
+  - Der Server kann nun zur Laufzeit die Konfiguration neu einlesen: dies
+    macht er nach dem Befehl REHASH oder wenn ein HUP-Signal empfangen wird.
+  - Server-Server-Links koennen nun komprimiert werden, dazu wird die zlib
+    (www.zlib.org) benoetigt. Unterstuetzt die Gegenseite die Komprimierung
+    nicht, wird automatisch unkomprimiert kommuniziert. Das Verfahren ist
+    kompatibel mit dem Original-ircd 2.10.3, d.h. beide Server koennen
+    miteinander ueber komprimiert Links kommunizieren.
+  - neue Konfigurations-Variable "MaxJoins": Hiermit kann die maximale Zahl
+    der Channels, in denen ein User Mitglied sein kann, begrent werden.
+  - neue Channel-Modes l (User-Limit) und k (Channel-Key) implementiert.
+
+ngIRCd 0.5.0, 20.09.2002
+
+  - AIX (3.2.5), HP-UX (10.20), IRIX (6.5), NetBSD (1.5.3/m68k) und Solaris
+    (2.5.1, 2.6) gehoeren nun auch zu den unterstuetzten Platformen.
+  - Unter A/UX (und evtl. weiteren Systemen) kompiliert der ngIRCd nun mit
+    dem "nativen" (ggf. pre-ANSI) Compiler.
+  - "persistente Channels" (Mode 'P') implementiert: diese koennen in der
+    Konfigurationsdatei definiert werden (Sektion "Channel", vgl. Beispiel-
+    Konfiguration "sample-ngircd.conf") und bleiben auch dann bestehen,
+    wenn kein User mehr im Channel ist.
+  - neue IRC-Befehle: KICK, INVITE, ADMIN, CHANINFO; LIST wurde erweitert.
+    Mit dem neuen Befehl CHANINFO syncronisieren Server, die das IRC+-
+    Protokoll unterstuetzen, Channel-Modes und Topics. Fuer den ADMIN-Befehl
+    gibt es neue Konfigurationsoptionen (Sektion "Global"): "AdminInfo1",
+    "AdminInfo2" und "AdminEMail".
+  - Invite- und Ban-Lists implementiert.
+  - neue Konfigurationsoption "OperCanUseMode" (Sektion "Global"):
+    ist sie aktiv, koennen IRC-Operatoren immer Channel-Modes setzen.
+  - "Test-Suite" begonnen: mit "make check" wird sie durchlaufen.
+
+ngIRCd 0.4.2, 29.04.2002
+
+  - IRC-Funktion LIST implementiert; bisher werden allerdings noch keine
+    Regular Expressions (bis auf "*") unterstuetzt.
+
+ngIRCd 0.4.0, 01.04.2002
+
+  - WHO implementiert (bisher ohne komplette Unterstuetzung von Masks).
+  - stderr wird nun in eine Datei umgelenkt (/ngircd-<PID>.err).
+    Laeuft der Server nicht im Debug-Modus, so wird diese bei Programm-
+    ende geloescht. Sollte der Server abstuerzen, finden sich hier evtl.
+    zusaetzliche Informationen.
+  - Server-Gruppen implementiert: es wird immer nur zu einem Server in
+    einer Gruppe eine Verbindung aufgebaut, klappt es beim ersten Server
+    nicht, so wird der naechste probiert.
+  - Clients und Channels werden nicht mehr ueber ihren Namen, sondern
+    einen Hash-Wert gesucht: sollte deutlich schneller sein.
+  - neuer Kommandozeilen-Parameter "--configtest": die Konfiguration wird
+    gelesen und die dann verwendeten Werte angezeigt.
+  - Client-Mode "s" (Server Notices) implementiert.
+  - mit dem neuen Kommandozeilen-Parameter "--config"/"-f" kann eine
+    alternative Konfigurationsdatei angegeben werden.
+  - nach dem Start kann der ngIRCd, wenn er mit root-Rechten laeuft,
+    zu einer anderen User-ID und Group-ID wechseln.
+
+ngIRCd 0.3.0, 02.03.2002
+
+  - bekommt der Server ein HUP-Signal, so startet er neu -- genau so, wie
+    er auf den IRC-Befehl RESTART reagiert.
+  - neuer Kommandozeilen-Schalter "--passive" (-p): wird er angegeben, so
+    verbindet sich der ngIRCd nicht mehr automatisch zu anderen Servern.
+    Zum Debuggen manchmal ganz praktisch :-)
+  - neue Befehle VERSION und KILL implementiert. NAMES korrigiert.
+  - Anpassungen an A/UX: gehoert nun auch zu den unterstuetzten Platformen.
+  - AWAY (und der User-Mode 'a') ist nun implementiert.
+  - der ngIRCd unterstuetzt nun Channel-Topics (TOPIC-Befehl).
+  - Channel- und Nicknames werden nun ordentlich validiert.
+
+ngIRCd 0.2.0, 15.02.2002
+
+  - Begonnen Channel-Modes und User-Channel-Modes zu implementieren: der
+    Server versteht an User-Modes o und v, beachtet letzteres allerdings
+    noch nirgends. Bekannte (aber nicht beachtete!) Channel-Modes sind
+    bisher a, m, n, p, q, s und t. Diese Modes werden von Usern ange-
+    nommen, von anderen Servern werden auch unbekannte Modes uebernommen.
+  - Nach dem Connect eines Users werden LUSERS-Informationen angezeigt.
+
+ngIRCd 0.1.0, 29.01.2002
+
+  - Channels implementiert, bisher jedoch noch ohne Channel-Modes, d.h.
+    es gibt keine Channel-Ops, kein Topic, kein "topic lock" etc. pp.
+    Chatten in Channels ist aber natuerlich moeglich ;-)
+    Dadurch zum Teil groessere Aenderungen an bisherigen Funktionen.
+  - neue Befehle fuer Channles: JOIN, PART und NJOIN.
+  - FAQ.txt in doc/ begonnen.
+
+ngIRCd 0.0.3, 16.01.2002
+
+  - Server-Links vollstaendig implementiert: der ngIRCd kann nun auch
+    "Sub-Server" haben, also sowohl als Leaf-Node als auch Hub in einem
+    IRC-Netzwerk arbeiten.
+  - WHOIS wird nun immer an den "Original-Server" weitergeleitet.
+  - Parser handhabt Leerzeichen zw. Parametern nun etwas "lockerer".
+  - Kommandozeilen-Parser: Debug- und No-Daemon-Modus, Hilfe.
+  - ngIRCd wandelt sich nun in einen Daemon (Hintergrundprozess) um.
+  - neue Befehle: LUSERS, LINKS.
+
+ngIRCd 0.0.2, 06.01.2002
+
+  - neuer Aufbau der Konfigurationsdatei,
+  - mehrere IRC-Operatoren koennen konfiguriert werden,
+  - Server-Links teilweise implementiert. Bisher kann der ngIRCd jedoch
+    nur "leafed server" sein, d.h. keine "Client-Server" haben.
+
+ngIRCd 0.0.1, 31.12.2001
+
+  - erste oeffentliche Version von ngIRCd als "public preview" :-)
+
+
+-- 
+$Id: NEWS,v 1.74.2.1 2005/07/24 21:39:45 alex Exp $

+ 87 - 0
README

@@ -0,0 +1,87 @@
+
+                     ngIRCd - Next Generation IRC Server
+
+                        (c)2001-2005 Alexander Barton,
+                    alex@barton.de, http://www.barton.de/
+
+               ngIRCd is free software and published under the
+                   terms of the GNU General Public License.
+
+                                -- README --
+
+
+I. Introduction
+~~~~~~~~~~~~~~~
+
+ngIRCd is an Open Source server for the Internet Relay Chat (IRC), which
+is developed and published under the terms of the GNU General Public
+Licence (URL: http://www.gnu.org/licenses/gpl.html). ngIRCd means "next
+generation IRC daemon", it's written from scratch and not deduced from the
+"grandfather of IRC daemons", the daemon of the IRCNet.
+
+
+II. Status
+~~~~~~~~~~~
+
+It is not the goal of ngIRCd to implement all the nasty behaviours of the
+original ircd, but to implement most of the useful commands and semantics
+specified by the RFCs.
+
+In the meantime ngIRCd should be quite feature complete and stable to be
+used in real IRC networks.
+
+Implemented IRC-commands are:
+
+ADMIN, AWAY, CHANINFO, CONNECT, DIE, DISCONNECT, ERROR, HELP, INVITE, ISON,
+JOIN, KICK, KILL, LINKS, LIST, LUSERS, MODE, MOTD, NAMES, NICK, NJOIN, NOTICE,
+OPER, PART, PASS, PING, PONG, PRIVMSG, QUIT, REHASH, RESTART, SERVER, SQUIT,
+STATS, TIME, TOPIC, TRACE, USER, USERHOST, VERSION, WHO, WHOIS, WHOWAS.
+
+
+III. Features (or: why use ngIRCd?)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- no problems with servers which have dynamic IP addresses
+- simple, easy understandable configuration file,
+- freely published open-source C source code,
+- ngIRCd will be developed on in the future.
+- wide field of supported platforms, including AIX, A/UX, FreeBSD, HP-UX,
+  IRIX, Linux, Mac OS X, NetBSD, OpenBSD, Solaris, and Windows with Cygwin.
+
+
+IV. Documentation
+~~~~~~~~~~~~~~~~~
+
+More documentation can be found in the "doc/" directory and the homepage of
+the ngIRCd: <http://ngircd.barton.de/>.
+
+
+V. Download
+~~~~~~~~~~~
+
+The homepage of the ngIRCd is: <http://ngircd.barton.de/>; you will find
+the newest information about the ngIRCd and the most recent ("stable")
+releases there.
+
+If you are interested in the latest development versions (which are not
+always stable), then please read the section "CVS" on the homepage and
+the file "doc/CVS.txt" which describes the use of CVS, the "Concurrent
+Versioning System".
+
+
+VI. Bugs
+~~~~~~~~
+
+If you find bugs in the ngIRCd (which might be there :-), please report
+them at the following URL:
+
+<http://ngircd.barton.de/#bugs>
+
+There you can read about known bugs and limitations, too.
+
+If you have critics, patches or something else, please feel free to post a
+mail to <alex@barton.de>.
+
+
+-- 
+$Id: README,v 1.20.2.1 2005/07/09 14:41:39 alex Exp $

File diff suppressed because it is too large
+ 1010 - 0
aclocal.m4


File diff suppressed because it is too large
+ 1466 - 0
config.guess


File diff suppressed because it is too large
+ 1579 - 0
config.sub


File diff suppressed because it is too large
+ 10130 - 0
configure


+ 418 - 0
configure.in

@@ -0,0 +1,418 @@
+#
+# ngIRCd -- The Next Generation IRC Daemon
+# Copyright (c)2001-2005 Alexander Barton <alex@barton.de>
+#
+# 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.
+# Please read the file COPYING, README and AUTHORS for more information.
+#
+# $Id: configure.in,v 1.111.2.6 2005/10/15 12:44:08 alex Exp $
+#
+
+# -- Initialisation --
+
+AC_PREREQ(2.50)
+AC_INIT(ngircd, 0.9.2)
+AC_CONFIG_SRCDIR(src/ngircd/ngircd.c)
+AC_CANONICAL_TARGET
+AM_INIT_AUTOMAKE(1.6)
+AM_CONFIG_HEADER(src/config.h)
+
+# -- Templates for config.h --
+
+AH_TEMPLATE([DEBUG], [Define if debug-mode should be enabled])
+AH_TEMPLATE([HAVE_socklen_t], [Define if socklen_t exists])
+AH_TEMPLATE([SNIFFER], [Define if IRC sniffer should be enabled])
+AH_TEMPLATE([STRICT_RFC], [Define if ngIRCd should behave strict RFC compliant])
+AH_TEMPLATE([SYSLOG], [Define if syslog should be used for logging])
+AH_TEMPLATE([ZLIB], [Define if zlib compression should be enabled])
+AH_TEMPLATE([TCPWRAP], [Define if TCP wrappers should be used])
+AH_TEMPLATE([IRCPLUS], [Define if IRC+ protocol should be used])
+AH_TEMPLATE([RENDEZVOUS], [Define if Rendezvous support should be included])
+AH_TEMPLATE([IDENTAUTH], [Define if the server should do IDENT requests])
+
+AH_TEMPLATE([TARGET_OS], [Target operating system name])
+AH_TEMPLATE([TARGET_VENDOR], [Target system vendor])
+AH_TEMPLATE([TARGET_CPU], [Target CPU name])
+
+# -- C Compiler --
+
+AC_PROG_CC
+
+# -- Helper programs --
+
+AC_PROG_AWK
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+AC_PROG_RANLIB
+
+# -- Compiler Features --
+
+AM_C_PROTOTYPES
+AC_C_CONST
+
+# -- Hard coded system and compiler dependencies/features/options ... --
+
+if test "$GCC" = "yes"; then
+	# We are using the GNU C compiler. Good!
+	CFLAGS="$CFLAGS -pipe -W -Wall -Wpointer-arith -Wstrict-prototypes"
+fi
+
+case "$target_os" in
+	hpux*)
+		# This is HP/UX, we need to define _XOPEN_SOURCE_EXTENDED
+		# (tested with HP/UX 11.11)
+		CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
+		;;
+esac
+
+# Add additional CFLAGS, eventually specified on the command line:
+test -n "$CFLAGS_ADD" && CFLAGS="$CFLAGS $CFLAGS_ADD"
+
+CFLAGS="$CFLAGS -DSYSCONFDIR='\"\$(sysconfdir)\"'"
+
+# -- Headers --
+
+AC_HEADER_STDC
+AC_HEADER_TIME
+AC_HEADER_SYS_WAIT
+
+AC_CHECK_HEADERS([ \
+	ctype.h errno.h fcntl.h netdb.h netinet/in.h stdlib.h string.h \
+	strings.h sys/socket.h sys/time.h unistd.h \
+	],,AC_MSG_ERROR([required C header missing!]))
+
+AC_CHECK_HEADERS([arpa/inet.h ctype.h malloc.h stdbool.h stddef.h varargs.h])
+
+# -- Datatypes --
+
+AC_MSG_CHECKING(whether socklen_t exists)
+AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/socket.h>
+	],[
+	socklen_t a, b;
+	a = 2; b = 4; a += b;
+	],[
+	AC_DEFINE(HAVE_socklen_t) AC_MSG_RESULT(yes)
+	],[
+	AC_MSG_RESULT(no)
+])
+
+AC_TYPE_SIGNAL
+AC_TYPE_SIZE_T
+
+# -- Libraries --
+
+AC_CHECK_LIB(UTIL,memmove)
+AC_CHECK_LIB(socket,bind)
+AC_CHECK_LIB(nsl,gethostent)
+
+# -- Functions --
+
+AC_FUNC_FORK
+AC_FUNC_STRFTIME
+
+AC_CHECK_FUNCS([ \
+	bind gethostbyaddr gethostbyname gethostname inet_ntoa malloc memmove \
+	memset realloc setsid setsockopt socket strcasecmp strchr strerror \
+	strstr waitpid],,AC_MSG_ERROR([required function missing!]))
+
+AC_CHECK_FUNCS(inet_aton isdigit sigaction snprintf vsnprintf strdup strlcpy strlcat)
+
+AC_CHECK_FUNCS(select,[AC_CHECK_HEADERS(sys/select.h)],
+	AC_MSG_ERROR([required function select() is missing!])
+)
+
+# -- Configuration options --
+
+x_syslog_on=no
+AC_ARG_WITH(syslog,
+	[  --without-syslog        disable syslog (autodetected by default)],
+	[	if test "$withval" != "no"; then
+			if test "$withval" != "yes"; then
+				CFLAGS="-I$withval/include $CFLAGS"
+				CPPFLAGS="-I$withval/include $CPPFLAGS"
+				LDFLAGS="-L$withval/lib $LDFLAGS"
+			fi
+			AC_CHECK_LIB(be, syslog)
+			AC_CHECK_FUNCS(syslog, x_syslog_on=yes,
+				AC_MSG_ERROR([Can't enable syslog!])
+			)
+		fi
+	],
+	[
+		AC_CHECK_LIB(be, syslog)
+		AC_CHECK_FUNCS(syslog, x_syslog_on=yes)
+	]
+)
+if test "$x_syslog_on" = "yes"; then
+	AC_DEFINE(SYSLOG, 1)
+	AC_CHECK_HEADERS(syslog.h,,AC_MSG_ERROR([required C header missing!]))
+fi
+
+x_zlib_on=no
+AC_ARG_WITH(zlib,
+	[  --without-zlib          disable zlib compression (autodetected by default)],
+	[	if test "$withval" != "no"; then
+			if test "$withval" != "yes"; then
+				CFLAGS="-I$withval/include $CFLAGS"
+				CPPFLAGS="-I$withval/include $CPPFLAGS"
+				LDFLAGS="-L$withval/lib $LDFLAGS"
+			fi
+			AC_CHECK_LIB(z, deflate)
+			AC_CHECK_FUNCS(deflate, x_zlib_on=yes,
+				AC_MSG_ERROR([Can't enable zlib!])
+			)
+		fi
+	],
+	[	AC_CHECK_LIB(z, deflate)
+		AC_CHECK_FUNCS(deflate, x_zlib_on=yes)
+	]
+)
+if test "$x_zlib_on" = "yes"; then
+	AC_DEFINE(ZLIB, 1)
+	AC_CHECK_HEADERS(zlib.h,,AC_MSG_ERROR([required C header missing!]))
+fi
+
+x_tcpwrap_on=no
+AC_ARG_WITH(tcp-wrappers,
+	[  --with-tcp-wrappers     enable TCP wrappers support],
+	[	if test "$withval" != "no"; then
+			if test "$withval" != "yes"; then
+				CFLAGS="-I$withval/include $CFLAGS"
+				CPPFLAGS="-I$withval/include $CPPFLAGS"
+				LDFLAGS="-L$withval/lib $LDFLAGS"
+			fi
+			AC_MSG_CHECKING(for hosts_access)
+			LIBS="-lwrap $LIBS"
+			AC_TRY_LINK([
+#include <tcpd.h>
+int allow_severity = 0;
+int deny_severity = 0;
+				],[
+				tcpd_warn("link test");
+				],[
+				AC_MSG_RESULT(yes)
+				AC_DEFINE(TCPWRAP, 1)
+				x_tcpwrap_on=yes
+				],[
+				AC_MSG_RESULT(no)
+				AC_MSG_ERROR([Can't enable TCP wrappers!])
+			])
+		fi
+	]
+)
+
+x_rendezvous_on=no
+AC_ARG_WITH(rendezvous,
+	[  --with-rendezvous       enable support for "Rendezvous"],
+	[	if test "$withval" != "no"; then
+			if test "$withval" != "yes"; then
+				CFLAGS="-I$withval/include $CFLAGS"
+				CPPFLAGS="-I$withval/include $CPPFLAGS"
+				LDFLAGS="-L$withval/lib $LDFLAGS"
+			fi
+			AC_CHECK_FUNCS(DNSServiceRegistrationCreate, x_rendezvous_on=osx,
+			[
+				AC_CHECK_LIB(pthread, pthread_mutexattr_init)
+				AC_CHECK_LIB(howl, sw_discovery_init)
+				AC_CHECK_FUNCS(sw_discovery_init, \
+				 x_rendezvous_on=howl, \
+				 AC_MSG_ERROR([Can't enable Rendezvous!]))
+			])
+		fi
+	]
+)
+if test "$x_rendezvous_on" = "osx"; then
+	AC_CHECK_HEADERS([DNSServiceDiscovery/DNSServiceDiscovery.h \
+	 mach/port.h],,AC_MSG_ERROR([required C header missing!]))
+	AC_DEFINE(RENDEZVOUS, 1)
+fi
+if test "$x_rendezvous_on" = "howl"; then
+	for dir in /usr/local/include /usr/local/include/howl* \
+	 /usr/include /usr/include/howl*; do
+	 	test -d "$dir" || continue
+		AC_MSG_CHECKING([for Howl headers in $dir])
+		if test -f "$dir/rendezvous/rendezvous.h"; then
+			if test "$dir" != "/usr/local/include" -a \
+			 "$dir" != "/usr/include"; then
+				CFLAGS="-I$dir $CFLAGS"
+				CPPFLAGS="-I$dir $CPPFLAGS"
+			fi
+			AC_MSG_RESULT(yes)
+			break
+		else
+			AC_MSG_RESULT(no)
+		fi
+	done
+	AC_CHECK_HEADERS([rendezvous/rendezvous.h],, \
+	 AC_MSG_ERROR([required C header missing!]))
+	AC_DEFINE(RENDEZVOUS, 1)
+fi
+
+x_identauth_on=no
+AC_ARG_WITH(ident,
+	[  --with-ident            enable "IDENT" ("AUTH") protocol support],
+	[	if test "$withval" != "no"; then
+			if test "$withval" != "yes"; then
+				CFLAGS="-I$withval/include $CFLAGS"
+				CPPFLAGS="-I$withval/include $CPPFLAGS"
+				LDFLAGS="-L$withval/lib $LDFLAGS"
+			fi
+			AC_CHECK_LIB(ident, ident_id)
+			AC_CHECK_FUNCS(ident_id, x_identauth_on=yes,
+				AC_MSG_ERROR([Can't enable IDENT support!])
+			)
+		fi
+	]
+)
+if test "$x_identauth_on" = "yes"; then
+	AC_DEFINE(IDENTAUTH, 1)
+	AC_CHECK_HEADERS(ident.h,,AC_MSG_ERROR([required C header missing!]))
+fi
+
+x_ircplus_on=yes
+AC_ARG_ENABLE(ircplus,
+	[  --disable-ircplus       disable IRC+ protocol],
+	if test "$enableval" = "no"; then x_ircplus_on=no; fi
+)
+if test "$x_ircplus_on" = "yes"; then
+	AC_DEFINE(IRCPLUS, 1)
+fi
+
+x_sniffer_on=no; x_debug_on=no
+AC_ARG_ENABLE(sniffer,
+	[  --enable-sniffer        enable IRC traffic sniffer (enables debug mode)],
+	if test "$enableval" = "yes"; then
+		AC_DEFINE(SNIFFER, 1)
+		x_sniffer_on=yes; x_debug_on=yes
+	fi
+)
+
+AC_ARG_ENABLE(debug,
+	[  --enable-debug          show additional debug output],
+	if test "$enableval" = "yes"; then x_debug_on=yes; fi
+)
+if test "$x_debug_on" = "yes"; then
+	AC_DEFINE(DEBUG, 1)
+	test "$GCC" = "yes" && CFLAGS="-pedantic $CFLAGS"
+fi
+
+x_strict_rfc_on=no
+AC_ARG_ENABLE(strict-rfc,
+	[  --enable-strict-rfc     strict RFC conformance -- may break clients!],
+	if test "$enableval" = "yes"; then
+		AC_DEFINE(STRICT_RFC, 1)
+		x_strict_rfc_on=yes
+	fi
+)
+
+# -- Definitions --
+
+AC_DEFINE_UNQUOTED(TARGET_CPU, "$target_cpu" )
+AC_DEFINE_UNQUOTED(TARGET_VENDOR, "$target_vendor" )
+AC_DEFINE_UNQUOTED(TARGET_OS, "$target_os" )
+
+# Add additional CFLAGS, eventually specified on the command line, but after
+# running this configure script. Useful for "-Werror" for example.
+test -n "$CFLAGS_END" && CFLAGS="$CFLAGS $CFLAGS_END"
+
+# -- Generate files --
+
+AC_OUTPUT([ \
+	Makefile \
+	doc/Makefile \
+	src/Makefile \
+	src/portab/Makefile \
+	src/tool/Makefile \
+	src/ngircd/Makefile \
+	src/testsuite/Makefile \
+	man/Makefile \
+	contrib/Makefile \
+	contrib/Debian/Makefile \
+	contrib/MacOSX/Makefile \
+])
+
+type dpkg >/dev/null 2>&1
+if test $? -eq 0; then
+	# Generate debian/ link if the dpkg command exists
+	# (read: if we are running on a debian compatible system)
+	echo "creating Debian-specific links ..."
+	test -f debian/rules || ln -s contrib/Debian debian
+fi
+
+# -- Result --
+
+echo
+echo "ngIRCd $PACKAGE_VERSION has been configured with the following options:"
+echo
+
+# Someone please show me a better way :)  [borrowed by OpenSSH]
+B=`eval echo ${bindir}` ; B=`eval echo ${B}`
+S=`eval echo ${sbindir}` ; S=`eval echo ${S}`
+C=`eval echo ${sysconfdir}` ; C=`eval echo ${C}`
+M=`eval echo ${mandir}` ; M=`eval echo ${M}`
+D=`eval echo ${datadir}/doc/${PACKAGE}` ; D=`eval echo ${D}`
+
+echo "             Target: ${target}"
+test "$target" != "$host" && echo "               Host: ${host}"
+echo "           Compiler: ${CC}"
+test -n "$CFLAGS"	&& echo "     Compiler flags: ${CFLAGS}"
+test -n "$CPPFLAGS"	&& echo " Preprocessor flags: ${CPPFLAGS}"
+test -n "$LDFLAGS"	&& echo "       Linker flags: ${LDFLAGS}"
+test -n "$LIBS"		&& echo "          Libraries: ${LIBS}"
+echo
+echo "    'ngircd' binary: $S"
+echo " Configuration file: $C"
+echo "       Manual pages: $M"
+echo "      Documentation: $D"
+echo
+
+echo $ECHO_N "     Syslog support: $ECHO_C"
+test "$x_syslog_on" = "yes" \
+	&& echo $ECHO_N "yes $ECHO_C" \
+	|| echo $ECHO_N "no  $ECHO_C"
+echo $ECHO_N "  Enable debug code: $ECHO_C"
+test "$x_debug_on" = "yes" \
+	&& echo "yes" \
+	|| echo "no"
+
+echo $ECHO_N "   zlib compression: $ECHO_C"
+test "$x_zlib_on" = "yes" \
+	&& echo $ECHO_N "yes $ECHO_C" \
+	|| echo $ECHO_N "no  $ECHO_C"
+echo $ECHO_N "        IRC sniffer: $ECHO_C"
+test "$x_sniffer_on" = "yes" \
+	&& echo "yes" \
+	|| echo "no"
+
+echo $ECHO_N "   Use TCP Wrappers: $ECHO_C"
+test "$x_tcpwrap_on" = "yes" \
+	&& echo $ECHO_N "yes $ECHO_C" \
+	|| echo $ECHO_N "no  $ECHO_C"
+echo $ECHO_N "    Strict RFC mode: $ECHO_C"
+test "$x_strict_rfc_on" = "yes" \
+	&& echo "yes" \
+	|| echo "no"
+
+echo $ECHO_N " Rendezvous support: $ECHO_C"
+test "$x_rendezvous_on" = "osx" -o "$x_rendezvous_on" = "howl" \
+	&& echo $ECHO_N "yes $ECHO_C" \
+	|| echo $ECHO_N "no  $ECHO_C"
+echo $ECHO_N "      IRC+ protocol: $ECHO_C"
+test "$x_ircplus_on" = "yes" \
+	&& echo "yes" \
+	|| echo "no"
+
+echo $ECHO_N "      IDENT support: $ECHO_C"
+test "$x_identauth_on" = "yes" \
+	&& echo $ECHO_N "yes $ECHO_C" \
+	|| echo $ECHO_N "no  $ECHO_C"
+
+echo; echo
+
+# -eof-

+ 28 - 0
contrib/Debian/Makefile.am

@@ -0,0 +1,28 @@
+#
+# ngIRCd -- The Next Generation IRC Daemon
+# Copyright (c)2001-2003 by Alexander Barton (alex@barton.de)
+#
+# 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.
+# Please read the file COPYING, README and AUTHORS for more information.
+#
+# $Id: Makefile.am,v 1.4 2004/05/11 00:32:31 alex Exp $
+#
+
+EXTRA_DIST = rules changelog compat control copyright \
+	ngircd.init ngircd.postinst
+
+maintainer-clean-local:
+	rm -f Makefile Makefile.in
+
+clean-local:
+	rm -f ngircd.postinst.debhelper ngircd.postrm.debhelper \
+	 ngircd.prerm.debhelper ngircd.substvars
+	rm -f ngircd-full.postinst.debhelper ngircd-full.postrm.debhelper \
+	 ngircd-full.prerm.debhelper ngircd-full.substvars
+	rm -rf ngircd ngircd-full
+	rm -f files
+
+# -eof-

+ 292 - 0
contrib/Debian/Makefile.in

@@ -0,0 +1,292 @@
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# 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.
+
+@SET_MAKE@
+
+#
+# ngIRCd -- The Next Generation IRC Daemon
+# Copyright (c)2001-2003 by Alexander Barton (alex@barton.de)
+#
+# 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.
+# Please read the file COPYING, README and AUTHORS for more information.
+#
+# $Id: Makefile.am,v 1.4 2004/05/11 00:32:31 alex Exp $
+#
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+U = @U@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+
+EXTRA_DIST = rules changelog compat control copyright \
+	ngircd.init ngircd.postinst
+
+subdir = contrib/Debian
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/src/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.in $(ACLOCAL_M4)
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  contrib/Debian/Makefile
+Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkinstalldirs) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am