| version 1.177.2.1, 2009/01/19 13:19:40 |
version 1.177.2.2, 2009/03/03 18:32:57 |
| Line 680 soclose(struct socket *so) |
|
| Line 680 soclose(struct socket *so) |
|
| if ((so->so_state & SS_ISDISCONNECTING) && so->so_nbio) |
if ((so->so_state & SS_ISDISCONNECTING) && so->so_nbio) |
| goto drop; |
goto drop; |
| while (so->so_state & SS_ISCONNECTED) { |
while (so->so_state & SS_ISCONNECTED) { |
| error = sowait(so, so->so_linger * hz); |
error = sowait(so, true, so->so_linger * hz); |
| if (error) |
if (error) |
| break; |
break; |
| } |
} |
| Line 1692 sosetopt1(struct socket *so, const struc |
|
| Line 1692 sosetopt1(struct socket *so, const struc |
|
| case SO_ORCVTIMEO: { |
case SO_ORCVTIMEO: { |
| struct timeval50 otv; |
struct timeval50 otv; |
| error = sockopt_get(sopt, &otv, sizeof(otv)); |
error = sockopt_get(sopt, &otv, sizeof(otv)); |
| if (error) |
if (error) { |
| |
solock(so); |
| break; |
break; |
| |
} |
| timeval50_to_timeval(&otv, &tv); |
timeval50_to_timeval(&otv, &tv); |
| opt = opt == SO_OSNDTIMEO ? SO_SNDTIMEO : SO_RCVTIMEO; |
opt = opt == SO_OSNDTIMEO ? SO_SNDTIMEO : SO_RCVTIMEO; |
| error = 0; |
error = 0; |