| version 1.62, 2002/03/08 20:48:41 |
version 1.63, 2002/04/06 08:04:17 |
| Line 139 solisten(struct socket *so, int backlog) |
|
| Line 139 solisten(struct socket *so, int backlog) |
|
| splx(s); |
splx(s); |
| return (error); |
return (error); |
| } |
} |
| if (so->so_q.tqh_first == NULL) |
if (TAILQ_EMPTY(&so->so_q)) |
| so->so_options |= SO_ACCEPTCONN; |
so->so_options |= SO_ACCEPTCONN; |
| if (backlog < 0) |
if (backlog < 0) |
| backlog = 0; |
backlog = 0; |
| Line 182 soclose(struct socket *so) |
|
| Line 182 soclose(struct socket *so) |
|
| error = 0; |
error = 0; |
| s = splsoftnet(); /* conservative */ |
s = splsoftnet(); /* conservative */ |
| if (so->so_options & SO_ACCEPTCONN) { |
if (so->so_options & SO_ACCEPTCONN) { |
| while ((so2 = so->so_q0.tqh_first) != 0) { |
while ((so2 = TAILQ_FIRST(&so->so_q0)) != 0) { |
| (void) soqremque(so2, 0); |
(void) soqremque(so2, 0); |
| (void) soabort(so2); |
(void) soabort(so2); |
| } |
} |
| while ((so2 = so->so_q.tqh_first) != 0) { |
while ((so2 = TAILQ_FIRST(&so->so_q)) != 0) { |
| (void) soqremque(so2, 1); |
(void) soqremque(so2, 1); |
| (void) soabort(so2); |
(void) soabort(so2); |
| } |
} |