diff options
author | June McEnroe <june@causal.agency> | 2021-05-27 11:45:47 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-05-27 11:45:47 -0400 |
commit | 6d5bcf72c10f7b648c7c605c3cd7ff6dcf9b7b17 (patch) | |
tree | cced605fee89298f0f148f64d924c029295fc5e7 /chat.h | |
parent | Log nick and ssh connection in chroot-prompt (diff) | |
download | catgirl-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.h')
-rw-r--r-- | chat.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/chat.h b/chat.h index fadbc30..44ec9b8 100644 --- a/chat.h +++ b/chat.h @@ -138,8 +138,7 @@ static inline uint idFor(const char *name) { extern uint32_t hashInit; extern uint32_t hashBound; -static inline enum Color hash(const char *str) { - if (hashBound < Blue) return Default; +static inline uint32_t _hash(const char *str) { if (*str == '~') str++; uint32_t hash = hashInit; for (; *str; ++str) { @@ -147,7 +146,11 @@ static inline enum Color hash(const char *str) { hash ^= *str; hash *= 0x27220A95; } - return Blue + hash % (hashBound + 1 - Blue); + return hash; +} +static inline enum Color hash(const char *str) { + if (hashBound < Blue) return Default; + return Blue + _hash(str) % (hashBound + 1 - Blue); } extern struct Network { |