dovecot-1.2: login: Reset idle timeout only when input is actual...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Dec 19 09:49:37 EET 2008
details: http://hg.dovecot.org/dovecot-1.2/rev/164569761647
changeset: 8577:164569761647
user: Timo Sirainen <tss at iki.fi>
date: Fri Dec 19 09:46:46 2008 +0200
description:
login: Reset idle timeout only when input is actually read from client.
This prevents client from just sending lots of failed authentication
attempts and then doing nothing for hours.
diffstat:
4 files changed, 8 insertions(+), 5 deletions(-)
src/imap-login/client-authenticate.c | 1 -
src/imap-login/client.c | 6 ++++--
src/pop3-login/client-authenticate.c | 1 -
src/pop3-login/client.c | 5 ++++-
diffs (70 lines):
diff -r d077e608a2d6 -r 164569761647 src/imap-login/client-authenticate.c
--- a/src/imap-login/client-authenticate.c Fri Dec 19 09:37:13 2008 +0200
+++ b/src/imap-login/client-authenticate.c Fri Dec 19 09:46:46 2008 +0200
@@ -115,7 +115,6 @@ static void client_auth_failed(struct im
AUTH_FAILURE_DELAY_INCREASE_MSECS;
if (delay_msecs > CLIENT_LOGIN_IDLE_TIMEOUT_MSECS)
delay_msecs = CLIENT_LOGIN_IDLE_TIMEOUT_MSECS - 1000;
- timeout_reset(client->to_idle_disconnect);
i_assert(client->to_authfail_delay == NULL);
client->to_authfail_delay =
diff -r d077e608a2d6 -r 164569761647 src/imap-login/client.c
--- a/src/imap-login/client.c Fri Dec 19 09:37:13 2008 +0200
+++ b/src/imap-login/client.c Fri Dec 19 09:46:46 2008 +0200
@@ -387,16 +387,18 @@ bool client_read(struct imap_client *cli
/* disconnected */
client_destroy(client, "Disconnected");
return FALSE;
+ case 0:
+ /* nothing new read */
+ return TRUE;
default:
/* something was read */
+ timeout_reset(client->to_idle_disconnect);
return TRUE;
}
}
void client_input(struct imap_client *client)
{
- timeout_reset(client->to_idle_disconnect);
-
if (!client_read(client))
return;
diff -r d077e608a2d6 -r 164569761647 src/pop3-login/client-authenticate.c
--- a/src/pop3-login/client-authenticate.c Fri Dec 19 09:37:13 2008 +0200
+++ b/src/pop3-login/client-authenticate.c Fri Dec 19 09:46:46 2008 +0200
@@ -115,7 +115,6 @@ static void client_auth_failed(struct po
AUTH_FAILURE_DELAY_INCREASE_MSECS;
if (delay_msecs > CLIENT_LOGIN_IDLE_TIMEOUT_MSECS)
delay_msecs = CLIENT_LOGIN_IDLE_TIMEOUT_MSECS - 1000;
- timeout_reset(client->to_idle_disconnect);
i_assert(client->to_authfail_delay == NULL);
client->to_authfail_delay =
diff -r d077e608a2d6 -r 164569761647 src/pop3-login/client.c
--- a/src/pop3-login/client.c Fri Dec 19 09:37:13 2008 +0200
+++ b/src/pop3-login/client.c Fri Dec 19 09:46:46 2008 +0200
@@ -179,8 +179,12 @@ bool client_read(struct pop3_client *cli
/* disconnected */
client_destroy(client, "Disconnected");
return FALSE;
+ case 0:
+ /* nothing new read */
+ return TRUE;
default:
/* something was read */
+ timeout_reset(client->to_idle_disconnect);
return TRUE;
}
}
@@ -191,7 +195,6 @@ void client_input(struct pop3_client *cl
i_assert(!client->common.authenticating);
- timeout_reset(client->to_idle_disconnect);
if (!client_read(client))
return;
More information about the dovecot-cvs
mailing list