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

Unified Diff: sdk/lib/io/http_impl.dart

Issue 16758008: Add 'Server' and 'User-Agent' default header fields. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: git cl dcommit Created 7 years, 6 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
« no previous file with comments | « sdk/lib/io/http.dart ('k') | sdk/lib/io/options.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/io/http_impl.dart
diff --git a/sdk/lib/io/http_impl.dart b/sdk/lib/io/http_impl.dart
index e8f35a3c3c99f79263596ab59f3f1c0b131ddff3..39c8cf4690d1e8dca948f198016dbfac8fe901de 100644
--- a/sdk/lib/io/http_impl.dart
+++ b/sdk/lib/io/http_impl.dart
@@ -676,8 +676,11 @@ class _HttpResponse extends _HttpOutboundMessage<HttpResponse>
_HttpRequest _httpRequest;
_HttpResponse(String protocolVersion,
- _HttpOutgoing _outgoing)
- : super(protocolVersion, _outgoing);
+ _HttpOutgoing _outgoing,
+ String serverHeader)
+ : super(protocolVersion, _outgoing) {
+ if (serverHeader != null) headers.set('Server', serverHeader);
+ }
List<Cookie> get cookies {
if (_cookies == null) _cookies = new List<Cookie>();
@@ -1149,6 +1152,9 @@ class _HttpClientConnection {
request.headers.host = uri.host;
request.headers.port = port;
request.headers.set(HttpHeaders.ACCEPT_ENCODING, "gzip");
+ if (_httpClient.userAgent != null) {
+ request.headers.set('User-Agent', _httpClient.userAgent);
+ }
if (proxy.isAuthenticated) {
// If the proxy configuration contains user information use that
// for proxy basic authorization.
@@ -1346,6 +1352,8 @@ class _HttpClient implements HttpClient {
Duration get idleTimeout => _idleTimeout;
+ String userAgent = _getHttpVersion();
+
void set idleTimeout(Duration timeout) {
_idleTimeout = timeout;
_idleConnections.values.forEach(
@@ -1356,6 +1364,7 @@ class _HttpClient implements HttpClient {
}));
}
+
Future<HttpClientRequest> open(String method,
String host,
int port,
@@ -1755,7 +1764,8 @@ class _HttpConnection {
_state = _ACTIVE;
var outgoing = new _HttpOutgoing(_socket);
var response = new _HttpResponse(incoming.headers.protocolVersion,
- outgoing);
+ outgoing,
+ _httpServer.serverHeader);
var request = new _HttpRequest(response, incoming, _httpServer, this);
_streamFuture = outgoing.done
.then((_) {
@@ -1819,6 +1829,7 @@ class _HttpConnection {
// HTTP server waiting for socket connections.
class _HttpServer extends Stream<HttpRequest> implements HttpServer {
+ String serverHeader = _getHttpVersion();
static Future<HttpServer> bind(address, int port, int backlog) {
return ServerSocket.bind(address, port, backlog: backlog).then((socket) {
@@ -2349,3 +2360,11 @@ class _RedirectInfo implements RedirectInfo {
final String method;
final Uri location;
}
+
+String _getHttpVersion() {
+ var version = new Options().version;
+ // Only include major and minor version numbers.
+ int index = version.indexOf('.', version.indexOf('.') + 1);
+ version = version.substring(0, index);
+ return 'Dart/$version (dart:io)';
+}
« no previous file with comments | « sdk/lib/io/http.dart ('k') | sdk/lib/io/options.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698