Robert Watson
0d89301c51
In solisten(), unconditionally set the SO_ACCEPTCONN option in
...
so->so_options when solisten() will succeed, rather than setting it
conditionally based on there not being queued sockets in the completed
socket queue. Otherwise, if the protocol exposes new sockets via the
completed queue before solisten() completes, the listen() system call
will succeed, but the socket and protocol state will be out of sync.
For TCP, this didn't happen in practice, as the TCP code will panic if
a new connection comes in after the tcpcb has been transitioned to a
listening state but the socket doesn't have SO_ACCEPTCONN set.
This is historical behavior resulting from bitrot since 4.3BSD, in which
that line of code was associated with the conditional NULL'ing of the
connection queue pointers (one-time initialization to be performed
during the transition to a listening socket), which are now initialized
separately.
Discussed with: fenner, gnn
MFC after: 3 days
2005-02-18 00:52:17 +00:00
..
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-02-18 00:23:36 +00:00
2005-01-06 23:35:40 +00:00
2005-01-29 23:12:00 +00:00
2005-01-29 23:12:00 +00:00
2005-01-29 23:12:00 +00:00
2005-01-30 06:43:17 +00:00
2005-02-17 10:00:10 +00:00
2005-01-26 02:29:18 +00:00
2005-01-08 04:45:57 +00:00
2004-07-26 07:24:04 +00:00
2005-01-06 23:35:40 +00:00
2004-12-26 00:14:21 +00:00
2004-10-12 18:36:20 +00:00
2005-01-29 16:50:04 +00:00
2005-02-18 00:23:36 +00:00
2005-02-10 12:27:58 +00:00
2005-02-10 12:02:37 +00:00
2005-02-10 12:02:37 +00:00
2005-01-29 23:51:05 +00:00
2005-01-29 14:03:41 +00:00
2005-01-06 23:35:40 +00:00
2005-02-04 06:16:05 +00:00
2005-01-06 23:35:40 +00:00
2005-02-08 21:31:11 +00:00
2005-01-29 23:12:00 +00:00
2005-01-06 23:35:40 +00:00
2004-11-01 22:15:15 +00:00
2005-02-10 12:23:29 +00:00
2004-08-27 01:20:26 +00:00
2005-01-25 16:06:05 +00:00
2005-01-25 10:15:26 +00:00
2004-11-09 11:28:40 +00:00
2005-01-21 18:09:17 +00:00
2005-02-16 21:45:59 +00:00
2005-01-30 00:31:19 +00:00
2005-01-19 17:53:06 +00:00
2005-02-10 12:02:37 +00:00
2005-01-05 21:13:27 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2004-07-03 02:38:03 +00:00
2005-02-10 12:15:49 +00:00
2005-02-13 17:51:47 +00:00
2004-12-30 20:29:58 +00:00
2005-01-06 23:35:40 +00:00
2004-11-30 06:21:38 +00:00
2005-02-13 17:37:20 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2004-12-30 20:29:58 +00:00
2004-07-15 08:26:07 +00:00
2005-02-10 12:16:08 +00:00
2004-10-11 22:04:16 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-02-07 21:45:48 +00:00
2005-02-11 00:14:00 +00:00
2005-01-18 13:53:10 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-07 02:29:27 +00:00
2004-08-29 01:21:51 +00:00
2004-08-09 18:46:13 +00:00
2005-01-06 23:35:40 +00:00
2003-12-23 03:50:43 +00:00
2005-01-06 23:35:40 +00:00
2005-02-10 12:20:42 +00:00
2005-01-07 02:29:27 +00:00
2004-12-01 23:16:38 +00:00
2004-12-30 20:52:44 +00:00
2005-02-04 17:22:46 +00:00
2004-07-26 07:24:04 +00:00
2005-01-06 23:35:40 +00:00
2004-06-04 04:03:26 +00:00
2005-02-08 18:03:17 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2004-12-06 10:53:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2004-01-02 18:24:13 +00:00
2004-07-10 21:43:23 +00:00
2004-07-16 21:04:55 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-02-10 12:02:37 +00:00
2004-04-05 21:03:37 +00:00
2005-02-10 12:02:37 +00:00
2005-01-06 23:35:40 +00:00
2004-10-05 04:16:01 +00:00
2004-12-30 20:30:58 +00:00
2005-02-10 12:02:37 +00:00
2005-01-06 23:35:40 +00:00
2005-01-22 21:14:21 +00:00
2005-02-10 20:19:17 +00:00
2005-01-17 07:56:28 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-24 10:50:42 +00:00
2005-01-26 02:28:43 +00:00
2005-01-06 23:35:40 +00:00
2005-02-12 01:22:39 +00:00
2005-02-12 01:22:39 +00:00
2005-02-12 01:22:39 +00:00
2004-06-21 22:57:16 +00:00
2004-07-15 20:47:41 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2004-06-17 17:16:53 +00:00
2004-12-30 19:24:49 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-01-06 23:35:40 +00:00
2005-02-10 12:02:37 +00:00
2005-02-10 22:23:02 +00:00
2004-04-05 21:03:37 +00:00
2005-01-06 23:35:40 +00:00
2005-02-17 12:53:45 +00:00
2005-02-17 12:53:45 +00:00
2005-02-18 00:52:17 +00:00
2005-02-17 13:00:23 +00:00
2005-01-06 23:35:40 +00:00
2004-07-26 07:24:04 +00:00
2005-02-10 12:23:29 +00:00
2005-02-10 12:28:58 +00:00
2005-02-10 12:16:42 +00:00
2005-02-10 12:17:48 +00:00
2005-02-07 09:26:39 +00:00
2005-02-10 12:25:38 +00:00
2005-02-08 18:09:11 +00:00
2005-02-10 12:25:38 +00:00
2005-02-07 18:44:55 +00:00
2005-02-10 12:25:38 +00:00
2005-02-17 10:49:51 +00:00
2005-02-08 18:09:11 +00:00
2005-02-17 10:49:51 +00:00
2005-02-07 09:26:58 +00:00