Commits


ngIRCd release 13~rc1


Fix double minus signs in manual pages This patch fixes the following lintian(1) warning: "Manual page seems to contain a hyphen where a minus sign was intended. '-' chars are interpreted as hyphens (U+2010) by groff, not as minus signs (U+002D). Since options to programs use minus signs (U+002D), this means for example in UTF-8 locales that you cannot cut&paste options, nor search for them easily. '-' must be escaped ('\-') to be interpreted as minus."


Debian package ("make deb"): fix some lintian(1) warnings


Change formatting of some log messages - Fix formatting of some log messages, mostly punctuation. - cb_Connect_to_Server(): don't use string concatenation, because it is not supported by pre-ANSI C compilers ...


Fix pem_passwd_cb(): unused variable "rwflag" (OpenSSL) This patch fixes the following warning of GCC (version 4.3.2) in function pem_passwd_cb() when compiling with OpenSSL support and without debug code: conn-ssl.c: In function 'pem_passwd_cb': conn-ssl.c:122: warning: unused parameter 'rwflag'


New configuration option "NoIdent" to disable IDENT lookups The new configuration option "NoIdent" in ngircd.conf can be used to disable IDENT lookups even when the ngIRCd daemon is compiled with IDENT lookups enabled.


Implement the IRC command "SERVLIST" The IRC command "SERVLIST" lists all the registered services, see RFC 2811, section 3.5.1. The syntax is "SERVLIST [<mask> [<type>]]". The parameter <type> is not used by ngIRCd at the moment, all registered services are of type 0 (which is the default when omitted).


Updated NEWS and ChangeLog, using NEWS for news only :-)


Create local &SERVER channel and log server messages to it ngIRCd now creates a server-local channel &SERVER with channel modes +mnPt (moderated, no messages from outside the channel, persistent and with the topic locked) and logs all the messages to it that a user with mode +s ("server messages") receives. If an IRC operator withdraws the +P ("persistent") mode and the &SERVER channel is freed because of no members, nothing special happens. The channel can be recerated any time later and ngIRCd would begin logging to it again.


Implement local channels (prefix "&") This patch implements server-local channels, prefix "&", that are only visible to users of the same local server and not in the network. Patch written by Scott Perry (2008-06-04), see: - http://arthur.barton.de/cgi-bin/bugzilla/show_bug.cgi?id=87 - http://arthur.barton.de/cgi-bin/bugzilla/attachment.cgi?id=24&action=view


Added some missing files of GIT tree to distribution archives The following bits and bytes were not included in distribution archives: - contrib: ngindent, ngircd.sh - contrib/Debian: ngircd.postinst - contrib/MacOSX: preinstall.sh, postinstall.sh - doc/src: Doxyfile, header.inc.html, footer.inc.html, ngircd-doc.css - src/portab: splint.h


Test suite: start two servers and test server-server links I changed the test suite to start two test servers (on port 6789 and 6790), so server-server links can be tested as well for which I included the new test script "server-link-test.e". In addition the documentation of the test suite (src/testsuite/README) has been updated and is more complete now.


Add conf-ssl.h to "noinst_HEADERS" conf-ssl.h must be listed in "noinst_HEADERS" so that it becomes included in distribution archives generated by "make dist" and "make distcheck".


Re-add CVE identifiers to ChangeLog. I'm lame. My last commit removed all the CVE numbers recently added in commit 598df0758 to the ChangeLog ... shame on me! See all the CVE entries of ngIRCd at: <http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=ngircd>


Updated NEWS and ChangeLog to include 0.12.1 and the development version


Connection counter: count outgoing connections as well. This patch lets ngIRCd count outgoing connections as well as incoming connections (up to now only outgoing connections have been counted). This change is required because the Conn_Close() function doesn't know whether it closes an outgoing connection or not and therefore would decrement the counter below zero when an outgoing connection existed -- which would trigger an assert() call ... Please note that this patch changes the (so far undocumented but now fixed) behaviour of the "MaxConnections" configuration option to account the sum of the in- and outbound connections!


Ignore numeric 020 ("please wait while we process your coinnection") Some servers send the numeric 020 ("please wait while we process your connection") when a client connects. This is no useful information for this server, so we simply ignore it :-)


GNUTLS: define new API types when installed library is too old This patch enables ngIRCd to use GNUTLS in really old versions, tested with version 1.0.16, that don't define the "new" data types ending in xxx_t. LIBGNUTLS_VERSION_MAJOR isn't defined there as well, so we use it to test if we must define the new types on our own.


Console log: output timestamp (seconds since start) for resolver, too


Console log: output timestamp (seconds since start of daemon)


conn-ssl.c: work around gnutls API problems on 64 bit platforms Alexander Barton reported a compiler warning on 64-bit platforms: cc1: warnings being treated as errors conn-ssl.c: In function 'ConnSSL_Init_SSL': conn-ssl.c:403: error: cast to pointer from integer of different size Unfortunately, I couldn't find a real solution; the GNUTLS API expects 'gnutls_transport_ptr_t' (which is void*), but the default push/pull functions (send/recv) expect an int. The only alternative solution is to pass in an address to the file descriptor, then add send/recv wrappers that expect a pointer. What a mess[tm].


GIT: don't ignore cvs-version.{h|new}, because it isn't used any more.


Fix ForwardLookup(): "ISO C90 forbids specifying subobject to initialize" This patch fixes the following warning of GCC (version 4.3.2) in function ForwardLookup(): resolve.c: In function 'ForwardLookup': resolve.c:282: warning: ISO C90 forbids specifying subobject to initialize resolve.c:284: warning: ISO C90 forbids specifying subobject to initialize resolve.c:285: warning: ISO C90 forbids specifying subobject to initialize


Fix ConnSSL_LogCertInfo(): unused variable "cred" (GNUTLS) This patch fixes the following warning of GCC (version 4.3.2) in function ConnSSL_LogCertInfo() when compiling with GNUTLS support: conn-ssl.c: In function 'ConnSSL_LogCertInfo': conn-ssl.c:542: warning: unused variable 'cred'


Debian: build ngircd-full with support for GNU TLS and IPv6.


Debian: make sure that /var/run/ircd is owned by user "irc".


GIT: Ignore Debian-related generated files. Added files that become generated while building Debian GNU/Linux packages of ngIRCd to the .gitignore lists.


Updated config.{guess|sub} to version 2008-01-16.


Enable KICK to be handled from remote servers and from services.


Respect RFC 1459 compatibility mode when announcing channels (no NJOIN).


Document the server flag "S": SERVICE command is supported.


Announce IRC services in the network. This patch - introduces a new server flag "S" to indicate that the server can handle the SERVICE command (on server links), - implements the IRC command "SERVICE" for server-server links, - uses the "SERVICE" command to announce IRC services when a new server connects to it, - and fixes the Send_Message() function to let it send messages to services using a "target mask". If the remote server doesn't indicate that it can handle the "SERVICE" command (it has not set the "S" flag), services are announced as regular users as before.


Change Introduce_Client() to set the correct client type (user/service).


Convert SQUERY to PRIVMSG on RFC 1459 compliant links.


Don't allow SQUERY to send to "target masks" and channels; only services!


Fix PRIVMSG/NOTICE handler (II): keep command when forwarding to channels. - new function ngt_UpperStr(). - change Channel_Write() to take command name and error flag. - remove now unneeded function Channel_Notice().


New function ngt_UpperStr()


Fix PRIVMSG/NOTICE handler Send_Message(): don't forward NOTICE as PRIVMSG.


Make real use of the CLIENT_SERVICE client type. This patch enables ngIRCd to handle IRC services as real services, and not as "fake users": - Set correct client type CLIENT_SERVICE for services, - Change log messages to include correct client type, - PRIVMSG: allow users to send messages to services, - Send services nick names to other servers (as users). Please note that this patch doesn't announce services as services in the network, but as regular users (as before). Only the local server knows of services as services (see LUSERS command, for example). It is up to one of the next patches to fix this and to introduce the SERVICE command in server to server communication. The propagation of services as regular users between servers doesn't limit the functionality of the IRC services and will be the fallback for servers that don't support "real" services propagation in the future.


Allow IRC services to change their nick names.


New function Client_TypeText() and Destroy_UserOrService(). Client_TypeText() is used to get correct naming ("Client", "Service", ...) for log messages, and Destroy_UserOrService() is used to correctly destroy user and services clients.


Send_Message(): really enforce target client type.


sample-ngircd.conf & ngircd.conf(5): document "ServiceMask" option.


Allow ngIRCd to detect services connected to an "virtual services server". Introduce a new configuration variable "ServiceMask" in SERVER blocks to define a mask matching nick names that should be treated as services. Regular servers don't need this parameter (leave it empty, the default), but you should set it to "*Serv" when connection ircservices, for example. This patch allows ngIRCd to detect services, it doesn't change the functionality: you only get different log messages ;-)


Centralize logging functions in Introduce_Client().


Get rid of INTRO_INFO structure again: we don't need it at all! All the required information is already stored in the CLIENT structure of new new connection, so pass this to Introduce_Client() and don't invent an unneeded new structure ...


Announce_User(): support RFC 1459 compatibility mode.


Introduce_Client(): send MODES in RFC 1459 mode, too.


numeric.c: whitespace fixes ...


Server links: detect RFC 1459 mode direct after SERVER command This patch allows ngIRCd to detect right after receiving the SERVER command from the peer whether the RFC 1459 compatibility mode must be used or not. And it fixes the announcement of users during establishing new server links with such peers.


