SO_LINGER
if (setsockopt(ss->s, SOL_SOCKET, SO_LINGER, &li, sizeof(li)) < 0) {
case SO_LINGER:
so->so_options |= SO_LINGER;
so->so_options &= ~SO_LINGER;
case SO_LINGER:
l.l_onoff = so->so_options & SO_LINGER;
(so->so_options & SO_LINGER) &&
if (so->so_options & SO_LINGER) {
} else if ((so->so_options & SO_LINGER) && so->so_linger == 0) {
if ((so->so_options & SO_LINGER) && so->so_linger == 0)
rso->so_options &= ~SO_LINGER;
wso->so_options &= ~SO_LINGER;
if (setsockopt(fd, SOL_SOCKET, SO_LINGER, &l, sizeof(l)) < 0)
if (setsockopt(fd, SOL_SOCKET, SO_LINGER, &l, sizeof(l)) < 0)