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.
This commit is contained in:
parent
d90c531188
commit
8e9c52e427
@ -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)
|
||||
{
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user