accf_data —
buffer incoming connections until data
arrives
options ACCEPT_FILTER_DATA |
|
This is a filter to be placed on a socket that will be using
accept() to receive incoming connections.
It prevents the application from receiving the connected descriptor via
accept() until data arrives on the connection.
The
ACCEPT_FILTER_DATA kernel option is also a
module that can be enabled at runtime via
kldload(8) if the INET option has been compiled
into the kernel.
Assuming ACCEPT_FILTER_DATA has been included in the kernel config file or the
accf_data module has been loaded, this will
enable the data accept filter on the socket
sok.
struct accept_filter_arg afa;
bzero(&afa, sizeof(afa));
strcpy(afa.af_name, "dataready");
setsockopt(sok, SOL_SOCKET, SO_ACCEPTFILTER, &afa, sizeof(afa));
setsockopt(2),
accept_filter(9),
accf_dns(9),
accf_http(9)
The accept filter mechanism and the accf_data filter were introduced in
FreeBSD 4.0.
This manual page and the filter were written by
Alfred Perlstein.