Send and handle NICK+USER commands for user registration (RFC 1459). This patch enables ngIRCd to deal with NICK and USER commands following RFC 1459 to register new clients, and to send these commands instead of one full NICK command as specified in RFC 2813 on connections that are in RFC 1459 compatibility mode. Can be useful for e. g. IRC services that simulate a RFC 1459 server.


New function IRC_WriteStrServersPrefixFlag_CB() using a callback function.


New function Introduce_Client() to announce new local and remote users.


New connection option CONN_RFC1459. This new connection option CONN_RFC1459 indicates that the peer on this link only supports the IRC protocol as defined in RFC 1459 and that the compatibility mode (e. g. for outgoing commands like NICK) should be used.


New global function Conn_SetOption().


USER: servers and services can alter user information after registration. This is required to do RFC 1459 style user registration on server links, and is used by some services packages, too. See RFC 1459 section 4.1.3.


NICK: allow servers and services to use RFC 1459 syntax (2 parameters). This patch allows servers and services to call the NICK command using the syntax defined in RFC 1459 to register new users, with only two parameters. See section 4.1.2. Useful for some services packages, which emulate this protocol.


Whitespace fixes: remove trailing tabulator characters.


conn-ssl.c: don't append a newline to ConnSSL_GetCipherInfo


TLS/SSL support: code changes. This adds the required code to enable ssl/tls support during compile and run time, respectively.


TLS/SSL support: documentation.


TLS/SSL support: core files. Contains support for both OpenSSL and GNU TLS. Certificate Authentification is not yet supported.


Fix handling of MaxConnections option Config option claimed to be 'number of connections' but in reality this was treated as 'largest file descriptor allowed'. This also fixes another bug in New_connection, where the ng_ipaddr_tostr_r error path was missing a return statement.


Include "mcheck.h" when using mtrace().


SECURITY: Fixed a message handling bug which could crash the daemon. Some message targets could lead to a NULL pointer dereference and therefore could crash the daemon (denial of service). (cherry picked from commit e493ad2d30ff80bca2556cde2212e367cb006517)


Enable GNU libc "memory tracing" when compiled with debug code. This patch lets ngIRCd activate "memory tracing" of the GNU libc when compiled with debug code (configure: --enable-debug) and the functionality is available on the system. (http://www.gnu.org/software/libc/manual/html_node/Allocation-Debugging.html)


New make target: "osxpkg" to create an Mac OS X installer package. This patch adds a new make target, "osxpkg", to the main Makefile which gereates a Apple Mac OS X installer package of ngIRCd. The packagemaker(1) project bundle is stored in contrib/MacOSX/ngIRCd.pmdoc.


Clean up Mac OS X Xcode environment. - Remove obsolete contrib/MacOSX/cvs-version.h - Change SDK to 10.4


doc/Platforms.txt: added Debian GNU/Hurd, "i686/unknown/gnu0.3"


Added CVE identifiers to ChangeLog. see http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=ngircd


Remove de.barton.ngircd.plist on "make clean", its a generated file.


Make ngIRCd compile and run on NeXTSTEP 3.3 and OPENSTEP 4.2 by Steven D. Blackford <kb7sqi@aol.com>: "I wanted to let you know that I've done a quick port of ngircd-0.12.0 for NEXTSTEP3.3/OPENSTEP4.2. There wasn't a lot of changes required to get it to compile clean, but I did make the necessary changes so that I didn't have to use -posix flag. The NeXT has a pretty buggy POSIX implementation so I always try to work around it. :-) Anway, here's the changes required to get it to compile."


Merge branch 'master' of git://ngircd.barton.de/ngircd


Install /Library/LaunchDaemons/de.barton.ngircd.plist into $(DESTDIR)


FAQ: add entry about /OPER and OperCanUseMode


GIT: added src/testsuite/message-test to ignore list.


Fix Validate_Args(): unused parameter "Idx" and "Req" This patch fixes the following error message of GCC (tested with version 4.3.0) when not compiling ngIRCd in "strict RFC" mode: parse.c: In function "Validate_Args": parse.c:341: error: unused parameter "Idx" parse.c:341: error: unused parameter "Req"


message-test: Disable two tests using "localhost" as host name Some operating systems, for example OpenBSD and OpenSolaris, use "localhost.<domain>" instead of just "localhost" for 127.0.0.1, so the "message-test" using "localhost" failed on such systems. Don't have an idee how to make this work on all platforms ... :-/ So I simply disabled the two affected tests to make the testsuite run on OpenBSD and OpenSolaris again.


Fix Send_Message(): "lastCurrentTarget" may be used uninitialized This patch fixes the following warning of GCC 4.3.1: irc.c: In function "Send_Message": irc.c:315: error: "lastCurrentTarget" may be used uninitialized in this function


Fix t_diff(): declaration of 'div' shadows a global declaration This patch fixes the following GCC warning message: irc-info.c:422: warning: declaration of 'div' shadows a global declaration


Cosmetic whitespace and line length fixes, mostly in Send_Message().


Added "message-test" to Makefile, so it is distrubuted and run.


Cleaned up PRIVMSG and NOTICE patches.


Cumulative Message Patch


Don't allow empty channel names ("#") in strict RFC mode. This closes Bug #88. Patch proposed by Eric <egrunow@ucsd.edu>, but with wrong length comparision: please note that Channel_IsValidName() checks the name INCLUDING the prefix, so the test must be length<=1!


Return 461 (syntax error) on "JOIN :" and "PART :" Up to this patch ngIRCd did not return any result (GIT master) or a badly formated 403 (":irc.server 403 test :No such channel" [note the two spaces!], branch-0-12-x) on the above commands, this patch changes the behaviour to reflect ircd 2.11 which returns 461 in both cases.


Channel_Join(): Code cleanup.


Added more supported and tested platforms to doc/Platforms.txt.


Fixes to misc-test: accept "localhost.<domain>" as well as "localhost" Some operating systems, for example OpenBSD, use "localhost.<domain>" instead of "localhost", so the "who-test" expecting "localhost" failed on such systems. (Please see 149859c5fecc..., which fixes this for the who-test already)


Revert "dpkg-shlibdeps: warning: dependency on libnsl.so.1 [..]" - Solaris needs both -lsocket _and_ -lnsl - A/UX needs -lUTIL "... which totally sucks because we'd link libnsl on Linux, too (where its not needed at all). So, we have to figure out how to tell autocrap to NOT put -lnsl there unless it exports a symbol we need. This also means that [...] has to be reverted (or done properly)." -- Florian Westphal @ #ngircd This reverts commit 2b14234abc252383679bae2d23861b773dc9713e.


dpkg-shlibdeps: warning: dependency on libnsl.so.1 [..] (they use none of its symbols). So, rip out that AC_CHECK_LIB cruft, pointed out by Christoph Biedl. If there are platforms that really need that we should only link when we actually use these libraries.


Merge autogen.sh changes Merge commit 'alex/master'


autogen.sh: Don't set AUTO{CONF|MAKE}_VERSION and WANT_AUTO{CONF|MAKE} On some systems (for example Gentoo Linux, FreeBSD, and OpenBSD), these variables are used to select which version of GNU automake and autoconf to use, but we shouldn't depend on a specific version -- instead we should use the "system default". So probably it is up to the user to set these variables accordingly to set up some wrapper scripts of his operating system distribution.


Translated comments from German to English


autogen.sh: correctly test for and export ACLOCAL variable


Fix GCC warnings for possibly uninitialized variables in IRC_JOIN This patch fixes the following two warnings of GCC 4.2.4: irc-channel.c: In function "IRC_JOIN": irc-channel.c:185: warning: "lastkey" may be used uninitialized in this function irc-channel.c:185: warning: "lastchan" may be used uninitialized in this function


GIT: added src/src/config.h.in~ to ignore list.


Allow mixed line terminations (CR+LF/CR/LF) in non-RFC-compliant mode Up to now ngIRCd accepted CR+LF as well as a single CR or LF in "non RFC compliant" mode (the default). But ngIRCd became confused when it received data containing mixed line endings (e. g. "111\r222\n333\r\n"). This patch enables ngIRCd (in "non RFC compliant" mode) to detect CR+LF, CR, and LF as equally good line termination sequences and to always end the command after the first one detected. Some clients (for exmaple Trilian) are that ... broken to send such mixed line terminations ... First patch proposed by Scott Perry <scperry@ucsd.edu>, Thanks to Ali Shemiran <ashemira@ucsd.edu> for testing!


Don't allow stray \r or \n in command parameters If ngircd receives an input line like "COMMAND arg\nIRRELEVANT\r\n", "arg\nIRRELEVANT" is passed as an argument to COMMAND. This can lead to output like: :ngircd.test.server 322 nick #chan 1 : topicwithprecedingnewline :ngircd.test.server 322 nick #nxtchan 1 : [..] Worse, this allows clients to piggyback irc commands, e.g. "TOPIC #a :test\n:fake!~a@nonexistant JOIN :#a\r\n", which causes the client to receive a JOIN command during /LIST output. Bug reported by Scott Perry, first patch by Florian Westphal.


GIT: ignore de.barton.ngircd.plist, it is a generated file.


ngircd.init: use LSB logging functions, if available.


--configtest: return non-zero exit code if there are errors


Handle_Buffer(): code cleanup. Both callers ignore the return code of this function, so get rid of it, but make sure that the client is disconnected on errors.


Conn_Handler(): cleanup code, add/translate comments. In addition, the "timeout" variable has been removed because it is unnecessary today: Handle_Buffer() handles all the data it can handle, and io_dispatch() returns immediately when new data is available. So we don't have to double-check but better sleep. Pointed out by Florian.


Use strtok_r instead of strchr in IRC_JOIN. This patch does significant cleanup on the join code by using strtok_r instead of mangling strchr to parse channel names and keys in parallel when a JOIN command contains a list of channels and keys. Also adds an strtok_r implementation to libportab.


Mac OS X LaunchDaemon script: log messages to /Library/Logs/ngIRCd.log


configure.in: don't check for "obvious" standard functions. Drop checks for the following C standard functions: malloc, memmove, memset, realloc, strchr, strcspn, strerror, strstr. Rationale: These are standard K&R/C89 functions, no point in ''making sure they exist''.


Reset client idle time on NICK, JOIN, and PART


Remove ListenIPv4/ListenIPv6 options. Use "Listen = list,of,addresses" instead.


make Listen parameter a comma-seperated list of addresses. this also obsoletes ListenIPv4 and ListenIPv6 options. If Listen is unset, it is treated as Listen="::,0.0.0.0". Note: ListenIPv4 and ListenIPv6 options are still recognized, but ngircd will print a warning if they are used in the config file. Also, some plattforms require that ai_socktype is set in the getaddrinfo() hints structure.


Add option aliases -V (for --version) and -h (for --help). This patch adds -h and -V short options (to complement the usage). It is based on a patch attached to Debian bug #466063, see <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=466063>. Idea by Jari Aalto <jari.aalto@cante.net>, patch adapted by Alexander Barton <alex@barton.de>.


Add FAQ entry for 'Where is the log file'?


Add tests for MOTD, VERSION, TIME, USERHOST The misc-test.e file is also somewhat reorganized and commented here. Patch from Brandon Beresini, Bryan Caldwell and Dana Dahlstrom.


Updated list of authors (AUTHORS file)


Update master development branch - use "dev" instead of "HEAD" as "version number", - update ChangeLog and NEWS to reflect the 0.12.0 release.


Merge commit 'aad49bd260494878aed6795c7a897ad1d28c3082'


This patch implements a (maybe) compliant WHOWAS command. It is hard to test this in the test suite because we 1) shouldn't rely on previous tests populating WHOWAS and 2) don't connect a user for more than 30 seconds. Also makes WHOWAS return ERR_NONICKNAMEGIVEN_MSG as implied by RFC.


