Ilja Osthoff, <i.osthoff@gmx.net> (ilja)
Benjamin Pineau, <ben@zouh.org>
Sean Reifschneider, <jafo-rpms@tummy.com>
-Florian Westphal, <westphal@foo.fh-furtwangen.de>
+Florian Westphal, <westphal@foo.fh-furtwangen.de> (fw)
Code snippets
ngIRCd - Next Generation IRC Server
- (c)2001-2005 Alexander Barton,
+ (c)2001-2005 Alexander Barton,
alex@barton.de, http://www.barton.de/
ngIRCd is free software and published under the
-- ChangeLog --
+ngIRCd 0.9.x
+
+ - Fixed maximum length of user names, now allow up to 9 characters.
+ - Cut off oversized IRC messages that should be sent to the network instead
+ of shuttding down the (wrong) connection.
+ - Don't generate error messages for unknown commands received before the
+ client is registered with the server (like the original ircd).
+ - Never run with root privileges but always switch the user ID.
+ - Make "netsplit" messages RFC compliant.
+ - Fix handling of QUIT Messages: send only one message, even if the client
+ is member of multiple channels.
+ - Don't exit server if closing of a socket fails; instead ignore it and
+ pray that this will be "the right thing" ...
+ - Implemented the IRC function "WHOWAS".
+ - Don't enable assert() calls when not ./configure'd with --enable-debug.
+ - Fixed ./configure test for TCP Wrappers: now it runs on Mac OS X as well.
+ - Enhanced configure script: now you can pass an (optional) search path
+ to all --with-XXX parameters, e. g. "--with-ident=/opt/ident".
+ - Removed typedefs for the native C datatypes.
+ Use stdbool.h / inttypes.h if available.
+ - New configuration option "OperServerMode" to enable a workaround needed
+ when running an network with ircd2 servers and "OperCanUseMode" enabled
+ to prevent the ircd2 daemon to drop mode changes of IRC operators.
+ Patch by Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+ - Implemented support for "secret channels" (channel mode "s").
+ - New configuration option "Mask" for [Operator] sections to limit OPER
+ commands to users with a specific IRC mask. Patch from Florian Westphal.
+ - Write "error file" (/tmp/ngircd-XXX.err) only if compiled with debug
+ code ("--enable-debug") and running as daemon process.
+ - Don't create version information string each time a client connects
+ but instead on server startup. By Florian Westphal.
+ - New configuration variable "PidFile", section "[Global]": if defined,
+ the server writes its process ID (PID) to this file. Default: off.
+ Idea of Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+ - Code cleanups from Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+ - Raised the maximum length of passwords to 20 characters.
+ - Fixed a memory leak when resizing the connection pool and realloc()
+ failed. Now we don't fall back to malloc(), which should be sane anyway.
+ Patch from Florian Westphal, <westphal@foo.fh-furtwangen.de>.
+ - Added support for the Howl (http://www.porchdogsoft.com/products/howl/)
+ Rendezvous API, in addition to the API of Apple (Mac OS X). The available
+ API will be autodetected when you call "./configure --with-rendezvous".
+ - Made ngIRCd compile on HP/UX 10.20 with native HP pre-ANSI C compiler and
+ most probably other older C compilers on other systems.
+ - When the daemon should switch to another user ID (ServerID is defined in
+ the configuration file) and is not running in a chroot environment, it
+ changes its working directory to the home directory of this user. This
+ should enable the system to write proper core files when not running with
+ root privileges ...
+
ngIRCd 0.8.3 (2005-02-03)
- Fixed a bug that could case a root exploit when the daemon is compiled
It has only been used when the system didn't implement strlcpy by itself,
not on "modern" systems. Florian Westphal, <westphal@foo.fh-furtwangen.de>.
-nIRCd 0.8.1 (2004-12-25)
+ngIRCd 0.8.1 (2004-12-25)
- Autoconf: Updated config.guess and config.sub
- Added some more debug code ...
- Fixed wrong variable names in output of "ngircd --configtest".
- - Debian: Fxied the name of the "default file" in the init script for
+ - Debian: Fixed the name of the "default file" in the init script for
ngircd-full packages. And do the test if the binary is executable after
reading this file.
- Enhanced the "test suite": please have a look at src/testsuite/README!
- Fixed wrong buffer size calculation for results of the resolver.
- ngIRCd 0.8.0-pre2 (2004-05-16)
+ ngircd 0.8.0-pre2 (2004-05-16)
- Enhanced logging to console when running in "no-detached mode": added
PID and log messages of resolver sub-processes.
- Fixed host name lookups when using IDENT user lookups.
- - "make clean" and "make maintainer-clean" remove more files mow.
+ - "make clean" and "make maintainer-clean" remove more files now.
ngIRCd 0.8.0-pre1 (2004-05-07)
- Two new configuration options: "ChrootDir" and "MotdPhrase", thanks to
I. Upgrade Information
~~~~~~~~~~~~~~~~~~~~~~
+Differences to version 0.8.x
+
+- The maximum length of passwords has been raised to 20 characters (instead
+ of 8 characters). If your passwords are longer than 8 characters then they
+ are cut at an other position now.
+
Differences to version 0.6.x
- Some options of the configure script have been renamed:
| | | |
Platform Compiler ngIRCd Date Tester C M T R See
--------------------------- ------------ ---------- -------- ------ - - - - ---
+hppa/unknown/openbsd3.5 gcc 2.95.3 CVSHEAD 04-05-25 alex Y Y Y Y
+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 0.9.x-CVS 05-06-27 alex Y Y Y Y
i386/pc/solaris2.9 gcc 3.2.2 CVSHEAD 04-02-24 alex Y Y Y Y
-i386/unknown/freebsd5.0 gcc 3.2.1 0.7.0 03-05-15 alex Y Y Y Y
-i386/unknown/gnu0.3 gcc 3.2.3 CVSHEAD 03-05-05 alex Y Y n Y
+i386/unknown/freebsd5.2.1 gcc 3.3.3 0.8.0 04-05-30 alex Y Y Y Y
+i386/unknown/gnu0.3 gcc 3.3.3 0.8.0 04-05-30 alex Y Y n Y
i386/unknown/netbsdelf1.6.1 gcc 2.95.3 CVSHEAD 04-02-24 alex Y Y Y Y
-i686/pc/cygwin gcc 3.2 0.7.x-CVS 03-04-24 alex Y Y n Y
-i686/pc/linux-gnu gcc 2.95 0.7.0 03-05-15 alex Y Y Y Y (1)
-i686/pc/linux-gnu gcc 3.3.3 CVSHEAD 04-02-22 alex Y Y Y Y (1)
+i686/pc/cygwin gcc 3.3.1 0.8.0 04-05-30 alex Y Y n Y
+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.3 0.8.0 04-05-30 alex Y Y Y Y (1)
m68k/apple/aux3.1.1 Orig. A/UX 0.7.x-CVS 03-04-22 alex Y Y Y Y (2)
m68k/hp/hp-ux9.10 Orig. HPUX 0.7.x-CVS 03-04-30 goetz Y Y Y Y
m88k/dg/dgux5.4R3.10 gcc 2.5.8 CVSHEAD 04-03-15 alex Y Y ? ?
powerpc/apple/darwin6.5 gcc 3.1 0.7.x-CVS 03-04-23 alex Y Y Y Y
-powerpc/apple/darwin7.2.0 gcc 3.3 CVSHEAD 04-02-22 alex Y Y Y Y
+powerpc/apple/darwin7.4.0 gcc 3.3 0.8.0 04-05-30 alex Y Y Y Y
+powerpc/apple/darwin8.1.0 gcc 4.0 0.9.x-CVS 05-06-27 alex Y Y Y Y
+powerpc/unknown/linux-gnu gcc 3.3.3 0.8.0 04-05-30 alex Y Y Y 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 CVSHEAD 04-02-24 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
Notes
ngIRCd - Next Generation IRC Server
- (c)2001-2004 by Alexander Barton,
+ (c)2001-2005 Alexander Barton,
alex@barton.de, http://www.barton.de/
ngIRCd is free software and published under the
terms of the GNU General Public License.
-- README --
-
- Ilja Osthoff, <ilja@glide.ath.cx>
I. Introduction
~~~~~~~~~~~~~~~
-ngIRCd is an Open-Source server for the Internet Relay Chat (IRC), which
+ngIRCd is an Open Source server for the Internet Relay Chat (IRC), which
is developed and published under the terms of the GNU General Public
Licence (URL: http://www.gnu.org/licenses/gpl.html). ngIRCd means "next
generation IRC daemon", it's written from scratch and not deduced from the
II. Status
~~~~~~~~~~~
-At present, the ngIRCd is under active development, some features are not
-implemented, some only partly.
+It is not the goal of ngIRCd to implement all the nasty behaviours of the
+original ircd, but to implement most of the useful commands and semantics
+specified by the RFCs.
-Till today (more or less complete) implemented IRC-commands:
+In the meantime ngIRCd should be quite feature complete and stable to be
+used in real IRC networks.
+
+Implemented IRC-commands are:
ADMIN, AWAY, CHANINFO, CONNECT, DIE, DISCONNECT, ERROR, HELP, INVITE, ISON,
-JOIN, KICK, KILL, LINKS, LIST, LUSERS, MODE, MOTD, NAMES, NICK, NJOIN,
-NOTICE, OPER, PART, PASS, PING, PONG, PRIVMSG, QUIT, REHASH, RESTART, SERVER,
-SQUIT, STATS, TIME, TOPIC, TRACE, USER, USERHOST, VERSION, WHO, WHOIS.
+JOIN, KICK, KILL, LINKS, LIST, LUSERS, MODE, MOTD, NAMES, NICK, NJOIN, NOTICE,
+OPER, PART, PASS, PING, PONG, PRIVMSG, QUIT, REHASH, RESTART, SERVER, SQUIT,
+STATS, TIME, TOPIC, TRACE, USER, USERHOST, VERSION, WHO, WHOIS, WHOWAS.
III. Features (or: why use ngIRCd?)
- simple, easy understandable configuration file,
- freely published open-source C source code,
- ngIRCd will be developed on in the future.
-- supported platforms (tested versions): AIX (3.2.5), A/UX (3.0.1), FreeBSD
- (4.5), HP-UX (10.20), IRIX (6.5), Linux (2.x), Mac OS X (10.x), NetBSD
- (1.5.2/i386, 1.5.3/m68k), Solaris (2.5.1, 2.6), Windows with Cygwin, and
- OpenBSD (3.4/i386).
+- wide field of supported platforms, including AIX, A/UX, FreeBSD, HP-UX,
+ IRIX, Linux, Mac OS X, NetBSD, OpenBSD, Solaris, and Windows with Cygwin.
IV. Documentation
ngIRCd - Next Generation IRC Server
- (c)2001-2003 by Alexander Barton,
+ (c)2001-2005 Alexander Barton,
alex@barton.de, http://www.barton.de/
ngIRCd is free software and published under the
- GNU sed
Source:
http://www.rezepte-im-web.de/appleux/sed-3.02.tar.gz
- ftp://arthur.ath.cx/pub/AUX/Software/Tools/sed-3.02.tar.gz
+ ftp://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.
- libUTIL.a
Source:
- http://ftp.mayn.de/pub/apple/apple_unix/Sys_stuff/libUTIL-2.1.tar.gz
- ftp://arthur.ath.cx/pub/AUX/Software/Libraries/libUTIL-2.1.tar.gz
+ 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
This library contains functions that are common on other UNIX
systems but not on A/UX e.g. memmove(), strerror() und strdup().
(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.ath.cx/pub/UNIX/AUX/Software/Tools/fileutils-4.0.tar.gz
+ ftp://arthur.barton.de/pub/UNIX/AUX/Software/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
--- /dev/null
+
+ ngIRCd - Next Generation IRC Server
+
+ (c)2001-2004 by Alexander Barton,
+ alex@barton.de, http://www.barton.de/
+
+ ngIRCd is free software and published under the
+ terms of the GNU General Public License.
+
+ -- SSL.txt --
+
+
+ngIRCd actually doesn't support secure connections for client-server or
+server-server links using SSL, the Secure Socket Layer, by itself. But you can
+use the stunnel(8) command to make this work.
+
+ <http://stunnel.mirt.net/>
+ <http://www.stunnel.org/>
+
+Stefan Sperling (stefan at binarchy dot net) mailed me the following text as a
+short "how-to", thanks Stefan!
+
+
+=== snip ===
+ ! This guide applies to stunnel 4.x !
+
+ Put this in your stunnel.conf:
+
+ [ircs]
+ accept = 6667
+ connect = 6668
+
+ This makes stunnel listen for incoming connections
+ on port 6667 and forward decrypted data to port 6668.
+ We call the connection 'ircs'. Stunnel will use this
+ name when logging connection attempts via syslog.
+ You can also use the name in /etc/hosts.{allow,deny}
+ if you run tcp-wrappers.
+
+ To make sure ngircd is listening on the port where
+ the decrypted data arrives, set
+
+ Ports = 6668
+
+ in your ngircd.conf.
+
+ Start stunnel and restart ngircd.
+
+ That's it.
+ Don't forget to activate ssl support in your irc client ;)
+=== snip ===
+
+
+Probably ngIRCd will include support for SSL in the future ...
+
+
+--
+$Id$