From: Bruce Momjian <bruce@momjian.us>
Date: Mon, 14 Oct 2002 17:15:11 +0000 (+0000)
Subject: libpq connection_timeout doesn't do subsecond timing, so make the code
X-Git-Tag: REL7_3~292
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9eada51012274383be642af472f24fb55576ce17;p=postgresql

libpq connection_timeout doesn't do subsecond timing, so make the code
clear on that point.
---

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);