Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Unified Diff: pkg/dev_compiler/tool/input_sdk/lib/io/secure_server_socket.dart

Issue 2698353003: unfork DDC's copy of most SDK libraries (Closed)
Patch Set: revert core_patch Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
- }
-}
-
-
« no previous file with comments | « pkg/dev_compiler/tool/input_sdk/lib/io/process.dart ('k') | pkg/dev_compiler/tool/input_sdk/lib/io/secure_socket.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698