]> jfr.im git - irc/freenode/ircd-seven.git/commitdiff
Expire umode +p correctly if it's set via oper_umodes, as well as by user_mode. Bug...
authorStephen Bennett <redacted>
Fri, 31 Dec 2010 17:14:05 +0000 (17:14 +0000)
committerStephen Bennett <redacted>
Fri, 31 Dec 2010 17:14:05 +0000 (17:14 +0000)
src/s_user.c

index 7c2fcd11b38c98f757e831349fbaa105457210d4..4c7c95a66bbfa7275240d022531c18c42a484c7c 100644 (file)
@@ -1418,6 +1418,13 @@ oper_up(struct Client *source_p, struct oper_conf *oper_p)
        sendto_one_notice(source_p, ":*** Oper privs are %s", oper_p->privset->privs);
        send_oper_motd(source_p);
 
+       /* If we're setting +p, expire it */
+       if(ConfigFileEntry.expire_override_time && MyClient(source_p) && source_p->umodes & UMODE_OVERRIDE)
+       {
+               source_p->localClient->override_timeout_event =
+                       rb_event_addonce("expire_override", expire_umode_p, source_p, ConfigFileEntry.expire_override_time);
+       }
+
        return (1);
 }