| Index: sdk/lib/io/http_impl.dart
|
| ===================================================================
|
| --- sdk/lib/io/http_impl.dart (revision 17714)
|
| +++ sdk/lib/io/http_impl.dart (working copy)
|
| @@ -161,6 +161,8 @@
|
| // Create session, store it in connection, and return.
|
| return _session = _httpServer._sessionManager.createSession();
|
| }
|
| +
|
| + HttpConnectionInfo get connectionInfo => _httpConnection.connectionInfo;
|
| }
|
|
|
|
|
| @@ -260,6 +262,8 @@
|
| return _httpRequest._httpClientConnection.detachSocket();
|
| }
|
|
|
| + HttpConnectionInfo get connectionInfo => _httpRequest.connectionInfo;
|
| +
|
| bool get _shouldAuthenticate {
|
| // Only try to authenticate if there is a challenge in the response.
|
| List<String> challenge = headers[HttpHeaders.WWW_AUTHENTICATE];
|
| @@ -442,6 +446,8 @@
|
| return future;
|
| }
|
|
|
| + HttpConnectionInfo get connectionInfo => _httpRequest.connectionInfo;
|
| +
|
| void _fullBodyWritten() {
|
| if (!_httpRequest._incoming.fullBodyRead) {
|
| _httpRequest._httpConnection._socket.destroy();
|
| @@ -607,6 +613,8 @@
|
| _followRedirects = followRedirects;
|
| }
|
|
|
| + HttpConnectionInfo get connectionInfo => _httpClientConnection.connectionInfo;
|
| +
|
| void _onIncoming(_HttpIncoming incoming) {
|
| var response = new _HttpClientResponse(incoming,
|
| this,
|
| @@ -919,6 +927,8 @@
|
|
|
| // TODO(ajohnsen): Remove socket from httpclient.
|
| void destroy() => _socket.destroy();
|
| +
|
| + HttpConnectionInfo get connectionInfo => _HttpConnectionInfo.create(_socket);
|
| }
|
|
|
| class _ConnnectionInfo {
|
| @@ -1236,6 +1246,8 @@
|
| });
|
| }
|
|
|
| + HttpConnectionInfo get connectionInfo => _HttpConnectionInfo.create(_socket);
|
| +
|
| bool get _isActive => _state == _ACTIVE;
|
| bool get _isIdle => _state == _IDLE;
|
| bool get _isClosing => _state == _CLOSING;
|
| @@ -1411,11 +1423,26 @@
|
|
|
|
|
| class _HttpConnectionInfo implements HttpConnectionInfo {
|
| + static _HttpConnectionInfo create(Socket socket) {
|
| + if (socket == null) return null;
|
| + try {
|
| + _HttpConnectionInfo info = new _HttpConnectionInfo._();
|
| + info.remoteHost = socket.remoteHost;
|
| + info.remotePort = socket.remotePort;
|
| + info.localPort = socket.port;
|
| + return info;
|
| + } catch (e) { }
|
| + return null;
|
| + }
|
| +
|
| + _HttpConnectionInfo._();
|
| +
|
| String remoteHost;
|
| int remotePort;
|
| int localPort;
|
| }
|
|
|
| +
|
| class _DetachedSocket implements Socket {
|
| final Stream<List<int>> _incoming;
|
| final Socket _socket;
|
|
|