| Index: runtime/bin/vmservice/server.dart
|
| diff --git a/runtime/bin/vmservice/server.dart b/runtime/bin/vmservice/server.dart
|
| index 4e4c54ae2b9e4714f41b31964376179bd3147501..4075e8d427886d363b4b9c31aabeba5ad5c1c7be 100644
|
| --- a/runtime/bin/vmservice/server.dart
|
| +++ b/runtime/bin/vmservice/server.dart
|
| @@ -157,12 +157,44 @@ class Server {
|
| return false;
|
| }
|
|
|
| - void _requestHandler(HttpRequest request) {
|
| + Future _requestHandler(HttpRequest request) async {
|
| if (!_originCheck(request)) {
|
| // This is a cross origin attempt to connect
|
| request.response.close();
|
| return;
|
| }
|
| + if (request.method == 'PUT') {
|
| + // PUT requests are forwarded to DevFS for processing.
|
| +
|
| + List fsNameList;
|
| + List fsPathList;
|
| + Object fsName;
|
| + Object fsPath;
|
| +
|
| + try {
|
| + // Extract the fs name and fs path from the request headers.
|
| + fsNameList = request.headers['dev_fs_name'];
|
| + fsPathList = request.headers['dev_fs_path'];
|
| + fsName = fsNameList[0];
|
| + fsPath = fsPathList[0];
|
| + } catch (e) { /* ignore */ }
|
| +
|
| + String result;
|
| + try {
|
| + result = await _service.devfs.handlePutStream(
|
| + fsName,
|
| + fsPath,
|
| + request.transform(GZIP.decoder));
|
| + } catch (e) { /* ignore */ }
|
| +
|
| + if (result != null) {
|
| + request.response.headers.contentType =
|
| + HttpRequestClient.jsonContentType;
|
| + request.response.write(result);
|
| + }
|
| + request.response.close();
|
| + return;
|
| + }
|
| if (request.method != 'GET') {
|
| // Not a GET request. Do nothing.
|
| request.response.close();
|
|
|