Update ngIRCd manual pages - Update timestamp, - enhance some phrasing, - and fix "Passive" ([Server]) formatting.


If bind() fails, also print ip address and not just the port number.


GIT: ignore symbolic links to tests in testsuite directory Added symbolic links to new tests (invite-test, join-test, and kick-test) to .gitignore file.


Fixes to who-test: accept "localhost.<domain>" as well as "localhost" Some operating systems, for example OpenBSD, use "localhost.<domain>" instead of "localhost", so the "who-test" expecting "localhost" failed on such systems.


ng_ipaddr.h must include netinet/in.h. compile on FreeBSD 5.4 failed with: ./../ipaddr/ng_ipaddr.h:34: error: field `sin4' has incomplete type Reported and tested by Jefferson S Almeida.


Removed space after # so that Cygwin's version of expect recognizes comments.


Fix secret channel information leak /who on a secret channel that the user is not a member of now returns proper RPL_ENDOFWHO_MSG instead of nothing.


Added Cygwin uid kludge. (verified working)


Anglified and improved comments in channel.c and channel.h [Dana Dahlstrom: repair tab/space conversion in patch]


Implement IRC commands SERVICE, SERVLIST, and SQUERY as dummy functions SERVICE, SERVLIST, and SQUERY are required by RFC 2812 (it states in section 3 that "all commands described in this section MUST be implemented by any server for this protocol." -- So we implement them without (much) actual functionality ...


Add invite-test.e to test suite.


Tests for the INVITE command.


Invite: prefix last argument with colon when necessary.


tests for JOIN and various replies Brandon Beresini sent me a patch yesterday adding tests for JOIN under various circumstances, which I believe he worked on with Bryan Caldwell and Ali Shemiran. I made a few modifications; the result is below.


Allow KICK to handle comma-delimited lists (of channels, nicks). includes test cases. [fw@strlen.de: - move code around to avoid duplication - use const where possible - integrate test case]


Invite: Send RPL_AWAY to client sending the invite if target is away.


Fixes to who-test: accept any ident, escape some '*' flags. This prevents who-test.e from failing when ngircd is performing ident lookups and an ident server is running.


IRC_INVITE: coding style cleanup.


Constify some of Channel_Kick()s arguments.


constify Client_Search() argument.


Allow IRC ops to ignore channel limits when joining Allow IRC ops to ignore any channel limit (bans, invite only etc.) when they want to join a channel.


Handle 1-character messages terminated with CR or LF correctly Code cleanup and fix for Bug #83, "ngIRCd chokes on 1-character messages" in function Handle_Buffer(): the buffer is now correctly cleared when ngIRCd receives 1-character messages terminated with either CR or LF (in violation to RFC 2812, section 2.3 "Messages", 5th paragraph).


On AIX (for example) socklen_t is defined in sys/socket.h On AIX and probably other systems socklen_t is defined in sys/socket.h, so we have to include it here explicitly (tested by Florian).


Always enable modeless channels. Modeless channels (+channels) are described in RFC 2811; so my modifications to 530112b114ffa7d5352c0733790ddf90253f41f9 ('Add support for modeless channels') to disable +channels for --strict-rfc configurations were wrong. This reverts those changes.


Prevent GIT to complain about opless-channel-test link


Add support for modeless channels Add support for modeless channels (+channels). [fw@strlen.de: - integrate test cases - don't support +channels when compiled with --strict-rfc - do not set +o mode for channel creator - force +nt mode when channel is created ]


Updated NEWS and ChangeLog for ngIRCd 0.12.0-pre2.


--configtest: fix missing whitespace at "ConnectIPv4" option.


--enable-ipv6: fix indentation in ./configure --help output.


Merge branch 'master' of git://git.breakpoint.cc/fw/ngircd-fw


Testsuite: remove erroneous ConfUID setting in config file. The config file for ngircds test suite contained obsolete ConfUID/ConfGID settings, causing ngircd to needlesly complain when started as non-root (which is hopefully the _normal_ case...)


IPv6: Add config options to disabe ipv4/ipv6 support. This also enables ipv6-only setups.


Get rid of cvs-version.* and CVSDATE definition. (cherry picked from commit b187fac244f4e14705f882ba7c43eef0238e2830)


Don't include doc/CVS.txt in distribution archive, use doc/GIT.txt now! (cherry picked from commit a8e0eb62e9dce81ca4a5c5911428561b90bf2c6e)


Documentation: get rid of some more references to CVS, switch to GIT. (cherry picked from commit 6e9389b86c906c53a7797b8ced87a19195e16333)


Synchronized branch-0-12-x (ngIRCd 0.12.0-pre1) with master. (cherry picked from commit 4ea29329674ff8ec6d772991a57c146b5d78d2ad)


Report ERR_NOTONCHANNEL when trying to part a channel one is not member of. When trying to part a channel ("PART #channel") the client is not member of the daemon now correctly reports the numeric ERR_NOTONCHANNEL (442) insted of ERR_NOSUCHCHANNEL (403).


Updated NEWS and ChangeLog for upcoming 0.12.0-pre1 release.


Channel_Part(): Code and comment cleanup.


Updated copyright notice to read "2001-2008".


IRC_PART(): code and comment cleanup.


Added make target "testsuite" This make target runs the testsuite located in src/testsuite without running alle the other tests that "make check" would run.


Fixed "xcode" make target (used to build ngIRCd with Mac OS X Xcode)


Channel_Mode: Remove duplicate code. Incidentially, this doesn't even change the generated code...


Channel_Mode: change order of if (set) and if (client) check.


Channel_Mode: Re-indent switch. No functional changes were made.


Channel_Mode: check return type of Invite/Ban Add/Del function


Channel_Mode: unify 'b' and 'I' switch/case handling.


Channel_Mode: Unify Del_Invite and Del_Ban handler


Constify Lists_MakeMask argument and return type.


Channel_Mode: Unify Add_Invite and Add_Ban handler


Enable more compiler warnings when using Xcode.


GIT should ignore user preferences files inside Xcode projects. Added filter for GIT to ignore Xcode user preferences files (*.mode1v3 and *.pbxuser) which are automatically generated inside the project bundle when opened in Xcode.


Updated Xcode project file.


Convert CVS commands to their git equivalents. Also mention that patches should be sent to the mailing list.


Added "portabtest" binary to .gitignore file in src/portabtest/.


Include Mac OS X Xcode project in distribution archives. (Part 2) I forgot to include the new Makefile.am in contrib/MacOSX/ngIRCd.xcodeproj/ ...


Include Mac OS X Xcode project in distribution archives. Oops, it has not been included since ... ages??


Moved .cvsignore files to .gitignore Since we are using GIT starting from now, I converted all the .cvsignore files to .gitignore files.


Fix client.c sparse warnings. client.c:72:6: warning: symbol 'Max_Users' was not declared. Should it be static? client.c:72:21: warning: symbol 'My_Max_Users' was not declared. Should it be static?


io.c: kill select FD_SETSIZE sanity check in io_library_init. We already have way too many.


io.c: fix select FD_SETSIZE check when using epoll as io backend


io.c: try to cut down the number of ifdefs. consolidate backend-specific helpers and add empty statinc inle stubs in the ifndef case to let the compiler remove the functions at compile time.


Do not exit unconditionally if config file cannot be opened ngircd will exit if the config file cannot be opened. While thats okay if ngircd starts up for the first time, it isn't when we are re-reading the config file after a /REHASH or SIGHUP.


Fix #include's: search log.h locally, include string.h. The latter is required because we include conn.h, which includes resolve.h, which includes ng_ipaddr.h, which contains a macro using strlcpy() ...


IPv6 support. all references to struct sockaddr/in_addr have been removed from src/ngircd. libngipaddr (in src/ipaddr/) hides all the gory details. See src/ipaddr/ng_ipaddr.h for API description.


Updated ChangeLog to include 0.11.1.


Fix sending of JOINs between servers. This does hit only operators that join a channel with at least 2 servers active in the net the server the oper connects to sends "channel^Go" to the other servers the other server first searches for the channel and then strips the modes from the channel name he has to do the other way round: first strip and then check the channel name.


Channel_Mode cleanups - better indentation - move answering request into seperate function.


LaunchDaemon plist for Mac OS X/Darwin launchd.


Install a LaunchDaemon script to start/stop ngIRCd on Mac OS X.


Added new test files to Xcode project.


Removed the SQUIT test for now, actually we don't support it yet.


Implemented IRC commands INFO, USERS (dummy), and SUMMON (dummy).


Include flags in RPL_WHOREPLY messages. RPL_WHOREPLY messages generated by IRC_WHO don't include flags (*,@,+) that should appear according to this description: http://www.mishscript.de/reference/rawhelp3.htm#raw352 Other IRC servers do include the flags. Modify who-test.e to expose missing flags, modify ngircd-test.conf to accommodate who-test.e, and fix irc-info.c to correct these problems.


Don't send trailing space in MODE messages Under some circumstances ngIRCd currently issues a channel MODE message with a trailing space after the last parameter, which isn't permitted by the grammar in RFC 2812 section 2.3.1: http://tools.ietf.org/html/rfc2812#section-2.3.1 The following patch modifies mode-test.e to expose this, and modifies irc-mode.c to correct it.


IRC_JOIN cleanups. - put sending of mode and forwarding of JOIN to other clients into seperate function. - put sending of topic/channel names into seperate function. - put access check into seperate function. - translate/remove remaining german comments. - stop if JOIN to a channel in a list (JOIN #a,#,b,#c...) fails (This doesn't change the behaviour: skip-to-next-channel-on-error did never work as intended)


Make IRC_WHO also search username/servername/hostname. Dana Dahlstrom reported that IRC_WHO did not follow RFC 2812, Section 3.6.1. Specifically: - IRC_WHO did not send "G" flag instead if "H" if client was away - did not search username/servername/hostname etc. if argument was not a channel. Fix all of the above and tidy things up a bit. Also add IRC_WHO test script contributed by Dana.


Remove duplicate Channel_FirstChannelOf(). noticed there's a way to make the loop slightly more elegant. [fw@strlen.de: Extra () to silence gcc.]


Make Channel_Part name and reason parameters 'const'.


Updated NEWS to reflect ChangeLog.


Implement RFC 2812 handling of "0" argument to JOIN The students in my software-engineering class are writing IRC clients in Java, and I'm running ngIRCd as a sandbox for them to play in. We noticed ngIRCd doesn't obey the "JOIN 0" command specified in RFC 2812: JOIN 0 ; Leave all currently joined channels. http://tools.ietf.org/html/rfc2812#section-3.2.1 I believe the following patch addresses this. Cheers! [fw@strlen.de: put it into a seperate function]


Don't use Client_Type after command has been processed. This caused a read from already free'd memory, if the processed command (IRC_QUIT) calls Client_Destroy.


Updated NEWS to reflect ChangeLog.


Fix wrong strncpy usage if CVSDATE defined Hello_User() used strncpy with overlapping src/dest. Use memmove instead.


This adds support for sending NOTICEs to a channel. [also see Bug #70 in ngircd bugzilla]. Based on a patch by Fabian Schlager <fabian.schlager@gmail.com>.


[Parser]: Fix minor sparse warnings parse.c:56:9: warning: symbol 'My_Commands' was not declared. Should it be static? parse.c:107:9: warning: symbol 'My_Numerics' was not declared. Should it be static? Also move handling of numerics into a seperate helper function.


Updated ChangeLog to reflect changes in 0.10.x and 0.11.x branches.


Updated Debian changelog [from 0.10.x; 0.11.x]


Document NoDNS configuration option.


IRC_PART could reference invalid memory.


Remove entry about ngircd failing on Linux 2.4: ngircd can now fall back to select. [from 0.11.x]


Updated NEWS and ChangeLog files.


[Resolver]: Use dotted-decimal IP address if hostname is >= 64


io_event_disable: return if event-to-disable is already off


kqueue: check for EV_ERROR in .flags if kevent() returns events, check for EV_ERROR in event flags, too.


Fix format arg: ListenAddress was printed instead of Bind address.


Fix format string in error path: didn't print strerror(errno)


implement '/STAT u' (uptime)


Fix fmt string: int, not long


include <arpa/inet.h> inside tool.h In file included from hash.c:24: ../tool/tool.h:27: warning: `struct in_addr' declared inside parameter list


