OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 part of dart.io; | 5 part of dart.io; |
6 | 6 |
7 /** | 7 /** |
8 * The [SecureServerSocket] is a server socket, providing a stream of high-level | 8 * The [SecureServerSocket] is a server socket, providing a stream of high-level |
9 * [Socket]s. | 9 * [Socket]s. |
10 * | 10 * |
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
268 socket: connection, | 268 socket: connection, |
269 requestClientCertificate: requestClientCertificate, | 269 requestClientCertificate: requestClientCertificate, |
270 requireClientCertificate: requireClientCertificate, | 270 requireClientCertificate: requireClientCertificate, |
271 supportedProtocols: supportedProtocols) | 271 supportedProtocols: supportedProtocols) |
272 .then((RawSecureSocket secureConnection) { | 272 .then((RawSecureSocket secureConnection) { |
273 if (_closed) { | 273 if (_closed) { |
274 secureConnection.close(); | 274 secureConnection.close(); |
275 } else { | 275 } else { |
276 _controller.add(secureConnection); | 276 _controller.add(secureConnection); |
277 } | 277 } |
278 }).catchError((e) { | 278 }).catchError((e, s) { |
279 if (!_closed) { | 279 if (!_closed) { |
280 _controller.addError(e); | 280 _controller.addError(e, s); |
281 } | 281 } |
282 }); | 282 }); |
283 } | 283 } |
284 | 284 |
285 void _onError(e, [StackTrace stackTrace]) { | |
286 _controller.addError(e, stackTrace); | |
287 } | |
288 | |
289 void _onDone() { | |
290 _controller.close(); | |
291 } | |
292 | |
293 void _onPauseStateChange() { | 285 void _onPauseStateChange() { |
294 if (_controller.isPaused) { | 286 if (_controller.isPaused) { |
295 _subscription.pause(); | 287 _subscription.pause(); |
296 } else { | 288 } else { |
297 _subscription.resume(); | 289 _subscription.resume(); |
298 } | 290 } |
299 } | 291 } |
300 | 292 |
301 void _onSubscriptionStateChange() { | 293 void _onSubscriptionStateChange() { |
302 if (_controller.hasListener) { | 294 if (_controller.hasListener) { |
303 _subscription = _socket.listen(_onData, | 295 _subscription = _socket.listen(_onData, |
304 onDone: _onDone, | 296 onError: _controller.addError, |
305 onError: _onError); | 297 onDone: _controller.close); |
306 } else { | 298 } else { |
307 close(); | 299 close(); |
308 } | 300 } |
309 } | 301 } |
310 | 302 |
311 void set _owner(owner) { (_socket as dynamic)._owner = owner; } | 303 void set _owner(owner) { |
| 304 (_socket as dynamic)._owner = owner; |
| 305 } |
312 } | 306 } |
313 | 307 |
314 | 308 |
OLD | NEW |