Zach Anderson
d4d9f0afaa
[vm,dart:io] Check for socket connection success
...
Prior to this change, connection errors such as "Connection refused"
etc, are caught either by some error condition being detected by
the eventhandler thread and that error condition being propagated
to the Dart thread, or by the first read or write after a
"successful" connection failing with an error.
However, posix documentation for non-blocking sockets recommends
either checking getsockopt(SO_ERROR), or calling connect() a
second time following the first write event on a socket after
the first connect call returns EINPROGRESS.
On Fuchsia, this check is mandatory because errors like
"Connection refused" are neither signaled on the socket's
underlying OS handle, nor indicated by error returns from
read() and write().
This change adds the check, which is optional on other platforms,
but mandatory on Fuchsia, to the Dart socket connection loop
after the first write signal is asserted.
Change-Id: I8aeea4665913f79e8138bdd830676ae43066a959
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/104263
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Zach Anderson <zra@google.com >
2019-06-01 01:52:47 +00:00
..
2018-04-23 22:39:32 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2017-10-17 23:37:15 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-12-19 21:41:47 +00:00
2017-12-19 21:41:47 +00:00
2017-12-19 21:41:47 +00:00
2017-12-19 21:41:47 +00:00
2017-12-19 21:41:47 +00:00
2019-01-25 19:23:56 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2018-04-23 22:39:32 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-11-17 20:28:06 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2018-08-16 16:40:24 +00:00
2017-10-17 23:37:15 +00:00
2017-11-17 01:14:32 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2017-11-17 01:14:32 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-11-15 18:06:31 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-10-31 23:01:43 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2019-01-25 19:23:56 +00:00
2017-10-07 01:29:36 +00:00
2018-07-18 13:05:00 +00:00
2017-10-17 23:37:15 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2018-06-18 20:33:13 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2019-01-25 19:23:56 +00:00
2017-11-14 12:59:14 +00:00
2018-06-07 16:18:33 +00:00
2018-06-07 16:18:33 +00:00
2018-06-07 16:18:33 +00:00
2018-06-07 16:18:33 +00:00
2017-10-07 01:29:36 +00:00
2017-11-14 12:59:14 +00:00
2017-10-17 23:37:15 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2018-12-11 18:57:55 +00:00
2017-10-07 01:29:36 +00:00
2018-06-07 16:18:33 +00:00
2017-10-07 01:29:36 +00:00
2019-01-25 19:23:56 +00:00
2019-05-27 12:46:39 +00:00
2019-05-23 10:05:36 +00:00
2018-06-07 16:18:33 +00:00
2017-11-14 12:59:14 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-17 23:37:15 +00:00
2018-06-07 16:18:33 +00:00
2018-06-07 16:18:33 +00:00
2017-10-07 01:29:36 +00:00
2018-11-27 11:10:49 +00:00
2018-06-07 16:18:33 +00:00
2018-06-07 16:18:33 +00:00
2017-11-17 01:14:32 +00:00
2018-06-07 16:18:33 +00:00
2017-11-17 01:14:32 +00:00
2018-06-07 16:18:33 +00:00
2018-06-07 16:18:33 +00:00
2018-06-07 16:18:33 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2018-06-07 16:18:33 +00:00
2017-10-07 01:29:36 +00:00
2018-07-03 14:47:41 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2018-06-08 00:17:53 +00:00
2019-03-18 23:20:41 +00:00
2018-05-03 17:00:14 +00:00
2017-11-17 01:14:32 +00:00
2018-05-03 17:00:14 +00:00
2018-06-07 16:18:33 +00:00
2017-11-14 12:59:14 +00:00
2018-06-13 18:03:20 +00:00
2019-01-03 00:44:00 +00:00
2018-02-06 15:43:33 +00:00
2018-05-03 17:00:14 +00:00
2019-01-29 19:26:47 +00:00
2017-10-17 23:37:15 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2018-06-22 23:18:48 +00:00
2018-06-22 23:18:48 +00:00
2018-06-22 23:18:48 +00:00
2017-11-14 12:59:14 +00:00
2017-10-07 01:29:36 +00:00
2017-11-17 01:14:32 +00:00
2017-10-07 01:29:36 +00:00
2018-06-07 16:18:33 +00:00
2018-01-25 13:24:03 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2018-06-08 00:17:53 +00:00
2019-03-18 23:20:41 +00:00
2018-06-18 22:31:32 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2019-03-26 21:40:10 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2017-11-17 01:14:32 +00:00
2017-11-17 01:14:32 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2017-11-14 12:59:14 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2017-11-14 12:59:14 +00:00
2019-03-18 23:20:41 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2019-01-17 23:05:21 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2019-06-01 01:52:47 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2017-10-07 01:29:36 +00:00
2017-10-17 23:37:15 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2019-03-18 23:20:41 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2017-10-07 01:29:36 +00:00
2018-10-11 23:45:18 +00:00
2018-04-23 22:39:32 +00:00
2018-04-23 23:09:44 +00:00
2017-11-14 18:09:34 +00:00
2018-05-03 17:00:14 +00:00
2018-05-17 16:20:06 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-11-14 12:59:14 +00:00
2017-11-17 01:14:32 +00:00
2017-11-14 12:59:14 +00:00
2019-04-04 19:14:44 +00:00
2017-10-07 01:29:36 +00:00
2018-06-08 00:17:53 +00:00
2018-06-18 22:31:32 +00:00
2017-12-19 21:41:47 +00:00
2017-12-19 21:41:47 +00:00
2017-12-19 21:41:47 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-12-19 21:41:47 +00:00
2018-12-17 13:38:28 +00:00
2018-07-03 14:47:41 +00:00
2017-11-17 01:14:32 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2017-12-19 21:41:47 +00:00
2018-05-03 17:00:14 +00:00
2017-11-17 01:14:32 +00:00
2018-06-07 16:18:33 +00:00
2018-05-03 17:00:14 +00:00
2017-12-19 21:41:47 +00:00
2018-11-12 14:43:40 +00:00
2018-05-03 17:00:14 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2018-12-17 13:38:28 +00:00
2019-01-25 19:23:56 +00:00
2017-11-22 22:41:37 +00:00
2017-11-14 12:59:14 +00:00
2019-03-18 23:20:41 +00:00
2018-06-13 19:51:40 +00:00
2019-03-18 23:20:41 +00:00
2017-10-07 01:29:36 +00:00
2019-03-18 23:20:41 +00:00
2017-11-17 01:14:32 +00:00
2018-05-03 17:00:14 +00:00
2017-11-17 01:14:32 +00:00
2017-10-07 01:29:36 +00:00
2017-11-17 01:14:32 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2018-08-10 11:06:56 +00:00
2017-10-07 01:29:36 +00:00
2018-01-29 14:04:35 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2018-07-31 11:11:16 +00:00
2018-12-17 13:38:28 +00:00
2017-10-07 01:29:36 +00:00
2017-12-19 21:41:47 +00:00
2017-10-17 23:37:15 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-01-18 16:38:54 +00:00
2018-06-07 16:18:33 +00:00
2018-06-07 16:18:33 +00:00
2018-06-07 16:18:33 +00:00
2017-10-07 01:29:36 +00:00
2017-11-14 12:59:14 +00:00
2017-10-07 01:29:36 +00:00
2018-06-07 16:18:33 +00:00
2018-06-07 16:18:33 +00:00
2017-10-07 01:29:36 +00:00
2017-10-07 01:29:36 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00
2018-05-03 17:00:14 +00:00