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/