remove ip-string from Conf_Server struct struct Conf_Server stored the ip address to connect to in dotted-decimal notation; but we only need this for connect() so long-time storage isn't necessary.


document new "Bind" server config option in changelog.


bind ListenAddress for outgoing connections ngircd would always use INADDR_ANY for outgoing connections; which might not be desirable. Added new [Server] option "Bind" to set source ip.


Funktions to handle numerics sent to the server.


Introduce option to configure the maximum nick name lenth in ngircd.conf - New configuration option "MaxNickLength" to specify the allowed maximum length of user nick names. Note: must be unique in an IRC network! - Enhanced the IRC+ protocol to support an enhanced "server handshake" and enable server to recognice numeric 005 (ISUPPORT) and 376 (ENDOFMOTD). See doc/Protocol.txt for details.


Re-added doc/SSL.txt to distribution -- got lost somewhere!?


Fixes the wrong logging output when nested servers are introduced to the network as well as the wrong output of the LINKS command.


Remove some bogus files from project ...


Update Mac OS X Xcode project file for Xcode 3. Allow building of ngIRCd using Xcode 3 without running ./configure.


Adjust test suite to be usable on HP/UX 11.11 :-)


Fix code to compile using K&R C compiler and ansi2kr again.


add tiny note about ngircd using syslog(3) by default.


if ngircd doesn't run chrooted, it tries to chdir to the users working directory (as returned by getpwuid()). Failing to chdir to that directory isn't an error; so log with LOG_INFO and prefix the message with "Notice".


Document NoDNS Option in changelog


New config option NoDNS: disables all DNS queries.


configtest would still print "-1" for MaxConnections, MaxConnectionsIP and MaxJoins if any of those values was set to 0.


Updates NEWS to reflect changes in CVS HEAD


Fixed propagation of channel mode 'P' on server links.


Xcode project: include manual page template files, not generated pages.


Updated Mac OS X project file for Xcode.


fix doc and manpage wrt. MaxConnections, MaxConnectionsIP and MaxJoins values


accoring to comments in the code, MaxConnections, MaxConnectionsIP and MaxJoins options allow setting values < 0 -- this isn't the case. Comments adjusted.


Updated preferred automake version to 1.9. Only set preferences if not already defined by some environment variables.


Made pointer to the mailing list more prominent.


Numeric 317: implemented "signon time" (displayed in WHOIS result).


Updated documentation ("Passive" option, for example).


we now support /WALLOPS


implement /WALLOPS as described in RFC 2812, section 4.7.


SECURITY: Fixed a severe bug in handling JOIN commands, which could cause the server to crash. Thanks to Sebastian Vesper, <net@veoson.net>.


last fix accidentially broke reconnect timer.


Don't connect to a server if a connection to another server within the same group is in progress.


Add new server config option to disable automatic connect. (Tassilo Schweyer)


Updated documentation to include changes of ngIRCd 0.10.2.


fix compile /w gcc 2.95 (reported by Tassilo Schweyer)


Updated config.guess and config.sub.


Add note to INSTALL document.


Updated ChangeLog.


Reworked read and write buffer handling, introduced WRITEBUFFER_SLINK_LEN.


Zip_Flush(): close the connection in all error cases.


array_start() cannot legally return NULL if array_length() > 0 --> use assert().


Make Zip_Flush() more graceful.


there is no need to treat servers differently than clients on the read side.


make needlesly global function Conn_Write static.


remove ZBUFFER constants and increase max buffer size of server links


fix compressed server links


2007 :-)


Updated documentation.


- change return type of Conn_InitListeners to unsigned - remove minor whitespace damage


put parentheses around argument


if we can't bind a socket we now Log the port number, too.


return false instead of NULL in error path


Remove Client_DestroyNow() to keep semantik "every CONNECTON has a CLIENT".


fix broken IO_DEBUG build


io_event_add: return if eventtype is already registered.


add support for predefined-channel configuration of k and l modes


Added "html" directory to CVS ignore list (it is generated by doxygen).


distclean: remove "html" folder.


Updated documentation, refer to all the supported IO APIs.


added "portabtest" binary to list of files to ignore.


Added .cvsignore files to hide generated files from CVS.


array_free(): enable debug code only when DEBUG_ARRAY is #define'd.


New configure option "--without-select"; when usin epoll() IO API include support for select() as well by default and fall back on runtime when needed.


Only "fiddle" with /etc/ngircd in "configure" stage.


Added LSB compliant header.


Fixed typo in #ifdef which tests if this header is already included or not.


Customize manual pages to reflect the actual installation location of files.


register io handler before creating new local client structure


revert to last good revision again 8-/


do not call Conn_Close when io_event_create fails


fix possibe buffer-off-by one


don't call Resolve_Shutdown() when io_event_create fails


