| Index: pkg/dev_compiler/tool/input_sdk/lib/io/secure_server_socket.dart
|
| diff --git a/pkg/dev_compiler/tool/input_sdk/lib/io/secure_server_socket.dart b/pkg/dev_compiler/tool/input_sdk/lib/io/secure_server_socket.dart
|
| deleted file mode 100644
|
| index 2fbc5b1224792b61f8db10365028889fc6073388..0000000000000000000000000000000000000000
|
| --- a/pkg/dev_compiler/tool/input_sdk/lib/io/secure_server_socket.dart
|
| +++ /dev/null
|
| @@ -1,295 +0,0 @@
|
| -// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -part of dart.io;
|
| -
|
| -/**
|
| - * The [SecureServerSocket] is a server socket, providing a stream of high-level
|
| - * [Socket]s.
|
| - *
|
| - * See [SecureSocket] for more info.
|
| - */
|
| -class SecureServerSocket extends Stream<SecureSocket> {
|
| - final RawSecureServerSocket _socket;
|
| -
|
| - SecureServerSocket._(this._socket);
|
| -
|
| - /**
|
| - * Returns a future for a [SecureServerSocket]. When the future
|
| - * completes the server socket is bound to the given [address] and
|
| - * [port] and has started listening on it.
|
| - *
|
| - * The [address] can either be a [String] or an
|
| - * [InternetAddress]. If [address] is a [String], [bind] will
|
| - * perform a [InternetAddress.lookup] and use the first value in the
|
| - * list. To listen on the loopback adapter, which will allow only
|
| - * incoming connections from the local host, use the value
|
| - * [InternetAddress.LOOPBACK_IP_V4] or
|
| - * [InternetAddress.LOOPBACK_IP_V6]. To allow for incoming
|
| - * connection from the network use either one of the values
|
| - * [InternetAddress.ANY_IP_V4] or [InternetAddress.ANY_IP_V6] to
|
| - * bind to all interfaces or the IP address of a specific interface.
|
| - *
|
| - * If [port] has the value [:0:] an ephemeral port will be chosen by
|
| - * the system. The actual port used can be retrieved using the
|
| - * [port] getter.
|
| - *
|
| - * The optional argument [backlog] can be used to specify the listen
|
| - * backlog for the underlying OS listen setup. If [backlog] has the
|
| - * value of [:0:] (the default) a reasonable value will be chosen by
|
| - * the system.
|
| - *
|
| - * Incoming client connections are promoted to secure connections, using
|
| - * the server certificate and key set in [context].
|
| - *
|
| - * [address] must be given as a numeric address, not a host name.
|
| - *
|
| - * To request or require that clients authenticate by providing an SSL (TLS)
|
| - * client certificate, set the optional parameter [requestClientCertificate]
|
| - * or [requireClientCertificate] to true. Requiring a certificate implies
|
| - * requesting a certificate, so setting both is redundant.
|
| - * To check whether a client certificate was received, check
|
| - * SecureSocket.peerCertificate after connecting. If no certificate
|
| - * was received, the result will be null.
|
| - *
|
| - * The optional argument [shared] specifies whether additional
|
| - * SecureServerSocket objects can bind to the same combination of `address`,
|
| - * `port` and `v6Only`. If `shared` is `true` and more `SecureServerSocket`s
|
| - * from this isolate or other isolates are bound to the port, then the
|
| - * incoming connections will be distributed among all the bound
|
| - * `SecureServerSocket`s. Connections can be distributed over multiple
|
| - * isolates this way.
|
| - */
|
| - static Future<SecureServerSocket> bind(
|
| - address,
|
| - int port,
|
| - SecurityContext context,
|
| - {int backlog: 0,
|
| - bool v6Only: false,
|
| - bool requestClientCertificate: false,
|
| - bool requireClientCertificate: false,
|
| - List<String> supportedProtocols,
|
| - bool shared: false}) {
|
| - return RawSecureServerSocket.bind(
|
| - address,
|
| - port,
|
| - context,
|
| - backlog: backlog,
|
| - v6Only: v6Only,
|
| - requestClientCertificate: requestClientCertificate,
|
| - requireClientCertificate: requireClientCertificate,
|
| - supportedProtocols: supportedProtocols,
|
| - shared: shared).then(
|
| - (serverSocket) => new SecureServerSocket._(serverSocket));
|
| - }
|
| -
|
| - StreamSubscription<SecureSocket> listen(void onData(SecureSocket socket),
|
| - {Function onError,
|
| - void onDone(),
|
| - bool cancelOnError}) {
|
| - return _socket.map((rawSocket) => new SecureSocket._(rawSocket))
|
| - .listen(onData,
|
| - onError: onError,
|
| - onDone: onDone,
|
| - cancelOnError: cancelOnError);
|
| - }
|
| -
|
| - /**
|
| - * Returns the port used by this socket.
|
| - */
|
| - int get port => _socket.port;
|
| -
|
| - /**
|
| - * Returns the address used by this socket.
|
| - */
|
| - InternetAddress get address => _socket.address;
|
| -
|
| - /**
|
| - * Closes the socket. The returned future completes when the socket
|
| - * is fully closed and is no longer bound.
|
| - */
|
| - Future<SecureServerSocket> close() => _socket.close().then((_) => this);
|
| -
|
| - void set _owner(owner) { _socket._owner = owner; }
|
| -}
|
| -
|
| -
|
| -/**
|
| - * The RawSecureServerSocket is a server socket, providing a stream of low-level
|
| - * [RawSecureSocket]s.
|
| - *
|
| - * See [RawSecureSocket] for more info.
|
| - */
|
| -class RawSecureServerSocket extends Stream<RawSecureSocket> {
|
| - final RawServerSocket _socket;
|
| - StreamController<RawSecureSocket> _controller;
|
| - StreamSubscription<RawSocket> _subscription;
|
| - final SecurityContext _context;
|
| - final bool requestClientCertificate;
|
| - final bool requireClientCertificate;
|
| - final List<String> supportedProtocols;
|
| - bool _closed = false;
|
| -
|
| - RawSecureServerSocket._(this._socket,
|
| - this._context,
|
| - this.requestClientCertificate,
|
| - this.requireClientCertificate,
|
| - this.supportedProtocols) {
|
| - _controller = new StreamController<RawSecureSocket>(
|
| - sync: true,
|
| - onListen: _onSubscriptionStateChange,
|
| - onPause: _onPauseStateChange,
|
| - onResume: _onPauseStateChange,
|
| - onCancel: _onSubscriptionStateChange);
|
| - }
|
| -
|
| - /**
|
| - * Returns a future for a [RawSecureServerSocket]. When the future
|
| - * completes the server socket is bound to the given [address] and
|
| - * [port] and has started listening on it.
|
| - *
|
| - * The [address] can either be a [String] or an
|
| - * [InternetAddress]. If [address] is a [String], [bind] will
|
| - * perform a [InternetAddress.lookup] and use the first value in the
|
| - * list. To listen on the loopback adapter, which will allow only
|
| - * incoming connections from the local host, use the value
|
| - * [InternetAddress.LOOPBACK_IP_V4] or
|
| - * [InternetAddress.LOOPBACK_IP_V6]. To allow for incoming
|
| - * connection from the network use either one of the values
|
| - * [InternetAddress.ANY_IP_V4] or [InternetAddress.ANY_IP_V6] to
|
| - * bind to all interfaces or the IP address of a specific interface.
|
| - *
|
| - * If [port] has the value [:0:] an ephemeral port will be chosen by
|
| - * the system. The actual port used can be retrieved using the
|
| - * [port] getter.
|
| - *
|
| - * The optional argument [backlog] can be used to specify the listen
|
| - * backlog for the underlying OS listen setup. If [backlog] has the
|
| - * value of [:0:] (the default) a reasonable value will be chosen by
|
| - * the system.
|
| - *
|
| - * Incoming client connections are promoted to secure connections,
|
| - * using the server certificate and key set in [context].
|
| - *
|
| - * [address] must be given as a numeric address, not a host name.
|
| - *
|
| - * To request or require that clients authenticate by providing an SSL (TLS)
|
| - * client certificate, set the optional parameters requestClientCertificate or
|
| - * requireClientCertificate to true. Require implies request, so one doesn't
|
| - * need to specify both. To check whether a client certificate was received,
|
| - * check SecureSocket.peerCertificate after connecting. If no certificate
|
| - * was received, the result will be null.
|
| - *
|
| - * The optional argument [shared] specifies whether additional
|
| - * RawSecureServerSocket objects can bind to the same combination of
|
| - * `address`, `port` and `v6Only`. If `shared` is `true` and more
|
| - * `RawSecureServerSocket`s from this isolate or other isolates are bound to
|
| - * the port, then the incoming connections will be distributed among all the
|
| - * bound `RawSecureServerSocket`s. Connections can be distributed over
|
| - * multiple isolates this way.
|
| - */
|
| - static Future<RawSecureServerSocket> bind(
|
| - address,
|
| - int port,
|
| - SecurityContext context,
|
| - {int backlog: 0,
|
| - bool v6Only: false,
|
| - bool requestClientCertificate: false,
|
| - bool requireClientCertificate: false,
|
| - List<String> supportedProtocols,
|
| - bool shared: false}) {
|
| - return RawServerSocket.bind(
|
| - address, port, backlog: backlog, v6Only: v6Only, shared: shared)
|
| - .then((serverSocket) => new RawSecureServerSocket._(
|
| - serverSocket,
|
| - context,
|
| - requestClientCertificate,
|
| - requireClientCertificate,
|
| - supportedProtocols));
|
| - }
|
| -
|
| - StreamSubscription<RawSecureSocket> listen(void onData(RawSecureSocket s),
|
| - {Function onError,
|
| - void onDone(),
|
| - bool cancelOnError}) {
|
| - return _controller.stream.listen(onData,
|
| - onError: onError,
|
| - onDone: onDone,
|
| - cancelOnError: cancelOnError);
|
| - }
|
| -
|
| - /**
|
| - * Returns the port used by this socket.
|
| - */
|
| - int get port => _socket.port;
|
| -
|
| - /**
|
| - * Returns the address used by this socket.
|
| - */
|
| - InternetAddress get address => _socket.address;
|
| -
|
| - /**
|
| - * Closes the socket. The returned future completes when the socket
|
| - * is fully closed and is no longer bound.
|
| - */
|
| - Future<RawSecureServerSocket> close() {
|
| - _closed = true;
|
| - return _socket.close().then((_) => this);
|
| - }
|
| -
|
| - void _onData(RawSocket connection) {
|
| - var remotePort;
|
| - try {
|
| - remotePort = connection.remotePort;
|
| - } catch (e) {
|
| - // If connection is already closed, remotePort throws an exception.
|
| - // Do nothing - connection is closed.
|
| - return;
|
| - }
|
| - _RawSecureSocket.connect(
|
| - connection.address,
|
| - remotePort,
|
| - context: _context,
|
| - is_server: true,
|
| - socket: connection,
|
| - requestClientCertificate: requestClientCertificate,
|
| - requireClientCertificate: requireClientCertificate,
|
| - supportedProtocols: supportedProtocols)
|
| - .then((RawSecureSocket secureConnection) {
|
| - if (_closed) {
|
| - secureConnection.close();
|
| - } else {
|
| - _controller.add(secureConnection);
|
| - }
|
| - }).catchError((e, s) {
|
| - if (!_closed) {
|
| - _controller.addError(e, s);
|
| - }
|
| - });
|
| - }
|
| -
|
| - void _onPauseStateChange() {
|
| - if (_controller.isPaused) {
|
| - _subscription.pause();
|
| - } else {
|
| - _subscription.resume();
|
| - }
|
| - }
|
| -
|
| - void _onSubscriptionStateChange() {
|
| - if (_controller.hasListener) {
|
| - _subscription = _socket.listen(_onData,
|
| - onError: _controller.addError,
|
| - onDone: _controller.close);
|
| - } else {
|
| - close();
|
| - }
|
| - }
|
| -
|
| - void set _owner(owner) {
|
| - (_socket as dynamic)._owner = owner;
|
| - }
|
| -}
|
| -
|
| -
|
|
|