Browse Source

Import upstream version 22

Alexander Barton 7 years ago
parent
commit
9360ed23a4
98 changed files with 1464 additions and 1769 deletions
  1. 97 19
      ChangeLog
  2. 6 6
      INSTALL
  3. 70 13
      NEWS
  4. 107 224
      config.guess
  5. 51 43
      config.sub
  6. 30 60
      configure
  7. 29 26
      configure.ac
  8. 29 26
      configure.ng
  9. 20 0
      contrib/Debian/changelog
  10. 8 14
      contrib/Debian/rules
  11. 0 4
      contrib/MacOSX/ngIRCd.xcodeproj/project.pbxproj
  12. 1 1
      contrib/ngircd.spec
  13. 41 17
      contrib/platformtest.sh
  14. 8 8
      doc/Bopm.txt
  15. 2 1
      doc/Modes.txt
  16. 21 10
      doc/Platforms.txt
  17. 3 3
      doc/README-AUX.txt
  18. 1 1
      doc/Services.txt
  19. 8 2
      doc/sample-ngircd.conf.tmpl
  20. 30 23
      man/ngircd.conf.5.tmpl
  21. 0 3
      src/config.h.in
  22. 2 0
      src/ipaddr/ng_ipaddr.h
  23. 11 8
      src/ngircd/array.c
  24. 2 11
      src/ngircd/channel.c
  25. 1 7
      src/ngircd/class.c
  26. 1 5
      src/ngircd/client-cap.c
  27. 4 20
      src/ngircd/client.c
  28. 3 2
      src/ngircd/client.h
  29. 18 8
      src/ngircd/conf.c
  30. 3 0
      src/ngircd/conf.h
  31. 6 10
      src/ngircd/conn-encoding.c
  32. 5 25
      src/ngircd/conn-func.c
  33. 8 3
      src/ngircd/conn-ssl.c
  34. 10 12
      src/ngircd/conn-zip.c
  35. 280 294
      src/ngircd/conn.c
  36. 7 3
      src/ngircd/defines.h
  37. 1 3
      src/ngircd/hash.c
  38. 10 8
      src/ngircd/io.c
  39. 2 5
      src/ngircd/irc-cap.c
  40. 4 17
      src/ngircd/irc-channel.c
  41. 3 5
      src/ngircd/irc-encoding.c
  42. 28 42
      src/ngircd/irc-info.c
  43. 4 11
      src/ngircd/irc-login.c
  44. 6 10
      src/ngircd/irc-macros.h
  45. 2 6
      src/ngircd/irc-metadata.c
  46. 15 11
      src/ngircd/irc-mode.c
  47. 11 14
      src/ngircd/irc-op.c
  48. 9 15
      src/ngircd/irc-oper.c
  49. 4 16
      src/ngircd/irc-server.c
  50. 11 15
      src/ngircd/irc-write.c
  51. 6 11
      src/ngircd/irc.c
  52. 7 12
      src/ngircd/lists.c
  53. 5 10
      src/ngircd/log.c
  54. 7 9
      src/ngircd/login.c
  55. 3 129
      src/ngircd/match.c
  56. 2 0
      src/ngircd/messages.h
  57. 0 9
      src/ngircd/ngircd.c
  58. 30 40
      src/ngircd/numeric.c
  59. 3 9
      src/ngircd/op.c
  60. 9 14
      src/ngircd/pam.c
  61. 74 76
      src/ngircd/parse.c
  62. 1 0
      src/ngircd/parse.h
  63. 4 5
      src/ngircd/proc.c
  64. 3 8
      src/ngircd/resolve.c
  65. 3 3
      src/ngircd/sighandlers.c
  66. 2 2
      src/portab/Makefile.am
  67. 2 2
      src/portab/Makefile.in
  68. 2 2
      src/portab/Makefile.ng
  69. 0 21
      src/portab/exp.h
  70. 0 21
      src/portab/imp.h
  71. 40 49
      src/portab/portab.h
  72. 166 28
      src/portab/portabtest.c
  73. 10 12
      src/portab/strdup.c
  74. 1 7
      src/portab/strlcpy.c
  75. 1 4
      src/portab/strndup.c
  76. 0 144
      src/portab/vsnprintf.c
  77. 0 3
      src/portab/waitpid.c
  78. 3 2
      src/testsuite/Makefile.am
  79. 3 2
      src/testsuite/Makefile.in
  80. 3 2
      src/testsuite/Makefile.ng
  81. 2 3
      src/testsuite/channel-test.e
  82. 2 3
      src/testsuite/check-idle.e
  83. 2 3
      src/testsuite/connect-test.e
  84. 3 2
      src/testsuite/invite-test.e
  85. 3 2
      src/testsuite/join-test.e
  86. 3 2
      src/testsuite/kick-test.e
  87. 3 4
      src/testsuite/message-test.e
  88. 2 3
      src/testsuite/misc-test.e
  89. 2 3
      src/testsuite/mode-test.e
  90. 3 2
      src/testsuite/opless-channel-test.e
  91. 0 2
      src/testsuite/server-link-test.e
  92. 4 0
      src/testsuite/start-server.sh
  93. 2 3
      src/testsuite/stress-A.e
  94. 2 3
      src/testsuite/stress-B.e
  95. 4 1
      src/testsuite/tests.sh
  96. 3 2
      src/testsuite/who-test.e
  97. 0 2
      src/testsuite/whois-test.e
  98. 1 3
      src/tool/tool.c

+ 97 - 19
ChangeLog

@@ -9,6 +9,84 @@
                                -- ChangeLog --
 
 
