<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.darenet.org/skins/common/feed.css?12"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.darenet.org/index.php?action=history&amp;feed=atom&amp;title=IRC_2.4_release_notes</id>
		<title>IRC 2.4 release notes - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.darenet.org/index.php?action=history&amp;feed=atom&amp;title=IRC_2.4_release_notes"/>
		<link rel="alternate" type="text/html" href="http://wiki.darenet.org/index.php?title=IRC_2.4_release_notes&amp;action=history"/>
		<updated>2026-05-27T02:55:56Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.15.1</generator>

	<entry>
		<id>http://wiki.darenet.org/index.php?title=IRC_2.4_release_notes&amp;diff=2252&amp;oldid=prev</id>
		<title>Secretagent:&amp;#32;New page: &lt;pre&gt;/************************************************************************  *   IRC - Internet Relay Chat, 2.4.notes  *   Copyright (C) 1990   Markku Savela  *  *   This program is fre...</title>
		<link rel="alternate" type="text/html" href="http://wiki.darenet.org/index.php?title=IRC_2.4_release_notes&amp;diff=2252&amp;oldid=prev"/>
				<updated>2008-04-25T03:43:51Z</updated>
		
		<summary type="html">&lt;p&gt;New page: &amp;lt;pre&amp;gt;/************************************************************************  *   IRC - Internet Relay Chat, 2.4.notes  *   Copyright (C) 1990   Markku Savela  *  *   This program is fre...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;/************************************************************************&lt;br /&gt;
 *   IRC - Internet Relay Chat, 2.4.notes&lt;br /&gt;
 *   Copyright (C) 1990   Markku Savela&lt;br /&gt;
 *&lt;br /&gt;
 *   This program is free software; you can redistribute it and/or modify&lt;br /&gt;
 *   it under the terms of the GNU General Public License as published by&lt;br /&gt;
 *   the Free Software Foundation; either version 3, or (at your option)&lt;br /&gt;
 *   any later version.&lt;br /&gt;
 *&lt;br /&gt;
 *   This program is distributed in the hope that it will be useful,&lt;br /&gt;
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
 *   GNU General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 *   You should have received a copy of the GNU General Public License&lt;br /&gt;
 *   along with this program; if not, write to the Free Software&lt;br /&gt;
 *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
IRC 2.4 release notes  6 May 1990/msa (Markku.Savela@vtt.fi)&lt;br /&gt;
============================================================&lt;br /&gt;
&lt;br /&gt;
   This document explains the changes I have done up to this&lt;br /&gt;
point. Some additional changes and packaging has been made by&lt;br /&gt;
Chelsea (chelsea@earth.cchem.berkeley.edu). This is personal&lt;br /&gt;
view of the changes.&lt;br /&gt;
&lt;br /&gt;
CHANGES TO LAST THE OFFICIAL RELEASE (2.2PL1)&lt;br /&gt;
&lt;br /&gt;
   This release of irc2.4 is based to 2.2PL1 release (see the&lt;br /&gt;
HISTORY chapter later in this document). Aside from fixing the&lt;br /&gt;
bugs, this version is in many ways different from the 2.2PL1.&lt;br /&gt;
The purpose of the most changes is to make it easier to run an&lt;br /&gt;
IRC server. Normal users benefit from these changes indirectly&lt;br /&gt;
by getting a better maintained server.&lt;br /&gt;
&lt;br /&gt;
1. Changes visible to normal users&lt;br /&gt;
&lt;br /&gt;
   Even while mainly fixing bugs, some user visible changes have&lt;br /&gt;
crept in too.&lt;br /&gt;
&lt;br /&gt;
1.1 General note on wildcards&lt;br /&gt;
&lt;br /&gt;
   Many commands accept now wildcard matching where applicable. All&lt;br /&gt;
compares are case insensitive (e.g. &amp;quot;a&amp;quot; == &amp;quot;A&amp;quot;). The wild cards are&lt;br /&gt;
&lt;br /&gt;
	?	matches any single character&lt;br /&gt;
&lt;br /&gt;
	*	matches any number of characters, also empty&lt;br /&gt;
		string. [PL1 had a bug, which caused &amp;quot;*du*&amp;quot;&lt;br /&gt;
		not match &amp;quot;....edu&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
1.2 Server supported wildcards for &amp;quot;/who mask&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
   Protocol message is &amp;quot;WHO mask&amp;quot;, where mask can be&lt;br /&gt;
&lt;br /&gt;
	empty&lt;br /&gt;
	0	List all users [No change from PL1]&lt;br /&gt;
&lt;br /&gt;
	*	List all users on the same channel where the user is&lt;br /&gt;
		(or all, if user is on 0) [No change from PL1].&lt;br /&gt;
&lt;br /&gt;
	number	List all users on the specified channel [No change&lt;br /&gt;
		from PL1]. Note, if the &amp;quot;mask&amp;quot; begings with a digit,&lt;br /&gt;
		this form is assumed, and the remainder of mask is&lt;br /&gt;
		ignored, e.g. &amp;quot;/who 12*.fi&amp;quot; gives all people from&lt;br /&gt;
		channel 12 and ignores the &amp;quot;*.fi&amp;quot; part.&lt;br /&gt;
&lt;br /&gt;
	mask	If the mask is any string, it will be compared&lt;br /&gt;
		*separately* to each information field of the user&lt;br /&gt;
		and if a match is found in any field, that user&lt;br /&gt;
		is included into the list. The fields searched&lt;br /&gt;
		are&lt;br /&gt;
&lt;br /&gt;
			nickname&lt;br /&gt;
			loginname (account name)&lt;br /&gt;
			real name (text shown in parenthesis)&lt;br /&gt;
			hostname (users machine)&lt;br /&gt;
			servername (server he/she is using)&lt;br /&gt;
&lt;br /&gt;
		Note: servername is not usually shown on WHO output,&lt;br /&gt;
		but is included in anyway. Example: finding all users&lt;br /&gt;
		somehow connected with Finnish sites, can be achieved&lt;br /&gt;
		with mask &amp;quot;*.fi&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
1.3 Changes to /whois command&lt;br /&gt;
&lt;br /&gt;
   As WHO, also /whois accepts wild cards as a parameters. WHOIS&lt;br /&gt;
returns information for all users whose nickname matches the specified&lt;br /&gt;
mask.&lt;br /&gt;
&lt;br /&gt;
   WHOIS automaticly calls WHOWAS [see below], if the attempted nickname&lt;br /&gt;
is not found.&lt;br /&gt;
&lt;br /&gt;
1.4 Short term &amp;quot;WHOWAS&amp;quot; history&lt;br /&gt;
&lt;br /&gt;
   The server has a short in memory cache of the recent nickname changes&lt;br /&gt;
(the current default is set to 200 last changes). The design goal of&lt;br /&gt;
this is that it remembers changes in last few minutes, there is no&lt;br /&gt;
intention of this to be a long term history. That must be a separate&lt;br /&gt;
project, although it could use the hooks provided by this service.&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;WHOWAS nickname&amp;quot; queries this cache and returns about the same&lt;br /&gt;
information that WHOIS would do, if the nickname is found. Wildcards&lt;br /&gt;
are not accepted here, this is a specifically designed feature. If&lt;br /&gt;
the name is not found, WHOWAS doesn't reply anything. This is because&lt;br /&gt;
the most useful use of WHOWAS is implicitly through &amp;quot;WHOIS&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
   This history is also implicitly utilized by KILL command.&lt;br /&gt;
&lt;br /&gt;
1.5 New SERVER-SERVER/SERVER-CLIENT protocol message WALLOPS&lt;br /&gt;
&lt;br /&gt;
   The message &amp;quot;:source WALLOPS :Message&amp;quot; sends the message text&lt;br /&gt;
to all operators that are currently online. Any user can use this&lt;br /&gt;
command, it's not restricted. How this function is activated, depends&lt;br /&gt;
on the client, but if nothing else works, &amp;quot;/quote wallops text&amp;quot; should.&lt;br /&gt;
&lt;br /&gt;
   NOTE:This function will not be fully operational until *ALL*&lt;br /&gt;
	servers have upgraded to version 2.4. Also, operators&lt;br /&gt;
	must be using a client that recognizes this command.&lt;br /&gt;
&lt;br /&gt;
   This is really a hasty addition. But, done this way it follows&lt;br /&gt;
the general IRC message philosophy, where messages are sent only&lt;br /&gt;
to links where they are needed (e.g. WALLOPS goes only to servers&lt;br /&gt;
that have opers online--it's not broadcast to every server).&lt;br /&gt;
&lt;br /&gt;
1.6 General use of wildcarding in server queries&lt;br /&gt;
&lt;br /&gt;
   All commands that previously took a servername as a parameter,&lt;br /&gt;
now accept also a wildcarded mask. The mask is replaced with&lt;br /&gt;
the first matching servername. The following user level commands&lt;br /&gt;
are affected&lt;br /&gt;
&lt;br /&gt;
	/admin server	-- administrative info&lt;br /&gt;
	/time server	-- local time&lt;br /&gt;
	/version server	-- the server version&lt;br /&gt;
	/motd server	-- &amp;quot;the message of the day&amp;quot;&lt;br /&gt;
	/info server	-- info (usually same on same server version)&lt;br /&gt;
	/stat f server	-- statistics information&lt;br /&gt;
	/users server	-- users logged on server machine&lt;br /&gt;
&lt;br /&gt;
   Note: Remote capability is a new feature for &amp;quot;info&amp;quot; and &amp;quot;stat&amp;quot;&lt;br /&gt;
commands. Until all servers have upgraded, these commands may not&lt;br /&gt;
reach the intended target and may return the information from some&lt;br /&gt;
intermediate server.&lt;br /&gt;
&lt;br /&gt;
1.7 Marking user AWAY&lt;br /&gt;
&lt;br /&gt;
   v2.2PL1 version and earlier showed the AWAY-state (G) only for&lt;br /&gt;
the local users of the same server. AWAY status could be queried&lt;br /&gt;
only by sending a message to a user. This release (or since msa.4)&lt;br /&gt;
broadcasts the away status to every server and the commands /WHO and&lt;br /&gt;
/WHOIS give this information reliably.&lt;br /&gt;
&lt;br /&gt;
   A side effect of this change is: when a user marks himself/herself&lt;br /&gt;
as AWAY, all pre-msa.4 servers that are reached will send back an&lt;br /&gt;
acknowlegde message. Until all servers are upgraged, use of AWAY&lt;br /&gt;
is somewhat inconvenient. If you get extra messages from AWAY,&lt;br /&gt;
they also contain the server information. Use /admin command and&lt;br /&gt;
send a *friendly* request for the admin to upgrage his/her server&lt;br /&gt;
to a working version, namely 2.4 :)&lt;br /&gt;
&lt;br /&gt;
1.8 Servers don't restrict characters within messages&lt;br /&gt;
&lt;br /&gt;
   The parameter fields of the messages can now contain any characters&lt;br /&gt;
in range 1-255, except '\r', '\n' and '\0'. The client programs should&lt;br /&gt;
by default filter away the &amp;quot;dangerous&amp;quot; control characters, but intelligent&lt;br /&gt;
clients can utilize this change and allow exchanges with foreign&lt;br /&gt;
8-bit (or wider) charactersets. (The actual command parts must still be&lt;br /&gt;
represented with the ordinary 7-bit characters.)&lt;br /&gt;
&lt;br /&gt;
2. Changes visible to the server administrator&lt;br /&gt;
&lt;br /&gt;
2.1 Identifying servers&lt;br /&gt;
&lt;br /&gt;
   Servers/clients have now always two names (it was this way in&lt;br /&gt;
PL1, but I think this version makes the idea more clear):&lt;br /&gt;
&lt;br /&gt;
	Announced Name:&lt;br /&gt;
&lt;br /&gt;
	The official name of the server (the name you use in&lt;br /&gt;
	/time, /quote connect, etc) or users nickname. Servers&lt;br /&gt;
	name is usually the hostname, but can actually be almost&lt;br /&gt;
	any string of characters resembling hostname. This one&lt;br /&gt;
	is given in M-line of ircd.conf.&lt;br /&gt;
&lt;br /&gt;
	Socket hostname:&lt;br /&gt;
&lt;br /&gt;
	Socket hostname of the server or client. This is the hostname&lt;br /&gt;
	of the connecting server/client and this is resolved from the&lt;br /&gt;
	connection. If resolve cannot be done, ircd defaults to using&lt;br /&gt;
	numeric IP-address. *ALL* access checks are based on this&lt;br /&gt;
	name, especially noteworthy fact, if your resolver cannot find&lt;br /&gt;
	hostnames by IP-address, you must allow the access by IP-numbers&lt;br /&gt;
	in your ircd.conf.&lt;br /&gt;
&lt;br /&gt;
   In many places, where servers name is shown, actually both are&lt;br /&gt;
shown. The general format of the displayed name is&lt;br /&gt;
&lt;br /&gt;
	AnnouncedName[SocketHostName]&lt;br /&gt;
&lt;br /&gt;
When a connection is yet unkown, there is no AnnouncedName, and if the&lt;br /&gt;
AnnouncedName is the same as SocketHostName, the &amp;quot;[..]&amp;quot;-part is omitted.&lt;br /&gt;
&lt;br /&gt;
2.2 Many notices to local operators&lt;br /&gt;
&lt;br /&gt;
   If an oper is signed on the server, he/she will receive many&lt;br /&gt;
notices about exceptional conditions and servers actions. When&lt;br /&gt;
something goes wrong, it should be much easier to fix the problems.&lt;br /&gt;
&lt;br /&gt;
   Few often occurring, inportant error messages are&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;Write error to SERVERNAME, closing link&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	write() to socket returned with an error. Server is&lt;br /&gt;
	closing the link. This means usually network problems&lt;br /&gt;
	which you can do nothing about.&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;Max buffering limit exceeded for SERVERNAME&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	This is the situation where old server would have been&lt;br /&gt;
	&amp;quot;frozen&amp;quot;. The socket buffers in your OS have been filled and&lt;br /&gt;
	even servers own predefined internal buffering MAX for a link&lt;br /&gt;
	has been exceeded. Exceeding this limit most likely means&lt;br /&gt;
	that the link is really dead, so the server closes the link&lt;br /&gt;
	and scratches all queued output for it. If the limit is&lt;br /&gt;
	set high ( &amp;gt; 20000 bytes), you won't usually see this, but&lt;br /&gt;
	just &amp;quot;No responce from SERVERNAME, closing link&amp;quot; as the&lt;br /&gt;
	server does not reply to PING as it should.&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;Link SERVERNAME cancelled, server SERVERNAME already exits&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	Two different servers from your net fragment attempted&lt;br /&gt;
	to connect same other net fragment about the same time&lt;br /&gt;
	and this collision is detected at your server. IRC routing&lt;br /&gt;
	does not allow loops, the link causing the loop is closed.&lt;br /&gt;
	(Which of the two links gets closed is mostly determined&lt;br /&gt;
	by pure chance and timing--you may lose a better link this&lt;br /&gt;
	way. Collisions should be rare in normal operation, if&lt;br /&gt;
	the timers in &amp;quot;config.h&amp;quot; are not messed up too much...)&lt;br /&gt;
&lt;br /&gt;
	Of course, you get this too, if you try to connect to a&lt;br /&gt;
	server that is already connected by some other route. In&lt;br /&gt;
	that case your attempted connection is just safely cancelled.&lt;br /&gt;
&lt;br /&gt;
   The notices attempt to be self explaining.&lt;br /&gt;
&lt;br /&gt;
2.3 Links statistics collecting&lt;br /&gt;
&lt;br /&gt;
   IRCD now counts the bytes and messages transmitted to each open&lt;br /&gt;
link. This information can be output with a command &amp;quot;/stats l&amp;quot;&lt;br /&gt;
(&amp;quot;/stats&amp;quot; or &amp;quot;/stat m&amp;quot; will give the old message count statistics).&lt;br /&gt;
&lt;br /&gt;
   Sample output&lt;br /&gt;
&lt;br /&gt;
Link           SendQ  SendM SendBytes  RcveM RcveBytes Open since&lt;br /&gt;
oddjob.uchicago    0    203      8067    772     34321 Sun May  6 02:15:45 1990&lt;br /&gt;
cs.hut.fi[sauna    0   1916     79798     94      3082 Sun May  6 01:51:25 1990&lt;br /&gt;
otax.tky.hut.fi    0   3722    151511    426     22690 Sun May  6 00:25:54 1990&lt;br /&gt;
nada.kth.se        0   8775    355811   5333    223853 Sat May  5 14:11:49 1990&lt;br /&gt;
vehka.cs.uta.fi    0  23816    882000    901     41156 Fri May  4 22:50:23 1990&lt;br /&gt;
lut.fi             0  25145    943765   1068     35020 Fri May  4 22:34:16 1990&lt;br /&gt;
kreeta.helsinki    0  24286    899191    957     47085 Fri May  4 22:33:28 1990&lt;br /&gt;
naakka.tut.fi      0  27754   1067302   8288    362960 Fri May  4 22:33:14 1990&lt;br /&gt;
joyx.joensuu.fi    0  30003   1172949   2300     80053 Fri May  4 22:33:05 1990&lt;br /&gt;
tel4.tel.vtt.fi    04083771 167473890 863475  35022755 Mon Apr 23 00:15:17 1990&lt;br /&gt;
                   |    |       |       |       |      |&lt;br /&gt;
                   |    |       |       |       |      Link established&lt;br /&gt;
                   |    |       |       |       The number of bytes received&lt;br /&gt;
                   |    |       |       The number protocol messages received&lt;br /&gt;
                   |    |       The number of bytes transmitted&lt;br /&gt;
                   |    The number of protocol messages transmitted&lt;br /&gt;
                   The amount of queued data in bytes (if socket is hung)&lt;br /&gt;
&lt;br /&gt;
   The last row (with the local servername) contains the total&lt;br /&gt;
cumulative counts for all connections since the server was started.&lt;br /&gt;
&lt;br /&gt;
   One can query the statistics of a remote server by adding the servers&lt;br /&gt;
name to the command &amp;quot;/stat l servername&amp;quot;. Of course, this only works,&lt;br /&gt;
if all intermediate servers have upgraged. The first &amp;quot;old&amp;quot; server&lt;br /&gt;
will stop the propagation and return the message counts by default.&lt;br /&gt;
&lt;br /&gt;
2.4 Connecting servers&lt;br /&gt;
&lt;br /&gt;
   An oper can manually activate a connection phase to any server&lt;br /&gt;
defined in ircd.conf C-lines (to successfully complete the connection,&lt;br /&gt;
the N-line must be present too). The message achieving this is&lt;br /&gt;
&lt;br /&gt;
	CONNECT servername portnumber&lt;br /&gt;
&lt;br /&gt;
   where servername may be a mask string containing wildcards. This&lt;br /&gt;
name is matched against entries in ircd.conf (notice: the testing&lt;br /&gt;
is made in reverse order, e.g. the last C-line in ircd.conf is tested&lt;br /&gt;
first).  If portnumber is omitted, the ircd uses the one given in the&lt;br /&gt;
found C-line. If the C-line does not have the portnumber, the compiled&lt;br /&gt;
default will be used (PORTNUM from config.h).&lt;br /&gt;
&lt;br /&gt;
   This release allows also for remote connecting. An oper can send&lt;br /&gt;
a connect request to remote server with&lt;br /&gt;
&lt;br /&gt;
	CONNECT servername portnumber remoteserver&lt;br /&gt;
&lt;br /&gt;
This command is passed to the 'remoteserver' and it then tries to&lt;br /&gt;
execute it like it was given locally. (If there are opers online on&lt;br /&gt;
that server, they will get a notice about this happening.) Note, that&lt;br /&gt;
one can remotely connect only what is defined in ircd.conf. Usually&lt;br /&gt;
one needs and should use this only for immediate your neighbours. Nobody&lt;br /&gt;
should randomly go and give connect requests to distant servers, unless&lt;br /&gt;
one knows it's absolutely necessary and is very familiar about the&lt;br /&gt;
linking setup there.&lt;br /&gt;
&lt;br /&gt;
2.4 Terminating connections&lt;br /&gt;
&lt;br /&gt;
   The SQUIT command in PL1 was not intended to be used manually and&lt;br /&gt;
was very dangerous to use (it also created so called &amp;quot;ghost servers&amp;quot;).&lt;br /&gt;
Since msa.4, the SQUIT has been safer to use manually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;SQUIT z&amp;quot; s                          a&lt;br /&gt;
              \                        /&lt;br /&gt;
               \                      /&lt;br /&gt;
         ------- x ------- y --| |-- z ------- b&lt;br /&gt;
                /               ^     \&lt;br /&gt;
              /                 |       \&lt;br /&gt;
            p                            c&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;SQUIT z&amp;quot; will break the link between &amp;quot;y&amp;quot; and &amp;quot;z&amp;quot; if injected&lt;br /&gt;
	into system from &amp;quot;s&amp;quot;. After that the net will be in two fragmets,&lt;br /&gt;
	broken between &amp;quot;y&amp;quot; and &amp;quot;z&amp;quot;. Server &amp;quot;z&amp;quot; never sees the actual&lt;br /&gt;
	SQUIT, all it observers is that the link to &amp;quot;y&amp;quot; suddenly closes&lt;br /&gt;
	(opers on z would see it as &amp;quot;Server y closed the connection&amp;quot;&lt;br /&gt;
	notice. Opers on y would see it as &amp;quot;Received remote SQUIT from&lt;br /&gt;
	x&amp;quot;, note that the actual source &amp;quot;s&amp;quot; is not identified in the&lt;br /&gt;
	current version--for reasons too complicated to be explained&lt;br /&gt;
	here).&lt;br /&gt;
&lt;br /&gt;
	*WARNING* *WARNING* If the server &amp;quot;y&amp;quot; is still running pre-msa.4&lt;br /&gt;
	(like PL1), don't *EVER* issue a SQUIT for its links (unless the&lt;br /&gt;
	link is to a leaf node or verifiably a &amp;quot;ghost server&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
	Note, that when the link between &amp;quot;y&amp;quot; and &amp;quot;z&amp;quot; breaks, y will spit&lt;br /&gt;
	out SQUIT's for &amp;quot;z&amp;quot;, &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot; and &amp;quot;c&amp;quot; to &amp;quot;x&amp;quot;. At same time &amp;quot;z&amp;quot;&lt;br /&gt;
	is sending SQUIT's for &amp;quot;x&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;p&amp;quot;, etc to &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot; and &amp;quot;c&amp;quot;.&lt;br /&gt;
	SQUIT is normally generated by servers automaticly, it's just&lt;br /&gt;
	a later modification (msa.4) that allows an OPER to use this&lt;br /&gt;
	same message to &amp;quot;simulate&amp;quot; a link break at certain point.&lt;br /&gt;
&lt;br /&gt;
	*IMPORTANT* If server &amp;quot;z&amp;quot; has configuration &amp;quot;C:y::y:6667&amp;quot;, it&lt;br /&gt;
	automaticly attempts to reconnect after a short delay (currently&lt;br /&gt;
	10 seconds), but only *if* the connection has been up long enough&lt;br /&gt;
	reliably (currently set to 10 minutes). If the thus formed link is&lt;br /&gt;
	squit another time, it will not attempt to come back immeatedly.&lt;br /&gt;
	This gives an oper time to reconfigure the links if that first&lt;br /&gt;
	short delay is not enough.&lt;br /&gt;
	&lt;br /&gt;
    As in all commands, also SQUIT accepts wildcards, but be careful to&lt;br /&gt;
give sufficient identification. SQUIT of wrong server is not nice...&lt;br /&gt;
&lt;br /&gt;
2.5 KILL message&lt;br /&gt;
&lt;br /&gt;
    KILL will implicitly use the history database. If a KILL is&lt;br /&gt;
issued for a nick that has been changed to another, the server&lt;br /&gt;
will automaticly re-issue the kill with the new nickname, if&lt;br /&gt;
the change has happened recently (current value should be 90&lt;br /&gt;
seconds). If a &amp;quot;terrorist&amp;quot; is clearly distrupting channel by&lt;br /&gt;
bombarding it with garbage from negative channels and changing&lt;br /&gt;
nick all time, there is no need to consult the &amp;quot;WHOWAS&amp;quot; data&lt;br /&gt;
base, just use the nickname that was used to send the garbage&lt;br /&gt;
and ircd hunts the culprit down. When this change of target&lt;br /&gt;
happens, the oper issuing the kill is notified.&lt;br /&gt;
&lt;br /&gt;
NOTE:	With automatic, kill-proof-reconnecting clients, the&lt;br /&gt;
	value of KILL is becoming insignificant...&lt;br /&gt;
&lt;br /&gt;
2.6 Changing the server defaults from the command line&lt;br /&gt;
&lt;br /&gt;
    The servers activation command is now&lt;br /&gt;
&lt;br /&gt;
ircd[ -f configfile][ -h servername][ -p portnumber][ -x debuglevel]&lt;br /&gt;
&lt;br /&gt;
where parameters can be given in any order. If the &amp;quot;configfile&amp;quot;&lt;br /&gt;
is defined, it will override the default specified in the file&lt;br /&gt;
&amp;quot;config.h&amp;quot;. If &amp;quot;servername&amp;quot; is defined, it will override the&lt;br /&gt;
one defined in the M-line on the configuration line. &amp;quot;portnumber&amp;quot;&lt;br /&gt;
will override the compiled default (from &amp;quot;config.h&amp;quot;) or the&lt;br /&gt;
one from the M-line of the configuration file. The &amp;quot;debuglevel&amp;quot;&lt;br /&gt;
will determine the amout of logging the server does into a&lt;br /&gt;
log file that has been define in &amp;quot;config.h&amp;quot;. The &amp;quot;debuglevel&amp;quot;&lt;br /&gt;
should never be defined for a server running normally, it can&lt;br /&gt;
quickly generate megabytes of trace. Usually needed only when&lt;br /&gt;
the server is incapable of starting properly at all, then one&lt;br /&gt;
run with &amp;quot;-x9&amp;quot; usually is enough to reveal the problem.&lt;br /&gt;
&lt;br /&gt;
3. General cleaning up and commenting the code&lt;br /&gt;
&lt;br /&gt;
   This issue is controversial. My way of fixing bugs is not just&lt;br /&gt;
fix them, I also want to program defensively, make it difficult to&lt;br /&gt;
make new errors. Thus I have heavily reformatted and reorganized&lt;br /&gt;
those files that I have had to touch. Some functions have been&lt;br /&gt;
renamed intentionally to catch all uses of those functions [because&lt;br /&gt;
the functions semantics or calling sequences have been changed].&lt;br /&gt;
&lt;br /&gt;
   This release (2.4) will be the last IRC version I'm contributing&lt;br /&gt;
to. If you have any wishes or complains about the code or functioining&lt;br /&gt;
of IRC, use the source or ask whomever it happens to be the current&lt;br /&gt;
developer.&lt;br /&gt;
&lt;br /&gt;
HISTORY&lt;br /&gt;
&lt;br /&gt;
   There have been many different versions of IRC and many of those&lt;br /&gt;
versions are still in use. The following attempt to bring some&lt;br /&gt;
clarification to the versions. This starts from 2.01.6, hopefully&lt;br /&gt;
no servers are running older versions...&lt;br /&gt;
&lt;br /&gt;
	...&lt;br /&gt;
	...&lt;br /&gt;
	2.01.6	A version from WiZ in summer 1989&lt;br /&gt;
	...&lt;br /&gt;
		2.01t6	A series of releases, which contained minor&lt;br /&gt;
		2.01T6	adjustements and bug fixes to the base version.&lt;br /&gt;
		2.01u6	Some of those fixes caused extra errors, of&lt;br /&gt;
		2.01U6	this series versions 2.01U6 and 2.01v6 are at&lt;br /&gt;
		2.01v6	least known to be rather stable.&lt;br /&gt;
&lt;br /&gt;
	2.1.0	Mike Bolotski created these versions from the sources&lt;br /&gt;
	2.1.1	of 2.01U6, but unfortunale some devious bug crept in&lt;br /&gt;
		and caused a lots of linking problems (the nasty &amp;quot;ghost&lt;br /&gt;
		server problem&amp;quot; splintered the net constantly). These&lt;br /&gt;
		versions must be deleted on sight :) [Autumn 1989]&lt;br /&gt;
&lt;br /&gt;
	2.2	This version is the 2.01v6 sources repackaged into&lt;br /&gt;
		multiple directories by Mike again. Probably nobody&lt;br /&gt;
		is running this base version, because is was promptly&lt;br /&gt;
		followed by two patch releases [Autumn 1989]&lt;br /&gt;
&lt;br /&gt;
		2.2PL0	These two are the last major &amp;quot;official&amp;quot; releases&lt;br /&gt;
		2.2PL1	and most of the servers upgraged to either of&lt;br /&gt;
			these.&lt;br /&gt;
&lt;br /&gt;
	2.2msa	Unfortunately 2.2PL1 version had a tendency to die&lt;br /&gt;
		mysteriously very often. So, I started to look into the&lt;br /&gt;
		code from March 1990 and that resulted a series of&lt;br /&gt;
		patches to the 2.2PL1 server code, but finally&lt;br /&gt;
		decided to release full server code releases of which&lt;br /&gt;
		few have got wider distribution&lt;br /&gt;
&lt;br /&gt;
		2.2msa.4&lt;br /&gt;
			Has most of the known PL1 bugs fixed and seems&lt;br /&gt;
			to be very reliable. But once servers started&lt;br /&gt;
			staying up, a new problem appeared: socket&lt;br /&gt;
			buffers started getting full and servers tended&lt;br /&gt;
			to freeze very often for long intervals.&lt;br /&gt;
&lt;br /&gt;
	2.3alpha&lt;br /&gt;
	2.3	Is an attempt to make an official release from 2.2msa.4&lt;br /&gt;
		code, but hassles with changed copyrights make this&lt;br /&gt;
		version unacceptable. Besides, 2.3alpha or 2.2msa.4 are&lt;br /&gt;
		now obsolete, old versions :)&lt;br /&gt;
&lt;br /&gt;
	2.2msa.x&lt;br /&gt;
		To solve the freezing problems, the server code is changed&lt;br /&gt;
		to use non-blocking sockets.&lt;br /&gt;
&lt;br /&gt;
		2.2msa.7&lt;br /&gt;
		2.2msa.9&lt;br /&gt;
			Are intermediate test versions, of which .9 seems&lt;br /&gt;
			to have most of the problems solved.&lt;br /&gt;
&lt;br /&gt;
		2.2msa.10&lt;br /&gt;
			Never released. This is slightly improved version&lt;br /&gt;
			of msa.9, some new features.&lt;br /&gt;
&lt;br /&gt;
	2.4	Is a release which combines 2.2msa.10 and Chelsea's&lt;br /&gt;
		modifications to the server. Also, this release has&lt;br /&gt;
		once again reorganized the directories and makefiles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- msa (Markku.Savela@vtt.fi)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:IRCu History]]&lt;/div&gt;</summary>
		<author><name>Secretagent</name></author>	</entry>

	</feed>