| Index: pkg/analysis_server/lib/src/server/http_server.dart
|
| diff --git a/pkg/analysis_server/lib/src/server/http_server.dart b/pkg/analysis_server/lib/src/server/http_server.dart
|
| index 50da1549ea1ae6eaa19a72fba35f568063ae9eea..878e63a5022f4c4e95e5ea1e9a05bb2b99e62d65 100644
|
| --- a/pkg/analysis_server/lib/src/server/http_server.dart
|
| +++ b/pkg/analysis_server/lib/src/server/http_server.dart
|
| @@ -9,6 +9,34 @@ import 'package:analysis_server/src/socket_server.dart';
|
| import 'package:analysis_server/src/status/diagnostics.dart';
|
|
|
| /**
|
| + * Instances of the class [AbstractGetHandler] handle GET requests.
|
| + */
|
| +abstract class AbstractGetHandler {
|
| + /**
|
| + * Handle a GET request received by the HTTP server.
|
| + */
|
| + void handleGetRequest(HttpRequest request);
|
| +}
|
| +
|
| +/**
|
| + * An [AbstractGetHandler] that always returns the given error message.
|
| + */
|
| +class ErrorGetHandler extends AbstractGetHandler {
|
| + final String message;
|
| +
|
| + ErrorGetHandler(this.message);
|
| +
|
| + @override
|
| + void handleGetRequest(HttpRequest request) {
|
| + HttpResponse response = request.response;
|
| + response.statusCode = HttpStatus.NOT_FOUND;
|
| + response.headers.contentType = ContentType.TEXT;
|
| + response.write(message);
|
| + response.close();
|
| + }
|
| +}
|
| +
|
| +/**
|
| * Instances of the class [HttpServer] implement a simple HTTP server. The
|
| * server:
|
| *
|
| @@ -96,7 +124,7 @@ class HttpAnalysisServer {
|
| /**
|
| * Handle a GET request received by the HTTP server.
|
| */
|
| - void _handleGetRequest(HttpRequest request) {
|
| + Future<Null> _handleGetRequest(HttpRequest request) async {
|
| if (getHandler == null) {
|
| if (socketServer.analysisServer.options.enableNewAnalysisDriver) {
|
| getHandler = new DiagnosticsSite(socketServer, _printBuffer);
|
| @@ -105,17 +133,17 @@ class HttpAnalysisServer {
|
| 'Diagnostics only supported for the new analysis driver.');
|
| }
|
| }
|
| - getHandler.handleGetRequest(request);
|
| + await getHandler.handleGetRequest(request);
|
| }
|
|
|
| /**
|
| * Attach a listener to a newly created HTTP server.
|
| */
|
| void _handleServer(HttpServer httpServer) {
|
| - httpServer.listen((HttpRequest request) {
|
| + httpServer.listen((HttpRequest request) async {
|
| List<String> updateValues = request.headers[HttpHeaders.UPGRADE];
|
| if (request.method == 'GET') {
|
| - _handleGetRequest(request);
|
| + await _handleGetRequest(request);
|
| } else if (updateValues != null &&
|
| updateValues.indexOf('websocket') >= 0) {
|
| // We no longer support serving analysis server communications over
|
| @@ -144,31 +172,3 @@ class HttpAnalysisServer {
|
| response.close();
|
| }
|
| }
|
| -
|
| -/**
|
| - * Instances of the class [AbstractGetHandler] handle GET requests.
|
| - */
|
| -abstract class AbstractGetHandler {
|
| - /**
|
| - * Handle a GET request received by the HTTP server.
|
| - */
|
| - void handleGetRequest(HttpRequest request);
|
| -}
|
| -
|
| -/**
|
| - * An [AbstractGetHandler] that always returns the given error message.
|
| - */
|
| -class ErrorGetHandler extends AbstractGetHandler {
|
| - final String message;
|
| -
|
| - ErrorGetHandler(this.message);
|
| -
|
| - @override
|
| - void handleGetRequest(HttpRequest request) {
|
| - HttpResponse response = request.response;
|
| - response.statusCode = HttpStatus.NOT_FOUND;
|
| - response.headers.contentType = ContentType.TEXT;
|
| - response.write(message);
|
| - response.close();
|
| - }
|
| -}
|
|
|