From ce59260ee9701d975baa4833534f1aedea6ba228 Mon Sep 17 00:00:00 2001 From: Matt Johnston Date: Mon, 3 Aug 2015 21:59:40 +0800 Subject: Fix problem where auth timeout wasn't checked when waiting for ident --- common-session.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'common-session.c') diff --git a/common-session.c b/common-session.c index 8ec7516..f2ccdf7 100644 --- a/common-session.c +++ b/common-session.c @@ -76,6 +76,7 @@ void common_session_init(int sock_in, int sock_out) { update_channel_prio(); now = monotonic_now(); + ses.connect_time = now; ses.last_packet_time_keepalive_recv = now; ses.last_packet_time_idle = now; ses.last_packet_time_any_sent = 0; @@ -486,6 +487,11 @@ static void checktimeouts() { time_t now; now = monotonic_now(); + if (IS_DROPBEAR_SERVER && ses.connect_time != 0 + && now - ses.connect_time >= AUTH_TIMEOUT) { + dropbear_close("Timeout before auth"); + } + /* we can't rekey if we haven't done remote ident exchange yet */ if (ses.remoteident == NULL) { return; -- cgit v1.2.3