aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/libpq/fe-connect.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index d7945375d33..4a30f526936 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -426,6 +426,8 @@ static void pgpassfileWarning(PGconn *conn);
static void default_threadlock(int acquire);
static bool sslVerifyProtocolVersion(const char *version);
static bool sslVerifyProtocolRange(const char *min, const char *max);
+static bool parse_int_param(const char *value, int *result, PGconn *conn,
+ const char *context);
/* global variable because fe-auth.c needs to access it */
@@ -1784,14 +1786,14 @@ connectFailureMessage(PGconn *conn, int errorno)
static int
useKeepalives(PGconn *conn)
{
- char *ep;
int val;
if (conn->keepalives == NULL)
return 1;
- val = strtol(conn->keepalives, &ep, 10);
- if (*ep)
+
+ if (!parse_int_param(conn->keepalives, &val, conn, "keepalives"))
return -1;
+
return val != 0 ? 1 : 0;
}
@@ -2627,8 +2629,7 @@ keep_going: /* We will come back to here until there is
if (usekeepalives < 0)
{
- appendPQExpBufferStr(&conn->errorMessage,
- libpq_gettext("keepalives parameter must be an integer\n"));
+ /* error is already reported */
err = 1;
}
else if (usekeepalives == 0)