>On Fri, Aug 28, 2009 at 11:12:37PM +0100, Andrew Gabriel wrote:
>> This is quite different from any of the existing inetd configuration 
>> parameters - inetd doesn't currently allow manipulation of socket 
>> configuration parameters.
>
>But maybe it should.  There's a large variety of potentially useful
>socket options to use, including IP_SEC_OPT (on listening sockets).

I concur.  

I wrote a prototype for the following setsockoptions:

        - SOL_SOCKET, SO_KEEPALIVE, Boolean
        - SOL_SOCKET, SO_RCVBUF, Integer
        - SOL_SOCKET, SO_SNDBUF, Integer
        - SOL_SOCKET, SO_ALLZONES, Boolean
        - SOL_SOCKET, SO_RECVUCRED, Boolean
        - SOL_SOCKET, SO_TIMESTAMP, Boolean
        - SOL_SOCKET, SO_REUSEADDR, Boolean (already implemented: fixed as true)

        - IPPROTO_IP, IP_RECVDSTADDR, Boolean
        - IPPROTO_IP, IP_RECVOPTS, Boolean
        - IPPROTO_IP, IP_RECVIF, Boolean
        - IPPROTO_IP, IP_RECVSLLA, Boolean
        - IPPROTO_IP, IP_RECVTTL, Boolean

        - IPPROTO_IPV6, IPV6_RECVPKTINFO, Boolean
        - IPPROTO_IPV6, IPV6_RECVTCLASS, Boolean
        - IPPROTO_IPV6, IPV6_RECVPATHMTU, Boolean
        - IPPROTO_IPV6, IPV6_RECVHOPLIMIT, Boolean
        - IPPROTO_IPV6, IPV6_RECVHOPOPTS, Boolean
        - IPPROTO_IPV6, IPV6_RECVDSTOPTS, Boolean
        - IPPROTO_IPV6, IPV6_RECVRTHDR, Boolean
        - IPPROTO_IPV6, IPV6_RECVRTHDRDSTOPTS, Boolean
        - IPPROTO_IPV6, IPV6_V6ONLY, Boolean  (already implemented)


>As with all keepalives this is to... keep idle connections alive.

And to detect broken connections.  If the client goes away, the server 
wants to tear down the sessions.


Casper

Reply via email to