about summary refs log tree commit diff
path: root/chat.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-05-27 11:45:47 -0400
committerJune McEnroe <june@causal.agency>2021-05-27 11:45:47 -0400
commit6d5bcf72c10f7b648c7c605c3cd7ff6dcf9b7b17 (patch)
treecced605fee89298f0f148f64d924c029295fc5e7 /chat.c
parentLog nick and ssh connection in chroot-prompt (diff)
downloadcatgirl-6d5bcf72c10f7b648c7c605c3cd7ff6dcf9b7b17.tar.gz
catgirl-6d5bcf72c10f7b648c7c605c3cd7ff6dcf9b7b17.zip
Hash the username in kiosk mode
So that the first part of $SSH_CLIENT can be passed as username.
Diffstat (limited to 'chat.c')
-rw-r--r--chat.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/chat.c b/chat.c
index 7335520..23ad335 100644
--- a/chat.c
+++ b/chat.c
@@ -28,6 +28,7 @@
 #include <err.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <inttypes.h>
 #include <limits.h>
 #include <locale.h>
 #include <poll.h>
@@ -268,6 +269,13 @@ int main(int argc, char *argv[]) {
 	if (!user) user = nick;
 	if (!real) real = nick;
 
+	if (self.kiosk) {
+		char *hash;
+		int n = asprintf(&hash, "%8" PRIx32, _hash(user));
+		if (n < 0) err(EX_OSERR, "asprintf");
+		user = hash;
+	}
+
 	// Modes defined in RFC 1459:
 	set(&network.chanTypes, "#&");
 	set(&network.prefixes, "@+");