added basic ssl support to ircu
[ircu2.10.12-pk.git] / ircd / m_clearmode.c
index c8d3516be58eaa1b85b6db2076c2242bbd24af2c..81392da469942342c67b2c07f85302629874fd7f 100644 (file)
@@ -98,7 +98,7 @@
 #include "s_conf.h"
 #include "send.h"
 
-#include <assert.h>
+/* #include <assert.h> -- Now using assert in ircd_log.h */
 
 /*
  * do_clearmode(struct Client *cptr, struct Client *sptr,
@@ -177,12 +177,12 @@ do_clearmode(struct Client *cptr, struct Client *sptr, struct Channel *chptr,
    */
   if (del_mode & MODE_BAN) {
     for (link = chptr->banlist; link; link = next) {
+      char *bandup;
       next = link->next;
 
+      DupString(bandup, link->banstr);
       modebuf_mode_string(&mbuf, MODE_DEL | MODE_BAN, /* delete ban */
-                         link->banstr, 1);
-      link->banstr = NULL; /* modebuf_mode_string() gave ownership of
-                            * banstr to mbuf */
+                         bandup, 1);
       free_ban(link);
     }
 
@@ -200,13 +200,13 @@ do_clearmode(struct Client *cptr, struct Client *sptr, struct Channel *chptr,
 
       /* Drop channel operator status */
       if (IsChanOp(member) && del_mode & MODE_CHANOP) {
-       modebuf_mode_client(&mbuf, MODE_DEL | MODE_CHANOP, member->user);
+       modebuf_mode_client(&mbuf, MODE_DEL | MODE_CHANOP, member->user, MAXOPLEVEL + 1);
        member->status &= ~CHFL_CHANOP;
       }
 
       /* Drop voice */
       if (HasVoice(member) && del_mode & MODE_VOICE) {
-       modebuf_mode_client(&mbuf, MODE_DEL | MODE_VOICE, member->user);
+       modebuf_mode_client(&mbuf, MODE_DEL | MODE_VOICE, member->user, MAXOPLEVEL + 1);
        member->status &= ~CHFL_VOICE;
       }
     }
@@ -253,7 +253,7 @@ ms_clearmode(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
     return need_more_params(sptr, "CLEARMODE");
 
   if (!IsPrivileged(sptr)) {
-    protocol_violation(sptr,"No priviledges on source for CLEARMODE, desync?");
+    protocol_violation(sptr,"No privileges on source for CLEARMODE, desync?");
     return send_reply(sptr, ERR_NOPRIVILEGES);
   }