+2005-09-13 Michael Poole <mdpoole@troilus.org>
+
+ * include/channel.h (clean_channelname): Remove prototype.
+
+ * ircd/m_invite.c (m_invite): Do not clean channel name; just
+ reject invalid channel names.
+
+ * ircd/m_join.c (m_join): Likewise.
+
+ * ircd/m_mode.c (m_mode): Do not clean channel name.
+
+ * ircd/m_names.c (m_names): Likewise.
+
+ * ircd/m_opmode.c (mo_opmode): Likewise.
+
2005-09-13 Michael Poole <mdpoole@troilus.org>
* ircd/channel.c (find_ban): Revert to older style of comparison,
/*
* Proto types
*/
-extern void clean_channelname(char* name);
extern void channel_modes(struct Client *cptr, char *mbuf, char *pbuf,
int buflen, struct Channel *chptr,
struct Membership *member);
if (is_silenced(sptr, acptr))
return 0;
- clean_channelname(parv[2]);
-
- if (!IsChannelPrefix(*parv[2]))
- return 0;
-
- if (!(chptr = FindChannel(parv[2]))) {
+ if (!IsChannelName(parv[2])
+ || !strIsIrcCh(parv[2])
+ || !(chptr = FindChannel(parv[2]))) {
send_reply(sptr, ERR_NOSUCHCHANNEL, parv[2]);
return 0;
}
if (key && !key[0])
key = 0;
- clean_channelname(name);
- if (!IsChannelName(name))
+ if (!IsChannelName(name) || !strIsIrcCh(name))
{
/* bad channel name */
send_reply(sptr, ERR_NOSUCHCHANNEL, name);
if (parc < 2)
return need_more_params(sptr, "MODE");
- clean_channelname(parv[1]);
-
if (!IsChannelName(parv[1]) || !(chptr = FindChannel(parv[1])))
return set_user_mode(cptr, sptr, parc, parv);
* (As performed with each /join) - ** High frequency usage **
*/
- clean_channelname(para);
chptr = FindChannel(para);
if (chptr) {
return send_reply(sptr, ERR_NOPRIVILEGES);
force = 1;
}
- clean_channelname(chname);
if (!HasPriv(sptr,
IsLocalChannel(chname) ? PRIV_LOCAL_OPMODE : PRIV_OPMODE))