+ngIRCd 22 (2014-10-11)
+
+  - Match all list patterns case-insensitive: this affects the invite-,
+    ban-, and except lists, as well as G-Lines an K-Lines.
+    Problem pointed out by "wowaname" on #ngircd, thanks!
+
+  ngIRCd 22~rc1 (2014-09-29)
+  - Sync "except lists" between servers: Up to now, ban, invite, and G-Line
+    lists have been synced between servers while linking -- but obviously
+    nobody noticed that except list have been missing ever since. Until now.
+    Thanks to "j4jackj", who reported this issue in #ngircd.
+  - Allow longer user names (up to 63 characters) for authentication.
+  - Correctly check that a server has a valid hostname and port, thanks to
+    David Binderman <dcb314@hotmail.com> who reported this bug.
+  - Fix the function which generates complete "IRC masks" from user input,
+    don't destroy the source buffer and use all provided parts (nick, user,
+    host name). This fixes GLINEs/KLINEs from not working in some situations.
+  - Increase MAX_SERVERS from 16 to 64: There are installations out there
+    that would like to configure more than 16 links per server, so increase
+    this limit. Best would be to get rid of MAX_SERVERS altogether and make
+    if fully dynamic, but start with this quick and dirty hack ...
+  - Debian: Don't adjust path names that are correct by default and correctly
+    set and use "docdir".
+  - Update config.guess and config.sub to recent versions.
+  - Test suite/platformtest.sh: Detect when tests have been skipped.
+  - doc/Bopm.txt: Update "connregex" and "kline" for current ngIRCd.
+  - Allow "DefaultUserModes" to set all possible modes, including modes only
+    settable by IRC Operators.
+  - Spoofed prefixes: Really kill connection on non-server links.
+  - Implement user mode "F": "relaxed flood protection". Clients with mode
+    "F" set are allowed to rapidly send data to the daemon. This mode is only
+    settable by IRC Operators and can cause problems in the network -- so be
+    careful and only set it on "trusted" clients!
+    User mode "F" is used by Bahamut for this purpose, for example.
+  - Handle "throttling" in a single function: ngIRCd implements "command
+    throttling" and "bps throttling" (bytes per second). The states are
+    detected in different functions, Conn_Handler() and Read_Request(), but
+    handle the actual "throttling" in a common function: this enables us to
+    guarantee consistent behavior and to disable throttling for special
+    connections in only one place
+  - Use server password when PAM is compiled in but disabled.
+  - Streamline punctuation of log messages.
+  - Return ISUPPORT(005) numerics on "VERSION". This is how ircd-seven,
+    Charybdis, Hybrid, and InspIRCd behave, for example.
+  - configure: Only link "contrib/Debian" if it exists, which isn't the case
+    on "VPATH builds", for example.
+  - Show the account name in WHOIS. This uses the same numeric as Charybdis
+    and ircu families: WHOISLOGGEDIN(330).
+  - Pattern matching: Remove "range matching" in our pattern matching code
+    using the "[...]" syntax, because [ and ] are valid characters in nick
+    names and one has to quote them currently using the "\" character, which
+    is quite unexpected for users.
+  - platformtest.sh: New option "-x", don't regenerate build system and
+    allow using separate source and build trees.
+  - Test suite: explicitly enable glibc memory checking.
+  - Make "MODE -k" handling more robust and compatible, send "fake '*' key"
+    in all replies.
+  - Update configure.ng: ngIRCd requires GNU autoconf 2.61 for generating its
+    build system, so update the build system accordingly and implement all
+    changes that autoupdate(1) suggests: Update AC_PREREQ and AC_INIT, use
+    AC_LINK_IFELSE, AC_RUN_IFELSE, and AC_COMPILE_IFELSE, and remove
+    AC_TYPE_SIGNAL (we don't use RETSIGTYPE).
+  - portabtest: Actually test the functions snprintf(), strlcpy(), strlcat(),
+    and vsnprintf() for correctness, not only existence (which was quite
+    useless, because if they weren't available, the program could not have
+    been linked at all ...).
+  - Implement new configuration option "Network": it is used to set the
+    (completely optional) "network name", to which this instance of the
+    daemon belongs. When set, this name is used in the ISUPPORT(005) numeric
+    which is sent to all clients connecting to the server after logging in.
+  - Update doc/Platforms.txt.
+  - Various code cleanups, remove unused code, streamline error handling.
+    Remove all imp.h and exp.h header files, support non-standard vsnprintf()
+    return codes, and fix some K&R C portability issues. Streamline
+    DEBUG_ARRAY, DEBUG_BUFFER, DEBUG_IO, DEBUG_ZIP definitions.
+  - Increase penalty time to 10 seconds when handling OPER commands with an
+    invalid password.
+
 ngIRCd 21.1 (2014-03-25)
 
   - Don't ignore but use the server password when PAM is compiled in but
@@ -420,7 +498,7 @@ ngIRCd 20 (2012-12-17)
     the hash function. When "CloakHostSalt" is not set (the default), a
     random salt will be generated after each server restart. (Closes #133)
 
-ngIRCd Release 19.2 (2012-06-19)
+ngIRCd 19.2 (2012-06-19)
 
   - doc/Capabilities.txt: document "multi-prefix" capability
 
@@ -450,7 +528,7 @@ ngIRCd Release 19.2 (2012-06-19)
   - Fix: Don't ignore "permission denied" errors when enabling chroot.
   - FAQ: enhance description of chroot setup.
 
-ngIRCd Release 19.1 (2012-03-19)
+ngIRCd 19.1 (2012-03-19)
 
   - Fix gcc warning (v4.6.3), initialize "list" variable to NULL.
   - Fix typos: "recieved" -> "received", "Please not" -> "Please note",
@@ -460,7 +538,7 @@ ngIRCd Release 19.1 (2012-03-19)
   - getpid.sh: Fix test case error for Debian using sbuild(1).
   - Don't log "ngIRCd hello message" two times when starting up.
 
-ngIRCd Release 19 (2012-02-29)
+ngIRCd 19 (2012-02-29)
 
   - Update build system: bump config.guess and config.sub files used by
     GNU autoconf/automake to recent versions.
@@ -610,7 +688,7 @@ ngIRCd Release 19 (2012-02-29)
     asynchronous nature of the IRC protocol. So don't break server-
     links, only log a message and ignore the command. (Closes #113)
 
-ngIRCd Release 18 (2011-07-10)
+ngIRCd 18 (2011-07-10)
 
   - Update timestamp of ngircd(8) manual page.
   - Add preliminary ngIRCd protocol module for Anope 1.9 to contrib/Anope/.
@@ -720,7 +798,7 @@ ngIRCd Release 18 (2011-07-10)
     only relevant when a trusted server on a server-server link sends invalid
     commands).
 
-ngIRCd Release 17.1 (2010-12-19)
+ngIRCd 17.1 (2010-12-19)
 
   - --configtest: remember if MOTD is configured by file or phrase
   - Enhance log messages when establishing server links a little bit
@@ -736,7 +814,7 @@ ngIRCd Release 17.1 (2010-12-19)
   - New numeric 329: get channel creation time on "MODE #chan" commands
   - Save channel creation time; new function Channel_CreationTime()
 
-ngIRCd Release 17 (2010-11-07)
+ngIRCd 17 (2010-11-07)
 
   - doc: change path names in sample-ngircd.conf depending on sysconfdir
   - Fix up generation and distribution of sample-ngircd.conf
@@ -817,7 +895,7 @@ ngIRCd Release 17 (2010-11-07)
   - Fix "beeing" typo ...
   - SSL/TLS: fix bogus "socket closed" error message.
 
-ngIRCd Release 16 (2010-05-02)
+ngIRCd 16 (2010-05-02)
 
   - doc/SSL: remove line continuation marker
 
@@ -857,7 +935,7 @@ ngIRCd Release 16 (2010-05-02)
     every channel, and c) remote clients using a server not supporting this
     mode are not checked either and therefore always allowed to join.
 
-ngIRCd Release 15 (2009-11-07)
+ngIRCd 15 (2009-11-07)
 
   - "ngircd --configtest": print SSL configuration options even when unset.
 
@@ -883,7 +961,7 @@ ngIRCd Release 15 (2009-11-07)
   - Fix a few error handling glitches for SSL/TLS connections.
   - Minor fixes to manual pages and documentation.
 
-ngIRCd Release 14.1 (2009-05-05)
+ngIRCd 14.1 (2009-05-05)
 
   - Security: fix remotely triggerable crash in SSL/TLS code.
   - BSD start script contrib/ngircd.sh has been renamed to ngircd-bsd.sh.
@@ -896,7 +974,7 @@ ngIRCd Release 14.1 (2009-05-05)
   - Fix server list announcement.
   - Do not remove host names from info text.
 
-ngIRCd Release 14 (2009-04-20)
+ngIRCd 14 (2009-04-20)
 
   - Display IPv6 addresses as "[<addr>]" when accepting connections.
 
@@ -920,7 +998,7 @@ ngIRCd Release 14 (2009-04-20)
   - Fix handling of channels containing dots.
     (closes ug #93, reported by Gonosz Csiga)
 
-ngIRCd Release 13 (2008-12-25)
+ngIRCd 13 (2008-12-25)
 
   - Updated documentation, especially doc/Services.txt and doc/SSL.txt.
   - Make the test suite work on OpenSolaris.
@@ -1011,7 +1089,7 @@ ngIRCd 0.11.0 (2008-01-15)
   ngIRCd 0.11.0-pre2 (2008-01-07)
   - SECURITY: IRC_PART could reference invalid memory, causing
     ngircd to crash [from HEAD]. (CVE-2008-0285)
-  
+
   ngIRCd 0.11.0-pre1 (2008-01-02)
   - Use dotted-decimal IP address if host name is >= 64.
   - Add support for /STAT u (server uptime) command.
@@ -1045,7 +1123,7 @@ ngIRCd 0.10.4 (2008-01-07)
 
   - SECURITY: IRC_PART could reference invalid memory, causing
     ngircd to crash [from HEAD]. (CVE-2008-0285)
-  
+
 ngIRCd 0.10.3 (2007-08-01)
 
   - SECURITY: Fixed a severe bug in handling JOIN commands, which could
@@ -1351,7 +1429,7 @@ ngIRCd 0.7.0 (2003-05-01)
   - Documentation is now installed in $(datadir)/doc/ngircd.
   - Enhanced handling of NJOIN in case of nick collisions.
 
-ngIRCd 0.6.1, 2003-01-21
+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
@@ -1372,15 +1450,15 @@ ngIRCd 0.6.1, 2003-01-21
 
 Older changes (sorry, only available in german language):
 
-ngIRCd 0.6.0, 2002-12-24
+ngIRCd 0.6.0, 24.12.2002
 
-  ngIRCd 0.6.0-pre2, 2002-12-23
+  ngIRCd 0.6.0-pre2, 23.12.2002
   - 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
+  ngIRCd 0.6.0-pre1, 18.12.2002
   - 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
@@ -1431,7 +1509,7 @@ ngIRCd 0.6.0, 2002-12-24
 
 ngIRCd 0.5.4, 24.11.2002
 
-  - Fehler-Handling von connect() gefixed: der Server kann sich nun auch   
+  - 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
@@ -1543,7 +1621,7 @@ ngIRCd 0.5.0, 20.09.2002
   - 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

+ 6 - 6
INSTALL

@@ -170,7 +170,7 @@ 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: at least autoconf 2.61 and automake 1.10 are
 requird, newer is better. But don't use automake 1.12 or newer for creating
-distribution archives: it will work but lack "de-ANSI-fucation" support in the
+distribution archives: it will work but lack "de-ANSI-fication" support in the
 generated Makefile's! Stick with automake 1.11.x for this purpose ...
 So automake 1.11.x and autoconf 2.67+ is recommended.
 
@@ -226,7 +226,7 @@ which will be used to search for the required libraries and header files in
 the given paths ("<path>/lib/...", "<path>/include/...") in addition to the
 standard locations.
 
-* Syslog Logging (autodetected by default): 
+* Syslog Logging (autodetected by default):
   --with-syslog[=<path>] / --without-syslog
 
   Enable (disable) support for logging to "syslog", which should be
@@ -237,13 +237,13 @@ standard locations.
 
   Enable (disable) support for compressed server-server links.
   The Z compression library ("libz") is required for this option.
-  
+
 * IO Backend (autodetected by default):
   --with-select[=<path>] / --without-select
   --with-poll[=<path>] / --without-poll
   --with-devpoll[=<path>] / --without-devpoll
   --with-epoll[=<path>] / --without-epoll
-  --with-kqueue[=<path>] / --without-kqueue  
+  --with-kqueue[=<path>] / --without-kqueue
 
   ngIRCd can use different IO "backends": the "old school" select() and poll()
   API which should be supported by most UNIX-like operating systems, or the
@@ -261,7 +261,7 @@ standard locations.
   required for this option.
 
 * TCP-Wrappers:
-  --with-tcp-wrappers[=<path>] 
+  --with-tcp-wrappers[=<path>]
 
   Include support for Wietse Venemas "TCP Wrappers" to limit client access
   to the daemon, for example by using "/etc/hosts.{allow|deny}".
@@ -318,7 +318,7 @@ IRC operators of this server are defined in [Operator] blocks, remote
 servers are configured in [Server] sections, 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 
+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(5) manual page.

+ 70 - 13
NEWS

@@ -9,6 +9,63 @@
                                   -- NEWS --
 
 
+ngIRCd 22 (2014-10-11)
+
+  - Match all list patterns case-insensitive: this affects the invite-,
+    ban-, and except lists, as well as G-Lines an K-Lines.
+    Problem pointed out by "wowaname" on #ngircd, thanks!
+
+  ngIRCd 22~rc1 (2014-09-29)
+  - Sync "except lists" between servers: Up to now, ban, invite, and G-Line
+    lists have been synced between servers while linking -- but obviously
+    nobody noticed that except list have been missing ever since. Until now.
+    Thanks to "j4jackj", who reported this issue in #ngircd.
+  - Allow longer user names (up to 63 characters) for authentication.
+  - Increase MAX_SERVERS from 16 to 64: There are installations out there
+    that would like to configure more than 16 links per server, so increase
+    this limit. Best would be to get rid of MAX_SERVERS altogether and make
+    if fully dynamic, but start with this quick and dirty hack ...
+  - Test suite/platformtest.sh: Detect when tests have been skipped.
+  - Allow "DefaultUserModes" to set all possible modes, including modes only
+    settable by IRC Operators.
+  - Implement user mode "F": "relaxed flood protection". Clients with mode
+    "F" set are allowed to rapidly send data to the daemon. This mode is only
+    settable by IRC Operators and can cause problems in the network -- so be
+    careful and only set it on "trusted" clients!
+    User mode "F" is used by Bahamut for this purpose, for example.
+  - Use server password when PAM is compiled in but disabled.
+  - Streamline punctuation of log messages.
+  - Return ISUPPORT(005) numerics on "VERSION". This is how ircd-seven,
+    Charybdis, Hybrid, and InspIRCd behave, for example.
+  - configure: Only link "contrib/Debian" if it exists, which isn't the case
+    on "VPATH builds", for example.
+  - Show the account name in WHOIS. This uses the same numeric as Charybdis
+    and ircu families: WHOISLOGGEDIN(330).
+  - Pattern matching: Remove "range matching" in our pattern matching code
+    using the "[...]" syntax, because [ and ] are valid characters in nick
+    names and one has to quote them currently using the "\" character, which
+    is quite unexpected for users.
+  - platformtest.sh: New option "-x", don't regenerate build system and
+    allow using separate source and build trees.
+  - Test suite: explicitly enable glibc memory checking.
+  - Make "MODE -k" handling more robust and compatible, send "fake '*' key"
+    in all replies.
+  - portabtest: Actually test the functions snprintf(), strlcpy(), strlcat(),
+    and vsnprintf() for correctness, not only existence (which was quite
+    useless, because if they weren't available, the program could not have
+    been linked at all ...).
+  - Implement new configuration option "Network": it is used to set the
+    (completely optional) "network name", to which this instance of the
+    daemon belongs. When set, this name is used in the ISUPPORT(005) numeric
+    which is sent to all clients connecting to the server after logging in.
+  - Update doc/Platforms.txt.
+  - Various code cleanups, remove unused code, streamline error handling.
+    Remove all imp.h and exp.h header files, support non-standard vsnprintf()
+    return codes, and fix some K&R C portability issues. Streamline
+    DEBUG_ARRAY, DEBUG_BUFFER, DEBUG_IO, DEBUG_ZIP definitions.
+  - Increase penalty time to 10 seconds when handling OPER commands with an
+    invalid password.
+
 ngIRCd 21.1 (2014-03-25)
 
   - Don't ignore but use the server password when PAM is compiled in but
@@ -208,7 +265,7 @@ ngIRCd 20 (2012-12-17)
     the hash function. When "CloakHostSalt" is not set (the default), a
     random salt will be generated after each server restart.
 
-ngIRCd Release 19.2 (2012-06-19)
+ngIRCd 19.2 (2012-06-19)
 
   ngIRCd 19.2~rc1 (2012-06-13)
   - New configuration option "CloakHostModeX" to configure the hostname
@@ -220,12 +277,12 @@ ngIRCd Release 19.2 (2012-06-19)
     and capablity "multi-prefix" which allows both the NAME and	WHO command
     handlers to return more than one "class prefix" to the client.
 
-ngIRCd Release 19.1 (2012-03-19)
+ngIRCd 19.1 (2012-03-19)
 
   - Really include _all_ patches to build the Anope module into the
     distribution archive ... ooops!
 
-ngIRCd Release 19 (2012-02-29)
+ngIRCd 19 (2012-02-29)
 
   ngIRCd 19~rc1 (2012-02-12)
   - Update preliminary ngIRCd protocol module for Anope 1.9.6, which now
@@ -293,7 +350,7 @@ ngIRCd Release 19 (2012-02-29)
     argument. Like unknown user and channel modes, these modes are saved
     and forwarded to other servers, but ignored otherwise.
 
-ngIRCd Release 18 (2011-07-10)
+ngIRCd 18 (2011-07-10)
 
   - Add preliminary ngIRCd protocol module for Anope 1.9 to contrib/Anope/.
 
@@ -368,13 +425,13 @@ ngIRCd Release 18 (2011-07-10)
     vice-versa). The defaults are adjusted accordingly and the old variables
     in [Global] are still accepted, so there is no functional change.
 
-ngIRCd Release 17.1 (2010-12-19)
+ngIRCd 17.1 (2010-12-19)
 
   - Don't log critical (or worse) messages to stderr
   - Remove "error file" when compiled with debug code enabled
   - New numeric 329: get channel creation time on "MODE #chan" commands
 
-ngIRCd Release 17 (2010-11-07)
+ngIRCd 17 (2010-11-07)
 
   - doc: change path names in sample-ngircd.conf depending on sysconfdir
 
@@ -412,7 +469,7 @@ ngIRCd Release 17 (2010-11-07)
     this new mode requires the user to be an IRC operator.
   - Show SSL status in WHOIS output, numeric 275.
 
-ngIRCd Release 16 (2010-05-02)
+ngIRCd 16 (2010-05-02)
 
   ngIRCd 16~rc2 (2010-04-25)
   - Enhace connection statistics counters: display total number of served
@@ -432,7 +489,7 @@ ngIRCd Release 16 (2010-05-02)
     every channel, and c) remote clients using a server not supporting this
     mode are not checked either and therefore always allowed to join.
 
