On Sun, Feb 14, 2010 at 08:56:29AM +1100, Bron Gondwana wrote: > On Sun, Feb 14, 2010 at 08:38:34AM +1100, Bron Gondwana wrote: > > > One thing to watch is that only SO_KEEPALIVE is standard. The other > > > three symbols: TCP_KEEPCNT, TCP_KEEPIDLE, and TCP_KEEPINTVL only exist > > > in some operating systems. They have global settings but don't have > > > per-socket options. For these, the setsockopt() function calls need > > > to be conditional on the symbols. > > > > Hmm - yeah, OK. I'll protect them with #ifdefs. > > Here's the patch redone with those... I just noticed something else when I went to apply the patch. I would have added the options to cyrus.conf so a typical entry would change from: imap cmd="imapd" listen="imap" proto="tcp4" prefork=0 maxchild=6000 to: imap cmd="imapd" listen="imap" proto="tcp4" tcp_keepalive prefork=0 maxchild=6000 That way you could have a different keepalive setting for each service. You've designed it so these settings go into imapd.conf . Is that going to work the same way? -- -Gary Mills- -Unix Group- -Computer and Network Services- ---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html