]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/s_user.c
Add topic TS and channel TS constraints for /LIST.
[irc/rqf/shadowircd.git] / src / s_user.c
index b81fe83c65241f5b300e7dce68371c9b38b43e66..1fc9661252844127a395741cc14a91ce7fd55efe 100644 (file)
@@ -1396,6 +1396,8 @@ oper_up(struct Client *source_p, struct oper_conf *oper_p)
                source_p->snomask &= ~SNO_NCHANGE;
        if(!IsOperOperwall(source_p))
                source_p->umodes &= ~UMODE_OPERWALL;
+       if (!IsOperOverride(source_p))
+               source_p->umodes &= ~UMODE_OVERRIDE;
        hdata.client = source_p;
        hdata.oldumodes = old;
        hdata.oldsnomask = oldsnomask;
@@ -1428,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);
 }