Updated ChangeLog/NEWS to reflect release of ngIRCd 0.10.1.


removed errouneous FD_SETSIZE limit when not using select()


add PredefChannelsOnly option to man page


minor cleanup


remove unused function Channel_PCount


moved invite/ban lists to channel structure


fix RPL_LOCALUSERS_MSG (%ld -> %lu)


Log(LOG_DEBUG, .. -> LogDebug()


predefined channels MUST start with '#', but this is not very intuitive, since # is also used as a comment character in ngircd.conf. Thus we prefix the name with '#' if it is missing.


Fixed validation of server names containing digits.


New configuration option "PredefChannelsOnly": if set, make all JOINs to-non existants channel return ERR_BANNEDFROMCHAN_MSG, restricting users to those channels defined in the config file.


Added OpenBSD/ppc to list of tested platforms.


-Whitespace Damage; Client_OperCount(), Client_UnknownCount(), Client_MyServerCount() return unsigned long


channel maxusers now unsigned long


add const qualifier to Hash() and Matche() Arguments


Client_IsValidNick: no need to strcpy.


Channel_Join was severely broken.


Update info text of local server after re-reading configuration.


Removed an unused variable -- but where did it come from!? Strange ...


add test for strcspn.


cleaned up Channel_IsValidName (now uses strcspn())


Changed Numerics 265 and 266 to follow ircd 2.11.x "standards".


Allow PASS syntax defined in RFC 1459 for server links, too. Removed client status CLIENT_GOTPASSSERVER.


Enhanced ISUPPORT message (numeric 005).


Updated files from ngIRCd 0.10.0.


array_get: no need to multiply again. remove unneeded checks. remove array_free_wipe().


io_close_poll()s closing brace mysteriously disappeared... fixed.


Added support for the /dev/poll i/o interface.


simplify io_library_init*


add support for the poll() interface


cleanup


fix embarassing fileptr leak


Updated autoconf helper scripts to version as of 2006-07-02.


only test for stack smashing protector if we are using gcc; use -fstack-protector-all for the test to make sure the guard variable is added.


Updated documentation.


fix gcc 4.1 -fstack-protector detection.


s/Log(LOG_DEBUG/LogDebug(/ , translated comments, etc.


-whitespace damage


simplify Resolve_Read().


Updated platform list once more ...


Updated platform list.


if compiling without -DDEBUG, make LogDebug 'static inline' so gcc optimizes it away.


check if compiler supports inline keyword.


Added support for Solaris 11.


Synchronized documentation with branch-0-10-x ...


Updated debian changelog.


Don't assert() when a pre-defined channel has no topic.


Flag the format parameter of LogDebug() as "unused" when not compiling with debug code to avoid gcc warnings. Added some documentation comments.


Removed unused variable "ret" when using the select() API.


Removed (theoretically) division by zero; reformated some code.


Validate "ServerName" variable.


Updated documentation.


Allow DIE to send a message to all locally connected clients. Closes bug #48.


"Enhanced" debug message for Handle_Write(), only print when data in buffer.


Output some debug messages only if DEBUG_ZIP is #define'd.


Don't include conn.h, conn-func.h is enough.


Updated CVS URLs; enhanced documentation a little bit.


Updated some patch names on Arthur.


Updated copyright notice ;-)


Updated autoconf helper scripts.


Added ngindent.


remove fd from io_event structure


ALIGN_XXX( v ) macros now leave v alone if it was already aligned.


Sorted channel modes alphabetically.


Detect the Avahi "howl-compatibility" as well as Howl itself.


The third parameter of bind() is of type "socklen_t", not "int".


Use some more specific data types (e. g. pid_t vs. int), make "SPLint" happy :-)


make splint complain less...


disabled most (rather annoying) debug messages using DEBUG_ARRAY / DEBUG_IO defines


Removed kqueue bug fix (never released), rephrased some internal changes, and added "time shift" bug fix.


Handle time shifts backwards gracefully.


kqueue now tested on NetBSD3.0, FreeBSD6 and Darwin7.9.0


kqueue fix.


kqueue support was completely broken; seemed to work on FreeBSD just because of sheer luck.


minor cleanup, removed unneeded check in safemult_sizet


Send invite and ban lists only once and not repeatedly for every channel.


Fix Connection Pool resizing.


Client_GetFromConn() removed and replaced with new function Conn_GetClient()


changes some comments, minor cleanup


Fix up ngt_TrimStr() once more ... :-/


Mostly whitespace fixes.


Added maintainer-clean-local target to purge generated Makefiles.


fix ngt_TrimStr(), fix format string


ngt_TrimStr(): code cleanup.


use strlcat return value; don't call time() repeatedly.


corrected return value


removed silly if (foo) { if (foo){ }} statement


s/gehoert//


Client_RegisterWhowas(): call time() only once


Don't use "awk" directly, instead use $(AWK) variable.


Moved now local prototype of Client_New() to C file, renamed it to Init_New_Client() and cleaned up some code and comments.


Client_New() not used outside client.c -> static


changed connection structure to array-api


new Function: LogDebug()


removed Resolve_SUCCESS() Macro and Res_Stat->sucess boolean (no longer used/needed)


Make connid same as connection fd.


removed obsolete "int Conn_MaxFD"


simplify IRC_Show_MOTD()


Enhanced documentation. Use "default" port 6667 in the example for server links.


Added some documentation for --with-XXX options of the configure script.


Added test if the stress-test expect script itself completes without errors.


Modified expect script to work with servers having IDENT support.


add FAQ entry about epoll(): Function not implemented error


Fix Bugzilla #64 -- ngicrd did not reconnect to other servers after failed forward dns lookup.


Make clear that "IO backend: select" is not a request but a C API function.


Don't remove doc/src on "make distclean".


Minor whitespace fixes.


Remove direct call of Conf_UnsetServer(): it's already indirectly called by Conn_Close() a few lines above.


Adjusted ChangeLog for ngIRCd release 0.9.2.


Updated autoconf helper scripts.


Changed Handle_Write() to not close sockets itself but to call Conn_Close.


gcc 4: "warning: declaration of 'dup' shadows a global declaration".


avoid 2nd time() call in Check_Servers(), improve comments


use io_close instead of plain close in Conn_ExitListeners()


merge new resolver code


Minimal changes (needed for merging resolver changes)


Mostly formatting; changes needed for SSL merge


Handle_Write(): Report write attempts on closed sockets when in debug mode.


Removed obsolete debug message.


Set one second penalty on unknown commands.


Add debug code to Conn_SetPenalty().


io_close(): explicitly remove fd from epoll set


Updated build configurations.


Updated XCode project files to XCode version 2.1.


Wait for DNS reverse lookup (and ident request) before writing results to pipe.


Updated Changelog: fixed file descriptor leak in resolver code.


fix fd leak (happens on failure of fork() ).


Updated copyright notice.


small formatting change


JOIN now supports more than one channel key at a time.


Mention ':' MyPassword restriction in man page.


Complain if MyPassword starts with ':'. (Reported by Ben Korvemaker)


reformatted Handle_SERVER()


Cleaned up some code, comments and log/debug messages.


Implementec numeric "333": Time and user name who set a channel topic.


Add warning about leading : in passwords. (thx Ben Korvemaker for pointing this out)


Make PONG handler compatible with ngIRCd <= 0.9 ("make it more relaxed").


reformatted a few lines.


check if gcc supports -fstack-protector


use size_t for array length variables


use size_t instead of unsigned int.


last cleanup accidentally broke kqueue backend.


Added prefix to connection statistic NOTICE.


Fixed server NOTICEs to users with "s" mode ("server messages").


remove unneeded variable "bool action"


fix embarassing cut&paste error


array_cat0_temporary(): removed confusing DEBUG messages


Enhanced the handler for PING and PONG commands: fix forwarding and enable back-passing of a client supplied additional argument of PING.


if the request is empty, remove \r\n (or single \n or \r) from receive buffer.


fix handling of empty requests


Changed handling of timeouts for unregistered connections: don't reset the counter if data is received and disconnect clients earlier.


removed misleading const qualifier


Two spelling fixes.


Forgot to mention last change ...


fix kevent() warning on powerpc-apple-darwin8-gcc-4.0.0


remove unneeded call io_event_kqueue_commit_cache()


Fixed parameter description of CHANINFO.


return PING argument in PONG reply if STRICT_RFC is not defined.


Updated ChangeLog (from 0.9.1 branch).


Changed log level of "Initialization failed" message from ERR to ALERT.


Fixed line lengths ...


Fixed format string bug in "connection statistics" message; code cleanups.


Made test script run a longer time.


Set timeout.


Detect source directory correctly.


Added start script for FreeBSD.


Updated URL and some minor changes.


The KILL command killed much more than desired (including server links!) when the target user is connected to a remote server. [from 0.9.x]


Removed some line feeds in debug statements.


Removed unnecessary #define of "LOCAL", now use plain C "static" instead.


Removed "U" unsignet suffix: caused problems with older compilers and is not necessary for this constants.


Fixed line wrapping.


internal changes needed for future ssl support


add topic length changelog entry


topic no longer limited to 127 chars (now only limited by protocol)


changed RES_STAT buffer to array


add array_cat0_temporary() and array_init()


Updated documentation from CVS branch-0-9-x.


Updated Debian changelog from branch-0-9-x.


Run "basename" on our script name when it is a symlink as well. [from 0-9-x]


Reverse lookup now checks result by additional forward lookup


Updated config.guess and config.sub to latest versions used in Debian.


add reverse lookup check


Added "STRIP_FROM_PATH" variable to generate relative path names.


Eliminate some compiler warnings ("unused parameter").


Added style definitions for source code listings.


New subdirectory "doc/src" for the source code documentation.


Moved "srcdoc" target from src/Makefile to doc/Makefile.


Removed "srcdoc" target for src/ tree (now in doc/ subdirectory).


New subdirectory "src" for the source code documentation, and new make target "srcdoc" to generate the documentation using Doxygen.


New files for the Doxygen source code documentation system.


change Handle_OPERATOR() formatting


prevent io_masterfd leak when library_init() is called twice


Cleaned up some log messages.


Brought some debug log messages "in line".


Reformatted some comments.


removed unneeded variable "bsize"


add better error checks for io_ routines


removed unneeded return statement


fix embarassing buffer-off-by one


make Conn_NewListener local to conn.c


made a few config options unsigned.


change assertions to stop splint from complaining


s/strcpy/strlcpy/


minor cosmetic changes


removed some Debug-Code.


io_library_shutdown: return void


Updated some URLs in the documentation.


Only setuid()/setgid() if it differs from current UID/GID. Solves problems with Cygwin.


Use "ServerUID" (and not internal variable name) for error message.


Updated documentation.


Added "doc/Zeroconf.txt" to distribution.


Renamed "Rendezvous" to "Zeroconf".


New section "runtime".


Whitespace fixes.


safemult_uint(): return bool


document b0rken resolver on GNU/Linux


new buffer/IO API.


test for epoll and kqueue support


use new io event API.


use dynamically sized unzip/zip buffer


new io/buffer api.


remove FD_SETSIZE check (now in io_* functions)


use dynamic io buffers


use new buffer API


cleanup, use new io layer.


add new IO layer


add new buffer abstraction layer


removed Resolve_Init()


Fixed maximum length of user names, now allow up to 9 characters.


Updated documentation.


Handle oversized messages which should be sent to the network better.


Code and comment cleanups, new #define "CUT_TXTSUFFIX".


Prepare documentation for release 0.9.0 ...


Fix compiler warning "comparision between signed and unsigned".


Fixed wrong order of #includes in test for "socklen_t" (caused problems on OpenBSD).


Updated URLs.


Ignore unknown commands received before the client is registered.


Get rid of Log_SetDaemonized().


removed global variable NGIRCd_NoDaemon


put badchars back in


fix embarassing cut&paste error (add missing } )


