]> 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 aa8b17e5629c39df7e3449d7b71f62857d059622..1fc9661252844127a395741cc14a91ce7fd55efe 100644 (file)
@@ -1293,7 +1293,7 @@ user_welcome(struct Client *source_p)
        sendto_one_numeric(source_p, RPL_YOURHOST, form_str(RPL_YOURHOST),
                   get_listener_name(source_p->localClient->listener), ircd_version);
        sendto_one_numeric(source_p, RPL_CREATED, form_str(RPL_CREATED), creation);
-       sendto_one_numeric(source_p, RPL_MYINFO, form_str(RPL_MYINFO), me.name, ircd_version, umodebuf, cflagsmyinfo);
+       sendto_one_numeric(source_p, RPL_MYINFO, form_str(RPL_MYINFO), me.name, ircd_version, umodebuf, cflagsmyinfo, cflagsparaminfo);
 
        show_isupport(source_p);
 
@@ -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);
 }