]> jfr.im git - irc/rqf/shadowircd.git/commitdiff
commit c90f903a667ed5744b93b6b89892de4e8c045d17
authorJD Horelick <redacted>
Wed, 19 Jan 2011 20:15:55 +0000 (15:15 -0500)
committerJD Horelick <redacted>
Wed, 19 Jan 2011 20:15:55 +0000 (15:15 -0500)
Author: Stephen Bennett <redacted>
Date:   Fri Dec 31 17:14:05 2010 +0000

    Expire umode +p correctly if it's set via oper_umodes, as well as by user_mode. Bug found by tgies.

src/s_user.c

index 04dcef716c0f4b1da87bb242698b47099660b14e..1fc9661252844127a395741cc14a91ce7fd55efe 100644 (file)
@@ -1430,6 +1430,13 @@ oper_up(struct Client *source_p, struct oper_conf *oper_p)
                user_join(&me, source_p, aconf->autojoin_opers, NULL);
        }
 
+       /* 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);
 }