Ben Konyi
6fbdd19ddb
Various fixes for sync socket implementation.
...
Revert "Revert "Added sync_socket.h include in sync_socket_win.cc""
This reverts commit 2bd6168e1ebf35f6dbd9b2724339362c493377fc.
Revert "Revert "Added synchronous socket implementation to dart:io.""
This reverts commit a47bce03f5502dac7fb12e777e87b5aa1cfc830b.
BUG=
R=zra@google.com
Review-Url: https://codereview.chromium.org/2814773004 .
2017-04-12 14:20:48 -07:00
Ben Konyi
b439bd9a54
Revert "Added synchronous socket implementation to dart:io."
...
This reverts commit a1f87ebdb8 .
Revert "Added sync_socket.h include in sync_socket_win.cc"
This reverts commit bdec13e865 .
BUG=
Review-Url: https://codereview.chromium.org/2812153002 .
2017-04-11 15:18:46 -07:00
Ben Konyi
a1f87ebdb8
Added synchronous socket implementation to dart:io.
...
BUG=
R=zra@google.com
Review-Url: https://codereview.chromium.org/2803543006 .
2017-04-11 14:41:09 -07:00
Ben Konyi
ddc4f30d75
Re-land socket refactor with fixes for Windows.
...
BUG=
R=zra@google.com
Review-Url: https://codereview.chromium.org/2797993005 .
2017-04-05 12:45:31 -07:00
Ben Konyi
0386f7ab6f
Reverting until bots clear up.
...
Revert "Pulled a significant portion of Socket implementation into BaseSocket in order to prepare for the synchronous socket impementations which will also use these common methods."
This reverts commit 0422920142 .
Revert "Updated incorrect call to Write in process_win.cc"
This reverts commit 9e1435148b .
Revert "Fixed incorrect call to Write from process_win.cc"
This reverts commit 11dcab2bed3c9ec8ec76bc200206ac202a4a5681.
Fixed incorrect call to Write from process_win.cc
BUG=
Review-Url: https://codereview.chromium.org/2791163004 .
2017-04-03 17:25:47 -07:00
Ben Konyi
0422920142
Pulled a significant portion of Socket implementation into BaseSocket in order to prepare for the synchronous socket impementations which will also use these common methods.
...
BUG=
R=zra@google.com
Review-Url: https://codereview.chromium.org/2780063002 .
2017-04-03 17:05:11 -07:00
Zachary Anderson
89dba57bcf
[dart:io] Adds a finalizer to _NativeSocket to avoid socket leaks
...
The finalizer sends the "close" message to the EventHandler for the
file descriptor in the _NativeSocket's native field. To avoid races and
spurious messages, this CL stores a pointer to a wrapper object in the
native field instead of the file descriptor. All messsages about the
_NativeSocket sent to the EventHandler use the wrapper object instead of
the file descriptor. When the EventHandler closes the file, the file
descriptor in the wrapper object is set to -1 so that the finalizer will
instead do nothing.
On Windows, there is another level of indirection since the OS HANDLEs
were already wrapped in various kinds of Handle objects. As an additional
complication, ClientSocket close on Windows is asynchronous, so the
EventHandler may shutdown before all of the ClientSocket Handles can be
destroyed.
related #27898 , #28081
R=johnmccutchan@google.com
Review-Url: https://codereview.chromium.org/2760293002 .
2017-03-28 07:44:05 -07:00
Ryan Macnak
877284947b
Rename TARGET_OS_* to HOST_OS_*.
...
Like HOST_ARCH_*, HOST_OS_* describes the OS the VM is running on, which may be different from the OS the VM is generating code for during AOT compilation.
Currently we conflate the two when emitting AOT as assembly, and we get away with it because Flutter only uses assembly for targeting iOS and one can only target iOS from a Mac, but we expect to use assembly for Android as well so native tools can unwind Dart frames.
R=zra@google.com
Review-Url: https://codereview.chromium.org/2750843003 .
2017-03-15 13:11:05 -07:00
Zachary Anderson
14233482d9
Fuchsia: Partial implementation of dart:io sockets
...
This changes the eventhandler to epoll and adds some code for sockets
to runtime/bin/sockets_fuchsia.cc. It also adds some simple tests
to hello_fuchsia.dart.
R=asiva@google.com
Review URL: https://codereview.chromium.org/2515643004 .
2016-11-20 22:04:14 -08:00
Zachary Anderson
43a506bcc8
Adds some error handling to the socket implementation.
...
I'm starting to try to track down the hang in socket_test in
a call to read() on Mac. We weren't checking that the calls
to set fds non-blocking were successful, so I'll start with
adding code to do that.
This CL also fixes the GN arm android build.
R=asiva@google.com
Review URL: https://codereview.chromium.org/2495003003 .
2016-11-11 21:15:16 -08:00
Zachary Anderson
479a97b129
clang-format runtime/bin
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2480793002 .
2016-11-04 12:30:56 -07:00
Florian Loitsch
ef4933df25
Better error-message when bind fails.
...
See #26790 .
R=sgjesse@google.com
Committed: https://github.com/dart-lang/sdk/commit/34aed6a08b8547a985ac701cf3910a5f5450dd52
Reverted: https://github.com/dart-lang/sdk/commit/a1005bad7e249a5510b30683a5ca52b16baafbc4
Committed: https://github.com/dart-lang/sdk/commit/8c4954492f0593f41d270691bb82c26d8509c894
Reverted: https://github.com/dart-lang/sdk/commit/5ebcd3cda0f34be580be1a8ed816849a82691427
Committed: https://github.com/dart-lang/sdk/commit/eaeb260244d524b54d3ec842af2f8400cd543b12
Review URL: https://codereview.chromium.org/2205913003 .
Reverted: https://github.com/dart-lang/sdk/commit/90a194be3c03c058c4e087e1bd11823817982393
2016-08-04 14:45:01 +02:00
Florian Loitsch
90a194be3c
Enter a description of the change.
...
Merge branch 'master' into revert
Revert "Better error-message when bind fails."
This reverts commit eaeb260244 .
Review URL: https://codereview.chromium.org/2213533002 .
2016-08-03 23:18:39 +02:00
Florian Loitsch
eaeb260244
Better error-message when bind fails.
...
See #26790 .
R=sgjesse@google.com
Committed: https://github.com/dart-lang/sdk/commit/34aed6a08b8547a985ac701cf3910a5f5450dd52
Reverted: https://github.com/dart-lang/sdk/commit/a1005bad7e249a5510b30683a5ca52b16baafbc4
Committed: https://github.com/dart-lang/sdk/commit/8c4954492f0593f41d270691bb82c26d8509c894
Review URL: https://codereview.chromium.org/2205913003 .
Reverted: https://github.com/dart-lang/sdk/commit/5ebcd3cda0f34be580be1a8ed816849a82691427
2016-08-03 22:44:28 +02:00
Ryan Macnak
5ebcd3cda0
Revert "Better error-message when bind fails."
...
This reverts commit 8c4954492f .
This change broke the Android build.
Review URL: https://codereview.chromium.org/2201183004 .
2016-08-03 09:54:57 -07:00
Florian Loitsch
8c4954492f
Better error-message when bind fails.
...
See #26790 .
R=sgjesse@google.com
Committed: https://github.com/dart-lang/sdk/commit/34aed6a08b8547a985ac701cf3910a5f5450dd52
Review URL: https://codereview.chromium.org/2205913003 .
Reverted: https://github.com/dart-lang/sdk/commit/a1005bad7e249a5510b30683a5ca52b16baafbc4
2016-08-03 16:27:48 +02:00
Florian Loitsch
a1005bad7e
Revert "Better error-message when bind fails."
...
This reverts commit 34aed6a08b .
Review URL: https://codereview.chromium.org/2210523002 .
2016-08-03 15:47:15 +02:00
Florian Loitsch
34aed6a08b
Better error-message when bind fails.
...
See #26790 .
R=sgjesse@google.com
Review URL: https://codereview.chromium.org/2205913003 .
2016-08-03 15:29:41 +02:00
Zachary Anderson
ba550f1c43
Fixes NetworkInterface.list crash on Android
...
Previously, Socket::ListInterfaces failed to set the os_error out
parameter causing a crash in the caller. This change sets an error here.
I've also added NetworkInterface.listSupported, which returns false on
Android, and true everywhere else. ifaddrs.h continues not to exist in
the NDK, so in order to support NetworkInterface.list, we'd have to
reimplement it, or find a suitable reimplementation somewhere.
related #26329
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1916223003 .
2016-04-26 07:48:58 -07:00
Zachary Anderson
7308e58c3f
Really remove io support when dart:io is unsupported.
...
Previously we would compile in implementaitions of native calls for
IO functions that would never be used. This CL provides implementations
that throw a Dart exception if they're called by mistake. It also uses
a DART_IO_DISABLED preprocessor define to clean up the build files and
check that we're not including code we shouldn't.
R=iposva@google.com , johnmccutchan@google.com
Review URL: https://codereview.chromium.org/1839463002 .
2016-03-29 11:22:03 -07:00
Zachary Anderson
45661a7091
Cleanup in //runtime/bin
...
R=iposva@google.com
Review URL: https://codereview.chromium.org/1800863002 .
2016-03-16 10:01:00 -07:00
Zachary Anderson
c75a817ee0
Fixes some memory leaks in //runtime/bin
...
Also some style cleanups.
Decided to fix these leaks by using Dart_ScopeAllocate
instead of malloc and new. Leaks are noted in the CL.
I haven't finished looking over all the code in
//runtime/bin yet, but this CL was getting big.
Review URL: https://codereview.chromium.org/1781883002 .
2016-03-14 11:08:52 -07:00
sgjesse@google.com
3fe2af43d1
Reafctor to use 'const RawAddr&' or 'RawAddr*' in the eventhandler code
...
Also pass the port as part of RawAddr instead of in a separate argument
when both addr and port are passed.
R=kustermann@google.com
BUG=
Review URL: https://codereview.chromium.org//910183003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43722 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-12 11:39:20 +00:00
sgjesse@google.com
7b7ac3620a
Add support to specify the source address for socket connect
...
BUG=http://dartbug.com/22253
R=kustermann@google.com , lrn@google.com
Review URL: https://codereview.chromium.org//908873002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43638 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-10 11:56:51 +00:00
sgjesse@google.com
91e7a32eb5
Remove SetNonBlocking/SetBlocking methods from Socket and add missing close-on-exec
...
The methods SetNonBlocking/SetBlocking on Sockets where not implemented on Linux
and not used on Windwsm. Removed and call directly to FDUtils when needed.
In Socket::Accept setting close on exec was missing on OS X and Android.
R=kustermann@google.com
BUG=
Review URL: https://codereview.chromium.org//907883002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43627 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-10 07:29:36 +00:00
sgjesse@google.com
b90c405572
Remove the assumption that stat64 and lstat64 cannot return EINTR on Linux
...
BUG=http://dartbug.com/21080
R=ajohnsen@google.com
Review URL: https://codereview.chromium.org//600273004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40671 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-25 07:06:06 +00:00
iposva@google.com
22851d18da
- Fix vm/thread.h and bin/thread.h confusion.
...
Review URL: https://codereview.chromium.org//465133002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39179 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-12 23:55:23 +00:00
ajohnsen@google.com
343ee141f2
Don't print errors to stderr in socket_*.
...
BUG=https://code.google.com/p/dart/issues/detail?id=20070
R=ricow@google.com
Review URL: https://codereview.chromium.org//426833004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38660 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-29 07:13:58 +00:00
ajohnsen@google.com
d481c8b61c
Start accepting incoming sockets earlier on Windows, to associate a at AcceptEx error to 'ServerSocket.bind'.
...
Note that I have not been able to reproduce the error, thus no test is added for this case.
BUG=http://code.google.com/p/dart/issues/detail?id=19815
R=whesse@google.com
Review URL: https://codereview.chromium.org//426613002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38606 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-28 11:36:35 +00:00
iposva@google.com
1d2085e773
- Fix truncation in Socket calls.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//312343002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37037 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-05 17:33:52 +00:00
ajohnsen@google.com
19244f5dac
Don't use AI_V4MAPPED.
...
AI_V4MAPPED only effects when we are restricted to IPv6. That can only
happen if the user requests _only_ IPv6. Thus, don't map IPv4 addrs into
IPv6.
BUG=
R=zra@google.com
Review URL: https://codereview.chromium.org//257243002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35538 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-29 19:40:49 +00:00
ajohnsen@google.com
2151658634
Use accept and not accept4.
...
BUG=https://code.google.com/p/dart/issues/detail?id=18446
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//257153002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35515 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-29 07:40:05 +00:00
ajohnsen@google.com
0c157cd31e
Move signal_blocker to platform and use it by default in TEMP_FAILURE_RETRY.
...
BUG=http://code.google.com/p/dart/issues/detail?id=16927
R=johnmccutchan@google.com , sgjesse@google.com
Review URL: https://codereview.chromium.org//165723007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33745 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-17 13:51:11 +00:00
ajohnsen@google.com
9a71498127
Make the event-handler handle backpreasure.
...
We now limit the number of active events per fd to 8.
BUG=
R=whesse@google.com
Review URL: https://codereview.chromium.org//198743002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33649 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-13 12:02:47 +00:00
sgjesse@google.com
1e3e88769f
Socket I/O statistics for Observatory
...
This is the first part of adding I/O statistics to the observatory.
R=ajohnsen@google.com , johnmccutchan@google.com
Review URL: https://codereview.chromium.org//163903002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33366 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-06 11:12:08 +00:00
ajohnsen@google.com
e3372e72e9
Remove SocketData and now only pass the dart port to epoll.
...
This avoids keeping extra data alive.
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//171503009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32846 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-20 08:56:54 +00:00
ajohnsen@google.com
140fddd06e
Make event-handlers edge-triggered and move socket-state to Dart.
...
This eliminates to pause/resume calls made in the previous one-shot based model.
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//169383003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32780 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-19 09:44:26 +00:00
ajohnsen@google.com
4b35c1e387
Fix host lookup on linux, to skip IPv6 if there are no global IPv6 addresses.
...
BUG=https://code.google.com/p/dart/issues/detail?id=16742
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//168943002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32716 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-17 10:08:34 +00:00
ajohnsen@google.com
0f52be7f63
Make std* blocking file-descriptors.
...
This will most likely be a performance regression when piping, that
we'll have to look into in the future (copying data through
message-passing).
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//154273003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32715 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-17 10:06:35 +00:00
johnmccutchan@google.com
919dc2d6eb
* Introduce ThreadInterrupter which calls a TLS set callback when thread is interrupted.
...
* Threads can only register and unregister themselves with ThreadInterrupter.
* Profiler is no longer involved in interrupting threads. It's just a callback and the buffer.
* Profiler operates lock free using an atomic operation to reserve sample in sample buffer.
* Linux, Mac, and Windows done.
R=asiva@google.com
Review URL: https://codereview.chromium.org//109803002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31170 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-16 18:52:15 +00:00
sgjesse@google.com
8b5d54123e
Fix building on Mac OS
...
Use VOID_TEMP_FAILURE_RETRY macro on Linux and Android as well when
the return value is not used..
TBR=ajohnsen@google.com
Fix analyzer errors in UDP test and update comment in status file
TBR=ajohnsen@google.com
BUG=
Review URL: https://codereview.chromium.org//112593003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31101 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-12 16:20:13 +00:00
sgjesse@google.com
7b70c2c267
Add UDP support to dart:io
...
Initial implementation of UDP support in dart:io
Added a RawDatagramSocket which gets the same events as a RawSocket
except that READ_CLOSED is never received.
The receive from a RawDatagramSocket returns a Datagram object where
the senders address and port is presten together with the data.
The send on a RawDatagramSocket takes data and the address and port of
the destination.
Extended the number of socket options to support UDP.
Added getting the socket options.
R=ajohnsen@google.com
BUG=http://dartbug.com/1975
Review URL: https://codereview.chromium.org//85993002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31098 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-12 15:45:25 +00:00
sgjesse@google.com
5ec3f666c0
Add the index information to network interface
...
R=ajohnsen@google.com
BUG=
Review URL: https://codereview.chromium.org//95183002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30776 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-29 11:18:30 +00:00
sgjesse@google.com
32e6279482
Update InternetAddress
...
Add InternetAddress constructor for numeric addresses. An
InternetAddress can now be constructed without using DNS resolving.
Add hash code calculated from the bytes of the address.
Add equality operator comparing the bytes of the address.
Added check for multicast addresses.
R=ajohnsen@google.com
Review URL: https://codereview.chromium.org//76383002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30449 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-20 10:01:22 +00:00
ajohnsen@google.com
7fef1ff77a
Add support for working with large files on unix systems, in dart:io.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//63363010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30399 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-19 11:38:20 +00:00
ajohnsen@google.com
57d8b90fe1
Rename remoteHost to remoteAddress on *Socket.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//59213003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29904 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-05 13:24:49 +00:00
ajohnsen@google.com
33c74ee3d7
Remove usage of legacy inet_ntop from dart:io.
...
BUG=https://code.google.com/p/dart/issues/detail?id=13577
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//25411003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28090 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-01 11:27:46 +00:00
ajohnsen@google.com
d11df78618
Make stdout and stderr async.
...
This required some minor changes to the Windows eventhandler, as we now spawn a new thread for writes (just like we do for reads).
BUG=https://code.google.com/p/dart/issues/detail?id=7218
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//23609060
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27811 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-24 11:47:53 +00:00
sgjesse@google.com
d1037c4493
Fix bugs in SocketAddress
...
The formatting of IPv6 strings was wrong on Linux and Mac OS - used
the IPv4 structure.
The fixed socket addresses for any and loopback for IPv6 was mixed up.
R=whesse@google.com
BUG=
Review URL: https://codereview.chromium.org//24269017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27703 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-20 12:46:50 +00:00
ajohnsen@google.com
38bae0af02
Add FileSystemWatcher class to dart:io.
...
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//19263003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27048 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 12:43:08 +00:00