| 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 part of dart.io; | 5 part of dart.io; |
| 6 | 6 |
| 7 const int _OUTGOING_BUFFER_SIZE = 8 * 1024; | 7 const int _OUTGOING_BUFFER_SIZE = 8 * 1024; |
| 8 | 8 |
| 9 class _HttpIncoming extends Stream<List<int>> { | 9 class _HttpIncoming extends Stream<List<int>> { |
| 10 final int _transferLength; | 10 final int _transferLength; |
| (...skipping 2023 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2034 } | 2034 } |
| 2035 | 2035 |
| 2036 | 2036 |
| 2037 // HTTP server waiting for socket connections. | 2037 // HTTP server waiting for socket connections. |
| 2038 class _HttpServer | 2038 class _HttpServer |
| 2039 extends Stream<HttpRequest> with _ServiceObject | 2039 extends Stream<HttpRequest> with _ServiceObject |
| 2040 implements HttpServer { | 2040 implements HttpServer { |
| 2041 // Use default Map so we keep order. | 2041 // Use default Map so we keep order. |
| 2042 static Map<int, _HttpServer> _servers = new Map<int, _HttpServer>(); | 2042 static Map<int, _HttpServer> _servers = new Map<int, _HttpServer>(); |
| 2043 | 2043 |
| 2044 final String _serviceTypePath = 'io/http/servers'; | |
| 2045 final String _serviceTypeName = 'HttpServer'; | |
| 2046 | |
| 2047 String serverHeader; | 2044 String serverHeader; |
| 2048 | 2045 |
| 2049 Duration _idleTimeout; | 2046 Duration _idleTimeout; |
| 2050 Timer _idleTimer; | 2047 Timer _idleTimer; |
| 2051 | 2048 |
| 2052 static Future<HttpServer> bind(address, int port, int backlog) { | 2049 static Future<HttpServer> bind(address, int port, int backlog) { |
| 2053 return ServerSocket.bind(address, port, backlog: backlog).then((socket) { | 2050 return ServerSocket.bind(address, port, backlog: backlog).then((socket) { |
| 2054 return new _HttpServer._(socket, true); | 2051 return new _HttpServer._(socket, true); |
| 2055 }); | 2052 }); |
| 2056 } | 2053 } |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2219 result.closing++; | 2216 result.closing++; |
| 2220 } | 2217 } |
| 2221 }); | 2218 }); |
| 2222 _idleConnections.forEach((_HttpConnection conn) { | 2219 _idleConnections.forEach((_HttpConnection conn) { |
| 2223 result.idle++; | 2220 result.idle++; |
| 2224 assert(conn._isIdle); | 2221 assert(conn._isIdle); |
| 2225 }); | 2222 }); |
| 2226 return result; | 2223 return result; |
| 2227 } | 2224 } |
| 2228 | 2225 |
| 2226 String get _serviceTypePath => 'io/http/servers'; |
| 2227 String get _serviceTypeName => 'HttpServer'; |
| 2228 |
| 2229 Map _toJSON(bool ref) { | 2229 Map _toJSON(bool ref) { |
| 2230 var r = { | 2230 var r = { |
| 2231 'id': _servicePath, | 2231 'id': _servicePath, |
| 2232 'type': _serviceType(ref), | 2232 'type': _serviceType(ref), |
| 2233 'name': '${address.host}:$port', | 2233 'name': '${address.host}:$port', |
| 2234 'user_name': '${address.host}:$port', | 2234 'user_name': '${address.host}:$port', |
| 2235 }; | 2235 }; |
| 2236 if (ref) { | 2236 if (ref) { |
| 2237 return r; | 2237 return r; |
| 2238 } | 2238 } |
| 2239 try { |
| 2240 r['socket'] = _serverSocket._toJSON(true); |
| 2241 } catch (_) { |
| 2242 r['socket'] = { |
| 2243 'id': _servicePath, |
| 2244 'type': '@Socket', |
| 2245 'name': 'UserSocket', |
| 2246 'user_name': 'UserSocket', |
| 2247 }; |
| 2248 } |
| 2239 r['port'] = port; | 2249 r['port'] = port; |
| 2240 r['address'] = address.host; | 2250 r['address'] = address.host; |
| 2241 r['active'] = _activeConnections.length; | 2251 r['active'] = _activeConnections.length; |
| 2242 r['idle'] = _idleConnections.length; | 2252 r['idle'] = _idleConnections.length; |
| 2243 r['closed'] = closed; | 2253 r['closed'] = closed; |
| 2244 return r; | 2254 return r; |
| 2245 } | 2255 } |
| 2246 | 2256 |
| 2247 _HttpSessionManager _sessionManagerInstance; | 2257 _HttpSessionManager _sessionManagerInstance; |
| 2248 | 2258 |
| (...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2665 const _RedirectInfo(this.statusCode, this.method, this.location); | 2675 const _RedirectInfo(this.statusCode, this.method, this.location); |
| 2666 } | 2676 } |
| 2667 | 2677 |
| 2668 String _getHttpVersion() { | 2678 String _getHttpVersion() { |
| 2669 var version = Platform.version; | 2679 var version = Platform.version; |
| 2670 // Only include major and minor version numbers. | 2680 // Only include major and minor version numbers. |
| 2671 int index = version.indexOf('.', version.indexOf('.') + 1); | 2681 int index = version.indexOf('.', version.indexOf('.') + 1); |
| 2672 version = version.substring(0, index); | 2682 version = version.substring(0, index); |
| 2673 return 'Dart/$version (dart:io)'; | 2683 return 'Dart/$version (dart:io)'; |
| 2674 } | 2684 } |
| OLD | NEW |