-ngIRCd Release 15 (2009-11-07)
+ngIRCd 15 (2009-11-07)
 
   ngIRCd 15~rc1 (2009-10-15)
   - Do not add default listening port (6667) if SSL ports were specified, so
@@ -446,13 +503,13 @@ ngIRCd Release 15 (2009-11-07)
     a throttling scheme: an IRC client can send up to 3 commands or 256 bytes
     per second before a one second pause is enforced.
 
-ngIRCd Release 14.1 (2009-05-05)
+ngIRCd 14.1 (2009-05-05)
 
   - Security: fix remotely triggerable crash in SSL/TLS code.
   - Debian: build ngircd-full-dbg package.
   - Allow ping timeout quit messages to show the timeout value.
 
-ngIRCd Release 14 (2009-04-20)
+ngIRCd 14 (2009-04-20)
 
   ngIRCd 14~rc1 (2009-03-29)
   - Allow creation of persistent modeless channels.
@@ -463,7 +520,7 @@ ngIRCd Release 14 (2009-04-20)
     individual channel keys for different users.
   - Remove limit on maximum number of predefined channels in ngircd.conf.
 
-ngIRCd Release 13 (2008-12-25)
+ngIRCd 13 (2008-12-25)
 
   ngIRCd 13~rc1 (2008-11-21):
   - New version number scheme :-)
@@ -595,7 +652,7 @@ ngIRCd 0.7.5 (2003-07-11)
     (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.
@@ -622,7 +679,7 @@ ngIRCd 0.7.0 (2003-05-01)
 
 Older news (sorry, only available in german language):
 
-ngIRCd 0.6.0, 2002-12-24
+ngIRCd 0.6.0, 24.12.2002
 
   - beim Schliessen einer Verbindung zeigt der Server nun vor dem ERROR
     noch eine Statistik ueber die empfangene und gesendete Datenmenge an.

+ 107 - 224
config.guess

@@ -1,14 +1,12 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2014 Free Software Foundation, Inc.
 
-timestamp='2012-08-14'
+timestamp='2014-03-23'
 
 # This file 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
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -22,19 +20,17 @@ timestamp='2012-08-14'
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner.  Please send patches (context
-# diff format) to <config-patches@gnu.org> and include a ChangeLog
-# entry.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 #
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
+# Originally written by Per Bothner.
 #
 # You can get the latest version of this script from:
 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -54,9 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -138,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+	# If the system lacks a compiler, then just pick glibc.
+	# We could probably try harder.
+	LIBC=gnu
+
+	eval $set_cc_for_build
+	cat <<-EOF > $dummy.c
+	#include <features.h>
+	#if defined(__UCLIBC__)
+	LIBC=uclibc
+	#elif defined(__dietlibc__)
+	LIBC=dietlibc
+	#else
+	LIBC=gnu
+	#endif
+	EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+	;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -306,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 	echo arm-acorn-riscix${UNAME_RELEASE}
 	exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
 	echo arm-unknown-riscos
 	exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -811,7 +826,7 @@ EOF
     *:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
 	exit ;;
-    i*:MSYS*:*)
+    *:MSYS*:*)
 	echo ${UNAME_MACHINE}-pc-msys
 	exit ;;
     i*:windows32*:*)
@@ -859,21 +874,21 @@ EOF
 	exit ;;
     *:GNU:*:*)
 	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
 	exit ;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
 	exit ;;
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
     aarch64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     aarch64_be:Linux:*:*)
 	UNAME_MACHINE=aarch64_be
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -886,59 +901,54 @@ EOF
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
 	esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     arm*:Linux:*:*)
 	eval $set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
-	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	else
 	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
 		| grep -q __ARM_PCS_VFP
 	    then
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
 	    else
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
 	    fi
 	fi
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     cris:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
 	exit ;;
     crisv32:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
 	exit ;;
     frv:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     hexagon:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     i*86:Linux:*:*)
-	LIBC=gnu
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
 	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -957,54 +967,63 @@ EOF
 	#endif
 EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
 	;;
-    or32:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+    openrisc*:Linux:*:*)
+	echo or1k-unknown-linux-${LIBC}
+	exit ;;
+    or32:Linux:*:* | or1k*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     padre:Linux:*:*)
-	echo sparc-unknown-linux-gnu
+	echo sparc-unknown-linux-${LIBC}
 	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+	echo hppa64-unknown-linux-${LIBC}
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
+	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+	  *)    echo hppa-unknown-linux-${LIBC} ;;
 	esac
 	exit ;;
     ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
+	echo powerpc64-unknown-linux-${LIBC}
 	exit ;;
     ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
+	echo powerpc-unknown-linux-${LIBC}
+	exit ;;
+    ppc64le:Linux:*:*)
+	echo powerpc64le-unknown-linux-${LIBC}
+	exit ;;
+    ppcle:Linux:*:*)
+	echo powerpcle-unknown-linux-${LIBC}
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
+	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
 	exit ;;
     sh64*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     tile*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     vax:Linux:*:*)
-	echo ${UNAME_MACHINE}-dec-linux-gnu
+	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
 	exit ;;
     x86_64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     xtensa*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1237,19 +1256,31 @@ EOF
 	exit ;;
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	case $UNAME_PROCESSOR in
-	    i386)
-		eval $set_cc_for_build
-		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		      grep IS_64BIT_ARCH >/dev/null
-		  then
-		      UNAME_PROCESSOR="x86_64"
-		  fi
-		fi ;;
-	    unknown) UNAME_PROCESSOR=powerpc ;;
-	esac
+	eval $set_cc_for_build
+	if test "$UNAME_PROCESSOR" = unknown ; then
+	    UNAME_PROCESSOR=powerpc
+	fi
+	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+	    if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		    grep IS_64BIT_ARCH >/dev/null
+		then
+		    case $UNAME_PROCESSOR in
+			i386) UNAME_PROCESSOR=x86_64 ;;
+			powerpc) UNAME_PROCESSOR=powerpc64 ;;
+		    esac
+		fi
+	    fi
+	elif test "$UNAME_PROCESSOR" = i386 ; then
+	    # Avoid executing cc on OS X 10.9, as it ships with a stub
+	    # that puts up a graphical alert prompting to install
+	    # developer tools.  Any system running Mac OS X 10.7 or
+	    # later (Darwin 11 and later) is required to have a 64-bit
+	    # processor. This is not true of the ARM version of Darwin
+	    # that Apple uses in portable devices.
+	    UNAME_PROCESSOR=x86_64
+	fi
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
 	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1340,154 +1371,6 @@ EOF
 	exit ;;
 esac
 
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-	"4"
-#else
-	""
-#endif
-	); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-	printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-	printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-	{ echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-	echo c1-convex-bsd
-	exit ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit ;;
-    c34*)
-	echo c34-convex-bsd
-	exit ;;
-    c38*)
-	echo c38-convex-bsd
-	exit ;;
-    c4*)
-	echo c4-convex-bsd
-	exit ;;
-    esac
-fi
-
 cat >&2 <<EOF
 $0: unable to guess system type
 

+ 51 - 43
config.sub

@@ -1,24 +1,18 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2014 Free Software Foundation, Inc.
 
-timestamp='2012-08-18'
+timestamp='2014-05-01'
 
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file 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
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, see <http://www.gnu.org/licenses/>.
@@ -26,11 +20,12 @@ timestamp='2012-08-18'
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -73,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -156,7 +149,7 @@ case $os in
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray | -microblaze)
+	-apple | -axis | -knuth | -cray | -microblaze*)
 		os=
 		basic_machine=$1
 		;;
@@ -259,10 +252,12 @@ case $basic_machine in
 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
 	| am33_2.0 \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-        | be32 | be64 \
+	| arc | arceb \
+	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+	| avr | avr32 \
+	| be32 | be64 \
 	| bfin \
-	| c4x | clipper \
+	| c4x | c8051 | clipper \
 	| d10v | d30v | dlx | dsp16xx \
 	| epiphany \
 	| fido | fr30 | frv \
@@ -270,10 +265,11 @@ case $basic_machine in
 	| hexagon \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
+	| k1om \
 	| le32 | le64 \
 	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore | mep | metag \
+	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
@@ -287,20 +283,22 @@ case $basic_machine in
 	| mips64vr5900 | mips64vr5900el \
 	| mipsisa32 | mipsisa32el \
 	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa32r6 | mipsisa32r6el \
 	| mipsisa64 | mipsisa64el \
 	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64r6 | mipsisa64r6el \
 	| mipsisa64sb1 | mipsisa64sb1el \
 	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipsr5900 | mipsr5900el \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
 	| moxie \
 	| mt \
 	| msp430 \
 	| nds32 | nds32le | nds32be \
-	| nios | nios2 \
+	| nios | nios2 | nios2eb | nios2el \
 	| ns16k | ns32k \
-	| open8 \
-	| or32 \
+	| open8 | or1k | or1knd | or32 \
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle \
 	| pyramid \
@@ -328,7 +326,7 @@ case $basic_machine in
 	c6x)
 		basic_machine=tic6x-unknown
 		;;
-	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
 		basic_machine=$basic_machine-unknown
 		os=-none
 		;;
@@ -370,13 +368,13 @@ case $basic_machine in
 	| aarch64-* | aarch64_be-* \
 	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
 	| avr-* | avr32-* \
 	| be32-* | be64-* \
 	| bfin-* | bs2000-* \
 	| c[123]* | c30-* | [cjt]90-* | c4x-* \
-	| clipper-* | craynv-* | cydra-* \
+	| c8051-* | clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
 	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -385,11 +383,13 @@ case $basic_machine in
 	| hexagon-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
+	| k1om-* \
 	| le32-* | le64-* \
 	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| microblaze-* | microblazeel-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
