aboutsummaryrefslogtreecommitdiff
path: root/server-msg.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-09-02 16:38:35 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-09-02 16:38:35 +0000
commitc5ac2579bac08f46f68ee7b9b9e47b6123e83bd2 (patch)
tree5737b5805ca0cf415d3457c80860e6874e7f6b72 /server-msg.c
parent61b7dc522d175c5f2a8b38d177adcf7282820380 (diff)
downloadrtmux-c5ac2579bac08f46f68ee7b9b9e47b6123e83bd2.tar.gz
rtmux-c5ac2579bac08f46f68ee7b9b9e47b6123e83bd2.tar.bz2
rtmux-c5ac2579bac08f46f68ee7b9b9e47b6123e83bd2.zip
When incorrect passwords are entered, behave similarly to login(1) and backoff
for a bit. Based on a diff from martynas@.
Diffstat (limited to 'server-msg.c')
-rw-r--r--server-msg.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/server-msg.c b/server-msg.c
index 54bd2439..8c50339d 100644
--- a/server-msg.c
+++ b/server-msg.c
@@ -99,8 +99,15 @@ server_msg_dispatch(struct client *c)
memcpy(&unlockdata, imsg.data, sizeof unlockdata);
unlockdata.pass[(sizeof unlockdata.pass) - 1] = '\0';
- if (server_unlock(unlockdata.pass) != 0)
+ switch (server_unlock(unlockdata.pass)) {
+ case -1:
server_write_error(c, "bad password");
+ break;
+ case -2:
+ server_write_error(c,
+ "too many bad passwords, sleeping");
+ break;
+ }
memset(&unlockdata, 0, sizeof unlockdata);
server_write_client(c, MSG_EXIT, NULL, 0);
break;