Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 May 2013 12:22:35 +0400
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        Richard Sharpe <realrichardsharpe@gmail.com>
Cc:        FreeBSD Net <freebsd-net@freebsd.org>
Subject:   Re: TCP_KEEPIDLE vs TCPTV_KEEP_IDLE
Message-ID:  <20130506082235.GV15182@FreeBSD.org>
In-Reply-To: <CACyXjPzfw3SAGXa0u6xBQgn79VyGEq7wj9V4GgkRnCazD6-PmA@mail.gmail.com>
References:  <CACyXjPzfw3SAGXa0u6xBQgn79VyGEq7wj9V4GgkRnCazD6-PmA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, May 05, 2013 at 09:40:42AM -0700, Richard Sharpe wrote:
R> Samba currently has a way to set socket parameters from the smb.conf.
R> 
R> This works fine for things like SO_SNDBUF etc, but not so well for the
R> TCP KeepAlive parameters.
R> 
R> In this area Samba has a Linux bias.
R> 
R> I am looking at adding support for this under FreeBSD.
R> 
R> The simplest way, it seems to me, is to enhance configure to find the
R> appropriate symbols under FreeBSD (and it might be extendable to
R> NetBSD etc) and then map them to the Linux symbols:
R> 
R> #ifdef THIS_IS_SOME_SORT_OF_BSD
R> #define TCP_KEEPIDLE TCPTV_KEEP_IDLE
R> #endif
R> 
R> However, that does mean that *BSD types would have to know that this
R> happening because the names you would use in the smb.conf file would
R> be Linux-specific, and documentation is often woefully incomplete.
R> 
R> Is there a better method?

I don't see the problem you are describing. AFAIK, these socket options
have same names in FreeBSD and Linux.

For example in Samba 3.6.14 sources it just checks for value defined
and if defined compiles support in. See source3/lib/util_sock.c:

#ifdef TCP_KEEPCNT
  {"TCP_KEEPCNT", IPPROTO_TCP, TCP_KEEPCNT, 0, OPT_INT},
#endif
#ifdef TCP_KEEPIDLE
  {"TCP_KEEPIDLE", IPPROTO_TCP, TCP_KEEPIDLE, 0, OPT_INT},
#endif
#ifdef TCP_KEEPINTVL
  {"TCP_KEEPINTVL", IPPROTO_TCP, TCP_KEEPINTVL, 0, OPT_INT},
#endif

P.S.
Since you mention TCPTV_KEEP_IDLE, I've tried to grep samba sources
for this definition getting zero results.

-- 
Totus tuus, Glebius.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130506082235.GV15182>