Procházet zdrojové kódy

* cmd_mop didn't check if the bot was opped
* Also added a me_op() check to do_op()


svn: 504

Bryan Drewery před 22 roky
rodič
revize
5166616d17
3 změnil soubory, kde provedl 6 přidání a 1 odebrání
  1. 1 0
      doc/UPDATES
  2. 4 0
      src/mod/irc.mod/cmdsirc.c
  3. 1 1
      src/mod/irc.mod/mode.c

+ 1 - 0
doc/UPDATES

@@ -22,6 +22,7 @@ This is a summary of ChangeLog basically.
 19.Added help entry for cmd_whom.
 19.Added help entry for cmd_whom.
 20.chanset #chan +/-inactive now requires global n|-
 20.chanset #chan +/-inactive now requires global n|-
 21.Fixed some bugs in the readuserfile() function.
 21.Fixed some bugs in the readuserfile() function.
+22.cmd_mop didn't check if the bot was opped before sending +o lines.
 
 
 1.0.13
 1.0.13
 1.Fixed a fatal bug in console_gotshare()
 1.Fixed a fatal bug in console_gotshare()

+ 4 - 0
src/mod/irc.mod/cmdsirc.c

@@ -1009,6 +1009,10 @@ static void cmd_mop(struct userrec *u, int idx, char *par)
       dprintf(idx, "You are not a channel op on %s.\n", chan->dname);
       dprintf(idx, "You are not a channel op on %s.\n", chan->dname);
       return;
       return;
     }
     }
+    if (!me_op(chan)) {
+      if (all) goto next;
+      dprintf(idx, "I am not opped on %s.\n", chan->dname);
+    }
     if (channel_active(chan) && !channel_pending(chan)) {
     if (channel_active(chan) && !channel_pending(chan)) {
       for (m = chan->channel.member; m && m->nick[0]; m = m->next) {
       for (m = chan->channel.member; m && m->nick[0]; m = m->next) {
         if (!m->user) {
         if (!m->user) {

+ 1 - 1
src/mod/irc.mod/mode.c

@@ -26,7 +26,7 @@ static int do_op(char *nick, struct chanset_t *chan, int force)
 {
 {
   memberlist *m = ismember(chan, nick);
   memberlist *m = ismember(chan, nick);
 
 
-  if ((!m) || (m && !force && chan_hasop(m)))
+  if (!me_op(chan) || !m || (m && !force && chan_hasop(m)))
     return 0;
     return 0;
 
 
   if (channel_fastop(chan) || channel_take(chan)) {
   if (channel_fastop(chan) || channel_take(chan)) {