Module: ngircd.git
Branch: master
Commit: bf121ae95fa352d74ec710fda33c08148562a52c
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=bf121ae9…
Author: Alexander Barton <alex(a)barton.de>
Date: Sat Jun 9 02:04:50 2012 +0200
Describe "CloakHostModeX" in sample-ngircd.conf an ngircd.conf(5)
---
doc/sample-ngircd.conf.tmpl | 8 +++++++-
man/ngircd.conf.5.tmpl | 11 +++++++++++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/doc/sample-ngircd.conf.tmpl b/doc/sample-ngircd.conf.tmpl
index f696dc6..e8b2fb0 100644
--- a/doc/sample-ngircd.conf.tmpl
+++ b/doc/sample-ngircd.conf.tmpl
@@ -127,7 +127,13 @@
# Set this hostname for every client instead of the real one.
# Please note: don't use the percentage sign ("%"), it is reserved for
# future extensions!
- ;CloakHost = irc.example.net
+ ;CloakHost = cloaked.host
+
+ # Use this hostname for hostname cloaking on clients that have the
+ # user mode "+x" set, instead of the name of the server.
+ # Please note: don't use the percentage sign ("%"), it is reserved for
+ # future extensions!
+ ;CloakHostModeX = cloaked.user
# Set every clients' user name to their nick name
;CloakUserToNick = yes
diff --git a/man/ngircd.conf.5.tmpl b/man/ngircd.conf.5.tmpl
index 85cf73f..0473206 100644
--- a/man/ngircd.conf.5.tmpl
+++ b/man/ngircd.conf.5.tmpl
@@ -220,6 +220,17 @@ don't change.
Don't use the percentage sign ("%"), it is reserved for future extensions!
.RE
.TP
+\fBCloakHostModeX\fR (string)
+Use this hostname for hostname cloaking on clients that have the user mode
+"+x" set, instead of the name of the server. Default: empty, use the name
+of the server.
+.PP
+.RS
+.B Please note:
+.br
+Don't use the percentage sign ("%"), it is reserved for future extensions!
+.RE
+.TP
\fBCloakUserToNick\fR (boolean)
Set every clients' user name to their nick name and hide the one supplied
by the IRC client. Default: no.
Module: ngircd.git
Branch: master
Commit: 7bce6780ca0099f38efc801a7e613939cb90c99a
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=7bce6780…
Author: Alexander Barton <alex(a)barton.de>
Date: Sat Jun 9 12:53:44 2012 +0200
Update ChangeLog and NEWS files
---
ChangeLog | 23 +++++++++++++++++++++++
NEWS | 7 +++++++
2 files changed, 30 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index f7cc163..c90332f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,29 @@
-- ChangeLog --
+ngIRCd-dev
+
+ - Correctly handle asynchronously re-established server links: a race
+ condition could let the daemon loose track of an already re-established
+ incoming server link while preparing its own outgoing connection.
+ Peers that both try to connect each other could have been affected.
+ - Log a debug message when SIGUSR2 is handled in debug mode.
+ - Only allow alphanumeric characters in user-supplied user names of
+ USER command and IDENT replies.
+ - Change wording of "TLS initialized" message to make it more consistent.
+ - Don't leak file descriptors on error path when creating "PID files".
+ - Add missing mode "r" to CHANMODES in 005 "ISUPPORT" numeric.
+ - Update doc/Modes.txt and doc/Platforms.txt documents.
+ - contrib/platformtest.sh: correctly detect Open64 C compiler and handle
+ "CC=xxx MAKE=yyy ./platformtest.sh" calling convention.
+ - Add instructions for setting up Atheme IRC services.
+ - Implement support for IRC capability handling, the new "CAP" command,
+ and capablity "multi-prefix" which allows both the NAME and WHO command
+ handlers to return more than one "class prefix" to the client.
+ - Update Xcode project files: reference missing documentation files.
+ - Fix: Don't ignore "permission denied" errors when enabling chroot.
+ - FAQ: enhance description of chroot setup.
+
ngIRCd Release 19.1 (2012-03-19)
- Fix gcc warning (v4.6.3), initialize "list" variable to NULL.
diff --git a/NEWS b/NEWS
index 0889679..703ae76 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,13 @@
-- NEWS --
+ngIRCd-dev
+
+ - Add instructions for setting up Atheme IRC services.
+ - Implement support for IRC capability handling, the new "CAP" command,
+ and capablity "multi-prefix" which allows both the NAME and WHO command
+ handlers to return more than one "class prefix" to the client.
+
ngIRCd Release 19.1 (2012-03-19)
- Really include _all_ patches to build the Anope module into the
Module: ngircd.git
Branch: master
Commit: 684e50f0a4d827965b61c4b9feeda403ec3c3b87
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=684e50f0…
Author: Alexander Barton <alex(a)barton.de>
Date: Sat Jun 9 01:03:48 2012 +0200
Correctly handle asynchronously re-established server links
Don't try to establish an outgoing server link after DNS lookup when this
server re-connected on its own in the meantime.
In addition, log a warning message if we try to update the connection
index of an already connected server structure -- and ignore it.
Up to now, both behaviour could lead to a race when the remote server
connects to this daemon while it still prepares the outgoing connection:
- The local server prepares the new outgoing connection ...
- in the meantime the remote server becomes connected and registered.
- Now the new outgoing connection overwrites the (correct) socket handle,
- then the 2nd connection becomes disconnected: "already registered",
- and the 1st connection becomes unhandled ("gets lost") because the
configuration structure is reset because of the wrong socket handle.
This patch hopefully fixes all these problems.
---
src/ngircd/conf.c | 10 +++++++++-
src/ngircd/conn.c | 12 ++++++++++--
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/ngircd/conf.c b/src/ngircd/conf.c
index 5426900..f274eb8 100644
--- a/src/ngircd/conf.c
+++ b/src/ngircd/conf.c
@@ -1,6 +1,6 @@
/*
* ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2011 Alexander Barton (alex(a)barton.de) and Contributors.
+ * Copyright (c)2001-2012 Alexander Barton (alex(a)barton.de) and Contributors.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -492,6 +492,14 @@ Conf_SetServer( int ConfServer, CONN_ID Idx )
assert( ConfServer > NONE );
assert( Idx > NONE );
+ if (Conf_Server[ConfServer].conn_id > NONE &&
+ Conf_Server[ConfServer].conn_id != Idx) {
+ Log(LOG_ALERT,
+ "Trying to update connection index for already registered server \"%s\": %d/%d - ignored.",
+ Conf_Server[ConfServer].name,
+ Conf_Server[ConfServer].conn_id, Idx);
+ return;
+ }
Conf_Server[ConfServer].conn_id = Idx;
}
diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c
index 09f726c..06236fd 100644
--- a/src/ngircd/conn.c
+++ b/src/ngircd/conn.c
@@ -1,6 +1,6 @@
/*
* ngIRCd -- The Next Generation IRC Daemon
- * Copyright (c)2001-2011 Alexander Barton (alex(a)barton.de) and Contributors.
+ * Copyright (c)2001-2012 Alexander Barton (alex(a)barton.de) and Contributors.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -1935,6 +1935,14 @@ New_Server( int Server , ng_ipaddr_t *dest)
assert( Server > NONE );
+ /* Make sure that the remote server hasn't re-linked to this server
+ * asynchronously on its own */
+ if (Conf_Server[Server].conn_id > NONE) {
+ Log(LOG_INFO,
+ "Connection to \"%s\" meanwhile re-established, aborting preparation.");
+ return;
+ }
+
if (!ng_ipaddr_tostr_r(dest, ip_str)) {
Log(LOG_WARNING, "New_Server: Could not convert IP to string");
return;
@@ -2008,7 +2016,7 @@ New_Server( int Server , ng_ipaddr_t *dest)
Client_SetToken( c, TOKEN_OUTBOUND );
/* Register connection */
- Conf_Server[Server].conn_id = new_sock;
+ Conf_SetServer(Server, new_sock);
My_Connections[new_sock].sock = new_sock;
My_Connections[new_sock].addr = *dest;
My_Connections[new_sock].client = c;
Module: ngircd.git
Branch: master
Commit: 9b1cf420f1e8768166e823891d7897590bdec638
URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=9b1cf420…
Author: Alexander Barton <alex(a)barton.de>
Date: Thu Jun 7 17:09:45 2012 +0200
doc/Platforms.txt: more updates
Added:
- armv6l/unkn./linux-gnueabi, gcc 4.4.5
- i686/pc/linux-gnu, gcc 2.7.2
Updated:
- i386/pc/solaris2.11, gcc 4.2.3
Thanks to Götz Hoffart!
---
doc/Platforms.txt | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/doc/Platforms.txt b/doc/Platforms.txt
index 87c8039..b8e33b5 100644
--- a/doc/Platforms.txt
+++ b/doc/Platforms.txt
@@ -26,6 +26,7 @@ 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)
+armv6l/unkn./linux-gnueabi gcc 4.4.5 19.1 12-06-04 goetz Y Y Y Y (5)
armv7l/unkn./linux-gnueabi gcc 4.4.3 19.1 12-04-29 goetz Y Y Y Y (5)
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
@@ -36,7 +37,7 @@ i386/apple/darwin10.8.0 gcc 4.2.1 19 12-02-26 alex Y Y Y Y (3)
i386/apple/darwin11.3.0 gcc 4.2.1 19 12-02-26 alex Y Y Y Y (3)
i386/pc/solaris2.9 gcc 3.2.2 CVSHEAD 04-02-24 alex Y Y Y Y
i386/pc/solaris2.11 gcc 3.4.3 19 12-02-26 alex Y Y N Y (4)
-i386/pc/solaris2.11 gcc 4.2.3 18 11-08-17 goetz Y Y Y Y (4)
+i386/pc/solaris2.11 gcc 4.2.3 19.1 12-05-29 goetz Y Y Y Y (4)
i386/unknown/freebsd5.2.1 gcc 3.3.3 0.8.0 04-05-30 alex Y Y Y Y
i386/unknown/freebsd6.2 gcc 3.4.6 19 12-02-26 alex Y Y Y Y (3)
i386/unknown/freebsd7.3 gcc 4.2.1 19 12-02-26 alex Y Y Y Y (3)
@@ -50,6 +51,7 @@ i386/unknown/openbsd3.9 gcc 3.3.5 0.10.0-p1 06-08-30 alex Y Y Y Y (3)
i386/unknown/openbsd4.1 gcc 3.3.5 16 10-04-11 alex Y Y Y Y (3)
i586/pc/interix3.5 gcc 3.3 19 12-02-29 alex Y Y N Y
i686/pc/cygwin gcc 3.3.1 0.8.0 04-05-30 alex Y Y N Y
+i686/pc/linux-gnu gcc 2.7.2 19.1 12-05-30 goetz Y Y Y Y (1)
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.5 14.1 09-08-04 alex Y Y Y Y (1)
i386/pc/linux-gnu gcc 4.1.2 13~rc1 08-12-05 alex Y Y Y Y (1)