From 8e9c52e427e9a0b0b04f75b552c6d02b14c95520 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 11 Aug 2005 22:53:41 +0000 Subject: [PATCH] EINTR return from connect() should be treated exactly the same as EINPROGRESS, according to Florian Hars. I'm not completely convinced but the spec does seem to read that way. --- src/interfaces/libpq/fe-connect.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index d91182e2f1..de784d928c 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.316 2005/08/09 05:14:26 momjian Exp $ + * $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.317 2005/08/11 22:53:41 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1082,15 +1082,12 @@ keep_going: /* We will come back to here until there * since we are in nonblock mode. If it does, well, * too bad. */ - retry_connect: if (connect(conn->sock, addr_cur->ai_addr, addr_cur->ai_addrlen) < 0) { - if (SOCK_ERRNO == EINTR) - /* Interrupted system call - just try again */ - goto retry_connect; if (SOCK_ERRNO == EINPROGRESS || SOCK_ERRNO == EWOULDBLOCK || + SOCK_ERRNO == EINTR || SOCK_ERRNO == 0) { /*