return false;
}
+ if (strchr(channel_modes, 'R') && !strchr(Client_Modes(Client), 'R')) {
+ /* Only registered users are allowed! */
+ IRC_WriteStrClient(Client, ERR_REGONLYCHANNEL_MSG,
+ Client_ID(Client), channame);
+ return false;
+ }
+
return true;
} /* join_allowed */
IRC_WriteStrChannelPrefix(Client, chan, target, false,
"JOIN :%s", channame);
- /* syncronize channel modes */
+ /* synchronize channel modes */
if (modes[1]) {
IRC_WriteStrChannelPrefix(Client, chan, target, false,
"MODE %s +%s %s", channame,
Client_ID(Client),
Channel_Name(chan), topic);
#ifndef STRICT_RFC
+ if (!r)
+ return r;
r = IRC_WriteStrClient(from, RPL_TOPICSETBY_MSG,
Client_ID(Client),
Channel_Name(chan),