Index: runtime/bin/socket_patch.dart |
diff --git a/runtime/bin/socket_patch.dart b/runtime/bin/socket_patch.dart |
index 0e9c25f9d499a5f95cd063c4ef5e39cbaa60103d..2c3a9084bf56dc1f8ae9f4f018dd1a2df350229d 100644 |
--- a/runtime/bin/socket_patch.dart |
+++ b/runtime/bin/socket_patch.dart |
@@ -74,6 +74,9 @@ class _NativeSocket extends NativeFieldWrapperClass1 { |
// Holds the port of the socket, null if not known. |
int localPort; |
+ // Holds the host or address used to connect or bind the socket. |
+ String localHost; |
+ |
// Native port for socket services. |
static SendPort socketService; |
@@ -86,6 +89,7 @@ class _NativeSocket extends NativeFieldWrapperClass1 { |
createError(response, "Failed host name lookup")); |
} else { |
var socket = new _NativeSocket.normal(); |
+ socket.localHost = host; |
var result = socket.nativeCreateConnect(response, port); |
if (result is OSError) { |
completer.completeError(createError(result, "Connection failed")); |
@@ -113,6 +117,7 @@ class _NativeSocket extends NativeFieldWrapperClass1 { |
int port, |
int backlog) { |
var socket = new _NativeSocket.listen(); |
+ socket.localHost = address; |
var result = socket.nativeCreateBindListen(address, port, backlog); |
if (result is OSError) { |
return new Future.immediateError( |
@@ -201,6 +206,8 @@ class _NativeSocket extends NativeFieldWrapperClass1 { |
return nativeGetRemotePeer()[1]; |
} |
+ String get host => localHost; |
+ |
String get remoteHost { |
return nativeGetRemotePeer()[0]; |
} |
@@ -560,6 +567,8 @@ class _RawSocket extends Stream<RawSocketEvent> |
int get remotePort => _socket.remotePort; |
+ String get host => _socket.host; |
+ |
String get remoteHost => _socket.remoteHost; |
bool get readEventsEnabled => _readEventsEnabled; |