@@ -403,18 +403,22 @@ case $basic_machine in
 	| mips64vr5900-* | mips64vr5900el-* \
 	| mipsisa32-* | mipsisa32el-* \
 	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa32r6-* | mipsisa32r6el-* \
 	| mipsisa64-* | mipsisa64el-* \
 	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64r6-* | mipsisa64r6el-* \
 	| mipsisa64sb1-* | mipsisa64sb1el-* \
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipsr5900-* | mipsr5900el-* \
 	| mipstx39-* | mipstx39el-* \
 	| mmix-* \
 	| mt-* \
 	| msp430-* \
 	| nds32-* | nds32le-* | nds32be-* \
-	| nios-* | nios2-* \
+	| nios-* | nios2-* | nios2eb-* | nios2el-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
 	| open8-* \
+	| or1k*-* \
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@@ -788,7 +792,7 @@ case $basic_machine in
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
-	microblaze)
+	microblaze*)
 		basic_machine=microblaze-xilinx
 		;;
 	mingw64)
@@ -796,7 +800,7 @@ case $basic_machine in
 		os=-mingw64
 		;;
 	mingw32)
-		basic_machine=i386-pc
+		basic_machine=i686-pc
 		os=-mingw32
 		;;
 	mingw32ce)
@@ -832,7 +836,7 @@ case $basic_machine in
 		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
 		;;
 	msys)
-		basic_machine=i386-pc
+		basic_machine=i686-pc
 		os=-msys
 		;;
 	mvs)
@@ -1023,7 +1027,11 @@ case $basic_machine in
 		basic_machine=i586-unknown
 		os=-pw32
 		;;
-	rdos)
+	rdos | rdos64)
+		basic_machine=x86_64-pc
+		os=-rdos
+		;;
+	rdos32)
 		basic_machine=i386-pc
 		os=-rdos
 		;;
@@ -1350,7 +1358,7 @@ case $os in
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-	      | -sym* | -kopensolaris* \
+	      | -sym* | -kopensolaris* | -plan9* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
 	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1372,7 +1380,7 @@ case $os in
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1496,9 +1504,6 @@ case $os in
 	-aros*)
 		os=-aros
 		;;
-	-kaos*)
-		os=-kaos
-		;;
 	-zvmoe)
 		os=-zvmoe
 		;;
@@ -1547,6 +1552,9 @@ case $basic_machine in
 	c4x-* | tic4x-*)
 		os=-coff
 		;;
+	c8051-*)
+		os=-elf
+		;;
 	hexagon-*)
 		os=-elf
 		;;

+ 30 - 60
configure

@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for ngIRCd 21.1.
+# Generated by GNU Autoconf 2.67 for ngIRCd 22.
 #
 # Report bugs to <ngircd-ml@ngircd.barton.de>.
 #
@@ -552,8 +552,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='ngIRCd'
 PACKAGE_TARNAME='ngircd'
-PACKAGE_VERSION='21.1'
-PACKAGE_STRING='ngIRCd 21.1'
+PACKAGE_VERSION='22'
+PACKAGE_STRING='ngIRCd 22'
 PACKAGE_BUGREPORT='ngircd-ml@ngircd.barton.de'
 PACKAGE_URL='http://ngircd.barton.de/'
 
