mirror of
https://github.com/osmarks/ngircd.git
synced 2025-07-04 02:42:50 +00:00
From: Rolf Eike Beer <eike@sf-mail.de>
Fix sending of JOINs between servers I found a bug in "sending join between servers". This does hit only operators that join a channel with at least 2 servers active in the net the server the oper connects to sends "channel^Go" to the other servers the other server first searches for the channel and then strips the modes from the channel name he has to do the other way round: first strip and then check the channel name.
This commit is contained in:
parent
082a92beef
commit
55865d7fc6
@ -10,6 +10,8 @@
|
|||||||
-- ChangeLog --
|
-- ChangeLog --
|
||||||
ngIRCd 0.11.1
|
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).
|
- send "G" instead of "H" flag in WHO replies (reported by Dana Dahlstrom).
|
||||||
- Under some circumstances ngIRCd issued
|
- Under some circumstances ngIRCd issued
|
||||||
channel MODE message with a trailing space. (Dana Dahlstrom) [from HEAD]
|
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 $
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
#include "portab.h"
|
#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 "imp.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
@ -79,6 +79,14 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
|
|||||||
{
|
{
|
||||||
chan = NULL; flags = NULL;
|
chan = NULL; flags = NULL;
|
||||||
|
|
||||||
|
if (Client_Type(Client) == CLIENT_SERVER) {
|
||||||
|
flags = strchr( channame, 0x7 );
|
||||||
|
if( flags ) {
|
||||||
|
*flags = '\0';
|
||||||
|
flags++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* wird der Channel neu angelegt? */
|
/* wird der Channel neu angelegt? */
|
||||||
if( Channel_Search( channame )) {
|
if( Channel_Search( channame )) {
|
||||||
is_new_chan = false;
|
is_new_chan = false;
|
||||||
@ -92,18 +100,6 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
|
|||||||
is_new_chan = true;
|
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? */
|
/* Local client? */
|
||||||
if( Client_Type( Client ) == CLIENT_USER )
|
if( Client_Type( Client ) == CLIENT_USER )
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user