changeset 2677:fea3207b800d v7.3.096

updated for version 7.3.096 Problem: "gvim -nb" is not interruptable. Leaking file descriptor on netbeans connection error. Solution: Check for CTRL-C typed. Free file descriptor. (Xavier de Gaye)
author Bram Moolenaar <bram@vim.org>
date Tue, 04 Jan 2011 18:11:43 +0100
parents 8464d084fa74
children faf4b09c396e
files src/netbeans.c src/version.c
diffstat 2 files changed, 10 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/netbeans.c
+++ b/src/netbeans.c
@@ -321,6 +321,7 @@ netbeans_connect(char *params, int doabo
     {
 	nbdebug(("error in gethostbyname() in netbeans_connect()\n"));
 	PERROR("gethostbyname() in netbeans_connect()");
+	sock_close(sd);
 	goto theend;
     }
     memcpy((char *)&server.sin_addr, host->h_addr, host->h_length);
@@ -370,15 +371,12 @@ netbeans_connect(char *params, int doabo
 							 || (errno == EINTR)))
 		{
 		    nbdebug(("retrying...\n"));
-		    sleep(5);
-		    if (!doabort)
+		    mch_delay(3000L, TRUE);
+		    ui_breakcheck();
+		    if (got_int)
 		    {
-			ui_breakcheck();
-			if (got_int)
-			{
-			    errno = EINTR;
-			    break;
-			}
+			errno = EINTR;
+			break;
 		    }
 		    if (connect(sd, (struct sockaddr *)&server,
 							 sizeof(server)) == 0)
@@ -393,6 +391,7 @@ netbeans_connect(char *params, int doabo
 		    /* Get here when the server can't be found. */
 		    nbdebug(("Cannot connect to Netbeans #2\n"));
 		    PERROR(_("Cannot connect to Netbeans #2"));
+		    sock_close(sd);
 		    if (doabort)
 			getout(1);
 		    goto theend;
@@ -403,6 +402,7 @@ netbeans_connect(char *params, int doabo
 	{
 	    nbdebug(("Cannot connect to Netbeans\n"));
 	    PERROR(_("Cannot connect to Netbeans"));
+	    sock_close(sd);
 	    if (doabort)
 		getout(1);
 	    goto theend;
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    96,
+/**/
     95,
 /**/
     94,