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

Side by Side Diff: sdk/lib/io/http_body_impl.dart

Issue 13950015: Fix bugs in HttpBody detected by the analyzer (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sdk/lib/io/http_body.dart ('k') | tests/standalone/io/http_body_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 class _HttpBodyHandlerTransformer 7 class _HttpBodyHandlerTransformer
8 extends StreamEventTransformer<HttpRequest, HttpRequestBody> { 8 extends StreamEventTransformer<HttpRequest, HttpRequestBody> {
9 void handleData(HttpRequest request, EventSink<HttpRequestBody> sink) { 9 void handleData(HttpRequest request, EventSink<HttpRequestBody> sink) {
10 HttpBodyHandler.processRequest(request) 10 HttpBodyHandler.processRequest(request)
11 .then(sink.add, onError: sink.addError); 11 .then(sink.add, onError: sink.addError);
12 } 12 }
13 } 13 }
14 14
15 class _HttpBodyHandler implements HttpBodyHandler { 15 class _HttpBodyHandler {
16 Stream<HttpRequestBody> bind(Stream<HttpRequest> stream) {
17 return new _HttpBodyHandlerTransformer().bind(stream);
18 }
19
20 static Future<HttpRequestBody> processRequest(HttpRequest request) { 16 static Future<HttpRequestBody> processRequest(HttpRequest request) {
21 return process(request, request.headers) 17 return process(request, request.headers)
22 .then((body) => new _HttpRequestBody(request, body), 18 .then((body) => new _HttpRequestBody(request, body),
23 onError: (error) { 19 onError: (error) {
24 // Try to send BAD_REQUEST response. 20 // Try to send BAD_REQUEST response.
25 request.response.statusCode = HttpStatus.BAD_REQUEST; 21 request.response.statusCode = HttpStatus.BAD_REQUEST;
26 request.response.close(); 22 request.response.close();
27 request.response.done.catchError((_) {}); 23 request.response.done.catchError((_) {});
28 throw error; 24 throw error;
29 }); 25 });
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 _HttpRequestBody(HttpRequest request, HttpBody body) 99 _HttpRequestBody(HttpRequest request, HttpBody body)
104 : super(body.mimeType, body.type, body.body), 100 : super(body.mimeType, body.type, body.body),
105 method = request.method, 101 method = request.method,
106 uri = request.uri, 102 uri = request.uri,
107 headers = request.headers, 103 headers = request.headers,
108 response = request.response; 104 response = request.response;
109 } 105 }
110 106
111 class _HttpClientResponseBody 107 class _HttpClientResponseBody
112 extends _HttpBody implements HttpClientResponseBody { 108 extends _HttpBody implements HttpClientResponseBody {
113 final int statusCode; 109 final HttpClientResponse response;
114 final String reasonPhrase;
115 final HttpHeaders headers;
116 110
117 _HttpClientResponseBody(HttpClientResponse response, HttpBody body) 111 _HttpClientResponseBody(HttpClientResponse response, HttpBody body)
118 : super(body.mimeType, body.type, body.body), 112 : super(body.mimeType, body.type, body.body),
119 statusCode = response.statusCode, 113 this.response = response;
120 reasonPhrase = response.reasonPhrase, 114
121 headers = response.headers; 115 int get statusCode => response.statusCode;
116
117 String get reasonPhrase => response.reasonPhrase;
118
119 HttpHeaders get headers => response.headers;
122 } 120 }
OLDNEW
« no previous file with comments | « sdk/lib/io/http_body.dart ('k') | tests/standalone/io/http_body_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698