Commit Graph

121 Commits

Author SHA1 Message Date
asiva@google.com a2d7a425c9 - Remove Dart_ReceivePortGetId, Dart_GetReceivePort and Dart_PostMessage.
- Change _EventHandler._sendData to use a sendport object instead of a
  receiveport object.

R=iposva@google.com

Review URL: https://codereview.chromium.org//359673002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37827 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-30 17:46:26 +00:00
ajohnsen@google.com 8719f3834b Add Observatory test of io.
Initially a single test of a HttpServer. More will follow.

This also fixes the case where we don't 'block' when binding to a
ServerSocket. We should not close until the socket is explicitly closed.

BUG=
R=johnmccutchan@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//311153003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37164 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-10 07:13:52 +00:00
ajohnsen@google.com 8b612e8780 Add read/write stats to Socket and RandomAccessFile.
BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//298353002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36738 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-28 13:29:51 +00:00
johnmccutchan@google.com f5d6c4106e Fix test breakage in socket_patch.dart
Review URL: https://codereview.chromium.org//307553008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36736 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-28 11:45:29 +00:00
johnmccutchan@google.com e46aa81943 Create a ServiceObject for a socket
R=ajohnsen@google.com

Review URL: https://codereview.chromium.org//303673009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36735 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-28 11:25:12 +00:00
johnmccutchan@google.com 1f62dad54d Add Proces owner of socket and fix printing of non-network sockets
R=ajohnsen@google.com

Review URL: https://codereview.chromium.org//300883002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36729 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-28 07:15:02 +00:00
ajohnsen@google.com 9c7979ed1f Add 'owner' field to sockets, that point to a potential IO resource using that Socket.
BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//304513004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36680 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 14:10:31 +00:00
ajohnsen@google.com 217e8b8605 Add WebSockets to Observatory.
BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//300043011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36667 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 11:37:51 +00:00
ajohnsen@google.com 3218f34433 Add 'Sockets' to observatory.
BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//293363007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36650 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 07:49:47 +00:00
ajohnsen@google.com 44d8df4bb4 Add Socket ref to HttpServer.
BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//297213005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36644 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 06:38:15 +00:00
ajohnsen@google.com c7a15b7c2b Add support for cloning server-sockets.
BUG=
R=lrn@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//250513002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35818 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-06 19:09:44 +00:00
ajohnsen@google.com 82d1382faa Fix crash in raw_secure_server_socket_test.
We had a scenario where read&write events were requested after the socket was closed, leading to a use-after-free.

This also fixes a scenario where we didn't delete client sockets, when accepted sockets are ignored when closing a listening socket.

BUG=https://code.google.com/p/dart/issues/detail?id=18610
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//269003002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35732 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-05 09:17:26 +00:00
ajohnsen@google.com deccfaf042 Make Socket::connect try all addresses given.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//259353003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35619 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-01 08:42:57 +00:00
ajohnsen@google.com 8f41c24471 Make server-sockets level triggered.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//234843003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35302 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 06:05:46 +00:00
ajohnsen@google.com 94f53d4d2b Fix *ServerSocket's handling of zones.
A stream's zone is the one it has when listening to. Use that, and not
the one active when creating the socket.

BUG=https://code.google.com/p/dart/issues/detail?id=17468
R=floitsch@google.com

Review URL: https://codereview.chromium.org//239613002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35071 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-15 18:44:14 +00:00
ajohnsen@google.com 1a8f76beb3 Only return eventhandler tokens in stacks of 8, to avoid runtime calls.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//208653012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34359 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-25 13:44:01 +00:00
ajohnsen@google.com 4cf3726fe6 Close(destroy) Socket on user-generated write error.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//204343003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34109 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-19 09:23:17 +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 ce266f9435 Merge all http-outgoing transfomers into _HttpOutgoing, including simpler(better) buffering.
This speeds up the system by:
- Using a simpler buffering mechanism, where we fill up a 8kb buffer, pass it on, and allocating a new.
- Avoiding up to 4 streams for each stream added to the http-outgoing. We now only create one extra stream.

BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//185543004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33272 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-04 13:58:46 +00:00
ajohnsen@google.com fc5af7b7b4 Add InternetAddress:rawAddress, to return the raw address as a list of bytes.
BUG=https://code.google.com/p/dart/issues/detail?id=17137
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//180163005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33235 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-03 18:33:56 +00:00
ajohnsen@google.com 9635777fe0 Don't try to call read, if len i 0.
Also fix a Socket_Read to handle -1 from read.

BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//173633002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32849 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-20 12:23:20 +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 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
ajohnsen@google.com 7e49953c19 Avoid over-use of futures in socket.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//159663004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32571 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-11 19:14:05 +00:00
ajohnsen@google.com 5558bb0d1f Fix most UDP issues on Mac OS
We still do not test getting SO_BROADCAST, as it (at least on my laptop)
returns false even if it has just been turned on.

Setting SO_REUSEADDR for datagram sockets also behaves differently
compared to Linux and Windows.