fix "Can't get user information for UID" error message


only chdir() to users home when running as daemon


s/sprintf/snprintf


use strlcpy


remove unneeded strpy()


startup: fork only once, never run with uid 0


startup: fork only once, never run with uid 0.


IRC_LIST(): Added missing calls of Client_ID() and cleand up the code.


changed formatting to match ngircd coding style


Make sure SimpleMessage() sends <= 512 chars


set 3 second penalty after failed /oper command.


Only register clients that have been connected at least 30 sec. in WHOIS database.


Modified Conn_StartTime() to use information of the CLIENT structure.


Removed CONNECTION[].starttime, now saved in CLIENT structure.


New function Client_StartTime().


Updated manual pages.


send RFC compliant netsplit messages.


Fix Handling of quit messages: always send only one QUIT message.


remove Try_Write(), Call Handle_Write() directly instead.


Added some Doxygen documentation.


Fixed handling of symbolic links as used in /etc/rc.X directories.


add FreeRes_stat(), wait for resolver timeout.


minor cleanup


Handle splint errors more gracefully.


Don't exit server if closing of a socket fails; instead ignore it and pray that this will be "the right thing" ...


Added version information to summary text.


Reformatted and documented code of the first part of the IRC_NICK() function; and register WHOWAS entries on nickname changes, too.


New function Client_RegisterWhowas().


Implemented IRC function "WHOWAS".


New functions Client_GetWhowas and Client_GetLastWhowasIndex; new structure WHOWAS.


New functions Client_GetWhowas, Client_GetLastWhowasIndex, and Register_Whowas.


New defines MAX_WHOWAS and DEFAULT_WHOWAS.


Away status texts set due to "a"-Modes received from other servers have been fixed: the status text of the server has been set instead of the away status text of the client (most probably introduced by patch 1.36).


Remove "doc/src" directory on "make distclean".


Added #include of "defines.h", necessary due to removal of the #include of "defines.h" in the client.h header file.


Reorder #includes, necessary due to removal of #include "defines.h" in the client.h header file.


Removed "invalid" #include of "defines.h" (don't include further header files from a header file!).


Added missing #include of "defines.h".


removed Conn_UnsetOption() function. It was not used anymore. removed Conn_SetOption(). replaced its only call (in conn-zip.c) with Conn_OPTION_ADD() macro.


removed "my_connects" fd_set.


conn.h: option filed in CONNECTION struct is now UINT16. conn-func.h: add accessor Macros Conn_OPTION_ADD( conn, CONN_OPTION ) Conn_OPTION_DEL( conn, CONN_OPTION ) Conn_OPTION_ISSET( conn, CONN_OPTION ) To add, remove or test for a certain option field attribute (e.g. CONN_ISCLOSING) These Macros should be used instead of accessing conn->options directly.


Cleaned up (and documented) the IRC_KILL() function.


fix spelling


added kludge to make ngircd (with syslog) compile on mips-dec-ultrix4.5


use strdup() to add oper hostname mask.


private strdup() implementation in case libc does not provide it.


s/malloc(x*y)/calloc(x,y)/


check for strdup()


Used a spellchecker :-)


Fixed wrong location of "Doxyfile" ... argl.


Use typedef instead of #define to declare the socklen_t type if needed.


Added "-unrecog" to splint command line.


Target "lint": check whether splint command is available and suppress warnings related to the used command line in the output.


Two new targets: "srcdoc" to generate Doxygen source documentation, and "xcode" to build ngIRCd using the Xcode command line tools on Mac OS X.


Added new target "srcdoc" to generate the Doxygen source documentation.


Added the control file for the Doxygen source documentation system.


New build style "deployment", cleaned up options for build style "development" (enabled "ZeroLink") and fixed path of "ngircd.spec".


Don't enable assert() calls when not ./configure'd with --enable-debug.


Debine NDEBUG if DEBUG isn't defined to disable all assert() checks as well.


When validationg the configuration file wait for a keypress only if both stdin and(!) stdout are valid tty's.


Use tabulator, not 8 spaces ...


Fixed ./configure test for TCP Wrappers: now it runs on Mac OS X as well.


Enhanced configure script: now you can pass an (optional) search path to all --with-XXX parameters, e. g. "--with-ident=/opt/ident".


Conf_Test(): check if stdin (and not stdout...) is connected to a terminal.


changed type of Conf_ListenPorts[] from "unsigned int" to UINT16.


Init_Conn_Struct(): Zero structure using memset().


Add notice about typedef removal and stdbool.h/inttypes.h


Remove INT, LONG, BOOLEAN, STATIC, CONST, CHAR datatypes. use stdbool.h / inttypes.h if available.


fix Config_Error_NaN prototype (first argument missed "const")


removed unneeded log.h include.


Added login of Florian ("fw") to AUTHORS list.


Removed indentation of preprocessor statements in test for socklen_t.


Fixed too long lines.


New configuration option "OperServerMode".


New function New_Res_Stat() to initialize RES_STAT structure.


Reduce the number of calls of strlen(). Idea by Florin Westphal.


Added missing include of "match.h".


Implemented support for "secret channels" (channel mode "s").


New configuration option "Mask" for [Operator] sections to limit OPER command.


Clean up the mode handling code: remove redundant parts ...


