On Wed, Jun 23, 2010 at 5:32 AM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Tue, Jun 22, 2010 at 3:45 PM, Robert Haas <robertmhaas@gmail.com> wrote:
>> On Tue, Jun 22, 2010 at 3:28 PM, Robert Haas <robertmhaas@gmail.com> wrote:
>>> Either I'm doing something wrong,
>>
>> I think it's this one. Stand by.
>
> OK, here's a new version with several fewer bugs.
Since valid values for keepalives parameter are 0 and 1, its field size should
be 1 rather than 10.
diff --git a/src/interfaces/libpq/fe-connect.c
b/src/interfaces/libpq/fe-connect.c
index 8240404..f0085ab 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -184,7 +184,7 @@ static const PQconninfoOption PQconninfoOptions[] = { "Fallback-Application-Name", "", 64},
{"keepalives", NULL, NULL, NULL,
- "TCP-Keepalives", "", 10}, /* strlen(INT32_MAX) == 10 */
+ "TCP-Keepalives", "", 1},
{"keepalives_idle", NULL, NULL, NULL, "TCP-Keepalives-Idle", "", 10}, /* strlen(INT32_MAX) == 10 */
In this case, you can check the value of keepalives parameter by seeing
conn->keepalives[0] instead of using strtol() in useKeepalives().
Regards,
--
Fujii Masao
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center