This is a possible slow (but userspace based) implementation of SIOCPUSH:
{
int was_set_tcp_cork, was_set_tcp_nodelay, val
getsockopt(TCP_CORK, &was_set_tcp_cork)
if (was_set_tcp_cork)
val = 0
else if (!was_set_tcp_nodelay)
val = 1
else
return
setsockopt(TCP_CORK, &val)
val = !!val
setsockopt(TCP_CORK, &val)
}
Your one ins't.
BTW, the simmetry between getsockopt/setsockopt further bias how SIOCPUSH
doesn't fit into the setsockopt options but it fits very well into the ioctl
categorty instead. There's simply no state one can return via getsockopt for
the SIOCPUSH functionality. It's not setting any option, it's just doing one
thing that controls the I/O.
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/