new_chan = Channel_Create(conf_chan->name);
if (!new_chan) {
- Log(LOG_ERR, "Can't create pre-defined channel \"%s\"",
+ Log(LOG_ERR, "Can't create pre-defined channel \"%s\"!",
conf_chan->name);
continue;
}
- Log(LOG_INFO, "Created pre-defined channel \"%s\"",
+ Log(LOG_INFO, "Created pre-defined channel \"%s\".",
conf_chan->name);
Channel_ModeAdd(new_chan, 'P');
/* Channel mode 'Q' and user mode 'q' on target: nobody but
* IRC Operators and servers can kick the target user */
if ((strchr(Channel_Modes(chan), 'Q')
- || Client_HasMode(Target, 'q'))
+ || Client_HasMode(Target, 'q')
+ || Client_Type(Target) == CLIENT_SERVICE)
&& !Client_HasMode(Origin, 'o')) {
IRC_WriteStrClient(Origin, ERR_KICKDENY_MSG,
Client_ID(Origin), Name,
if (!Can_Send_To_Channel(Chan, From)) {
if (! SendErrors)
return CONNECTED; /* no error, see RFC 2812 */
- return IRC_WriteStrClient(From, ERR_CANNOTSENDTOCHAN_MSG,
+ if (strchr(Channel_Modes(Chan), 'M'))
+ return IRC_WriteStrClient(From, ERR_NEEDREGGEDNICK_MSG,
+ Client_ID(From), Channel_Name(Chan));
+ else
+ return IRC_WriteStrClient(From, ERR_CANNOTSENDTOCHAN_MSG,
Client_ID(From), Channel_Name(Chan));
}