Updated to latest strl{cat|cpy} code of rsync: - Make sure that strlcpy() returns the right value when the bufsize is 0. - Fixed a bug in strlcat() where it would not properly detect a no-change condition if called with an initial string longer than the specified size limit (due to an unsigned var's inability to go negative). Patch by Florian Westphal, <westphal@foo.fh-furtwangen.de>.


Added AUTOMAKE_VERSION and AUTOCONF_VERSION (for OpenBSD).


Fixed the detection of tools named like "tool-Major.Minor" (used on OpenBSD).


Enable Pidfile /var/run/ircd/ngircd.pid


Added description for "PidFile", fixed description of "Ports".


Whitespace fixes.


Don't play games with FILE* stdin/out/err, only touch "real" descriptors.


Renamed NGIRCd_FillVersion() to Fill_Version(); Code cleanups.


Write "error file" (/tmp/ngircd-XXX.err) only if compiled with debug code ("--enable-debug") and running as daemon process.


Added a note about the change of the maximum password length.


Don't create version information string each time a client connects but insetead on server startup. By Florian Westphal.


Added an empty /etc/ngircd/ngircd.motd to the packages. And ngircd.conf becomes modified to enable the PID file (/var/run/ircd/ngircd.cond) and to change the user and group to "irc".


Set owner and group of /var/run/ircd to "irc:irc".


Updated debian changelog file from branch-0-8-x ...


Make sure that errno of fopen() isn't overwritten by the logging code.


New configuration variable "PidFile", section "[Global]": if defined, the server writes its process ID (PID) to this file. Default: off. Idea by Florian Westphal, <westphal@foo.fh-furtwangen.de>.


ngIRCd 0.8.3.


Use ngt_TrimLastChr() where useful, by Florian Westphal.


Add ngt_TrimLastChr() to header file. By Florian Westphal.


Fixed a bug that could case a root exploit when the daemon is compiled to do IDENT lookups and is logging to syslog. Bug discovered by CoKi, <coki@nosystem.com.ar>, thanks a lot! (http://www.nosystem.com.ar/advisories/advisory-11.txt)


Updated ChangeLog for 0.8.2.


Updated config.sub and config.guess


We are in the year 2005 now! :-)


Fixed a buffer overflow that could cause the daemon to crash. Bug found by Florian Westphal, <westphal@foo.fh-furtwangen.de>.


Updated list of contributors.


New function ngt_TrimLastChr(), prototype by Florian Westphal.


Fixed a typo in variable name ...


Fixed a possible buffer underrun when reading the MOTD file. Thanks to Florian Westphal, <westphal@foo.fh-furtwangen.de>.


Code cleanups from Florian Westphal, <westphal@foo.fh-furtwangen.de>: wrote functions for common error messages.


Code cleanups from Florian Westphal, <westphal@foo.fh-furtwangen.de>.


Fixed detection of IRC lines which are too long to send. Detected by Florian Westphal, <westphal@foo.fh-furtwangen.de>.


Fixed return values of our own implementation of strlcpy(). The code has been taken from rsync and they fixed it, but we didn't until today :-/


Translated source code comments.


Raised the maximum length of passwords to 20 characters.


Fixed typo: ports are separated by ",". Thanks to Florian Westphal.


Fixed a memory leak when resizing the connection pool and realloc() failed. Now we don't fall back to malloc(), which should be sane anyway. Patch from Florian Westphal, <westphal@foo.fh-furtwangen.de>.


Added URLs for stunnel.


Added documentation for SSL support.


Make more clear that there can be more than one [Operator], [Server] and [Channel] section in the configuration file.


Fixed wrong port number in example.


Don't use a POSIX thread for the Howl "run loop".


Added support for the Howl (http://www.porchdogsoft.com/products/howl/) Rendezvous API, in addition to the API of Apple (Mac OS X).


Updated documentation for release 0.8.1


Updated config.guess and config.sub


Updated documentation ...


Fixed indentation and added some more debug code.


Updated list of supported/tested platforms.


Fixed spelling mistake.


Made ngIRCd compile on HP/UX 10.20 with native HP pre-ANSI C compiler and most probably other older C compilers on other systems.


Changed "read buffer" to "receive buffer" as suggested by Goetz.


Added some missing words: "address" :-)


Fixed wrong variable names in output of "ngircd --configtest".


Added functions.inc to EXTRA_DIST files.


Fixed echo without newline for systems not understanding "echo -n"; added new file "functions.inc" for functions usable by all test scripts.


Reverted extension of the "make all" target in the test-suite.


Fixed wrong exit code check of "kill -0".


Updated documentation.


Fxied name of "default file" for ngircd-full package. And do the test if the binary is executable after reading this file.


If ServerUID is defined change the working directory to the home directory of this user.


Updated documentation :-)


Enhanced messages and exit codes.


Added all test scripts to target "all".


Changed text "test scripts" to "processes": some versions of expect(1) fork child processes ...


Removed counting of test processes; don't check running processes by default.


Added detection of flags for ps(1).


Added README, test-loop.sh and wait-tests.sh to EXTRA_DIST files.


Made stress-server.sh to use wait-tests.sh to limit number of parallel tests.


Two new scripts: test-loop.sh and wait-tests.sh


Added support for looping and other enhancements.


Set $srcdir if not already set by make.


If nick name is already in use, interpret this as "clienst still connected".


Added preliminary README text.


Information about configuring ngIRCd.


Removed empty "buildRules" variable (suggested by XCode 1.5 :-).


Added missing commas to debian control file, fixes bug #56. Thanks to Kevin Otte (nivex@nivex.net) for the patch.


Updated documentation: note ngIRCd 0.8.0 :-)


Added cast to integer for Solaris.


Updated documentation.


Fixed wrong buffer size calculation for resolver results.


Added "hppa/unknown/openbsd3.5".


Updated documentation.


Enhanced ./configure checks for required C header files.


Fixed a warning message of the compiler when not using IDENT lookups.


Updated documentation.


"make maintainer-clean" removes Makefile.in now.


"make clean" works better now.


New Debian version.


Fixed resolver when using IDENT lookups, cleaned up code.


Added PID to all log messages on the console; enhanced logging of resolver sub-processes in debug mode.


Enhanced output of "make lint".


New "chroot" feature (from Benjamin Pineau), introducing new configuration variables "ChrootDir" and "MotdPhrase".


Overview of "contributed" files.


Added "README" and "systrace.policy" files.


systrace policy for OpenBSD/NetBSD, thanks to Benjamin Pineau <ben@zouh.org>


New debian version including updates from CVS HEAD.


Updated documentation.


Add flag "L" to default IRC+ server flags: synchronize INVITE- and BAN-lists.


Document new server flag "L": synchronize INVITE- and BAN-lists when establishing new server links.


Synchronize INVITE- and BAN-lists if the peer requests it: server flag "L". And better debug logging.


Don't send MODE changes when origin is a server and mask is already known.


New functions: Lists_SendInvites(), Lists_IsInviteEntry(),


Fixed a wrong assert() which could cause the daemon to exit spuriously when closing down connections.


Better logging of decompression errors returned by zlib.


Special handling for HP/UX: define _XOPEN_SOURCE_EXTENDED ...


New debian package.


Fixed handling of already existent entries in invite and ban lists: the attempt to add an already existent entry is no error, it must be propagated across servers (but not added to the list!).


Updated XCode project for Mac OS X.


Servers other than the destination server didn't clean up the invite list of an "invite-only" channel properly when an INVITE'd user joined.


The command to test for the autoconf/automake tools is detected now as well.


Added DG/UX (m88k/dg/dgux5.4R3.10) to the list.


New debian package ;-)


Updated manual page to reflect changes in daemon.


Use "which" when available; understand "GO=0"; made "VERBOSE=1" more verbose.


Enhanced autogen.sh script; added "inline" documentation.


Fixed detection of GNU C version and usability of __attribute__.


Added missing "return 0" ... oops.


Reworked configure system: it should be more compatible to most systems now, and it should even be more flexible and faster :-)


New upstream version.


Fixed some warnings of non-gcc-compilers (e. g. original Apple compiler on A/UX): "warning: illegal pointer combination, op =".


Updated tests to reflect last changes to MODE behaviour.


Updated XCode project, added missing Makefile template for MacOXD directory.


Added XCode project files (for Mac OS X) to "contrib" directory.


Changed the reply of the MODE command to match the syntax of the original ircd exactly: the unnecessary but missing ":" before the last parameter has been added.


New Debian version.


Fixed TRACE: don't output "Serv" lines for ourself; display more info.


Better logging while establishing and shutting down connections. Results of the resolver are now discarded after the client is registered.


Updated list of supported operating systems.


Updated statistics :-)


Updated documentation (-t switch).


Included updates of ngIRCd 0.7.7


The info text ("real name") of users is set to "-" if none has been specified using the USER command (e. g. "USER user * * :"). Reason: the original ircd doesn't like empty ones and would KILL such users.


Fixed (optional) TCP Wrapper test which was broken and could result in false results. Thanks to Fuminori Tanizaki <tany@mcnet.ad.jp>!


New debian version.


Updated some copyright notices to include the year 2004.


The type of service (TOS) of all sockets is set to "interactive" now.


Removed some debug code; translated some source code comments.


Use "__attribute__" only if gcc is at least version 2.7


Added #include for strings.h to fix compiler warnings.


Added #include for strings.h and added some casts to remove compiler warnings.


Fixed order of #include's: time.h moves up! ;-)


Clean up files for "ngircd-full" package, too ...


Adjusted copyright notice to include 2004.


Restructured debian packaging system: now there are two packages, a "standard" version that includes all the default options and a "full" version that additionally includes support for TCP wrappers and IDENT lookups.


Changes for new source code layout: contrib/Debian/.


Removed outdated Mac OS X ProjectBuilder project files (will be re-added and updated for XCode soon); moved the debian/ directory to contrib/Debian/.


Added some files to the maintainer-clean-local target which havn't beed removed by "make maintainer-clean".


Added new short command line option "-t" as alternative to "--configtest".


Added IDENT option to version string.


Added optional support for IDENT lookups (configure switch "--with-ident").


Removed "USE_" prefixes of configuration #defines.


Fixed error messages related to server name configuration; updated sample configuration file. (from 0.7.x)


Changes for version 0.7.6


Added missing postinst file to distribution list. (from branch-0-7-x)


Fixed abort() when inviting users to nonexistent channels.


Extended version reporting of CVS builds.


Updated, corrected and extended (examples!) protocol documentation.


Updated RPM and Debian package description and configuration.


Updated config.guess and config.sub to new upstream versions.


Changes from branch-0-7-x for version 0.7.5.


Fixed ban behavior: users which are banned from a channel can't no longer send PRIVMSG's to this channel (fixes Bug #47).


Fixed test suite: allow more connections ;-)


Fixed and enhanced penalty handling; changed internal time resoluiton of the server to one second. Code cleanup.


New configuration option "MaxConnectionsIP".


Fixed build problems under Mac OS X 10.3 "Panther".


Use "-pipe" when compiling with gcc, speeds things up a little :-)


New configuration option "Listen" to bind the server to a specific ip.


Suppress misleading error message of diff during make run.


Updated and fixed project file for Mac OS X ProjectBuilder.app


Updated documentation.


Updated documentation.


Fixed typo in debug output.


Enhanced testsuite, should run under GNU/Hurd now.


New Debian package for 0.7.1


Updated documentation (for release 0.7.1).


Updated documentation.


Added debian packaging files from branch-0-7-x to HEAD.


Included debian/-subdirectory into build system.


Updated debian changelog.


Included debian/-subdirectory with files required to build Debian packages.


Updated config.guess and config.sub to newer upstream versions.


Updated ChangeLog.


