[PATCH] Enable ConnectTimeout with ConnectionAttempts

Michihito Shigemura i.am.shige at gmail.com
Mon Dec 10 01:39:32 AEDT 2018


Fix bug ConnectTimeout=N only works on the first ConnectionAttempts
https://bugzilla.mindrot.org/show_bug.cgi?id=2918
---
 sshconnect.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sshconnect.c b/sshconnect.c
index 4862da5e..b837a83a 100644
--- a/sshconnect.c
+++ b/sshconnect.c
@@ -454,11 +454,12 @@ waitrfd(int fd, int *timeoutp)
 {
 	struct pollfd pfd;
 	struct timeval t_start;
-	int oerrno, r;
+	int oerrno, r, next_timeout;
 
 	monotime_tv(&t_start);
 	pfd.fd = fd;
 	pfd.events = POLLIN;
+	next_timeout = *timeoutp;
 	for (; *timeoutp >= 0;) {
 		r = poll(&pfd, 1, *timeoutp);
 		oerrno = errno;
@@ -473,6 +474,7 @@ waitrfd(int fd, int *timeoutp)
 	}
 	/* timeout */
 	errno = ETIMEDOUT;
+	*timeoutp = next_timeout;
 	return -1;
 }
 
-- 
2.19.2



More information about the openssh-unix-dev mailing list