Fix hostmask cloaking bug, don't cloak multiple times master
authorJRMU <jrmu@lecturify.com>
Wed, 4 Sep 2019 04:48:54 +0000 (06:48 +0200)
committerAlexander Barton <alex@barton.de>
Mon, 9 Sep 2019 13:30:44 +0000 (15:30 +0200)
Previously, each server would cloak every user's hostmask. The problem
is that if a network has more than one server, then a user's hostmask
would get cloaked twice. This patch ensures that a server only cloaks
the hostmask if it has not yet been cloaked (the period indicates it's
still an IP address).

Closes #228.

src/ngircd/client.c

index 7e6ff68..a453312 100644 (file)
@@ -337,7 +337,9 @@ Client_SetHostname( CLIENT *Client, const char *Hostname )
        assert(Client != NULL);
        assert(Hostname != NULL);
 
-       if (Conf_CloakHost[0]) {
+       /* Only cloak the hostmask if it has not yet been cloaked (the period
+        * indicates it's still an IP address). */
+       if (Conf_CloakHost[0] && strchr(Client->host, '.')) {
                char cloak[GETID_LEN];
 
                strlcpy(cloak, Hostname, GETID_LEN);