]> jfr.im git - solanum.git/blobdiff - ircd/match.c
Replace most checks for +o with oper:general
[solanum.git] / ircd / match.c
index 5499797b49a325b7940a1050bdbe7a8b2ffcf782..a8165ffb22c0b2c08f42202f94be192ca413c942 100644 (file)
@@ -594,7 +594,12 @@ void matchset_for_client(struct Client *who, struct matchset *m)
        struct sockaddr_in ip4;
 
        sprintf(m->host[hostn++], "%s!%s@%s", who->name, who->username, who->host);
-       sprintf(m->ip[ipn++], "%s!%s@%s", who->name, who->username, who->sockhost);
+
+       if (!IsIPSpoof(who))
+       {
+               sprintf(m->ip[ipn++], "%s!%s@%s", who->name, who->username, who->sockhost);
+       }
+
        if (who->localClient->mangledhost != NULL)
        {
                /* if host mangling mode enabled, also check their real host */
@@ -609,7 +614,7 @@ void matchset_for_client(struct Client *who, struct matchset *m)
                        sprintf(m->host[hostn++], "%s!%s@%s", who->name, who->username, who->localClient->mangledhost);
                }
        }
-       if (GET_SS_FAMILY(&who->localClient->ip) == AF_INET6 &&
+       if (!IsIPSpoof(who) && GET_SS_FAMILY(&who->localClient->ip) == AF_INET6 &&
                        rb_ipv4_from_ipv6((const struct sockaddr_in6 *)&who->localClient->ip, &ip4))
        {
                int n = sprintf(m->ip[ipn++], "%s!%s@", who->name, who->username);