diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index 6bce6f647bd..4a08769e287 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -2067,14 +2067,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; } @@ -2958,7 +2958,7 @@ keep_going: /* We will come back to here until there is if (usekeepalives < 0) { - libpq_append_conn_error(conn, "keepalives parameter must be an integer"); + /* error is already reported */ err = 1; } else if (usekeepalives == 0)