Index: sdk/lib/io/websocket.dart |
diff --git a/sdk/lib/io/websocket.dart b/sdk/lib/io/websocket.dart |
index 5170bde89e6e45766c476c44122db6333be93f6f..7a6b86968bf02aa5ce81055bdacdc6c8061876b0 100644 |
--- a/sdk/lib/io/websocket.dart |
+++ b/sdk/lib/io/websocket.dart |
@@ -84,7 +84,10 @@ class CompressionOptions { |
var info = new List(2); |
int mwb; |
- var part = requested.parameters[_serverMaxWindowBits]; |
+ String part; |
+ if (requested?.parameters != null) { |
+ part = requested.parameters[_serverMaxWindowBits]; |
+ } |
if (part != null) { |
if (part.length >= 2 && part.startsWith('0')) { |
throw new ArgumentError("Illegal 0 padding on value."); |
@@ -97,21 +100,22 @@ class CompressionOptions { |
info[1] = mwb; |
} |
} else { |
+ info[0] = ""; |
info[1] = _WebSocketImpl.DEFAULT_WINDOW_BITS; |
} |
return info; |
} |
/// Returns default values for client compression request headers. |
- List _createClientRequestHeader(HeaderValue requested) { |
- var info = new List(2); |
+ List _createClientRequestHeader(HeaderValue requested, int size) { |
Søren Gjesse
2015/11/11 13:31:08
This is no longer returning a List.
butlermatt
2015/11/11 18:26:30
Done.
|
+ var info = ""; |
- info[1] = _WebSocketImpl.DEFAULT_WINDOW_BITS; |
- if (requested != null && |
- requested.parameters[_clientMaxWindowBits] != null) { |
- info[0] = "; client_max_window_bits=${info[1]}"; |
+ // If responding to a valid request, specify size |
+ if (requested != null) { |
+ info = "; client_max_window_bits=$size"; |
} else { |
- info[0] = "; client_max_window_bits"; |
+ // Client request. Specify default |
+ info = "; client_max_window_bits"; |
} |
return info; |
@@ -141,19 +145,14 @@ class CompressionOptions { |
header += "; server_no_context_takeover"; |
} |
- if (requested == null || |
- requested.parameters.containsKey(_clientMaxWindowBits)) { |
- var clientList = _createClientRequestHeader(requested); |
- header += clientList[0]; |
- info[1] = clientList[1]; |
- } else { |
- var headerList = _createServerResponseHeader(requested); |
- header += headerList[0]; |
- info[1] = headerList[1]; |
- } |
+ var headerList = _createServerResponseHeader(requested); |
+ header += headerList[0]; |
+ info[1] = headerList[1]; |
- info[0] = header; |
+ var clientList = _createClientRequestHeader(requested, info[1]); |
+ header += clientList; |
+ info[0] = header; |
return info; |
} |
} |