Hi!
I added these changes to CVS-HEAD since the release of 0.6.0:
- New signal handler (more secure, actions are executed outside).
- GCC: the compiler is now called with more warning options enabled.
- Replaced a lot of str[n]cpy(), str[n]cat() and sprintf() calls with
the
more secure functions strlcpy(), strlcat() and snprintf(). On
systems
that don't support strlcpy() and strlcat(), these functions are
included
in the libngportab now (with prototypes in portab.h).
- Fixed KILL: you can't crash the server by killing yourself any more,
ngIRCd no longer sends a QUIT to other servers after the KILL, and
you
can kill only valid users now.
- If the server can't close a socket, it panics now. This is an error
that
can't occure during normal operation so there is something broken.
- The order of log messages during disconnects is more "natural" now
;-)
- Cleaned up handling of server configuration structures: modifying
and
removing servers during runtime works more reliable now.
- Compression code from "conn.[ch]" is now found in new
"conn-zip.[ch]"
- Moved some connection functions from "conn.[ch]" to
"conn-func.[ch]".
- New command CONNECT to enable and add server links. The syntax is
not
RFC-compatible: use "CONNECT <name> <port>" to enable and connect an
configured server and "CONNECT <name> <port> <host> <mypwd>
<peerpwd>"
to add a new server (ngIRCd tries to connect new servers only
once!).
- Added DISCONNECT command ("DISCONNECT <name>") to disable servers.
Regards
Alex
PS.: ngIRCd celebrates its first anniversary today, I released version
0.0.1 2001/12/31. When I started coding it? Hm, I don't remember
exactly, must have been around christmas 2001 ;-)
--
Alexander Barton, Freiburg, Germany
http://www.barton.de/, alex(a)barton.de
Hi all!
I've released ngIRCd 0.6.0.
There are no changes since 0.6.0-pre2, please read the ChangeLog and
NEWS for details. See INSTALL (german) or doc/en/INSTALL (english) for
upgrading information!
Download:
- HTTP: <http://download.berlios.de/ngircd/ngircd-0.6.0.tar.gz>
- FTP: <ftp://arthur.ath.cx/pub/Users/alex/ngircd/ngircd-0.6.0.tar.gz>
Patch from version 0.5.4:
- FTP:
<ftp://arthur.ath.cx/pub/Users/alex/ngircd/ngircd-0.5.4-0.6.0.patch.gz>
Merry christmas!
Regards
Alex
--
Alexander Barton, Freiburg, Germany
http://www.barton.de/, alex(a)barton.de
Hello!
I just prepared ngIRCd 0.6.0-pre1. If this version seems to be stable
and no more bugs are found I'll release it as version 0.6.0 "these
days".
ngIRCd 0.6.0-pre1 contains all enhancements and fixes from CVS-HEAD.
The new CVS branch has the tag "branch-0.6.x". Use "cvs up -d -P -r
branch-0-6-x" to switch an existing CVS tree to this branch.
Changes since 0.5.4 (sorry, in german):
- beim Schliessen einer Verbindung zeigt der Server nun vor dem ERROR
noch eine Statistik ueber die empfangene und gesendete Datenmenge
an.
- der Server wartet bei einer eingehenden Verbindung nun laenger auf
den
Resolver (4 Sekunden), wenn das Ergebnis eintrifft setzt er aber den
Login sofort fort (bisher wurde immer mind. 1 Sekunde gewartet).
- Connection-Strukturen werden nun "pool-weise" verwaltet; der Pool
wird
bei Bedarf bis zu einem konfigurierten Limit vergroessert.
- Mit der neuen Konfigurationsvariable "MaxConnections" (Sektion
"Global")
kann die maximale Anzahl gleichzeitiger Verbindungen begrenzt
werden.
Der Default ist -1, "unlimitiert".
- der Server erkennt nun, ob bereits eine eingehende Verbindung von
einem
Peer-Server besteht und versucht dann nicht mehr, selber eine eigene
ausgehende Verbindung zu diesem auufzubauen. Dadurch kann nun auf
beiden
Servern in der Konfiguration ein Port fuer den Connect konfiguriert
werden (beide Server versuchen sich dann gegenseitig zu
connectieren).
- Test-Suite und Dokumentation an A/UX angepasst.
- unter HP-UX definiert das configure-Script nun
_XOPEN_SOURCE_EXTENDED.
- Server identifizieren sich nun mit asyncronen Passwoertern, d.h. das
Passwort, welches A an B schickt, kann ein anderes sein als das,
welches
B als Antwort an A sendet. In der Konfig.-Datei, Abschnitt "Server",
wurde "Password" dazu durch "MyPassword" und "PeerPassword" ersetzt.
- Der Server kann nun zur Laufzeit die Konfiguration neu einlesen:
dies
macht er nach dem Befehl REHASH oder wenn ein HUP-Signal empfangen
wird.
- Channel-Mode "P" ("persistent") kann nur noch von IRC-Operatoren
gesetzt
werden. Grund: User koennen den Server sonst leicht
"Channel-Flooden".
- MOTD kann nun an andere Server geforwarded werden.
- IRC-Befehl "TIME" implementiert.
- Server-Server-Links koennen nun komprimiert werden, dazu wird die
zlib
(www.zlib.org) benoetigt. Unterstuetzt die Gegenseite die
Komprimierung
nicht, wird automatisch unkomprimiert kommuniziert. Das Verfahren
ist
kompatibel mit dem Original-ircd 2.10.3, d.h. beide Server koennen
miteinander ueber komprimiert Links kommunizieren.
- Handling der Schreibpuffer umgestellt: Server sollte schneller
arbeiten.
- Prefix-Fehler werden besser protokolliert (mit verursachendem
Befehl).
- SQUIT wird nicht mehr doppelt an andere Server weitergeleitet.
- Der Server versucht nun vor dem Schliessen einer Verbindung Daten,
die
noch im Schreibpuffer stehen, zu senden.
- Source in weiteres Modul "irc-info" aufgespalten.
- Konfigurationsvariablen werden besser validiert: Laengen, Zahlen,
...
- neuen Befehl STATS begonnen: bisher unterstuetzt wird "l" und "m".
- bei ISON und USERHOST fehlte im Ergebnis-String der korrekte
Absender.
- IRC Operatoren koennen nun mit KILL User toeten. Achtung: ein Grund
muss
zwingend als zweiter Parameter angegeben werden!
- neue Konfigurations-Variable "MaxJoins": Hiermit kann die maximale
Zahl
der Channels, in denen ein User Mitglied sein kann, begrent werden.
- neuer, deutlich flexiblerer Parser fuer den MODE Befehl.
- neue Channel-Modes l (User-Limit) und k (Channel-Key) implementiert.
Download:
- <ftp://arthur.ath.cx/pub/Users/alex/ngircd/ngircd-0.5.3-pre1.tar.gz>
Patch from 0.5.4 to 0.6.0-pre1:
-
<ftp://arthur.ath.cx/pub/Users/alex/ngircd/ngircd-0.5.4-0.6.0-
pre1.patch.gz>
Regards
Alex
--
Alexander Barton, Freiburg, Germany
http://www.barton.de/, alex(a)barton.de
Hi!
Commits to CVS-HEAD:
- updated documentation: upgrading section in INSTALL and
doc/en/INSTALL
- implemented sub-function "m" of STATS command
- fixed up user mode propagation over server links: IRC operator,
away, ...
Regards
Alex
--
Alexander Barton, Freiburg, Germany
http://www.barton.de/, alex(a)barton.de
Hi!
I just added the channel modes "k" (channel key/password) and "l"
(member limit) to CVS-HEAD. This fixes bug #31.
Please test! ;-)
Regards
Alex
PS.: Ah, actually JOIN doesn't support more than one key at a time.
This is not RFC-compliant, I know. I filed bug #42 for this. I tried to
figure out how the original ircd behaves (imagine you want to join
three channels of which only the first and the last need a key -- how
to supply the list of keys!?), but the behavior seemd to be verry
inconsequent at the first glance ...
--
Alexander Barton, Freiburg, Germany
http://www.barton.de/, alex(a)barton.de
Hi!
Yesterdays commit to CVS-HEAD has had an ugly bug: the server became
confused by channel-user-modes (e.g. "o", "v") that it received from
other servers.
I commited a fix to HEAD, hope it works now ...
Regards
Alex
--
Alexander Barton, Freiburg, Germany
http://www.barton.de/, alex(a)barton.de
Hi all!
Here comes the next CVS update announcement, this time with a neat
little subject line again ;-)
I just committed the new MODE parser to CVS-HEAD. At the moment it
supports all modes the old parser did but understands much more syntax
variants.
Some examples that all work:
MODE nick +or-i
MODE nick +o +r -i
MODE nick +o r -i
MODE #chan +n-t +o newop -v novoice +b bannick
MODE #chan +n-t+o-v+b newop novoice bannick
The parser is completely rewritten, please check it in detail!
Now I'm going to implement support for channel modes k ("key") and l
("user limit") ...
Regards
Alex
--
Alexander Barton, Freiburg, Germany
http://www.barton.de/, alex(a)barton.de
Hi!
New patches in CVS-HEAD:
- Before closing a link the server attempts to write all data still
in the write buffer of this connection to the peer.
- New source module "irc-info";
- Variables read from the configuration file are validated much
better now.
- Started support for the new IRC command STATS: at the moment only
the
sub-function "l" is supported.
- Fixed ISON and USERHOST: the correct sender was missing in the
result.
- IRC operators can KILL users now.
- New configuration variable "MaxJoins:" it limits the maximum number
of
channels a single user can join. Default is 10.
Regards
Alex
--
Alexander Barton, Freiburg, Germany
http://www.barton.de/, alex(a)barton.de