8
8
*
9
9
*
10
10
* IDENTIFICATION
11
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.169 2001/07/20 17:45:05 momjian Exp $
11
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.170 2001/07/21 04:32:41 momjian Exp $
12
12
*
13
13
*-------------------------------------------------------------------------
14
14
*/
@@ -70,7 +70,7 @@ static SSL_CTX *SSL_context = NULL;
70
70
71
71
#define NOTIFYLIST_INITIAL_SIZE 10
72
72
#define NOTIFYLIST_GROWBY 10
73
-
73
+ #define WIN32_NON_BLOCKING_CONNECTIONS
74
74
75
75
/* ----------
76
76
* Definition of the conninfo parameters and their fallback resources.
@@ -932,9 +932,15 @@ connectDBStart(PGconn *conn)
932
932
* Thus, we have make arrangements for all eventualities.
933
933
* ----------
934
934
*/
935
+ #ifndef WIN32
935
936
if (connect (conn -> sock , & conn -> raddr .sa , conn -> raddr_len ) < 0 )
936
937
{
937
938
if (errno == EINPROGRESS || errno == 0 )
939
+ #else
940
+ if (connect (conn -> sock , & conn -> raddr .sa , conn -> raddr_len ) != 0 )
941
+ {
942
+ if (errno == EINPROGRESS || errno == EWOULDBLOCK )
943
+ #endif
938
944
{
939
945
940
946
/*
@@ -1208,15 +1214,6 @@ PQconnectPoll(PGconn *conn)
1208
1214
{
1209
1215
ACCEPT_TYPE_ARG3 laddrlen ;
1210
1216
1211
- #ifndef WIN32
1212
- int optval ;
1213
-
1214
- #else
1215
- char optval ;
1216
-
1217
- #endif
1218
- ACCEPT_TYPE_ARG3 optlen = sizeof (optval );
1219
-
1220
1217
/*
1221
1218
* Write ready, since we've made it here, so the
1222
1219
* connection has been made.
@@ -1227,6 +1224,10 @@ PQconnectPoll(PGconn *conn)
1227
1224
* state waiting for us on the socket.
1228
1225
*/
1229
1226
1227
+ #ifndef WIN32
1228
+ int optval ;
1229
+ ACCEPT_TYPE_ARG3 optlen = sizeof (optval );
1230
+
1230
1231
if (getsockopt (conn -> sock , SOL_SOCKET , SO_ERROR ,
1231
1232
(char * ) & optval , & optlen ) == -1 )
1232
1233
{
@@ -1235,6 +1236,20 @@ PQconnectPoll(PGconn *conn)
1235
1236
strerror (errno ));
1236
1237
goto error_return ;
1237
1238
}
1239
+ #else
1240
+ char far optval [8 ];
1241
+ ACCEPT_TYPE_ARG3 optlen = sizeof (optval );
1242
+
1243
+ int OptResult = getsockopt (conn -> sock , SOL_SOCKET , SO_ERROR ,optval , & optlen );
1244
+ if (OptResult == SOCKET_ERROR )
1245
+ {
1246
+ printfPQExpBuffer (& conn -> errorMessage ,
1247
+ "PQconnectPoll() -- getsockopt() failed: "
1248
+ "errno=%i\n" , errno );
1249
+ connectFailureMessage (conn , OptResult );
1250
+ goto error_return ;
1251
+ }
1252
+ #endif
1238
1253
else if (optval != 0 )
1239
1254
{
1240
1255
0 commit comments