Merge: 6fb5e9636fa1fffc62e86561e7dcd734fa2ee53f
Add defer_accept option to enable TCP_DEFER_ACCEPT
Charybdis commits referenced:
atheme/charybdis@77cb59b
libratbox: add support for TCP_DEFER_ACCEPT on linux
atheme/charybdis@aa4737a
libratbox: make defer_accept optional.
atheme/charybdis@02270e9
Add listen::defer_accept option for controlling usage
of TCP_DEFER_ACCEPT option.
atheme/charybdis@797a29f
libratbox: Allow defer_accept on FreeBSD.
This lets a user connect with a client certificate, and
passes the certificate's fingerprint to ircd, which
currently just notices it to the user.
A new ssld->ircd message 'F' is used to pass on the
fingerprint.
This is only for OpenSSL for now, not GNUTLS.
In rare cases, this sharing caused the ircd to skip
part of outgoing traffic, e.g. appearing as "not enough
parameters" errors on the other side.
The purpose of this flag can be fulfilled by the writeofs
in the bufhead.
libratbox r25227
Use RB_SOCKADDR_HAS_SA_LEN instead of SOCKADDR_IN_HAS_LEN
which is only defined inside libratbox.
This fixes creating own sockaddr structs in other programs
using SET_SS_LEN, then passing them to libratbox, on
4.4BSD based systems.