[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: SO_KEEPALIVE



At 11:09 AM 3/13/00 +0100, Urban Lindberg wrote:
>I have a problem, I'm running openLDAP on FreeBSD 3.1.
>My users use Netscape Roaming Profile, they are on different kind of
>Microsoft OS. The TCP connections terminates after an amount of time on
>the server side, but not on the microsoft side. I suspect this is
>because that tcp in FreeBSD implements KEEPALIVE but microsoft do not.

It's likely that the client has not enabled keep alives and
hence is not detecting the abormal condition which the server's
keepalive probes detected.  For clients, this is no big deal.
They'll detect the problem on their next request.  However,
servers generally need to detect the problem sooner so not
to tie up resources unnecessarily.

>When I look into the source of openLDAP I find that SO_KEEPALIVE is set
>in daemon.c on the socket. If I would want to get rid of this keepalive,

I wouldn't suggest disabling server side keep alives probes.

>is it enough to change this code?

Likely.

>Is there any way I can effect the time
>period before I get the timeout?

Operating system dependent, but it should be "configurable".

>If it depends on the timeout, shouldn't freeBSD send out a FIN, so the
>tcp would terminate on the microsoft side too.

http://prominence.com/books/net/cd/socket/unix-socket-faq-4.html#ss4.7

>Do anyone know anymore about this feature. I know this might not be the
>right place to ask this kind of question, but I thought it might
>interest a few.