diff options
author | Bruce Momjian <bruce@momjian.us> | 2002-10-16 02:55:30 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2002-10-16 02:55:30 +0000 |
commit | facb72007333d9c0acff0f8d64b36d2c4a262665 (patch) | |
tree | 63f508de2ef7573ebdd740889b271f2f9101a3d3 /src/interfaces/libpq/fe-misc.c | |
parent | 8a96c50ec98e9d24b25b6bfed359da7778a032d4 (diff) |
Fix connection_timeout to use time() and handle timeout == 1.
Code cleanup.
Diffstat (limited to 'src/interfaces/libpq/fe-misc.c')
-rw-r--r-- | src/interfaces/libpq/fe-misc.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c index 7b5a2eeb152..6cb7013514e 100644 --- a/src/interfaces/libpq/fe-misc.c +++ b/src/interfaces/libpq/fe-misc.c @@ -25,7 +25,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.83 2002/10/14 18:11:17 momjian Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.84 2002/10/16 02:55:30 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -779,11 +779,11 @@ pqFlush(PGconn *conn) int pqWait(int forRead, int forWrite, PGconn *conn) { - return pqWaitTimed(forRead, forWrite, conn, (const struct timeval *) NULL); + return pqWaitTimed(forRead, forWrite, conn, -1); } int -pqWaitTimed(int forRead, int forWrite, PGconn *conn, const struct timeval *timeout) +pqWaitTimed(int forRead, int forWrite, PGconn *conn, time_t finish_time) { fd_set input_mask; fd_set output_mask; @@ -820,7 +820,7 @@ retry5: FD_SET(conn->sock, &output_mask); FD_SET(conn->sock, &except_mask); - if (NULL != timeout) + if (finish_time != -1) { /* * select() may modify timeout argument on some platforms so @@ -831,7 +831,9 @@ retry5: * incorrect timings when select() is interrupted. * bjm 2002-10-14 */ - tmp_timeout = *timeout; + if ((tmp_timeout.tv_sec = finish_time - time(NULL)) < 0) + tmp_timeout.tv_sec = 0; /* possible? */ + tmp_timeout.tv_usec = 0; ptmp_timeout = &tmp_timeout; } if (select(conn->sock + 1, &input_mask, &output_mask, |