]> andersk Git - openssh.git/commitdiff
- markus@cvs.openbsd.org 2006/04/20 09:47:59
authordjm <djm>
Sun, 23 Apr 2006 02:08:59 +0000 (02:08 +0000)
committerdjm <djm>
Sun, 23 Apr 2006 02:08:59 +0000 (02:08 +0000)
     [sshconnect.c]
     simplify; ok djm@

ChangeLog
sshconnect.c

index 771ae57de61a554e5ea792de12c157353010b853..60c4a10282f5f040c4e3095e1b326eb16332e073 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -52,6 +52,9 @@
      replace the last non-sig_atomic_t flag used in a signal handler with a
      sig_atomic_t, unfortunately with some knock-on effects in other (non-
      signal) contexts in which it is used; ok markus@
+   - markus@cvs.openbsd.org 2006/04/20 09:47:59
+     [sshconnect.c]
+     simplify; ok djm@
 
 20060421
  - (djm) [Makefile.in configure.ac session.c sshpty.c]
index 5cf107794f4a33dddd273236e223fb26a8dc4ef0..5f2ad1cfa741bcf87ae88adb9494be9b04adb657 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshconnect.c,v 1.180 2006/03/25 13:17:02 djm Exp $ */
+/* $OpenBSD: sshconnect.c,v 1.181 2006/04/20 09:47:59 markus Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -306,17 +306,14 @@ ssh_connect(const char *host, struct sockaddr_storage * hostaddr,
                fatal("%s: %.100s: %s", __progname, host,
                    gai_strerror(gaierr));
 
-       /*
-        * Try to connect several times.  On some machines, the first time
-        * will sometimes fail.  In general socket code appears to behave
-        * quite magically on many machines.
-                */
-       for (attempt = 0; ;) {
+       for (attempt = 0; attempt < connection_attempts; attempt++) {
                if (attempt > 0)
                        debug("Trying again...");
 
-               /* Loop through addresses for this host, and try each one in
-                  sequence until the connection succeeds. */
+               /*
+                * Loop through addresses for this host, and try each one in
+                * sequence until the connection succeeds.
+                */
                for (ai = aitop; ai; ai = ai->ai_next) {
                        if (ai->ai_family != AF_INET && ai->ai_family != AF_INET6)
                                continue;
@@ -343,21 +340,13 @@ ssh_connect(const char *host, struct sockaddr_storage * hostaddr,
                        } else {
                                debug("connect to address %s port %s: %s",
                                    ntop, strport, strerror(errno));
-                               /*
-                                * Close the failed socket; there appear to
-                                * be some problems when reusing a socket for
-                                * which connect() has already returned an
-                                * error.
-                                */
                                close(sock);
+                               sock = -1;
                        }
                }
-               if (ai)
+               if (sock != -1)
                        break;  /* Successful connection. */
 
-               attempt++;
-               if (attempt >= connection_attempts)
-                       break;
                /* Sleep a moment before retrying. */
                sleep(1);
        }
@@ -365,7 +354,7 @@ ssh_connect(const char *host, struct sockaddr_storage * hostaddr,
        freeaddrinfo(aitop);
 
        /* Return failure if we didn't get a successful connection. */
-       if (attempt >= connection_attempts) {
+       if (sock == -1) {
                error("ssh: connect to host %s port %s: %s",
                    host, strport, strerror(errno));
                return (-1);
This page took 0.986284 seconds and 5 git commands to generate.