Обсуждение: Re: [COMMITTERS] pgsql: Add support for TCP keepalives on Windows, both for backend and
Magnus Hagander <magnus@hagander.net> writes: > Seems pretty simple - mingw doesn't have support for this. We have two > ways to deal with that I think: > 1) Disable it on mingw. > 2) Include it in our custom headers. > For #2, what we need to include is the define of SIO_KEEPALIVE_VALS as > well as the definition of struct tcp_keepalive. > We've done #2 before at least once, which worked well until mingw > suddenly caught up and added it a while later. It's not like this is a > new definition in windows, but we need to be ready for them to > eventually do that. Yeah. I'm satisfied with doing #1 and waiting for them to fix it. > I guess there is: > 3) write an autoconf test and provide them only when mingw doesn't have it. > if we're going with #3, I'll respectfully have to ask somebod yelse to > write the autoconf test, that's beyond me I think :-) An easy approximation would be to make the code #ifdef SIO_KEEPALIVE_VALS. That would fail if the mingw guys decide to provide the #define without adding the struct at the same time, but that seems moderately unlikely. regards, tom lane
Re: [COMMITTERS] pgsql: Add support for TCP keepalives on Windows, both for backend and
От
Magnus Hagander
Дата:
On Thu, Jul 8, 2010 at 17:39, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Magnus Hagander <magnus@hagander.net> writes: >> Seems pretty simple - mingw doesn't have support for this. We have two >> ways to deal with that I think: >> 1) Disable it on mingw. >> 2) Include it in our custom headers. > >> For #2, what we need to include is the define of SIO_KEEPALIVE_VALS as >> well as the definition of struct tcp_keepalive. > >> We've done #2 before at least once, which worked well until mingw >> suddenly caught up and added it a while later. It's not like this is a >> new definition in windows, but we need to be ready for them to >> eventually do that. > > Yeah. I'm satisfied with doing #1 and waiting for them to fix it. > >> I guess there is: >> 3) write an autoconf test and provide them only when mingw doesn't have it. >> if we're going with #3, I'll respectfully have to ask somebod yelse to >> write the autoconf test, that's beyond me I think :-) > > An easy approximation would be to make the code #ifdef SIO_KEEPALIVE_VALS. > That would fail if the mingw guys decide to provide the #define without > adding the struct at the same time, but that seems moderately unlikely. Seems reasonable. I'll go do something along that line and verify that it actually works :-) That laves the questions of docs - right now the docs just say it works on windows. I guess we need to add some kind of disclaimer around that, but the fact is that for 99+% of our windows users it will work - since they use the binaries, and the binaries are built with the full api - so we shouldn't make it *too* prominent.. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/
Re: [COMMITTERS] pgsql: Add support for TCP keepalives on Windows, both for backend and
От
Andrew Dunstan
Дата:
Tom Lane wrote: > Magnus Hagander <magnus@hagander.net> writes: > >> Seems pretty simple - mingw doesn't have support for this. We have two >> ways to deal with that I think: >> 1) Disable it on mingw. >> 2) Include it in our custom headers. >> > > >> For #2, what we need to include is the define of SIO_KEEPALIVE_VALS as >> well as the definition of struct tcp_keepalive. >> > > >> We've done #2 before at least once, which worked well until mingw >> suddenly caught up and added it a while later. It's not like this is a >> new definition in windows, but we need to be ready for them to >> eventually do that. >> > > Yeah. I'm satisfied with doing #1 and waiting for them to fix it. > > >> I guess there is: >> 3) write an autoconf test and provide them only when mingw doesn't have it. >> if we're going with #3, I'll respectfully have to ask somebod yelse to >> write the autoconf test, that's beyond me I think :-) >> > > An easy approximation would be to make the code #ifdef SIO_KEEPALIVE_VALS. > That would fail if the mingw guys decide to provide the #define without > adding the struct at the same time, but that seems moderately unlikely. > > > +1 for this course of action. cheers andrew
Re: [COMMITTERS] pgsql: Add support for TCP keepalives on Windows, both for backend and
От
Magnus Hagander
Дата:
On Thu, Jul 8, 2010 at 17:45, Andrew Dunstan <andrew@dunslane.net> wrote: > > > Tom Lane wrote: >> >> Magnus Hagander <magnus@hagander.net> writes: >> >>> >>> Seems pretty simple - mingw doesn't have support for this. We have two >>> ways to deal with that I think: >>> 1) Disable it on mingw. >>> 2) Include it in our custom headers. >>> >> >> >>> >>> For #2, what we need to include is the define of SIO_KEEPALIVE_VALS as >>> well as the definition of struct tcp_keepalive. >>> >> >> >>> >>> We've done #2 before at least once, which worked well until mingw >>> suddenly caught up and added it a while later. It's not like this is a >>> new definition in windows, but we need to be ready for them to >>> eventually do that. >>> >> >> Yeah. I'm satisfied with doing #1 and waiting for them to fix it. >> >> >>> >>> I guess there is: >>> 3) write an autoconf test and provide them only when mingw doesn't have >>> it. >>> if we're going with #3, I'll respectfully have to ask somebod yelse to >>> write the autoconf test, that's beyond me I think :-) >>> >> >> An easy approximation would be to make the code #ifdef SIO_KEEPALIVE_VALS. >> That would fail if the mingw guys decide to provide the #define without >> adding the struct at the same time, but that seems moderately unlikely. >> >> >> > > +1 for this course of action. Here's what I came up with and will apply as soon as my msvc build completes. (the mingw one works with this) -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/
Вложения
Re: [COMMITTERS] pgsql: Add support for TCP keepalives on Windows, both for backend and
От
Magnus Hagander
Дата:
On Thu, Jul 8, 2010 at 18:06, Magnus Hagander <magnus@hagander.net> wrote: > On Thu, Jul 8, 2010 at 17:45, Andrew Dunstan <andrew@dunslane.net> wrote: >> >> >> Tom Lane wrote: >>> >>> Magnus Hagander <magnus@hagander.net> writes: >>> >>>> >>>> Seems pretty simple - mingw doesn't have support for this. We have two >>>> ways to deal with that I think: >>>> 1) Disable it on mingw. >>>> 2) Include it in our custom headers. >>>> >>> >>> >>>> >>>> For #2, what we need to include is the define of SIO_KEEPALIVE_VALS as >>>> well as the definition of struct tcp_keepalive. >>>> >>> >>> >>>> >>>> We've done #2 before at least once, which worked well until mingw >>>> suddenly caught up and added it a while later. It's not like this is a >>>> new definition in windows, but we need to be ready for them to >>>> eventually do that. >>>> >>> >>> Yeah. I'm satisfied with doing #1 and waiting for them to fix it. >>> >>> >>>> >>>> I guess there is: >>>> 3) write an autoconf test and provide them only when mingw doesn't have >>>> it. >>>> if we're going with #3, I'll respectfully have to ask somebod yelse to >>>> write the autoconf test, that's beyond me I think :-) >>>> >>> >>> An easy approximation would be to make the code #ifdef SIO_KEEPALIVE_VALS. >>> That would fail if the mingw guys decide to provide the #define without >>> adding the struct at the same time, but that seems moderately unlikely. >>> >>> >>> >> >> +1 for this course of action. > > Here's what I came up with and will apply as soon as my msvc build > completes. (the mingw one works with this) ... and applied. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/
Re: [COMMITTERS] pgsql: Add support for TCP keepalives on Windows, both for backend and
От
Bruce Momjian
Дата:
Magnus Hagander wrote: > > An easy approximation would be to make the code #ifdef SIO_KEEPALIVE_VALS. > > That would fail if the mingw guys decide to provide the #define without > > adding the struct at the same time, but that seems moderately unlikely. > > Seems reasonable. I'll go do something along that line and verify that > it actually works :-) > > That laves the questions of docs - right now the docs just say it > works on windows. I guess we need to add some kind of disclaimer > around that, but the fact is that for 99+% of our windows users it > will work - since they use the binaries, and the binaries are built > with the full api - so we shouldn't make it *too* prominent.. Wow, how would they know if the binaries are MinGW compiled? Does it show in version()? -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + None of us is going to be here forever. +
Bruce Momjian <bruce@momjian.us> writes: > Magnus Hagander wrote: >> That laves the questions of docs - right now the docs just say it >> works on windows. I guess we need to add some kind of disclaimer >> around that, but the fact is that for 99+% of our windows users it >> will work - since they use the binaries, and the binaries are built >> with the full api - so we shouldn't make it *too* prominent.. > Wow, how would they know if the binaries are MinGW compiled? Does it > show in version()? AFAIK there is nobody distributing mingw-built binaries. If somebody has one, they'd have built it themselves, and they'd know. regards, tom lane
Re: Re: [COMMITTERS] pgsql: Add support for TCP keepalives on Windows, both for backend and
От
Peter Eisentraut
Дата:
On lör, 2010-07-10 at 16:23 -0400, Bruce Momjian wrote: > Wow, how would they know if the binaries are MinGW compiled? Does it > show in version()? Yes, I think so.
Re: Re: [COMMITTERS] pgsql: Add support for TCP keepalives on Windows, both for backend and
От
Magnus Hagander
Дата:
On Sun, Jul 11, 2010 at 00:05, Peter Eisentraut <peter_e@gmx.net> wrote: > On lör, 2010-07-10 at 16:23 -0400, Bruce Momjian wrote: >> Wow, how would they know if the binaries are MinGW compiled? Does it >> show in version()? > > Yes, I think so. It definitely does. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/