about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJRMU <jrmu@lecturify.com>2019-09-04 06:48:54 +0200
committerAlexander Barton <alex@barton.de>2019-09-09 15:30:44 +0200
commit147e424d98091a3627091edbfdab9fca52f21938 (patch)
treefc64b2c26b22d7b04766e2a4764917cd710c8033 /src
parente954b59d414fb32b89291514d0d690c9ebabba49 (diff)
downloadngircd-147e424d98091a3627091edbfdab9fca52f21938.tar.gz
ngircd-147e424d98091a3627091edbfdab9fca52f21938.zip
Fix hostmask cloaking bug, don't cloak multiple times
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.
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/client.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/ngircd/client.c b/src/ngircd/client.c
index 7e6ff68a..a453312c 100644
--- a/src/ngircd/client.c
+++ b/src/ngircd/client.c
@@ -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);