From 1cf9d25d42cd523153a6283b5d4edfadb3fd6f88 Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Thu, 3 Aug 2006 13:18:38 +0000 Subject: [PATCH] Updated documentation files (from branch-0-10-x). --- doc/CVS.txt | 6 ++-- doc/ChangeLog | 31 +++++++++++++++++-- doc/FAQ.txt | 9 ++++++ doc/INSTALL | 68 ++++++++++++++++++++++++++++++++++++++---- doc/NEWS | 18 +++++++++-- doc/Platforms.txt | 6 +++- doc/Protocol.txt | 2 +- doc/README | 2 +- doc/sample-ngircd.conf | 38 ++++++++++++----------- 9 files changed, 146 insertions(+), 34 deletions(-) diff --git a/doc/CVS.txt b/doc/CVS.txt index 97696c8..05d170b 100644 --- a/doc/CVS.txt +++ b/doc/CVS.txt @@ -1,7 +1,7 @@ ngIRCd - Next Generation IRC Server - (c)2001-2003 by Alexander Barton, + (c)2001-2006 Alexander Barton, alex@barton.de, http://www.barton.de/ ngIRCd is free software and published under the @@ -47,8 +47,8 @@ Updating the CVS tree: You can update a single file or the complete source tree. -III. Write Access -~~~~~~~~~~~~~~~~~ +II. Write Access +~~~~~~~~~~~~~~~~ If you want to contribute a couple of patches and write access to the CVS repository would be handy, please contact Alex Barton, . diff --git a/doc/ChangeLog b/doc/ChangeLog index f648225..2812581 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,7 +1,7 @@ ngIRCd - Next Generation IRC Server - (c)2001-2005 Alexander Barton, + (c)2001-2006 Alexander Barton, alex@barton.de, http://www.barton.de/ ngIRCd is free software and published under the @@ -10,9 +10,34 @@ -- ChangeLog -- +ngIRCd 0.10.0-pre1 (2006-08-02) + + - Validate "ServerName" (see RFC 2812, section 2.3.1). + - Enhanced DIE to accept a single parameter ("comment text") which is sent + to all locally connected clients before the server goes down. + - The ngIRCd handles time shifts backwards more gracefully now (the + timeout handling doesn't disconnect clients by mistake any more). + - Internal: Restructured connection handling (the connection ID is equal + to the file descriptor of the connection). + - Internal: Simplified resolver code. + - JOIN now supports more than one channel key at a time. + - Implemented numeric "333": Time and user name who set a channel topic. + - Enhanced the handler for PING and PONG commands: fix forwarding and enable + back-passing of a client supplied additional argument of PING. + - Changed handling of timeouts for unregistered connections: don't reset + the counter if data is received and disconnect clients earlier. + - Removed unnecessary #define of "LOCAL", now use plain C "static" instead. + - Channel topics are no longer limited to 127 characters: now the only limit + is the maximum length of an IRC command, i. e. 512 bytes (in practice, this + limits the topic to about 490 characters due to protocol overhead). + - Reverse DNS lookup code now checks the result by doing an additional + lookup to prevent spoofing. + - Added new IO layer which (optionally) supports epoll() and kqueue() in + addition to the select() interface. + ngIRCd 0.9.2 (2005-10-15) - - Fixed a bug that could cause the damon to crash when outgoing server + - Fixed a bug that could cause the daemon to crash when outgoing server connections can't be established. - Fixed a bug that caused the daemon to leak file descriptors when no resolver subprocesses could be created. @@ -32,7 +57,7 @@ ngIRCd 0.9.0 (2005-07-24) ngIRCd 0.9.0-pre1 (2005-07-09) - Fixed maximum length of user names, now allow up to 9 characters. - Cut off oversized IRC messages that should be sent to the network instead - of shuttding down the (wrong) connection. + of shutting 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. diff --git a/doc/FAQ.txt b/doc/FAQ.txt index 1e42903..e17f5fc 100644 --- a/doc/FAQ.txt +++ b/doc/FAQ.txt @@ -62,6 +62,15 @@ A: On Linux/glibc with chroot enabled you need to put some libraries inside is to either disable chroot support or to link against dietlibc instead of glibc. (tnx to Sebastian Siewior) +Q: I am running Linux and ngircd dies on startup with the follwing errors: + IO subsystem: epoll (hint size 100, initial maxfd 100, masterfd -1). + Cannot initialize IO routines: Function not implemented + Server isn't listening on a single port! + ngircd exiting due to fatal errors! +A: epoll is only supported on 2.6 Linux kernels. Either use a 2.6 kernel, or + re-run configure with the --without-epoll parameter. After configure + completed, you should see select() being listed as IO backend: + '(I/O backend: "select()"'). IV. Bugs!? ~~~~~~~~~~ diff --git a/doc/INSTALL b/doc/INSTALL index f16fb1f..ea67bd2 100644 --- a/doc/INSTALL +++ b/doc/INSTALL @@ -1,7 +1,7 @@ ngIRCd - Next Generation IRC Server - (c)2001-2004 by Alexander Barton, + (c)2001-2006 by Alexander Barton, alex@barton.de, http://www.barton.de/ ngIRCd is free software and published under the @@ -14,6 +14,12 @@ I. Upgrade Information ~~~~~~~~~~~~~~~~~~~~~~ +Differences to version 0.9.x + +- The option of the configure script to enable support for Zeroconf/Bonjour/ + Rendezvous/WhateverItIsNamedToday has been renamed: + --with-rendezvous -> --with-zeroconf + Differences to version 0.8.x - The maximum length of passwords has been raised to 20 characters (instead @@ -121,7 +127,59 @@ This files will be installed by default: - /usr/local/share/doc/ngircd/: documentation -II. Useful make-targets +III. Additional features +~~~~~~~~~~~~~~~~~~~~~~~~ + +The following optional features can be compiled into the daemon by passing +options to the "configure" script. Most options can handle a argument +which will be used to search for the required libraries and header files in +the given paths ("/lib/...", "/include/...") in addition to the +standard locations. + +* Syslog Logging (autodetected by default): + --with-syslog[=] / --without-syslog + + Enable (disable) support for logging to "syslog", which should be + available on most modern UNIX-like operating systems by default. + +* ZLib Compression (autodetected by default): + --with-zlib[=] / --without-zlib + + Enable (disable) support for compressed server-server links. + The Z compression library ("libz") is required for this option. + +* IO Backend (autodetected by default): + --with-epoll[=] / --without-epoll + --with-kqueue[=] / --without-kqueue + + ngIRCd can use three different IO "backends": the "old school" select() + API which should be supported by most UNIX-like operating systems, or the + more efficient and flexible epoll() (Linux 2.6) or kqueue() (BSD) APIs. + By default the IO backend is autodetected, but you can use "--without-xxx" + to disable a more enhanced API and force the daemon to use select(). + +* IDENT-Support: + --with-ident[=] + + Include support for IDENT ("AUTH") lookups. The "ident" library is + required for this option. + +* ZeroConf Support: + --with-zeroconf[=] + + Compile ngIRCd with support for ZeroConf multicast DNS service registration. + Either the Apple ZeroConf implementation (e. g. Mac OS X) or the Howl + library is required. Which one is available is autodetected. + +* TCP-Wrappers: + --with-tcp-wrappers[=] + + Include support for Wietse Venemas "TCP Wrappers" to limit client access + to the daemon, for example by using "/etc/hosts.{allow|deny}". + The "libwrap" is required for this option. + + +IV. Useful make-targets ~~~~~~~~~~~~~~~~~~~~~~~ The Makefile produced by the configure-script contains always these useful @@ -137,8 +195,8 @@ targets: next step: -> ./autogen.sh -III. Sample configuration file ngircd.conf -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +V. Sample configuration file ngircd.conf +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In the sample configuration file, there are comments beginning with "#" OR ";" -- this is only for the better understanding of the file. @@ -158,7 +216,7 @@ The meaning of the variables in the configuration file is explained in the and in the "ngircd.conf" manual page. -IV. Command line options +VI. Command line options ~~~~~~~~~~~~~~~~~~~~~~~~ These parameters could be passed to the ngIRCd: diff --git a/doc/NEWS b/doc/NEWS index 0bb882d..57af7d6 100644 --- a/doc/NEWS +++ b/doc/NEWS @@ -1,7 +1,7 @@ ngIRCd - Next Generation IRC Server - (c)2001-2005 Alexander Barton, + (c)2001-2006 Alexander Barton, alex@barton.de, http://www.barton.de/ ngIRCd is free software and published under the @@ -10,7 +10,21 @@ -- NEWS -- -ngIRCd 0.9.0 +ngIRCd 0.10.0-pre1 (2006-08-02) + + - Enhanced DIE to accept a single parameter ("comment text") which is sent + to all locally connected clients before the server goes down. + - JOIN now supports more than one channel key at a time. + - Implemented numeric "333": Time and user name who set a channel topic. + - Channel topics are no longer limited to 127 characters: now the only limit + is the maximum length of an IRC command, i. e. 512 bytes (in practice, this + limits the topic to about 490 characters due to protocol overhead). + - Reverse DNS lookup code now checks the result by doing an additional + lookup to prevent spoofing. + - Added new IO layer which (optionally) supports epoll() and kqueue() in + addition to the select() interface. + +ngIRCd 0.9.0 (2005-07-24) - Never run with root privileges but always switch the user ID. - Make "netsplit" messages RFC compliant. diff --git a/doc/Platforms.txt b/doc/Platforms.txt index 5122f03..1d46e43 100644 --- a/doc/Platforms.txt +++ b/doc/Platforms.txt @@ -26,11 +26,13 @@ list can be updated. Thanks for your help! | | | | Platform Compiler ngIRCd Date Tester C M T R See --------------------------- ------------ ---------- -------- ------ - - - - --- +alpha/unknown/netbsd3.0 gcc 3.3.3 CVSHEAD 06-05-07 fw Y Y Y Y (3) 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.2.1 gcc 3.3.3 0.8.0 04-05-30 alex Y Y Y Y +i386/unknown/freebsd6.1 gcc 3.4.4 CVSHEAD 06-05-07 fw Y Y Y Y (4) 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.3.1 0.8.0 04-05-30 alex Y Y n Y @@ -41,6 +43,7 @@ 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.4.0 gcc 3.3 0.8.0 04-05-30 alex Y Y Y Y +powerpc/apple/darwin7.9.0 gcc 3.3 CVSHEAD 06-05-07 fw Y Y Y Y (3) 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 @@ -59,7 +62,8 @@ Notes (2) This compiler is an pre-ANSI C compiler, therefore the source code is automatically converted using the included ansi2knr tool while building. - +(3) kqueue() IO backend +(4) 6.1-PRERELEASE -- $Id$ diff --git a/doc/Protocol.txt b/doc/Protocol.txt index c740a72..c9929c9 100644 --- a/doc/Protocol.txt +++ b/doc/Protocol.txt @@ -93,7 +93,7 @@ defined in RFC 2813, section 4.1.1. II.2 Exchange channel-modes, topics, and persistent channels Command: CHANINFO - Parameters: + [] + Parameters: + [] Used by: servers only CHANINFO is used by servers to inform each other about a channel: its diff --git a/doc/README b/doc/README index 5264739..0097156 100644 --- a/doc/README +++ b/doc/README @@ -1,7 +1,7 @@ ngIRCd - Next Generation IRC Server - (c)2001-2005 Alexander Barton, + (c)2001-2006 Alexander Barton, alex@barton.de, http://www.barton.de/ ngIRCd is free software and published under the diff --git a/doc/sample-ngircd.conf b/doc/sample-ngircd.conf index b872e04..6ae0fc6 100644 --- a/doc/sample-ngircd.conf +++ b/doc/sample-ngircd.conf @@ -7,25 +7,25 @@ # Comments are started with "#" or ";". # # Use "ngircd --configtest" (see manual page ngircd(8)) to validate that the -# server interpreted the configuration file as expected! +# server interprets the configuration file as expected! # [Global] # The [Global] section of this file is used to define the main # configuration of the server, like the server name and the ports # on which the server should be listening. - + # Server name in the IRC network, must contain at least one dot # (".") and be unique in the IRC network. Required! Name = irc.the.net - + # Info text of the server. This will be shown by WHOIS and # LINKS requests for example. Info = Server Info Text # Global password for all users needed to connect to the server ;Password = abc - + # Information about the server and the administrator, used by the # ADMIN command. Not required by server but by RFC! ;AdminInfo1 = Description @@ -39,7 +39,7 @@ # IP address on which the server should listen. (Default: empty, # so the server listens on all IP addresses of the system) ;Listen = 1.2.3.4 - + # Text file with the "message of the day" (MOTD). This message will # be shown to all users connecting to the server: ;MotdFile = /usr/local/etc/ngircd.motd @@ -92,11 +92,11 @@ # Mask IRC Operator mode requests as if they were coming from the # server? (This is a compatibility hack for ircd-irc2 servers) ;OperServerMode = no - + # Maximum number of simultaneous connection the server is allowed # to accept (<=0: unlimited): ;MaxConnections = -1 - + # Maximum number of simultaneous connections from a single IP address # the server will accept (<=0: unlimited): ;MaxConnectionsIP = 5 @@ -107,7 +107,7 @@ [Operator] # [Operator] sections are used to define IRC Operators. There may be # more than one [Operator] block, one for each local operator. - + # ID of the operator (may be different of the nick name) ;Name = TheOper @@ -125,7 +125,7 @@ # configure a port for the connection, then this ngircd tries to # connect to to the other server on the given port; if not it waits # for the other server to connect. - # There may be more than one server block. + # There may be more than one server block, one for each server. # # Server Groups: # The ngIRCd allows "server groups": You can assign an "ID" to every @@ -133,16 +133,18 @@ # group won't answer, the ngIRCd tries to connect to the next server # in the given group. But the ngircd never tries to connect to two # servers with the same group ID. - - # IRC name of the server + + # IRC name of the remote server, must match the "Name" variable in + # the [Global] section of the other server (when using ngIRCd). ;Name = irc2.the.net - - # Internet host name of the peer + + # Internet host name or IP address of the peer (only required when + # this server should establish the connection). ;Host = connect-to-host.the.net # Port of the server to which the ngIRCd should connect. If you # assign no port the ngIRCd waits for incoming connections. - ;Port = 6666 + ;Port = 6667 # Own password for the connection. This password has to be configured # as "PeerPassword" on the other server. @@ -151,7 +153,7 @@ # Foreign password for this connection. This password has to be # configured as "MyPassword" on the other server. ;PeerPassword = PeerSecret - + # Group of this server (optional) ;Group = 123 @@ -164,14 +166,14 @@ # persist when there are no more members left. # Persistent channels are marked with the mode 'P', which can be set # and unset by IRC operators like other modes on the fly. - # There may be more than one [Channel] block. - + # There may be more than one [Channel] block, one for each channel. + # Name of the channel ;Name = #TheName # Topic for this channel ;Topic = a great topic - + # Initial channel modes ;Modes = tn -- 2.39.2