| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 patch class RawServerSocket { | 5 patch class RawServerSocket { |
| 6 /* patch */ static Future<RawServerSocket> bind(address, | 6 /* patch */ static Future<RawServerSocket> bind(address, |
| 7 int port, | 7 int port, |
| 8 {int backlog: 0, | 8 {int backlog: 0, |
| 9 bool v6Only: false}) { | 9 bool v6Only: false}) { |
| 10 return _RawServerSocket.bind(address, port, backlog, v6Only); | 10 return _RawServerSocket.bind(address, port, backlog, v6Only); |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 }); | 230 }); |
| 231 }) | 231 }) |
| 232 .then((address) { | 232 .then((address) { |
| 233 var socket = new _NativeSocket.listen(); | 233 var socket = new _NativeSocket.listen(); |
| 234 socket.address = address; | 234 socket.address = address; |
| 235 var result = socket.nativeCreateBindListen(address._sockaddr_storage, | 235 var result = socket.nativeCreateBindListen(address._sockaddr_storage, |
| 236 port, | 236 port, |
| 237 backlog, | 237 backlog, |
| 238 v6Only); | 238 v6Only); |
| 239 if (result is OSError) { | 239 if (result is OSError) { |
| 240 throw new SocketIOException( | 240 throw new SocketException( |
| 241 "Failed to create server socket", result); | 241 "Failed to create server socket", result); |
| 242 } | 242 } |
| 243 if (port != 0) socket.localPort = port; | 243 if (port != 0) socket.localPort = port; |
| 244 return socket; | 244 return socket; |
| 245 }); | 245 }); |
| 246 } | 246 } |
| 247 | 247 |
| 248 _NativeSocket.normal() : typeFlags = TYPE_NORMAL_SOCKET { | 248 _NativeSocket.normal() : typeFlags = TYPE_NORMAL_SOCKET { |
| 249 eventHandlers = new List(EVENT_COUNT + 1); | 249 eventHandlers = new List(EVENT_COUNT + 1); |
| 250 _EventHandler._start(); | 250 _EventHandler._start(); |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 483 | 483 |
| 484 // Check whether this is an error response from a native port call. | 484 // Check whether this is an error response from a native port call. |
| 485 static bool isErrorResponse(response) { | 485 static bool isErrorResponse(response) { |
| 486 return response is List && response[0] != _SUCCESS_RESPONSE; | 486 return response is List && response[0] != _SUCCESS_RESPONSE; |
| 487 } | 487 } |
| 488 | 488 |
| 489 // Create the appropriate error/exception from different returned | 489 // Create the appropriate error/exception from different returned |
| 490 // error objects. | 490 // error objects. |
| 491 static createError(error, String message) { | 491 static createError(error, String message) { |
| 492 if (error is OSError) { | 492 if (error is OSError) { |
| 493 return new SocketIOException(message, error); | 493 return new SocketException(message, error); |
| 494 } else if (error is List) { | 494 } else if (error is List) { |
| 495 assert(isErrorResponse(error)); | 495 assert(isErrorResponse(error)); |
| 496 switch (error[0]) { | 496 switch (error[0]) { |
| 497 case _ILLEGAL_ARGUMENT_RESPONSE: | 497 case _ILLEGAL_ARGUMENT_RESPONSE: |
| 498 return new ArgumentError(); | 498 return new ArgumentError(); |
| 499 case _OSERROR_RESPONSE: | 499 case _OSERROR_RESPONSE: |
| 500 return new SocketIOException( | 500 return new SocketException( |
| 501 message, new OSError(error[2], error[1])); | 501 message, new OSError(error[2], error[1])); |
| 502 default: | 502 default: |
| 503 return new Exception("Unknown error"); | 503 return new Exception("Unknown error"); |
| 504 } | 504 } |
| 505 } else { | 505 } else { |
| 506 return new SocketIOException(message); | 506 return new SocketException(message); |
| 507 } | 507 } |
| 508 } | 508 } |
| 509 | 509 |
| 510 void reportError(error, String message) { | 510 void reportError(error, String message) { |
| 511 var e = createError(error, message); | 511 var e = createError(error, message); |
| 512 // Invoke the error handler if any. | 512 // Invoke the error handler if any. |
| 513 if (eventHandlers[ERROR_EVENT] != null) { | 513 if (eventHandlers[ERROR_EVENT] != null) { |
| 514 eventHandlers[ERROR_EVENT](e); | 514 eventHandlers[ERROR_EVENT](e); |
| 515 } | 515 } |
| 516 // For all errors we close the socket | 516 // For all errors we close the socket |
| (...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1065 if (_detachReady != null) { | 1065 if (_detachReady != null) { |
| 1066 _detachReady.complete(null); | 1066 _detachReady.complete(null); |
| 1067 } else { | 1067 } else { |
| 1068 if (_raw != null) { | 1068 if (_raw != null) { |
| 1069 _raw.shutdown(SocketDirection.SEND); | 1069 _raw.shutdown(SocketDirection.SEND); |
| 1070 _disableWriteEvent(); | 1070 _disableWriteEvent(); |
| 1071 } | 1071 } |
| 1072 } | 1072 } |
| 1073 } | 1073 } |
| 1074 } | 1074 } |
| OLD | NEW |