Fixed propagation of channel mode 'P' on server links.
This commit is contained in:
parent
089ca21b3d
commit
8f162f4e17
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
ngIRCd HEAD
|
ngIRCd HEAD
|
||||||
|
|
||||||
|
- Fixed propagation of channel mode 'P' on server links.
|
||||||
- Numeric 317: implemented "signon time" (displayed in WHOIS result).
|
- Numeric 317: implemented "signon time" (displayed in WHOIS result).
|
||||||
- Fixed code that prevented GCC 2.95 to compile ngIRCd.
|
- Fixed code that prevented GCC 2.95 to compile ngIRCd.
|
||||||
- Adjust path names in manual pages according to "./configure" settings.
|
- Adjust path names in manual pages according to "./configure" settings.
|
||||||
|
@ -707,4 +708,4 @@ ngIRCd 0.0.1, 31.12.2001
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
$Id: ChangeLog,v 1.323 2007/10/04 15:03:55 alex Exp $
|
$Id: ChangeLog,v 1.324 2007/10/14 12:09:04 alex Exp $
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
#include "portab.h"
|
#include "portab.h"
|
||||||
|
|
||||||
static char UNUSED id[] = "$Id: irc-mode.c,v 1.49 2007/08/02 10:14:26 fw Exp $";
|
static char UNUSED id[] = "$Id: irc-mode.c,v 1.50 2007/10/14 12:08:57 alex Exp $";
|
||||||
|
|
||||||
#include "imp.h"
|
#include "imp.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
@ -432,16 +432,21 @@ Channel_Mode( CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'P': /* Persistent channel */
|
case 'P': /* Persistent channel */
|
||||||
if( modeok )
|
if (modeok) {
|
||||||
{
|
/* Only IRC operators are allowed to
|
||||||
if( set && ( ! Client_OperByMe( Client )))
|
* set the 'P' channel mode! */
|
||||||
{
|
if (set && ! (Client_OperByMe(Client)
|
||||||
/* Only IRC operators are allowed to set P mode */
|
|| Client_Type(Client) == CLIENT_SERVER)) {
|
||||||
ok = IRC_WriteStrClient( Origin, ERR_NOPRIVILEGES_MSG, Client_ID( Origin ));
|
ok = IRC_WriteStrClient(Origin,
|
||||||
}
|
ERR_NOPRIVILEGES_MSG,
|
||||||
else x[0] = 'P';
|
Client_ID(Origin));
|
||||||
}
|
} else
|
||||||
else ok = IRC_WriteStrClient( Origin, ERR_CHANOPRIVSNEEDED_MSG, Client_ID( Origin ), Channel_Name( Channel ));
|
x[0] = 'P';
|
||||||
|
} else
|
||||||
|
ok = IRC_WriteStrClient(Origin,
|
||||||
|
ERR_CHANOPRIVSNEEDED_MSG,
|
||||||
|
Client_ID(Origin),
|
||||||
|
Channel_Name(Channel));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* --- Channel user modes --- */
|
/* --- Channel user modes --- */
|
||||||
|
|
Loading…
Reference in New Issue