diff --git a/ChangeLog b/ChangeLog index 0b07949b..e717f266 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,6 +10,8 @@ -- ChangeLog -- ngIRCd 0.11.1 + - Fix sending of JOINs between servers when remote server appended mode + flags. (Rolf Eike Beer) [from HEAD] - send "G" instead of "H" flag in WHO replies (reported by Dana Dahlstrom). - Under some circumstances ngIRCd issued channel MODE message with a trailing space. (Dana Dahlstrom) [from HEAD] @@ -738,4 +740,4 @@ ngIRCd 0.0.1, 31.12.2001 -- -$Id: ChangeLog,v 1.332.2.8 2008/02/26 12:06:57 fw Exp $ +$Id: ChangeLog,v 1.332.2.9 2008/02/26 12:07:41 fw Exp $ diff --git a/src/ngircd/irc-channel.c b/src/ngircd/irc-channel.c index 39ef83d3..139f5061 100644 --- a/src/ngircd/irc-channel.c +++ b/src/ngircd/irc-channel.c @@ -14,7 +14,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: irc-channel.c,v 1.40.2.1 2008/01/07 11:42:14 fw Exp $"; +static char UNUSED id[] = "$Id: irc-channel.c,v 1.40.2.2 2008/02/26 12:07:41 fw Exp $"; #include "imp.h" #include @@ -79,6 +79,14 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req ) { chan = NULL; flags = NULL; + if (Client_Type(Client) == CLIENT_SERVER) { + flags = strchr( channame, 0x7 ); + if( flags ) { + *flags = '\0'; + flags++; + } + } + /* wird der Channel neu angelegt? */ if( Channel_Search( channame )) { is_new_chan = false; @@ -92,18 +100,6 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req ) is_new_chan = true; } - /* Hat ein Server Channel-User-Modes uebergeben? */ - if( Client_Type( Client ) == CLIENT_SERVER ) - { - /* Channel-Flags extrahieren */ - flags = strchr( channame, 0x7 ); - if( flags ) - { - *flags = '\0'; - flags++; - } - } - /* Local client? */ if( Client_Type( Client ) == CLIENT_USER ) {