When incorrect passwords are entered, behave similarly to login(1) and backoff

for a bit. Based on a diff from martynas@.
This commit is contained in:
Nicholas Marriott
2009-09-02 16:38:35 +00:00
parent 61b7dc522d
commit c5ac2579ba
5 changed files with 55 additions and 4 deletions

View File

@ -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;