Set the connection async before polling for connection

It should fix ticket #194
This commit is contained in:
Daniele Varrazzo 2014-02-24 12:12:16 +00:00
parent ca99579b76
commit 63e36e22d2

View File

@ -613,6 +613,11 @@ _conn_async_connect(connectionObject *self)
PQsetNoticeProcessor(pgconn, conn_notice_callback, (void*)self); PQsetNoticeProcessor(pgconn, conn_notice_callback, (void*)self);
/* Set the connection to nonblocking now. */
if (pq_set_non_blocking(self, 1) != 0) {
return -1;
}
/* The connection will be completed banging on poll(): /* The connection will be completed banging on poll():
* First with _conn_poll_connecting() that will finish connection, * First with _conn_poll_connecting() that will finish connection,
* then with _conn_poll_setup_async() that will do the same job * then with _conn_poll_setup_async() that will do the same job
@ -787,11 +792,6 @@ _conn_poll_setup_async(connectionObject *self)
switch (self->status) { switch (self->status) {
case CONN_STATUS_CONNECTING: case CONN_STATUS_CONNECTING:
/* Set the connection to nonblocking now. */
if (pq_set_non_blocking(self, 1) != 0) {
break;
}
self->equote = conn_get_standard_conforming_strings(self->pgconn); self->equote = conn_get_standard_conforming_strings(self->pgconn);
self->protocol = conn_get_protocol_version(self->pgconn); self->protocol = conn_get_protocol_version(self->pgconn);
self->server_version = conn_get_server_version(self->pgconn); self->server_version = conn_get_server_version(self->pgconn);