IPv6 multicast as I could not test it on my laptop.

R=ajohnsen@google.com
BUG=http://dartbug.com/1975

Review URL: https://codereview.chromium.org//117723003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31223 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 12:23:40 +00:00
sgjesse@google.com 85fdbfb773 Add argument checking to InternetAddress constructor
R=ajohnsen@google.com
BUG=http://dartbug.com/15687

Review URL: https://codereview.chromium.org//101913008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31220 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 11:26:02 +00:00
sgjesse@google.com 4ca4f0db07 Only store the address bytes for an internet address in Dart
We used to store the full C "struct sockaddr_storage" in the Dart
internet address. Changed this to be only the bytes for the
address. This removes opaque platform specific binary data from Dart
(e.g. on Mac OS the "struct sockaddr" has an initial length byte).

R=ajohnsen@google.com
BUG=

Review URL: https://codereview.chromium.org//113923004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31191 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-17 15:35:11 +00:00
sgjesse@google.com 26a31f84fe Fix malformed type in socket_patch.dart
TBR=ajohnsen@google.com
BUG=

Review URL: https://codereview.chromium.org//104783006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31102 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-12 16:24:56 +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
ajohnsen@google.com 5621dbd99d Don't report multiple read-closed events.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//96763004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30784 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-29 13:25:05 +00:00
sgjesse@google.com bed6412143 Fix checked mode failure
TBR=ajohnsen@google.com
BUG=

Review URL: https://codereview.chromium.org//96413003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30781 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-29 12:01:26 +00:00
ajohnsen@google.com 458ccec72f Fix socket to report write errors async.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//96203006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30777 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-29 11:19:57 +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
ajohnsen@google.com 5591751c3c Add test of Zones for HttpServer and RawSocketServer.
BUG=https://code.google.com/p/dart/issues/detail?id=15367
R=floitsch@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//93973002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30775 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-29 10:26:00 +00:00
ajohnsen@google.com e60f22cb9e Add support for Websocket protocols.
This also fixes an issue where idle sockets could keep the program
alive.

BUG=https://code.google.com/p/dart/issues/detail?id=14503
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//91223002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30712 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-27 12:10:23 +00:00
sgjesse@google.com 26f89dbd7f Fix dart2js after InternetAddress change
R=ajohnsen@google.com, ngeoffray@google.com
BUG=

Review URL: https://codereview.chromium.org//78223002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30459 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-20 12:03:14 +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
sgjesse@google.com 09ef9104e0 Don't supply host names for the fixed internet addresses
The hard-coded host names "localhost" and "localhost-ip6" where taken
from the default Ubuntu hosts file. But other machines (e.g the
default on Mac OS) might be configured different. To avoid actual
lookup of "localhost" and "localhost-ip6" returning a different
address than the provided fixed loopback addresses don't add an actual
host name.

R=ajohnsen@google.com
BUG=

Review URL: https://codereview.chromium.org//76243002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30403 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-19 12:17:41 +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
hausner@google.com 1b87d7e2bd Compile time error on forward references to functions
Like variables, names of functions must not be referenced
before they are declared.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//49253006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29835 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-04 18:53:58 +00:00
ajohnsen@google.com 841785cbb3 Add IOSink:flush().
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//52263005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29550 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 14:50:22 +00:00
floitsch@google.com 6a72655d1b Very simple version of Isolates.
R=ajohnsen@google.com, iposva@google.com, kasperl@google.com, lrn@google.com

Review URL: https://codereview.chromium.org//27215002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29271 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-25 19:23:00 +00:00
floitsch@google.com 0f7a0bd7b1 Rename runAsync to scheduleMicrotask.
R=lrn@google.com

Review URL: https://codereview.chromium.org//26151002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28569 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-12 15:52:17 +00:00
floitsch@google.com 4be547c705 Adapt streams for additional stackTrace argument.
R=lrn@google.com

Review URL: https://codereview.chromium.org//25094002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28511 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-11 12:02:20 +00:00
ajohnsen@google.com 031dcbe37b Don't emit errors from the socket when we are closing it down.
The socket may be deleted at this point, so getting the error can be 'use-after-free'. Also, the actual error doesn't help, as the user can't do anything about a bad close (note that all data is 'flushed' before close is called).

BUG=https://code.google.com/p/dart/issues/detail?id=12982
R=whesse@google.com

Review URL: https://codereview.chromium.org//25276003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28053 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-30 14:56:42 +00:00
whesse@google.com 12cadfd1be Add .address to [Raw]ServerSocket and HttpServer.
Also use .address in Pub's barback server.

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//25010004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28010 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-27 13:36:03 +00:00
ajohnsen@google.com 3e0a59b920 Clean up IOService implementation to be shared between patched and non-patched code.
BUG=

Review URL: https://codereview.chromium.org//24596003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27888 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-25 15:53:54 +00:00
ajohnsen@google.com a347038cd7 Merge services into a shared IOService in dart:io, and use a native port.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//24395013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27883 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-25 15:03:24 +00:00