changeset 8334:ad4b00bf2984 v7.4.1459

commit https://github.com/vim/vim/commit/e081e21f760bffc24ca98d5f9bbdb5f02e6aea79 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Feb 28 22:33:46 2016 +0100 patch 7.4.1459 Problem: MS-Windows doesn't know socklen_t. Solution: Use previous method for WIN32.
author Christian Brabandt <cb@256bit.org>
date Sun, 28 Feb 2016 22:45:04 +0100
parents c49db21a70e2
children 13fa98c154ba
files src/channel.c src/version.c
diffstat 2 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/channel.c
+++ b/src/channel.c
@@ -681,8 +681,10 @@ channel_open(
 	    struct timeval	tv;
 	    fd_set		rfds;
 	    fd_set		wfds;
+#ifndef WIN32
 	    int			so_error = 0;
 	    socklen_t		so_error_len = sizeof(so_error);
+#endif
 
 	    FD_ZERO(&rfds);
 	    FD_SET(sd, &rfds);
@@ -709,9 +711,12 @@ channel_open(
 		return NULL;
 	    }
 
+#ifdef WIN32
 	    /* On Win32: select() is expected to work and wait for up to the
-	     * waittime for the socket to be open.
-	     * On Linux-like systems: See socket(7) for the behavior
+	     * waittime for the socket to be open. */
+	    if (!FD_ISSET(sd, &wfds) || ret == 0)
+#else
+	    /* On Linux-like systems: See socket(7) for the behavior
 	     * After putting the socket in non-blocking mode, connect() will
 	     * return EINPROGRESS, select() will not wait (as if writing is
 	     * possible), need to use getsockopt() to check if the socket is
@@ -725,9 +730,9 @@ channel_open(
 		if (ret < 0 || (so_error != 0
 			&& so_error != EWOULDBLOCK
 			&& so_error != ECONNREFUSED
-#ifdef EINPROGRESS
+# ifdef EINPROGRESS
 			&& so_error != EINPROGRESS
-#endif
+# endif
 			))
 		{
 		    ch_errorn(channel,
@@ -741,6 +746,7 @@ channel_open(
 	    }
 
 	    if (!FD_ISSET(sd, &wfds) || so_error != 0)
+#endif
 	    {
 #ifndef WIN32
 		struct  timeval end_tv;
--- a/src/version.c
+++ b/src/version.c
@@ -744,6 +744,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1459,
+/**/
     1458,
 /**/
     1457,