Re: Keepalives win32
Magnus Hagander <magnus@hagander.net>
From: Magnus Hagander <magnus@hagander.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-06-28T20:21:01Z
Lists: pgsql-hackers
Attachments
- libpq_keepalives_win32.patch (application/octet-stream) patch
On Mon, Jun 28, 2010 at 21:10, Magnus Hagander <magnus@hagander.net> wrote: > On Mon, Jun 28, 2010 at 21:03, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Magnus Hagander <magnus@hagander.net> writes: >>> On Mon, Jun 28, 2010 at 20:45, Tom Lane <tgl@sss.pgh.pa.us> wrote: >>>> I vote for #2. It's the least inconsistent --- we don't pay attention >>>> to the registry for much of anything else, do we? >> >>> Directly, no? Indirectly, we do. For every other TCP parameter >>> (because the registry controls what we'll get as the default when we >>> "just use things") >> >> Not if we make the code use the RFC values as the defaults. I'm >> envisioning the GUC assign hooks doing something like >> >> #ifdef WIN32 >> if (newval == 0) >> newval = RFC-specified-default; >> #endif > > Right. (I've only looked at the libpq side so far) > > Also, we could avoid caling it *at all* if neither one of those > parameters is set. That'll take a bit more code (using the > unix-codepath of setsockopt() to enable keepalives at all), but it > shouldn't amount to many lines.. Here's what I'm thinking, for the libpq side. Similar change on the server side. Seems ok? (still http://github.com/mhagander/postgres/compare/master...win32keepalive for those that prefer that interface) -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/