@@ -1269,7 +1269,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ngIRCd 21.1 to adapt to many kinds of systems.
+\`configure' configures ngIRCd 22 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1339,7 +1339,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ngIRCd 21.1:";;
+     short | recursive ) echo "Configuration of ngIRCd 22:";;
    esac
   cat <<\_ACEOF
 
@@ -1452,7 +1452,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ngIRCd configure 21.1
+ngIRCd configure 22
 generated by GNU Autoconf 2.67
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1985,7 +1985,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ngIRCd $as_me 21.1, which was
+It was created by ngIRCd $as_me 22, which was
 generated by GNU Autoconf 2.67.  Invocation command line was
 
   $ $0 $@
@@ -2901,7 +2901,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='ngircd'
- VERSION='21.1'
+ VERSION='22'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4993,24 +4993,27 @@ done
 
 
 
-# -- Hard coded system and compiler dependencies/features/options ... --
+# -- Function Definitions --
+
 
 
 
 
+# -- 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"
 
 
-  ssp_cc=yes
-  # we use -fstack-protector-all for the test to enfoce the use of the guard variable
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC} accepts -fstack-protector" >&5
+	ssp_cc=yes
+	# Use -fstack-protector-all for the test to enfoce the use of the
+	# guard variable
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${CC} accepts -fstack-protector" >&5
 $as_echo_n "checking whether ${CC} accepts -fstack-protector... " >&6; }
-  ssp_old_cflags="$CFLAGS"
-  CFLAGS="$CFLAGS -fstack-protector-all"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+	ssp_old_cflags="$CFLAGS"
+	CFLAGS="$CFLAGS -fstack-protector-all"
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5028,14 +5031,14 @@ else
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-  echo $ssp_cc
-  CFLAGS="$ssp_old_cflags"
-  if test "X$ssp_cc" = "Xyes"; then
-      CFLAGS="$CFLAGS -fstack-protector"
+	echo $ssp_cc
+	CFLAGS="$ssp_old_cflags"
+	if test "X$ssp_cc" = "Xyes"; then
+		CFLAGS="$CFLAGS -fstack-protector"
 
 $as_echo "#define ENABLE_SSP_CC 1" >>confdefs.h
 
-  fi
+	fi
 
 fi
 
@@ -5246,7 +5249,7 @@ fi
 # Required header files
 for ac_header in  \
 	fcntl.h netdb.h netinet/in.h stdlib.h string.h \
-	strings.h sys/socket.h sys/time.h unistd.h \
+	strings.h sys/socket.h sys/time.h sys/types.h unistd.h \
 
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
@@ -5347,39 +5350,6 @@ _ACEOF
 
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
-$as_echo_n "checking return type of signal handlers... " >&6; }
-if test "${ac_cv_type_signal+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <signal.h>
-
-int
-main ()
-{
-return *(signal (0, 0)) (0) == 1;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_type_signal=int
-else
-  ac_cv_type_signal=void
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
-$as_echo "$ac_cv_type_signal" >&6; }
-
-cat >>confdefs.h <<_ACEOF
-#define RETSIGTYPE $ac_cv_type_signal
-_ACEOF
-
-
 ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
 if test "x$ac_cv_type_size_t" = x""yes; then :
 
@@ -6020,10 +5990,10 @@ _ACEOF
 		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getaddrinfo() works" >&5
 $as_echo_n "checking whether getaddrinfo() works... " >&6; }
 		if test "$cross_compiling" = yes; then :
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5 ; }
+
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -7905,7 +7875,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ngIRCd $as_me 21.1, which was
+This file was extended by ngIRCd $as_me 22, which was
 generated by GNU Autoconf 2.67.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -7972,7 +7942,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-ngIRCd config.status 21.1
+ngIRCd config.status 22
 configured by $0, generated by GNU Autoconf 2.67,
   with options \\"\$ac_cs_config\\"
 

+ 29 - 26
configure.ac

@@ -1,6 +1,6 @@
 #
 # ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001-2013 Alexander Barton (alex@barton.de) and Contributors
+# Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors
 #
 # 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
@@ -23,8 +23,7 @@ m4_ifdef([AM_SILENT_RULES],
 # -- Initialisation --
 
 AC_PREREQ([2.61])
-AC_INIT([ngIRCd], VERSION_ID,
-	[ngircd-ml@ngircd.barton.de], [ngircd], [http://ngircd.barton.de/])
+AC_INIT([ngIRCd],[VERSION_ID],[ngircd-ml@ngircd.barton.de],[ngircd],[http://ngircd.barton.de/])
 
 AC_CONFIG_SRCDIR([src/ngircd/ngircd.c])
 AC_CONFIG_HEADER([src/config.h])
@@ -76,27 +75,28 @@ AC_C_CONST
 AC_C_INLINE
 AM_C_PROTOTYPES
 
-# -- Hard coded system and compiler dependencies/features/options ... --
+# -- Function Definitions --
 
 AC_DEFUN([GCC_STACK_PROTECT_CC],[
-  ssp_cc=yes
-  # we use -fstack-protector-all for the test to enfoce the use of the guard variable 
-  AC_MSG_CHECKING([whether ${CC} accepts -fstack-protector])
-  ssp_old_cflags="$CFLAGS"
-  CFLAGS="$CFLAGS -fstack-protector-all"
-  AC_TRY_LINK(,,, ssp_cc=no)
-  echo $ssp_cc
-  CFLAGS="$ssp_old_cflags"
-  if test "X$ssp_cc" = "Xyes"; then
-      CFLAGS="$CFLAGS -fstack-protector"
-      AC_DEFINE([ENABLE_SSP_CC], 1, [Define if SSP C support is enabled.])
-  fi
+	ssp_cc=yes
+	# Use -fstack-protector-all for the test to enfoce the use of the
+	# guard variable
+	AC_MSG_CHECKING([whether ${CC} accepts -fstack-protector])
+	ssp_old_cflags="$CFLAGS"
+	CFLAGS="$CFLAGS -fstack-protector-all"
+	AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],[],[ssp_cc=no])
+	echo $ssp_cc
+	CFLAGS="$ssp_old_cflags"
+	if test "X$ssp_cc" = "Xyes"; then
+		CFLAGS="$CFLAGS -fstack-protector"
+		AC_DEFINE([ENABLE_SSP_CC], 1, [Define if SSP C support is enabled.])
+	fi
 ])
 
 AC_DEFUN([WORKING_GETADDRINFO],[
 	AC_CHECK_FUNCS([getaddrinfo],[
 		AC_MSG_CHECKING([whether getaddrinfo() works])
-		AC_TRY_RUN([
+		AC_RUN_IFELSE([AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -113,15 +113,19 @@ main(int argc, char **argv)
 		return 1;
 	return 0;
 }
-		],[
+		]])],[
 		AC_DEFINE([HAVE_WORKING_GETADDRINFO], 1, [getaddrinfo(0)])
 		AC_MSG_RESULT(yes)
 		],[
 		AC_MSG_RESULT(no)
+		],[
+		AC_MSG_RESULT(no)
 		])
 	])
 ])
 
+# -- 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"
@@ -151,7 +155,7 @@ AC_HEADER_TIME
 # Required header files
 AC_CHECK_HEADERS([ \
 	fcntl.h netdb.h netinet/in.h stdlib.h string.h \
-	strings.h sys/socket.h sys/time.h unistd.h \
+	strings.h sys/socket.h sys/time.h sys/types.h unistd.h \
 	],,AC_MSG_ERROR([required C header missing!]))
 
 # Optional header files
@@ -163,20 +167,19 @@ AC_CHECK_HEADERS_ONCE([ \
 # -- Datatypes --
 
 AC_MSG_CHECKING(whether socklen_t exists)
-AC_TRY_COMPILE([
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #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_PID_T
-AC_TYPE_SIGNAL
 AC_TYPE_SIZE_T
 AC_TYPE_SSIZE_T
 AC_TYPE_UID_T
@@ -467,15 +470,15 @@ AC_ARG_WITH(tcp-wrappers,
 			saved_LIBS="$LIBS"
 			LIBS="-lwrap $LIBS"
 			LIBS_END="-lwrap $LIBS_END"
-			AC_TRY_LINK([
+			AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 #include <sys/types.h>
 #include <sys/socket.h>
 #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

+ 29 - 26
configure.ng

@@ -1,6 +1,6 @@
 #
 # ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001-2013 Alexander Barton (alex@barton.de) and Contributors
+# Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors
 #
 # 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
@@ -23,8 +23,7 @@ m4_ifdef([AM_SILENT_RULES],
 # -- Initialisation --
 
 AC_PREREQ([2.61])
-AC_INIT([ngIRCd], VERSION_ID,
-	[ngircd-ml@ngircd.barton.de], [ngircd], [http://ngircd.barton.de/])
+AC_INIT([ngIRCd],[VERSION_ID],[ngircd-ml@ngircd.barton.de],[ngircd],[http://ngircd.barton.de/])
 
 AC_CONFIG_SRCDIR([src/ngircd/ngircd.c])
 AC_CONFIG_HEADER([src/config.h])
@@ -76,27 +75,28 @@ AC_C_CONST
 AC_C_INLINE
 __ng_PROTOTYPES__
 
-# -- Hard coded system and compiler dependencies/features/options ... --
+# -- Function Definitions --
 
 AC_DEFUN([GCC_STACK_PROTECT_CC],[
-  ssp_cc=yes
-  # we use -fstack-protector-all for the test to enfoce the use of the guard variable 
-  AC_MSG_CHECKING([whether ${CC} accepts -fstack-protector])
-  ssp_old_cflags="$CFLAGS"
-  CFLAGS="$CFLAGS -fstack-protector-all"
-  AC_TRY_LINK(,,, ssp_cc=no)
-  echo $ssp_cc
-  CFLAGS="$ssp_old_cflags"
-  if test "X$ssp_cc" = "Xyes"; then
-      CFLAGS="$CFLAGS -fstack-protector"
-      AC_DEFINE([ENABLE_SSP_CC], 1, [Define if SSP C support is enabled.])
-  fi
+	ssp_cc=yes
+	# Use -fstack-protector-all for the test to enfoce the use of the
+	# guard variable
+	AC_MSG_CHECKING([whether ${CC} accepts -fstack-protector])
+	ssp_old_cflags="$CFLAGS"
+	CFLAGS="$CFLAGS -fstack-protector-all"
+	AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],[],[ssp_cc=no])
+	echo $ssp_cc
+	CFLAGS="$ssp_old_cflags"
+	if test "X$ssp_cc" = "Xyes"; then
+		CFLAGS="$CFLAGS -fstack-protector"
+		AC_DEFINE([ENABLE_SSP_CC], 1, [Define if SSP C support is enabled.])
+	fi
 ])
 
 AC_DEFUN([WORKING_GETADDRINFO],[
 	AC_CHECK_FUNCS([getaddrinfo],[
 		AC_MSG_CHECKING([whether getaddrinfo() works])
-		AC_TRY_RUN([
+		AC_RUN_IFELSE([AC_LANG_SOURCE([[
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -113,15 +113,19 @@ main(int argc, char **argv)
 		return 1;
 	return 0;
 }
-		],[
+		]])],[
 		AC_DEFINE([HAVE_WORKING_GETADDRINFO], 1, [getaddrinfo(0)])
 		AC_MSG_RESULT(yes)
 		],[
 		AC_MSG_RESULT(no)
+		],[
+		AC_MSG_RESULT(no)
 		])
 	])
 ])
 
+# -- 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"
@@ -151,7 +155,7 @@ AC_HEADER_TIME
 # Required header files
 AC_CHECK_HEADERS([ \
 	fcntl.h netdb.h netinet/in.h stdlib.h string.h \
-	strings.h sys/socket.h sys/time.h unistd.h \
+	strings.h sys/socket.h sys/time.h sys/types.h unistd.h \
 	],,AC_MSG_ERROR([required C header missing!]))
 
 # Optional header files
@@ -163,20 +167,19 @@ AC_CHECK_HEADERS_ONCE([ \
 # -- Datatypes --
 
 AC_MSG_CHECKING(whether socklen_t exists)
-AC_TRY_COMPILE([
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #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_PID_T
-AC_TYPE_SIGNAL
 AC_TYPE_SIZE_T
 AC_TYPE_SSIZE_T
 AC_TYPE_UID_T
@@ -467,15 +470,15 @@ AC_ARG_WITH(tcp-wrappers,
 			saved_LIBS="$LIBS"
 			LIBS="-lwrap $LIBS"
 			LIBS_END="-lwrap $LIBS_END"
-			AC_TRY_LINK([
+			AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 #include <sys/types.h>
 #include <sys/socket.h>
 #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

+ 20 - 0
contrib/Debian/changelog

@@ -1,3 +1,23 @@
+ngircd (22-0ab1) unstable; urgency=low
+
+  * New "upstream" release: ngIRCd 22.
+
+ -- Alexander Barton <alex@barton.de>  Sat, 11 Oct 2014 20:29:03 +0200
+
+ngircd (22~rc1-0ab1) unstable; urgency=low
+
+  * New "upstream" release candidate 1 for ngIRCd Release 22.
+
+ -- Alexander Barton <alex@barton.de>  Mon, 29 Sep 2014 17:07:55 +0200
+
+ngircd (21.1-0ab2) unstable; urgency=low
+
+  * Use correct package name in pathname to "HelpFile" (Command.txt)
+    in "ngircd-full" and "ngircd-full-dbg" packages.
+  * Don't adjust path names that are correct by default.
+
+ -- Alexander Barton <alex@barton.de>  Mon, 14 Jul 2014 11:20:17 +0200
+
 ngircd (21.1-0ab1) unstable; urgency=low
 
   * New "upstream" release: ngIRCd 21.1.

+ 8 - 14
contrib/Debian/rules

@@ -1,7 +1,7 @@
 #!/usr/bin/make -f
 #
 # ngIRCd -- The Next Generation IRC Daemon
-# Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors
+# Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors
 #
 # 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
@@ -42,6 +42,7 @@ configure-ngircd: configure
 	  --prefix=/usr \
 	  --sysconfdir=/etc/ngircd \
 	  --mandir=\$${prefix}/share/man \
+	  --docdir=\$${prefix}/share/doc/ngircd \
 	  --with-syslog --with-zlib
 
 configure-ngircd-full: configure
@@ -52,6 +53,7 @@ configure-ngircd-full: configure
 	  --prefix=/usr \
 	  --sysconfdir=/etc/ngircd \
 	  --mandir=\$${prefix}/share/man \
+	  --docdir=\$${prefix}/share/doc/ngircd-full \
 	  --with-syslog --with-zlib \
 	  --with-gnutls --with-iconv --with-ident --with-tcp-wrappers \
 	  --with-pam \
@@ -65,6 +67,7 @@ configure-ngircd-full-dbg: configure
 	  --prefix=/usr \
 	  --sysconfdir=/etc/ngircd \
 	  --mandir=\$${prefix}/share/man \
+	  --docdir=\$${prefix}/share/doc/ngircd-full-dbg \
 	  --enable-debug --enable-sniffer \
 	  --with-syslog --with-zlib \
 	  --with-gnutls --with-iconv --with-ident --with-tcp-wrappers \
@@ -141,7 +144,6 @@ install-ngircd: build-ngircd
 	cat $(CURDIR)/debian/ngircd/usr/share/doc/ngircd/sample-ngircd.conf | \
 	 sed -e "s|;ServerUID = 65534|ServerUID = irc|g" | \
 	 sed -e "s|;ServerGID = 65534|ServerGID = irc|g" | \
-	 sed -e "s|;MotdFile = /usr/local/etc/ngircd.motd|MotdFile = |/etc/ngircd/ngircd.motd|g" | \
 	 sed -e "s|;PidFile = /var/run/ngircd/ngircd.pid|PidFile = /var/run/ircd/ngircd.pid|g" \
 	 >$(CURDIR)/debian/ngircd/etc/ngircd/ngircd.conf
 	touch $(CURDIR)/debian/ngircd/etc/ngircd/ngircd.motd
@@ -153,16 +155,12 @@ install-ngircd-full: build-ngircd-full
 
 	# Add here commands to install the "full" package into debian/ngircd-full:
 	$(MAKE) install DESTDIR=$(CURDIR)/debian/ngircd-full
-	rm $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd/INSTALL*
-	rm $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd/COPYING*
-	mv $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd \
-	 $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd-full
+	rm $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd-full/INSTALL*
+	rm $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd-full/COPYING*
 	mkdir -p $(CURDIR)/debian/ngircd-full/var/run/ircd
 	cat $(CURDIR)/debian/ngircd-full/usr/share/doc/ngircd-full/sample-ngircd.conf | \
 	 sed -e "s|;ServerUID = 65534|ServerUID = irc|g" | \
 	 sed -e "s|;ServerGID = 65534|ServerGID = irc|g" | \
-	 sed -e "s|;MotdFile = /usr/local/etc/ngircd.motd|MotdFile = /etc/ngircd/ngircd.motd|g" | \
-	 sed -e "s|;HelpFile = /usr/share/doc/ngircd/Commands.txt|HelpFile = /usr/share/doc/ngircd-full/Commands.txt|g" | \
 	 sed -e "s|;PidFile = /var/run/ngircd/ngircd.pid|PidFile = /var/run/ircd/ngircd.pid|g" \
 	 >$(CURDIR)/debian/ngircd-full/etc/ngircd/ngircd.conf
 	touch $(CURDIR)/debian/ngircd-full/etc/ngircd/ngircd.motd
@@ -176,16 +174,12 @@ install-ngircd-full-dbg: build-ngircd-full-dbg
 
 	# Add here commands to install the "full" package into debian/ngircd-full:
 	$(MAKE) install DESTDIR=$(CURDIR)/debian/ngircd-full-dbg
-	rm $(CURDIR)/debian/ngircd-full-dbg/usr/share/doc/ngircd/INSTALL*
-	rm $(CURDIR)/debian/ngircd-full-dbg/usr/share/doc/ngircd/COPYING*
-	mv $(CURDIR)/debian/ngircd-full-dbg/usr/share/doc/ngircd \
-	 $(CURDIR)/debian/ngircd-full-dbg/usr/share/doc/ngircd-full-dbg
+	rm $(CURDIR)/debian/ngircd-full-dbg/usr/share/doc/ngircd-full-dbg/INSTALL*
+	rm $(CURDIR)/debian/ngircd-full-dbg/usr/share/doc/ngircd-full-dbg/COPYING*
 	mkdir -p $(CURDIR)/debian/ngircd-full-dbg/var/run/ircd
 	cat $(CURDIR)/debian/ngircd-full-dbg/usr/share/doc/ngircd-full-dbg/sample-ngircd.conf | \
 	 sed -e "s|;ServerUID = 65534|ServerUID = irc|g" | \
 	 sed -e "s|;ServerGID = 65534|ServerGID = irc|g" | \
-	 sed -e "s|;MotdFile = /usr/local/etc/ngircd.motd|MotdFile = /etc/ngircd/ngircd.motd|g" | \
-	 sed -e "s|;HelpFile = /usr/share/doc/ngircd/Commands.txt|HelpFile = /usr/share/doc/ngircd-full-dbg/Commands.txt|g" | \
 	 sed -e "s|;PidFile = /var/run/ngircd/ngircd.pid|PidFile = /var/run/ircd/ngircd.pid|g" \
 	 >$(CURDIR)/debian/ngircd-full-dbg/etc/ngircd/ngircd.conf
 	touch $(CURDIR)/debian/ngircd-full-dbg/etc/ngircd/ngircd.motd

+ 0 - 4
contrib/MacOSX/ngIRCd.xcodeproj/project.pbxproj

@@ -138,8 +138,6 @@
 		FA322D0D0CEF74B1001761B3 /* resolve.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = resolve.h; sourceTree = "<group>"; };
 		FA322D100CEF74B1001761B3 /* ansi2knr.1 */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.man; path = ansi2knr.1; sourceTree = "<group>"; };
 		FA322D110CEF74B1001761B3 /* ansi2knr.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; path = ansi2knr.c; sourceTree = "<group>"; };
-		FA322D120CEF74B1001761B3 /* exp.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = exp.h; sourceTree = "<group>"; };
-		FA322D130CEF74B1001761B3 /* imp.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = imp.h; sourceTree = "<group>"; };
 		FA322D150CEF74B1001761B3 /* portab.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = portab.h; sourceTree = "<group>"; };
 		FA322D160CEF74B1001761B3 /* portabtest.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; path = portabtest.c; sourceTree = "<group>"; };
 		FA322D170CEF74B1001761B3 /* splint.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = splint.h; sourceTree = "<group>"; };
@@ -423,8 +421,6 @@
 				FA18A64716CEE14900132F66 /* Makefile.ng */,
 				FA322D100CEF74B1001761B3 /* ansi2knr.1 */,
 				FA322D110CEF74B1001761B3 /* ansi2knr.c */,
-				FA322D120CEF74B1001761B3 /* exp.h */,
-				FA322D130CEF74B1001761B3 /* imp.h */,
 				FA322D150CEF74B1001761B3 /* portab.h */,
 				FA322D160CEF74B1001761B3 /* portabtest.c */,
 				FA322D170CEF74B1001761B3 /* splint.h */,

+ 1 - 1
contrib/ngircd.spec

@@ -1,5 +1,5 @@
 %define name    ngircd
-%define version 21.1
+%define version 22
 %define release 1
 %define prefix  %{_prefix}
 

+ 41 - 17
contrib/platformtest.sh

@@ -16,6 +16,7 @@
 
 NAME=`basename "$0"`
 VERBOSE=
+CLEAN=1
 
 PLATFORM=
 COMPILER="unknown"
@@ -26,8 +27,12 @@ COMMENT=
 R_CONFIGURE=
 R_MAKE=
 R_CHECK=
+R_CHECK_Y="?"
 R_RUN=
 
+SRC_D=`dirname "$0"`
+MY_D="$PWD"
+
 [ -n "$MAKE" ] || MAKE="make"
 export MAKE CC
 
@@ -36,43 +41,56 @@ while [ $# -gt 0 ]; do
 		"-v")
 			VERBOSE=1
 			;;
+		"-x")
+			CLEAN=
+			;;
 		*)
-			echo "Usage: $NAME [-v]"
+			echo "Usage: $NAME [-v] [-x]"
+			echo
+			echo "  -v   Verbose output"
+			echo "  -x   Don't regenerate build system, even when possible"
+			echo
 			exit 2
 	esac
 	shift
 done
 
 echo "$NAME: Checking ngIRCd base source directory ..."
-grep "ngIRCd" ./ChangeLog >/dev/null 2>&1
+grep "ngIRCd" "$SRC_D/ChangeLog" >/dev/null 2>&1
 if [ $? -ne 0 ]; then
-	grep "ngIRCd" ../ChangeLog >/dev/null 2>&1
+	grep "ngIRCd" "$SRC_D/../ChangeLog" >/dev/null 2>&1
 	if [ $? -ne 0 ]; then
 		echo "$NAME: ngIRCd base source directory not found!?"
 		exit 1
 	fi
-	cd ..
+	SRC_D="$SRC_D/.."
 fi
+echo "$NAME:  - source directory: $SRC_D"
+echo "$NAME:  - working directory: $MY_D"
 
 echo "$NAME: Checking for GIT tree ..."
-if [ -d .git ]; then
+if [ -d "$SRC_D/.git" ]; then
 	echo "$NAME: Checking for \"git\" command ..."
 	git version >/dev/null 2>&1
-	if [ $? -eq 0 ]; then
+	if [ $? -eq 0 -a -n "$CLEAN" ]; then
 		echo "$NAME: Running \"git clean\" ..."
+		cd "$SRC_D" || exit 1
 		[ -n "$VERBOSE" ] && git clean -dxf || git clean -dxf >/dev/null
+		cd "$MY_D" || exit 1
 	fi
 fi
 
-echo "$NAME: Checking for \"./configure\" script ..."
-if [ ! -r ./configure ]; then
-	echo "$NAME: Running \"./autogen.sh\" ..."
+echo "$NAME: Checking for \"$SRC_D/configure\" script ..."
+if [ ! -r "$SRC_D/configure" ]; then
+	echo "$NAME: Running \"$SRC_D/autogen.sh\" ..."
+	cd "$SRC_D" || exit 1
 	[ -n "$VERBOSE" ] && ./autogen.sh || ./autogen.sh >/dev/null
+	cd "$MY_D" || exit 1
 fi
 
-if [ -r ./configure ]; then
-	echo "$NAME: Running \"./configure\" script ..."
-	[ -n "$VERBOSE" ] && ./configure || ./configure >/dev/null
+if [ -r "$SRC_D/configure" ]; then
+	echo "$NAME: Running \"$SRC_D/configure\" script ..."
+	[ -n "$VERBOSE" ] && "$SRC_D/configure" -C || "$SRC_D/configure" -C >/dev/null
 	if [ $? -eq 0 -a -r ./Makefile ]; then
 		R_CONFIGURE=1
 		echo "$NAME: Running \"$MAKE\" ..."
@@ -84,6 +102,8 @@ if [ -r ./configure ]; then
 			if [ $? -eq 0 ]; then
 				R_CHECK=1
 				R_RUN=$R_CHECK
+				[ -r ./src/testsuite/tests-skipped.lst ] \
+					&& R_CHECK_Y="y" || R_CHECK_Y="Y"
 			else
 				./src/ngircd/ngircd --help 2>/dev/null \
 				 | grep "^ngIRCd" >/dev/null
@@ -143,8 +163,8 @@ fi
 # Get ngIRCd version information
 eval $(grep "^VERSION = " Makefile | sed -e 's/ //g')
 case "$VERSION" in
-	*-*-*)
-		VERSION=`echo "$VERSION" | cut -d'-' -f3 | cut -b2-`
+	*~*-*)
+		VERSION=`echo "$VERSION" | cut -b1-10`
 		;;
 esac
 [ -n "$VERSION" ] || VERSION="unknown"
@@ -163,7 +183,7 @@ fi
 
 [ -n "$R_CONFIGURE" ] && C="Y" || C="N"
 [ -n "$R_MAKE" ] && M="Y" || M="N"
-[ -n "$R_CHECK" ] && T="Y" || T="N"
+[ -n "$R_CHECK" ] && T="$R_CHECK_Y" || T="N"
 [ -n "$R_RUN" ] && R="Y" || R="N"
 [ -n "$COMMENT" ] && COMMENT=" $COMMENT"
 
@@ -177,11 +197,15 @@ echo "Platform                    Compiler     ngIRCd     Date     Tester   C M
 echo "--------------------------- ------------ ---------- -------- -------- - - - - -"
 type printf >/dev/null 2>&1
 if [ $? -eq 0 ]; then
-	printf "%-27s %-12s %-10s %s %-8s %s %s %s %s%s" \
+	printf "%-27s %-12s %-10s %s %-8s %s %s %s %s%s\n" \
 	 "$PLATFORM" "$COMPILER" "$VERSION" "$DATE" "$USER" \
 	 "$C" "$M" "$T" "$R" "$COMMENT"
 else
 	echo "$PLATFORM $COMPILER $VERSION $DATE $USER" \
 	 "$C" "$M" "$T" "$R" "$COMMENT"
 fi
-echo; echo
+echo
+if [ "$R_CHECK_Y" = "y" ]; then
+	echo "$NAME: Warning: Some tests have been skipped!"
+	echo
+fi

+ 8 - 8
doc/Bopm.txt

@@ -1,9 +1,8 @@
 
                      ngIRCd - Next Generation IRC Server
+                           http://ngircd.barton.de/
 
-                        (c)2001-2010 Alexander Barton,
-                    alex@barton.de, http://www.barton.de/
-
+               (c)2001-2014 Alexander Barton and Contributors.
                ngIRCd is free software and published under the
                    terms of the GNU General Public License.
 
@@ -18,7 +17,7 @@ monitor, designed for use with hybrid-based ircds, although it can be used
 with slight modification on any server which has the ability to show connects
 to opers and that supports KLINEs."
 
-And starting with Release 17, ngIRCd supports all required log messages that
+Starting with Release 17, ngIRCd supports all required log messages that
 BOPM requires to be useful.
 
 II. Installation
@@ -37,11 +36,12 @@ a) BOPM "IRC" section:
   3) change "mode" to "+ci" or "+c".
 
   4) Set "connregex" to the following string, everything in one line(!):
-     "\\*\\*\\* Notice -- Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9\\.]+)\\].*";
-     and comment all the other "connregex" examples (prepend a "#" character).
+     "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9\\.]+)\\].*";
+     and comment out all the other "connregex" examples (that is, prepend a
+     "#" character).
 
-  5) Set "kline" to "KILL %n :Open proxy found on your host!"; for example,
-     and comment all the other "kline" examples.
+  5) Set "kline" to "GLINE *@%h :Open proxy found on your host!";
+     and comment out all the other "kline" examples.
 
 b) BOPM "scanner" section:
 

+ 2 - 1
doc/Modes.txt

@@ -2,7 +2,7 @@
                      ngIRCd - Next Generation IRC Server
                            http://ngircd.barton.de/
 
-               (c)2001-2012 Alexander Barton and Contributors.
+               (c)2001-2014 Alexander Barton and Contributors.
                ngIRCd is free software and published under the
                    terms of the GNU General Public License.
 
@@ -26,6 +26,7 @@ channels he is using at the moment.
   B	20	User is flagged as a "bot".
   c	17	IRC operator wants to receive connect/disconnect NOTICEs.
   C	19	Only users that share a channel are allowed to send messages.
+  F	22	Relaxed flood protection (only settable by IRC Operators).
   i	0.0.1	User is "invisible".
   o	0.0.1	User is IRC operator.
   q	20	User is protected, can not be kicked from a channel.

+ 21 - 10
doc/Platforms.txt

@@ -30,8 +30,10 @@ alpha/unknown/netbsd3.0     gcc 3.3.3    CVSHEAD    06-05-07 fw       Y Y Y Y 3
 armv6l/unk./linux-gnueabi   gcc 4.7.2    20.2       13-03-08 goetz    Y Y Y Y 5
 armv6l/unk./linux-gnueabihf gcc 4.6.3    21~rc2     13-10-26 pi       Y Y Y Y 5
 armv7l/unk./linux-gnueabi   gcc 4.4.3    19.1       12-04-29 goetz    Y Y Y Y 5
+armv7l/unk./linux-gnueabihf gcc 4.6.3    22~rc1-3   14-10-10 alex     Y Y Y Y 5
+armv7l/unk./linux-gnueabihf gcc 4.8.2    21.1       14-07-15 goetz    Y Y Y Y 5
 hppa/unknown/openbsd3.5     gcc 2.95.3   CVSHEAD    04-05-25 alex     Y Y Y Y
-hppa/unknown/openbsd5.4     gcc 4.2.1    21         13-11-10 alex     Y Y Y Y 3
+hppa/unknown/openbsd5.4     gcc 4.2.1    22~rc1-3   14-10-10 alex     Y Y y Y 3
 hppa1.1/unknown/linux-gnu   gcc 3.3.3    0.8.0      04-05-30 alex     Y Y Y Y
 hppa2.0/unknown/linux-gnu   gcc 3.3.5    13~rc1     08-12-02 alex     Y Y Y Y
 hppa2.0w-hp-hpux11.11       gcc 4.2.3    14.1       09-07-22 goetz    Y Y Y Y
@@ -45,7 +47,7 @@ i386/unknown/freebsd6.2     gcc 3.4.6    20~rc1     12-11-13 alex     Y Y Y Y 3
 i386/unknown/freebsd7.3     gcc 4.2.1    20~rc1     12-11-13 alex     Y Y Y Y 3
 i686/pc/minix               gcc 4.4.6    21~rc2     13-10-27 alex     Y Y N N
 i686/unknown/gnu0.3         gcc 4.4.5    19         12-02-29 alex     Y Y Y Y
-i686/unknown/gnu0.5         gcc 4.8.2    21         14-02-09 alex     Y Y Y Y
+i686/unknown/gnu0.5         gcc 4.9.1    22~rc1-3   14-10-11 alex     Y Y Y Y
 i686/unkn./kfreebsd7.2-gnu  gcc 4.3.4    15         09-12-02 alex     Y Y Y Y 3
 i386/unknown/netbsdelf1.5.2 egcs-1.1.2   21         13-11-25 goetz    Y Y N Y
 i386/unknown/netbsdelf1.6.2 gcc 2.95.3   18         11-07-10 goetz    Y Y Y Y
@@ -59,11 +61,12 @@ i386/unknown/openbsd5.3     gcc 4.2.1    21         13-11-28 goetz    Y Y Y Y 3
 i386/unknown/openbsd5.4     gcc 4.2.1    21         13-11-28 goetz    Y Y Y Y 3
 i586/pc/haiku               gcc 2.95.3   19.2~138   12-10-11 user     Y Y N N
 i586/pc/interix3.5          gcc 3.3      19         12-02-29 alex     Y Y N Y
-i686/pc/cygwin              gcc 4.8.2    21         14-01-02 alex     Y Y N Y
+i686/pc/cygwin              gcc 4.8.3    22~rc1-3   14-10-10 alex     Y Y N Y
 i686/pc/linux-gnu           gcc 2.7.2    21~38      14-01-06 goetz    Y Y Y Y 1
 i686/pc/linux-gnu           gcc 2.95.4   0.8.0      04-05-30 alex     Y Y Y Y 1
 i686/pc/linux-gnu           gcc 3.3.5    14.1       09-08-04 alex     Y Y Y Y 1
 i386/pc/linux-gnu           gcc 4.1.2    13~rc1     08-12-05 alex     Y Y Y Y 1
+i386/pc/linux-gnu           gcc 4.4.5    22~rc1-3   14-10-10 alex     Y Y Y Y 1
 i686/pc/linux-gnu           gcc 4.3.2    14.1       09-08-04 alex     Y Y Y Y 1
 m68k/apple/aux3.0.1         gcc 2.7.2    17         10-11-07 alex     Y Y N Y
 m68k/apple/aux3.0.1         Orig. A/UX   17         10-11-07 alex     Y Y N Y 2
@@ -74,7 +77,7 @@ m88k/dg/dgux5.4R3.10        gcc 2.5.8    CVSHEAD    04-03-15 alex     Y Y ? ?
 mipsel/unknown/linux-gnu    gcc 4.1.2    18         11-07-05 goetz    Y Y N Y 1
 mipsel/unknown/linux-gnu    gcc 4.4.5    21         13-11-24 goetz    Y Y Y Y 1
 powerpc/apple/darwin6.8     gcc 3.1      21         14-01-03 goetz    Y Y Y Y
-powerpc/apple/darwin7.9.0   gcc 3.3      21         14-01-11 goetz    Y Y Y Y 3
+powerpc/apple/darwin7.9.0   gcc 3.3      21.1       14-04-14 goetz    Y Y Y Y 3
 powerpc/apple/darwin8.11.0  gcc 4.0.1    18         11-07-02 goetz    Y Y Y Y 3
 powerpc/apple/darwin9.8.0   gcc 4.0.1    21         14-01-04 goetz    Y Y Y Y 3
 powerpc/unknown/linux-gnu   gcc 3.3.3    0.8.0      04-05-30 alex     Y Y Y Y
@@ -82,22 +85,30 @@ powerpc/unknown/openbsd3.6  gcc 2.95.3   0.10.0     06-10-08 alex     Y Y N Y
 sparc/sun/solaris2.6        gcc 2.95.3   0.7.x-CVS  03-04-22 alex     Y Y Y Y
 sparc/sun/solaris2.7        gcc 3.3      0.8.0      04-05-30 alex     Y Y Y Y
 sparc/unkn./netbsdelf1.6.1  gcc 2.95.3   0.8.0      04-05-30 alex     Y Y Y Y
+sparc/unknown/openbsd5.5    gcc 4.2.1    21.1       14-05-03 goetz    Y Y Y Y 3
 x86_64/apple/darwin10.8.0   gcc 4.2.1    21~rc2     13-10-30 alex     Y Y Y Y 3
 x86_64/apple/darwin12.3.0   gcc 4.2.1    20.2       13-04-01 alex     Y Y Y Y 3
 x86_64/apple/darwin13.0.0   A-clang 5.0  21         14-01-02 alex     Y Y Y Y 3
+x86_64/apple/darwin14.0.0   A-clang 6.0  22~rc1-3   14-10-10 alex     Y Y Y Y 3
 x86_64/unknown/dragonfly3.4 gcc 4.7.2    21         13-11-12 goetz    Y Y N Y 3
-x86_64/unknown/freebsd8.4   gcc 4.2.1    21         14-01-02 alex     Y Y Y Y 3
-x86_64/unknown/freebsd9.1   gcc 4.2.1    21         14-01-02 alex     Y Y Y Y 3
+x86_64/unknown/freebsd8.4   gcc 4.2.1    22~rc1-3   14-10-10 alex     Y Y y Y 3
+x86_64/unknown/freebsd9.2   gcc 4.2.1    22~rc1-3   14-10-10 alex     Y Y Y Y 3
+x86_64/unknown/freebsd10.0  F-clang 3.3  22~rc1-3   14-10-10 alex     Y Y Y Y 3
 x86_64/unkn./freebsd8.1-gnu gcc 4.4.5    19         12-02-26 alex     Y Y Y Y 3
 x86_64/unknown/linux-gnu    clang 3.3    21         14-01-07 alex     Y Y Y Y 1
+x86_64/unknown/linux-gnu    clang 3.4    22~rc1-3   14-10-11 alex     Y Y Y Y 1
+x86_64/unknown/linux-gnu    gcc 4.4.5    22~rc1-3   14-10-10 alex     Y Y Y Y 1
+x86_64/unknown/linux-gnu    gcc 4.7.2    22~rc1-3   14-10-10 alex     Y Y Y Y 1
 x86_64/unknown/linux-gnu    gcc 4.8.2    21         13-12-29 alex     Y Y Y Y 1
+x86_64/unknown/linux-gnu    gcc 4.9.1    22~rc1-3   14-10-10 alex     Y Y Y Y 1
 x86_64/unknown/linux-gnu    nwcc 0.8.2   21         13-12-01 goetz    Y Y Y Y 1
-x86_64/unknown/linux-gnu    Open64       21         13-11-30 goetz    Y Y Y Y 1
-x86_64/unknown/linux-gnu    Sun C 5.12   21         13-11-22 goetz    Y Y Y Y 1
-x86_64/unknown/linux-gnu    tcc 0.9.25   21         13-11-30 goetz    Y Y Y Y 1
+x86_64/unknown/linux-gnu    Open64       21.1       14-03-27 goetz    Y Y Y Y 1
+x86_64/unknown/linux-gnu    Sun C 5.12   21.1       14-03-27 goetz    Y Y Y Y 1
+x86_64/unknown/linux-gnu    tcc 0.9.25   21.1       14-03-27 goetz    Y Y Y Y 1
 x86_64/unknown/openbsd4.7   gcc 3.3.5    20~rc1     12-02-26 alex     Y Y Y Y 3
-x86_64/unknown/openbsd4.8   gcc 4.2.1    21         13-12-28 alex     Y Y Y Y 3
+x86_64/unknown/openbsd4.8   gcc 4.2.1    22~rc1-3   14-10-10 alex     Y Y y Y 3
 x86_64/unknown/openbsd5.1   gcc 4.2.1    21         13-12-28 alex     Y Y Y Y 3
+x86_64/unknown/openbsd5.5   gcc 4.2.1    22~rc1-3   14-10-10 alex     Y Y Y Y 3
 
 
 * Notes

+ 3 - 3
doc/README-AUX.txt

@@ -22,7 +22,7 @@ The following software packages are needed:
  - GNU sed
    Source:
    http://www.rezepte-im-web.de/appleux/sed-3.02.tar.gz
-   ftp://arthur.barton.de/pub/unix/aux/tools/sed-3.02.tar.gz
+   http://arthur.barton.de/pub/unix/aux/tools/sed-3.02.tar.gz
 
    A/UX comes with /bin/sed which isn't supporting all functions needed
    by GNU automake/autoconf.
@@ -34,7 +34,7 @@ The following software packages are needed:
  - libUTIL.a
    Source:
    ftp://ftp.mayn.de/pub/really_old_stuff/apple/apple_unix/Sys_stuff/libUTIL-2.1.tar.gz>
-   ftp://arthur.barton.de/pub/unix/aux/libraries/libUTIL-2.1.tar.gz
+   http://arthur.barton.de/pub/unix/aux/libraries/libUTIL-2.1.tar.gz
 
    This library contains functions that are common on other UNIX
    systems but not on A/UX e.g. memmove(), strerror() and strdup().
@@ -50,7 +50,7 @@ A few hints in case of errors:
    (so 'configure' uses its own shell script) or use a fully functionable one.
    There's at least one binary "out there" causing problems. The one
    of the GNU fileutils works fine:
-   ftp://arthur.barton.de/pub/unix/aux/tools/fileutils-4.0.tar.gz
+   http://arthur.barton.de/pub/unix/aux/tools/fileutils-4.0.tar.gz
 
  - The precompiled binary of the old 'bash' shouldn't be installed within
    /bin (better do this in /usr/local/bin) because 'configure' would

+ 1 - 1
doc/Services.txt

@@ -123,7 +123,7 @@ Please note that versions up to and including 5.1.3 contain a bug that
 sometimes causes IRC Services to hang on startup. There are two workarounds:
  a) send the services process a HUP signal ("killall -HUP ircservices")
  b) apply this patch to the IRC Services source tree:
-    <ftp://ngircd.barton.de/ngircd/contrib/IRCServices513-FlushBuffer.patch>
+    <http://arthur.barton.de/pub/ngircd/contrib/IRCServices513-FlushBuffer.patch>
 
 At least the following settings have to be tweaked, in addition to all the
 settings marked as required by IRC Services:

+ 8 - 2
doc/sample-ngircd.conf.tmpl

@@ -54,6 +54,12 @@
 	# A simple Phrase (<256 chars) if you don't want to use a motd file.
 	;MotdPhrase = "Hello world!"
 
+	# The name of the IRC network to which this server belongs. This name
+	# is optional, should only contain ASCII characters, and can't contain
+	# spaces. It is only used to inform clients. The default is empty,
+	# so no network name is announced to clients.
+	;Network = aIRCnetwork
+
 	# Global password for all users needed to connect to the server.
 	# (Default: not set)
 	;Password = abc
@@ -166,8 +172,8 @@
 	;ConnectIPv4 = yes
 
 	# Default user mode(s) to set on new local clients. Please note that
-	# only modes can be set that the client could set on itself, you can't
-	# set "a" (away) or "o" (IRC Op), for example! Default: none.
+	# only modes can be set that the client could set using regular MODE
+	# commands, you can't set "a" (away) for example! Default: none.
 	;DefaultUserModes = i
 
 	# Do DNS lookups when a client connects to the server.

+ 30 - 23
man/ngircd.conf.5.tmpl

@@ -1,7 +1,7 @@
 .\"
 .\" ngircd.conf(5) manual page template
 .\"
-.TH ngircd.conf 5 "Oct 2013" ngIRCd "ngIRCd Manual"
+.TH ngircd.conf 5 "Jan 2014" ngIRCd "ngIRCd Manual"
 .SH NAME
 ngircd.conf \- configuration file of ngIRCd
 .SH SYNOPSIS
@@ -60,7 +60,7 @@ The main configuration of the server is stored in the
 section, like the server name, administrative information and the ports on
 which the server should be listening. The variables in this section have to be
 adjusted to the local requirements most of the time, whereas all the variables
-in the other sections can be left on there defaults very often.
+in the other sections can be left on their defaults very often.
 .PP
 Options in the
 .I [Limits]
@@ -82,12 +82,13 @@ sections. And
 blocks are used to configure pre-defined ("persistent") IRC channels.
 .PP
 There can be more than one [Operator], [Server] and [Channel] section per
-configuration file (one for each operator, server, and channel), but only
-exactly one [Global], one [Limits], one [Options], and one [SSL] section.
+configuration file, one for each operator, server, and channel. [Global],
+[Limits], [Options], and [SSL] sections can occure multiple times, too, but
+each variable overwrites itself, only the last assignment is relevant.
 .SH [GLOBAL]
 The
 .I [Global]
-section of this file is used to define the main configuration of the server,
+section is used to define the main configuration of the server,
 like the server name and the ports on which the server should be listening.
 These settings depend on your personal preferences, so you should make sure
 that they correspond to your installation and setup!
@@ -126,6 +127,12 @@ configuration file.
 \fBMotdPhrase\fR (string)
 A simple Phrase (<256 chars) if you don't want to use a MOTD file.
 .TP
+\fBNetwork\fR (string)
+The name of the IRC network to which this server belongs. This name is
+optional, should only contain ASCII characters, and can't contain spaces.
+It is only used to inform clients. The default is empty, so no network
+name is announced to clients.
+.TP
 \fBPassword\fR (string)
 Global password for all users needed to connect to the server. The default is
 empty, so no password is required. Please note: This feature is not available
@@ -133,16 +140,16 @@ if ngIRCd is using PAM!
 .TP
 \fBPidFile\fR (string)
 This tells ngIRCd to write its current process ID to a file. Note that the
-"PID file" is written AFTER chroot and switching the user ID, e.g. the directory
-the file resides in must be writable by the ngIRCd user and exist in the
-chroot directory (if configured, see above).
+"PID file" is written AFTER chroot and switching the user ID, therefore the
+directory the file resides in must be writable by the ngIRCd user and exist
+in the chroot directory (if configured, see above).
 .TP
 \fBPorts\fR (list of numbers)
-Ports on which the server should listen for unencrypted connections. There
-may be more than one port, separated with commas (","). Default: 6667.
+Port number(s) on which the server should listen for unencrypted connections.
+There may be more than one port, separated with commas (","). Default: 6667.
 .TP
 \fBServerGID\fR (string or number)
-Group ID under which the ngIRCd should run; you can use the name of the
+Group ID under which the ngIRCd daemon should run; you can use the name of the
 group or the numerical ID.
 .PP
 .RS
@@ -152,8 +159,8 @@ For this to work the server must have been started with root privileges!
 .RE
 .TP
 \fBServerUID\fR (string or number)
-User ID under which the server should run; you can use the name of the user
-or the numerical ID.
+User ID under which the ngIRCd daemon should run; you can use the name of the
+user or the numerical ID.
 .PP
 .RS
 .B Attention:
@@ -163,8 +170,8 @@ addition, the configuration and MOTD files must be readable by this user,
 otherwise RESTART and REHASH won't work!
 .RE
 .SH [LIMITS]
-Define some limits and timeouts for this ngIRCd instance. Default values
-should be safe, but it is wise to double-check :-)
+This section is used to define some limits and timeouts for this ngIRCd
+instance. Default values should be safe, but it is wise to double-check :-)
 .TP
 \fBConnectRetry\fR (number)
 The server tries every <ConnectRetry> seconds to establish a link to not yet
@@ -206,8 +213,8 @@ If a client fails to answer a PING with a PONG within <PongTimeout>
 seconds, it will be disconnected by the server. Default: 20.
 .SH [OPTIONS]
 Optional features and configuration options to further tweak the behavior of
-ngIRCd. If you want to get started quickly, you most probably don't have to
-make changes here -- they are all optional.
+ngIRCd are configured in this section. If you want to get started quickly, you
+most probably don't have to make changes here -- they are all optional.
 .TP
 \fBAllowedChannelTypes\fR (string)
 List of allowed channel types (channel prefixes) for newly created channels
@@ -216,9 +223,9 @@ Set this variable to the empty string to disallow creation of new channels
 by local clients at all. Default: #&+
 .TP
 \fBAllowRemoteOper\fR (boolean)
-Are IRC operators connected to remote servers allowed to control this server,
-e.g. are they allowed to use administrative commands like CONNECT, DIE,
-SQUIT, ... that affect this server? Default: no.
+If this option is active, IRC operators connected to remote servers are allowed
+to control this local server using administrative commands, for example like
+CONNECT, DIE, SQUIT etc. Default: no.
 .TP
 \fBChrootDir\fR (string)
 A directory to chroot in when everything is initialized. It doesn't need
@@ -260,8 +267,8 @@ Default: yes.
 .TP
 \fBDefaultUserModes\fR (string)
 Default user mode(s) to set on new local clients. Please note that only modes
-can be set that the client could set on itself, you can't set "a" (away) or
-"o" (IRC Op), for example!
+can be set that the client could set using regular MODE commands, you can't
+set "a" (away) for example!
 Default: none.
 .TP
 \fBDNS\fR (boolean)
@@ -277,11 +284,11 @@ Users identified using IDENT are registered without the "~" character
 prepended to their user name.
 Default: yes.
 .TP
-.TP
 \fBIncludeDir\fR (string)
 Directory containing configuration snippets (*.conf), that should be read in
 after parsing the current configuration file.
 Default: none.
+.TP
 \fBMorePrivacy\fR (boolean)
 This will cause ngIRCd to censor user idle time, logon time as well as the
 part/quit messages (that are sometimes used to inform everyone about which

+ 0 - 3
src/config.h.in

@@ -333,9 +333,6 @@
 /* Define to 1 if the C compiler supports function prototypes. */
 #undef PROTOTYPES
 
-/* Define as the return type of signal handlers (`int' or `void'). */
-#undef RETSIGTYPE
-
 /* Define if IRC sniffer should be enabled */
 #undef SNIFFER
 

