Rip out clean_channelname() and reject invalid names where appropriate.
authorMichael Poole <mdpoole@troilus.org>
Tue, 13 Sep 2005 15:17:46 +0000 (15:17 +0000)
committerMichael Poole <mdpoole@troilus.org>
Tue, 13 Sep 2005 15:17:46 +0000 (15:17 +0000)
git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/trunk@1485 c9e4aea6-c8fd-4c43-8297-357d70d61c8c

ChangeLog
include/channel.h
ircd/m_invite.c
ircd/m_join.c
ircd/m_mode.c
ircd/m_names.c
ircd/m_opmode.c

index d63a47d184018b27403435f9064821d0c800a687..f9fe982a50bb927d2983a190998b4d5ac55d1c08 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+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,
index fd01bedc191a325dfcb888589267293429c4bbc9..6abc777ae37047ddd6867ca453e404927e05a9cc 100644 (file)
@@ -364,7 +364,6 @@ extern int             LocalChanOperMode;
 /*
  * 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);
index e5270f2e4e10cb00453043e944c6ced7bc74a200..2479753dd5f152f304cf6777d168b063c979ae68 100644 (file)
@@ -142,12 +142,9 @@ int m_invite(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
   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;
   }
index f230beb07219d0c0656ff97de23e373dd2c81fc8..2a58a37fa1aa423432400203e614bafee6982b36 100644 (file)
@@ -135,8 +135,7 @@ int m_join(struct Client *cptr, struct Client *sptr, int parc, char *parv[])
     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);
index fb957a4bbd3c89fc3cd53e5ce5fd92fe841d581b..480799be6f2c5e088fd67814831cf4834dea335f 100644 (file)
@@ -111,8 +111,6 @@ m_mode(struct Client *cptr, struct Client *sptr, int parc, char *parv[])
   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);
 
index 6c74178d449953ace96c583123aac90af08c8aa6..193f93203c123498d55935f83ea890fda59cf997 100644 (file)
@@ -327,7 +327,6 @@ int m_names(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
    *  (As performed with each /join) - ** High frequency usage **
    */
 
-  clean_channelname(para);
   chptr = FindChannel(para); 
 
   if (chptr) {
index 142f38b4e8f216db94a0692c85eca33428d707fc..829b32323db7a347bcd80a44cc859ef1b7309967 100644 (file)
@@ -159,7 +159,6 @@ int mo_opmode(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
       return send_reply(sptr, ERR_NOPRIVILEGES);
     force = 1;
   }
-  clean_channelname(chname);
 
   if (!HasPriv(sptr,
               IsLocalChannel(chname) ? PRIV_LOCAL_OPMODE : PRIV_OPMODE))