[Modify] Polish it
This commit is contained in:
parent
7146f6e1da
commit
60eae92f30
@ -1015,6 +1015,9 @@ namespace WebSocketSharp
|
|||||||
if (_protocols != null)
|
if (_protocols != null)
|
||||||
_protocol = res.Headers["Sec-WebSocket-Protocol"];
|
_protocol = res.Headers["Sec-WebSocket-Protocol"];
|
||||||
|
|
||||||
|
if (ExtensionsRequested)
|
||||||
|
processSecWebSocketExtensionsServerHeader (res.Headers["Sec-WebSocket-Extensions"]);
|
||||||
|
|
||||||
var cookies = res.Cookies;
|
var cookies = res.Cookies;
|
||||||
if (cookies.Count > 0)
|
if (cookies.Count > 0)
|
||||||
_cookies.SetOrRemove (cookies);
|
_cookies.SetOrRemove (cookies);
|
||||||
@ -1689,20 +1692,19 @@ namespace WebSocketSharp
|
|||||||
// As client
|
// As client
|
||||||
private bool validateSecWebSocketExtensionsHeader (string value)
|
private bool validateSecWebSocketExtensionsHeader (string value)
|
||||||
{
|
{
|
||||||
var comp = _compression != CompressionMethod.None;
|
if (value == null)
|
||||||
if (value == null || value.Length == 0) {
|
|
||||||
if (comp)
|
|
||||||
_compression = CompressionMethod.None;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
|
|
||||||
if (!comp)
|
if (value.Length == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (!ExtensionsRequested)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var comp = _compression != CompressionMethod.None;
|
||||||
foreach (var e in value.SplitHeaderValue (',')) {
|
foreach (var e in value.SplitHeaderValue (',')) {
|
||||||
var ext = e.Trim ();
|
var ext = e.Trim ();
|
||||||
if (ext.IsCompressionExtension (_compression)) {
|
if (comp && ext.IsCompressionExtension (_compression)) {
|
||||||
if (!ext.Contains ("server_no_context_takeover")) {
|
if (!ext.Contains ("server_no_context_takeover")) {
|
||||||
_logger.Error ("The server hasn't sent back 'server_no_context_takeover'.");
|
_logger.Error ("The server hasn't sent back 'server_no_context_takeover'.");
|
||||||
return false;
|
return false;
|
||||||
@ -1712,13 +1714,15 @@ namespace WebSocketSharp
|
|||||||
_logger.Warn ("The server hasn't sent back 'client_no_context_takeover'.");
|
_logger.Warn ("The server hasn't sent back 'client_no_context_takeover'.");
|
||||||
|
|
||||||
var method = _compression.ToExtensionString ();
|
var method = _compression.ToExtensionString ();
|
||||||
var invalid = ext.SplitHeaderValue (';').Contains (
|
var invalid =
|
||||||
|
ext.SplitHeaderValue (';').Contains (
|
||||||
t => {
|
t => {
|
||||||
t = t.Trim ();
|
t = t.Trim ();
|
||||||
return t != method &&
|
return t != method
|
||||||
t != "server_no_context_takeover" &&
|
&& t != "server_no_context_takeover"
|
||||||
t != "client_no_context_takeover";
|
&& t != "client_no_context_takeover";
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
if (invalid)
|
if (invalid)
|
||||||
return false;
|
return false;
|
||||||
@ -1728,7 +1732,6 @@ namespace WebSocketSharp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_extensions = value;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user