Mercurial > dropbear
diff svr-session.c @ 940:e9dfb6d15193
Fix auth timeout regression
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Wed, 09 Jul 2014 22:02:22 +0800 |
parents | a0819ecfee0b |
children | f7f6c15b0ec3 |
line wrap: on
line diff
--- a/svr-session.c Wed Jul 09 00:15:20 2014 +0800 +++ b/svr-session.c Wed Jul 09 22:02:22 2014 +0800 @@ -80,12 +80,22 @@ svr_pubkey_options_cleanup(); } +static void +svr_sessionloop() { + if (svr_ses.connect_time != 0 + && monotonic_now() - svr_ses.connect_time >= AUTH_TIMEOUT) { + dropbear_close("Timeout before auth"); + } +} + void svr_session(int sock, int childpipe) { char *host, *port; size_t len; common_session_init(sock, sock); + svr_ses.connect_time = monotonic_now();; + /* Initialise server specific parts of the session */ svr_ses.childpipe = childpipe; #ifdef USE_VFORK @@ -126,7 +136,7 @@ /* Run the main for loop. NULL is for the dispatcher - only the client * code makes use of it */ - session_loop(NULL); + session_loop(svr_sessionloop); /* Not reached */