Index: runtime/bin/http_parser.dart |
diff --git a/runtime/bin/http_parser.dart b/runtime/bin/http_parser.dart |
index ee3dcc83662255818424cebb8cab3d5d37cc995b..66e0b427e24121e6bca61f84dea0fbd4f49e9511 100644 |
--- a/runtime/bin/http_parser.dart |
+++ b/runtime/bin/http_parser.dart |
@@ -419,6 +419,8 @@ class _HttpParser { |
_expect(byte, _CharCode.LF); |
if (_connectionUpgrade) { |
_state = _State.UPGRADED; |
+ _unparsedData = |
+ buffer.getRange(index + 1, count - (index + 1 - offset)); |
if (headersComplete != null) headersComplete(); |
} else { |
if (headersComplete != null) headersComplete(); |
@@ -606,6 +608,8 @@ class _HttpParser { |
bool get isIdle() => _state == _State.START; |
+ List<int> get unparsedData() => _unparsedData; |
+ |
void _bodyEnd() { |
if (dataEnd != null) { |
dataEnd(_messageType == _MessageType.RESPONSE && !_persistentConnection); |
@@ -695,6 +699,7 @@ class _HttpParser { |
String _responseToMethod; // Indicates the method used for the request. |
int _remainingContent; |
+ List<int> _unparsedData; // Unparsed data after connection upgrade. |
// Callbacks. |
Function requestStart; |
Function responseStart; |