Просмотр исходного кода

* Fixed auto_op delay still sending +o before timer expires
* Cleaned up do_op to check for chan_sentop now
* Don't set SENTOP in getin_request


svn: 1734

Bryan Drewery 21 лет назад
Родитель
Сommit
bd243e0f80
2 измененных файлов с 3 добавлено и 2 удалено
  1. 0 1
      src/mod/irc.mod/irc.c
  2. 3 1
      src/mod/irc.mod/mode.c

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

@@ -442,7 +442,6 @@ getin_request(char *botnick, char *code, char *par)
         chan->channel.no_op = 0;
     }
     do_op(nick, chan, 0, 1);
-    mem->flags |= SENTOP;
 
     putlog(LOG_GETIN, "*", "opreq from %s/%s on %s - Opped", botnick, nick, chan->dname);
   } else if (what[0] == 'i') {

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

@@ -88,7 +88,7 @@ do_op(char *nick, struct chanset_t *chan, time_t delay, bool force)
 {
   memberlist *m = ismember(chan, nick);
 
-  if (!me_op(chan) || !m || (m && !force && chan_hasop(m)))
+  if (!me_op(chan) || !m || (!force && (chan_hasop(m) || chan_sentop(m))))
     return 0;
 
   if (delay) {
@@ -105,6 +105,8 @@ do_op(char *nick, struct chanset_t *chan, time_t delay, bool force)
     egg_snprintf(buf, sizeof(buf), "AOp %s/%s", nick, chan->dname);
 
     timer_create_complex(&howlong, buf, (Function) do_autoop, (void *) auto_op, 0);
+
+    return 1;
   }
 
   if (channel_fastop(chan) || channel_take(chan)) {