]> 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 169b068a39f9f416ca125ebf5ffc93ba146621f0..1fc9661252844127a395741cc14a91ce7fd55efe 100644 (file)
@@ -451,6 +451,11 @@ register_local_user(struct Client *client_p, struct Client *source_p, const char
                        sendto_one_notice(source_p, ":*** Your IP address %s is listed in %s",
                                        source_p->sockhost, source_p->preClient->dnsbl_listed->host);
                        source_p->preClient->dnsbl_listed->hits++;
+
+                       sendto_realops_snomask(SNO_REJ, L_ALL,
+                                       "%s (%s@%s) is being disconnected due to being listed in DNS Blacklist %s",
+                                       source_p->name, source_p->username, source_p->sockhost, source_p->preClient->dnsbl_listed->host);
+
                        add_reject(source_p, NULL, NULL);
                        exit_client(client_p, source_p, &me, "*** Banned (DNS blacklist)");
                        return CLIENT_EXITED;
@@ -908,7 +913,7 @@ static void
 expire_umode_p(void *data)
 {
        struct Client *source_p = data;
-       char *parv[4] = {source_p->name, source_p->name, "-p", NULL};
+       const char *parv[4] = {source_p->name, source_p->name, "-p", NULL};
        source_p->localClient->override_timeout_event = NULL;
        user_mode(source_p, source_p, 3, parv);
 }
@@ -1288,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);
 
@@ -1391,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;
@@ -1423,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);
 }