NJOIN: Fixed propagation of user channel modes.


Added SunOS 5.7 (Solaris 7).


- Updated documentation.


VERSION shows the CVS date if apropriate now.


Fixed a compiler warning related to an unnecessary assert().


Updated documentation.


Updated documentation.


Added support for GNU/Hurd.


Made Makefiles more compatible with "make -j<N>".


Fixed typo: .IT instead of the correct.TP ...


Changed version string to "CVSHEAD".


Updated documentation (ngIRCd 0.7.0).


Added HP-UX 9.10/m68k.


Fixed small typo.


Added "Why should I use ngIRCd?"


"ServerName" is checked better now: a dot (".") is required.


The KILL comand verifies and logs more parameters.


Updated documentation.


Updated documentation.


Fixed --configtest: there is no variable "ServerPwd", it's "Password".


Documented missing "Password" variable in section "[Global]".


Updated documentation.


Updated documentation.


The server tried to connect to other servers only once when DNS or socket failures occured.


Updated documentation.


Disabling "-ansi" on Cygwin: system headers are incompatible.


Updated documentation: added i686/pc/cygwin platform.


Detecting broken gcc used by Mac OS X and disabling "-pedantic" in this case.


Updated documentation.


Updated documentation.


Added new documentation file "Platforms.txt".


New documentation file doc/Platforms.txt included.


Updated documentation.


Updated documentation.


Made scripts mor portable (run on SunOS 5.6 now).


Updated documentation.


Added defines for SunOS (5.6).


Made setting of WANT_AUTOMAKE more portable.


Updated documentation.


Updated documentation.


Fixed tabs to spaces.


Translated documentation from German to English.


Updated documentation.


Updated documentation.


Translated Protocol.txt to english.


Added implicit initialisation of "i" in Conf_GetServer to workaround a egcs 2.91.66 bug which claims that this valiable could be used uninitialized.


Removed unportable %z formater in strftime().


Added missing prototype for dummy_snprintf().


Added missing include for <sys/select.h>.


Fixed up some castings.


Added some defines for Linux/glibc, reverted unused test for poll(), and enhanced summary output.


Using $(prefix)/share/doc/ngircd as documentation directory again.


Updated documentation.


Fixed spelling mistake :-)


Don't forward NJOIN's for unknown nick names.


Translated success message :-)


Updated documentation.


Added WANT_AUTOMAKE=1.6 to autogen.sh.


Re-corrected test for CVS version.


Corrected path for documentation files in summary output.


Changed documentation directory to ".../share/doc/ngIRCd" (and removed the variable PACKAGE for better Debian automake-1.4 compatibility).


Changed all PACKAGE's to PACKAGE_NAME and all VERSION's to PACKAGE_VERSION.


Updated documentation.


Added documentation path to summary output.


Implemented proper "uninstall" target for documentation files.


Install documentation files in $(datadir)/doc/ngircd.


Fixed up bad test during unregistering of services.


Synchronize server connections with server configurations after reloading the configuration.


Clean up duplicate servers correctly.


New function Conn_SyncServerStruct().


Require at least GNU automake 1.6 to generate build scripts and Makefiles.


Translated documentation to english.


Updated documentation.


Enhanced (and fiexd) IRC_TRACE(): now shows operators and correct link uptimes.


New message constant RPL_TRACEOPERATOR_MSG. Changed RPL_TRACESERVER_MSG.


Updated Mac OS X project for Project Builder.


Fixed a "checking for ..." text string.


Added #include for stdarg.h when using ower own version of vsnprintf().


Removed now obsolete test for A/UX: configure does this job now.


- Updated documentation.


- Removed german documentation (no maintainer).


Updated documentation.


Fixed up and enhanced formating of manual pages.


Updated manual page.


Updated manual page.


Updated documentation.


Updated and enhanced the daemon manual page.


Fixed some spelling mistakes.


Fixed some spelling mistakes -- thanks to ispell ;-)


Updated documentation: translated headers ...


Updated documentation.


Translated & updated documentation.


Updated documentation.


New function Simple_Message(). Better error reporting to clients on connect.


Enlarged buffer for version string ;-)


Updated documentation.


Added support for TCP Wrappers; redesigned configuration result output; Changed some "--enable"/"--disable" switches to "--with"/"--without".


Added support for TCP Wrappers.


Updated documentation.


Updated documentation.


- better compatibility


- Added optional support for Rendezvous.


- New constant RENDEZVOUS_TYPE.


- New switch "--enable-rendezvous" to enable support for Rendezvous.


- Updated documentation.


- Added new source module "rendezvous".


- Updated documentation.


- Conn_Close() ignores recursive calls for the same link now.


- new link "option" constant: CONN_ISCLOSING


- Updated documentation.


- Added AC_PREREQ(2.50) to configure.in for better autoconf compatibility.


Updated documentation.


The server didn't validate wheather the "target" client of a channel user mode change is a valid channel member or not.


- Updated documentation.


- Non-members of a channel could crash the server when trying to change its modes. Fixed.


- Updated documentation.


- Client structures are removed correctly now if an outgoing connection can't be estahlished.


- New function Client_DestroyNow().


- Updated ProjectBuilder project file for Mac OS X.


- Added "HELP" command.


- Updated documentation.


- Updated documentation.


- Added support for "TRACE" command.


- Updated documentation.


- new library "libngtool", reorganized code and directory structure therefore.


- Updated documentation.


- Enhanced error detection for numerics ("status codes").


- removed needless warning/info message.


- Updated documentation.


- MODE returns the key and user limit for channel members correctly now.


- Updated documentation.


- Kill_Nick() uses an "faked internal KILL" now.


- Enhanced IRC_KILL to get along with Client==Client_ThisServer() for "fake KILLs".


- Fixed IRC_KILL: used wrong connection index.


- Enhanced CHANINFO command for channel keys and user limits.


- Enhanced (and fixed) CHANINFO command (channel keys, user limits).


- Changed semantics of Client_SetAway().


- Updated documentation.


- fixed up propagation of modes with arguments between servers.


- Updated documentation.


- Updated german documentation.


- Updated documentation.


- Restructured documentation: now the main language is english.


- Check functions only on systems that support prototypes, elder cpmpilers become confused instead!


- Fixed call of tail, should be more portable now ...


- Link portabtest agains "true" library.


- Added missing PARAMS().


- Updated configure.in to use newer semantics of AC_INIT und AM_INIT_AUTOMAKE.


- Updated documentation.


- The server sets a correct away message now when receiving a "MODE +a".


- Renamed RPL_FEATURE_MSG to RPL_ISUPPORT_MSG.


- date in version string conforms to ISO now: YYYY-MM-DD


- Updated documentation.


- Adjusted copyright banner to include 2003 :-)


- Updated documentation.


- Fixed up command forwarding: only to servers! - Forwarding of WHOIS was broken in some situations.


- Fixed up command forwarding: only to servers!


- Updated documentation.


- Changed "once"-server-config-flag into a generic flag. - Changed semantics of "NGIRCd_Passive".


- New functions Conf_EnableServer(), Conf_DisableServer() and Conf_AddServer(). - Changed "once"-server-config-flag into a generic flag.


- New command DISCONNECT.


- New commands CONNECT and DISCONNECT.


- New commands CONNECT and DISCONNECT. - Validate operator status before syntax checks.


- Fixed test if we are still connected after a KILL command.


- Updated documentation.


- Adjusted includes for new "conn-func.h" header.


- Reorganized code for new modules "conn-func.c" and "conn-func.h".


- New source module "conn-func.c" and "conn-func.h".


- Updated dokumentation.


- Renamed functions now found in "conn-zip.c".


- New source files "conn-zip.c" and "conn-zip.h".


- Cleaned up handling of server configuration structures.


- Fixed up some brackets ("[" and "]") ...


- Optimized tests for <sys/select.h> and <sys/poll.h>.


- Enhanced check for select() and poll().


- Removed needless include of <sys/select.h>.


- Added tests for <sys/poll.h> and poll().


- Fixed prefix of error messages of KILL.


- Updated documentation.


- If the server can't close a socket, it panics now. - Quite enhanced logging :-)


- Nicer log messages ;-)


- KILL can't kill server-links any more.


- new message ERR_CANTKILLSERVER_MSG.


- Updated documentation.


- Updated documentation.


- fixed KILL: you can kill yourself now without crashing the server; QUIT isn't send to other servers after the KILL any more.


- Updated documentation.


- replaced some calls to sprintf() with snprintf() -- more secure :-)


- replaced a lot of strcpy() calls with strlcpy() which is more secure.


- replaced a lot of strcat() calls with strlcat() which is more secure.


- replaced all strncpy()'s and strncat()'s with strlcpy() and strlcat().


- include <sys/types.h>, if available.


- addes required libngircd.a library to portabcheck_LDADD.


- strlcat() and strlcpy() replacement functions.


- added prototypes for replacement functions.


- added tests for strlcpy() and strlcat().


- added tests for replacement functions.


- added strlcpy.c for strlcpy() and strlcat() replacement functions.


- definition of CONFIG_FILE and MOTD_FILE is now compatible with -Wtraditional.


- reverted last patch: now compatible with -Wtraditional of GCC 3.


- Updated documentation.


- GCC: add "-Wtraditional -Wpointer-arith -Wstrict-prototypes" to CFLAGS.


- fixed some warnings that showed up with -Wtraditional


- Updated documentation.


- Updated documentation.


- new messages: RPL_FEATURE, RPL_LOCALUSERS and RPL_NETUSERS.


- new numeric on login: RPL_FEATURE


- enhanced LUSERS reply: RPL_LOCALUSERS, RPL_NETUSERS.