| Index: runtime/bin/socket_patch.dart
|
| diff --git a/runtime/bin/socket_patch.dart b/runtime/bin/socket_patch.dart
|
| index 4fffbf7681da5b896221836d310aa03aa98cb514..5083e280e701209375fbd24df09ea9a37784cec7 100644
|
| --- a/runtime/bin/socket_patch.dart
|
| +++ b/runtime/bin/socket_patch.dart
|
| @@ -6,8 +6,9 @@ patch class RawServerSocket {
|
| /* patch */ static Future<RawServerSocket> bind(address,
|
| int port,
|
| {int backlog: 0,
|
| - bool v6Only: false}) {
|
| - return _RawServerSocket.bind(address, port, backlog, v6Only);
|
| + bool v6Only: false,
|
| + bool reusePort: false}) {
|
| + return _RawServerSocket.bind(address, port, backlog, v6Only, reusePort);
|
| }
|
| }
|
|
|
| @@ -319,7 +320,8 @@ class _NativeSocket extends NativeFieldWrapperClass1 {
|
| static Future<_NativeSocket> bind(host,
|
| int port,
|
| int backlog,
|
| - bool v6Only) {
|
| + bool v6Only,
|
| + bool reusePort) {
|
| return new Future.value(host)
|
| .then((host) {
|
| if (host is _InternetAddress) return host;
|
| @@ -337,7 +339,8 @@ class _NativeSocket extends NativeFieldWrapperClass1 {
|
| var result = socket.nativeCreateBindListen(address._sockaddr_storage,
|
| port,
|
| backlog,
|
| - v6Only);
|
| + v6Only,
|
| + reusePort);
|
| if (result is OSError) {
|
| throw new SocketException("Failed to create server socket",
|
| osError: result,
|
| @@ -655,7 +658,8 @@ class _NativeSocket extends NativeFieldWrapperClass1 {
|
| native "Socket_WriteList";
|
| nativeCreateConnect(List<int> addr,
|
| int port) native "Socket_CreateConnect";
|
| - nativeCreateBindListen(List<int> addr, int port, int backlog, bool v6Only)
|
| + nativeCreateBindListen(
|
| + List<int> addr, int port, int backlog, bool v6Only, bool reusePort)
|
| native "ServerSocket_CreateBindListen";
|
| nativeAccept(_NativeSocket socket) native "ServerSocket_Accept";
|
| int nativeGetPort() native "Socket_GetPort";
|
| @@ -673,11 +677,12 @@ class _RawServerSocket extends Stream<RawSocket>
|
| static Future<_RawServerSocket> bind(address,
|
| int port,
|
| int backlog,
|
| - bool v6Only) {
|
| + bool v6Only,
|
| + bool reusePort) {
|
| if (port < 0 || port > 0xFFFF)
|
| throw new ArgumentError("Invalid port $port");
|
| if (backlog < 0) throw new ArgumentError("Invalid backlog $backlog");
|
| - return _NativeSocket.bind(address, port, backlog, v6Only)
|
| + return _NativeSocket.bind(address, port, backlog, v6Only, reusePort)
|
| .then((socket) => new _RawServerSocket(socket));
|
| }
|
|
|
| @@ -893,8 +898,9 @@ patch class ServerSocket {
|
| /* patch */ static Future<ServerSocket> bind(address,
|
| int port,
|
| {int backlog: 0,
|
| - bool v6Only: false}) {
|
| - return _ServerSocket.bind(address, port, backlog, v6Only);
|
| + bool v6Only: false,
|
| + bool reusePort: false}) {
|
| + return _ServerSocket.bind(address, port, backlog, v6Only, reusePort);
|
| }
|
| }
|
|
|
| @@ -905,8 +911,9 @@ class _ServerSocket extends Stream<Socket>
|
| static Future<_ServerSocket> bind(address,
|
| int port,
|
| int backlog,
|
| - bool v6Only) {
|
| - return _RawServerSocket.bind(address, port, backlog, v6Only)
|
| + bool v6Only,
|
| + bool reusePort) {
|
| + return _RawServerSocket.bind(address, port, backlog, v6Only, reusePort)
|
| .then((socket) => new _ServerSocket(socket));
|
| }
|
|
|
|
|