]> andersk Git - openssh.git/blobdiff - sshconnect.c
[configure.ac] Make sure -lcrypto is before -lsocket for sco3. ok mouring@
[openssh.git] / sshconnect.c
index 3d6cc375a2bc1303b1d09c01f43f7412ed55a1e2..dfeddd39eec51b02c65a5db9629eeb5e1484c12f 100644 (file)
@@ -13,7 +13,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: sshconnect.c,v 1.154 2003/11/21 11:57:03 djm Exp $");
+RCSID("$OpenBSD: sshconnect.c,v 1.156 2004/01/25 03:49:09 djm Exp $");
 
 #include <openssl/bn.h>
 
@@ -231,12 +231,12 @@ timeout_connect(int sockfd, const struct sockaddr *serv_addr,
        if (timeout <= 0)
                return (connect(sockfd, serv_addr, addrlen));
 
-       if (fcntl(sockfd, F_SETFL, O_NONBLOCK) < 0)
-               return (-1);
-
+       set_nonblock(sockfd);
        rc = connect(sockfd, serv_addr, addrlen);
-       if (rc == 0)
+       if (rc == 0) {
+               unset_nonblock(sockfd);
                return (0);
+       }
        if (errno != EINPROGRESS)
                return (-1);
 
@@ -277,6 +277,7 @@ timeout_connect(int sockfd, const struct sockaddr *serv_addr,
                        break;
                }
                result = 0;
+               unset_nonblock(sockfd);
                break;
        default:
                /* Should not occur */
@@ -415,8 +416,8 @@ ssh_connect(const char *host, struct sockaddr_storage * hostaddr,
 
        debug("Connection established.");
 
-       /* Set keepalives if requested. */
-       if (options.keepalives &&
+       /* Set SO_KEEPALIVE if requested. */
+       if (options.tcp_keep_alive &&
            setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (void *)&on,
            sizeof(on)) < 0)
                error("setsockopt SO_KEEPALIVE: %.100s", strerror(errno));
This page took 0.103377 seconds and 4 git commands to generate.