+ 2 - 0
src/ipaddr/ng_ipaddr.h

@@ -4,6 +4,7 @@
 
 #ifndef NG_IPADDR_HDR
 #define NG_IPADDR_HDR
+
 #include "portab.h"
 
 /**
@@ -12,6 +13,7 @@
  */
 
 #include <assert.h>
+#include <string.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 

+ 11 - 8
src/ngircd/array.c

@@ -14,16 +14,19 @@
  * Functions to dynamically allocate arrays.
  */
 
+/* Additionan debug messages related to array handling: 0=off / 1=on */
+#define DEBUG_ARRAY 0
+
 #include "array.h"
 
 #include <assert.h>
 #include <stdlib.h>
 #include <string.h>
+#include <unistd.h>
 
-#include "log.h"
-
-/* Enable more Debug messages in alloc / append / memmove code. */
-/* #define DEBUG_ARRAY */
+#if DEBUG_ARRAY
+# include "log.h"
+#endif
 
 #define array_UNUSABLE(x)	( !(x)->mem )
 
@@ -64,7 +67,7 @@ array_alloc(array * a, size_t size, size_t pos)
 		return NULL;
 
 	if (a->allocated < alloc) {
-#ifdef DEBUG_ARRAY
+#if DEBUG_ARRAY
 		Log(LOG_DEBUG, "array_alloc(): changing size from %u to %u bytes.",
 		    a->allocated, alloc);
 #endif
@@ -165,7 +168,7 @@ array_catb(array * dest, const char *src, size_t len)
 
 	assert(ptr != NULL);
 
-#ifdef DEBUG_ARRAY
+#if DEBUG_ARRAY
 	Log(LOG_DEBUG,
 	    "array_catb(): appending %u bytes to array (now %u bytes in array).",
 	    len, tmp);
@@ -245,7 +248,7 @@ void
 array_free(array * a)
 {
 	assert(a != NULL);
-#ifdef DEBUG_ARRAY
+#if DEBUG_ARRAY
 	Log(LOG_DEBUG,
 	    "array_free(): %u bytes free'd (%u bytes still used at time of free()).",
 	    a->allocated, a->used);
@@ -311,7 +314,7 @@ array_moveleft(array * a, size_t membersize, size_t pos)
 	if (!bytepos)
 		return;	/* nothing to do */
 
-#ifdef DEBUG_ARRAY
+#if DEBUG_ARRAY
 	Log(LOG_DEBUG,
 	    "array_moveleft(): %u bytes used in array, starting at position %u.",
 	    a->used, bytepos);

+ 2 - 11
src/ngircd/channel.c

@@ -1,6 +1,6 @@
 /*
  * ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2013 Alexander Barton (alex@barton.de) and Contributors.
+ * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors.
  *
  * 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
@@ -18,41 +18,32 @@
  * Channel management
  */
 
-#include "imp.h"
 #include <assert.h>
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
 #include <stdio.h>
 #include <strings.h>
+#include <time.h>
 
-#include "defines.h"
 #include "conn-func.h"
 
-#include "exp.h"
 #include "channel.h"
 
-#include "imp.h"
 #include "irc-write.h"
 #include "conf.h"
 #include "hash.h"
-#include "lists.h"
 #include "log.h"
 #include "messages.h"
 #include "match.h"
 
-#include "exp.h"
-
-
 #define REMOVE_PART 0
 #define REMOVE_QUIT 1
 #define REMOVE_KICK 2
 
-
 static CHANNEL *My_Channels;
 static CL2CHAN *My_Cl2Chan;
 
-
 static CL2CHAN *Get_Cl2Chan PARAMS(( CHANNEL *Chan, CLIENT *Client ));
 static CL2CHAN *Add_Client PARAMS(( CHANNEL *Chan, CLIENT *Client ));
 static bool Remove_Client PARAMS(( int Type, CHANNEL *Chan, CLIENT *Client, CLIENT *Origin, const char *Reason, bool InformServer ));

+ 1 - 7
src/ngircd/class.c

@@ -16,19 +16,13 @@
  * User class management.
  */
 
-#include "imp.h"
 #include <assert.h>
+#include <stdio.h>
 #include <string.h>
 
-#include "defines.h"
-#include "array.h"
 #include "conn.h"
-#include "client.h"
 #include "lists.h"
-#include "match.h"
-#include "stdio.h"
 
-#include "exp.h"
 #include "class.h"
 
 struct list_head My_Classes[CLASS_COUNT];

+ 1 - 5
src/ngircd/client-cap.c

@@ -1,6 +1,6 @@
 /*
  * ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors.
+ * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors.
  *
  * 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
@@ -18,15 +18,11 @@
  * Functions to deal with IRC Capabilities
  */
 
-#include "imp.h"
 #include <assert.h>
 
-#include "defines.h"
 #include "conn.h"
-#include "client.h"
 #include "log.h"
 
-#include "exp.h"
 #include "client-cap.h"
 
 GLOBAL int

+ 4 - 20
src/ngircd/client.c

@@ -1,6 +1,6 @@
 /*
  * ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2013 Alexander Barton (alex@barton.de) and Contributors.
+ * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors.
  *
  * 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
@@ -18,22 +18,16 @@
  * Client management.
  */
 
-#include "imp.h"
 #include <assert.h>
 #include <unistd.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <strings.h>
+#include <time.h>
 #include <netdb.h>