From 9eada51012274383be642af472f24fb55576ce17 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 14 Oct 2002 17:15:11 +0000 Subject: [PATCH] libpq connection_timeout doesn't do subsecond timing, so make the code clear on that point. --- src/interfaces/libpq/fe-connect.c | 8 +++----- src/interfaces/libpq/fe-misc.c | 12 +++++------- src/interfaces/libpq/libpq-int.h | 4 ++-- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index 6f9ba4abdd..53d79f632c 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.208 2002/10/11 04:41:59 momjian Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.209 2002/10/14 17:15:11 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1071,15 +1071,14 @@ connectDBComplete(PGconn *conn) conn->status = CONNECTION_BAD; return 0; } - remains.tv_usec = 0; + remains.tv_usec = 0; /* We don't use subsecond timing */ rp = &remains; /* calculate the finish time based on start + timeout */ finish_time = time((time_t *) NULL) + remains.tv_sec; } - while (rp == NULL || remains.tv_sec > 0 || - (remains.tv_sec == 0 && remains.tv_usec > 0)) + while (rp == NULL || remains.tv_sec > 0) { /* * Wait, if necessary. Note that the initial state (just after @@ -1133,7 +1132,6 @@ connectDBComplete(PGconn *conn) } remains.tv_sec = finish_time - current_time; - remains.tv_usec = 0; } } conn->status = CONNECTION_BAD; diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c index ad41cf749d..e820ad7fc5 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.80 2002/10/03 17:09:42 momjian Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.81 2002/10/14 17:15:11 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -783,14 +783,13 @@ pqWait(int forRead, int forWrite, PGconn *conn) } int -pqWaitTimed(int forRead, int forWrite, PGconn *conn, const struct timeval * timeout) +pqWaitTimed(int forRead, int forWrite, PGconn *conn, const struct timeval *timeout) { fd_set input_mask; fd_set output_mask; fd_set except_mask; struct timeval tmp_timeout; - struct timeval *ptmp_timeout = NULL; if (conn->sock < 0) { @@ -823,14 +822,13 @@ retry5: if (NULL != timeout) { /* - * select may modify timeout argument on some platforms use - * copy + * select() may modify timeout argument on some platforms so + * use copy */ tmp_timeout = *timeout; - ptmp_timeout = &tmp_timeout; } if (select(conn->sock + 1, &input_mask, &output_mask, - &except_mask, ptmp_timeout) < 0) + &except_mask, &tmp_timeout) < 0) { if (SOCK_ERRNO == EINTR) goto retry5; diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h index cdf978e5b1..e2ee2491f8 100644 --- a/src/interfaces/libpq/libpq-int.h +++ b/src/interfaces/libpq/libpq-int.h @@ -12,7 +12,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: libpq-int.h,v 1.58 2002/10/03 17:09:42 momjian Exp $ + * $Id: libpq-int.h,v 1.59 2002/10/14 17:15:11 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -340,7 +340,7 @@ extern int pqReadData(PGconn *conn); extern int pqFlush(PGconn *conn); extern int pqSendSome(PGconn *conn); extern int pqWait(int forRead, int forWrite, PGconn *conn); -extern int pqWaitTimed(int forRead, int forWrite, PGconn *conn, const struct timeval * timeout); +extern int pqWaitTimed(int forRead, int forWrite, PGconn *conn, const struct timeval *timeout); extern int pqReadReady(PGconn *conn); extern int pqWriteReady(PGconn *conn);