fix(headers): make Protocol search websocket unicase
RFC6455 requires the Upgrade Protocol to search case-insensitively for "websocket" Other protocol values may be case-sensitive, however, so ProtocolExt is still case-sensitive
This commit is contained in:
		| @@ -2,6 +2,7 @@ use header::{Header, HeaderFormat}; | ||||
| use std::fmt; | ||||
| use std::str::FromStr; | ||||
| use header::parsing::{from_comma_delimited, fmt_comma_delimited}; | ||||
| use unicase::UniCase; | ||||
|  | ||||
| use self::Protocol::{WebSocket, ProtocolExt}; | ||||
|  | ||||
| @@ -22,9 +23,11 @@ pub enum Protocol { | ||||
|  | ||||
| impl FromStr for Protocol { | ||||
|     fn from_str(s: &str) -> Option<Protocol> { | ||||
|         match s { | ||||
|             "websocket" => Some(WebSocket), | ||||
|             s => Some(ProtocolExt(s.to_string())) | ||||
|         if UniCase(s) == UniCase("websocket") { | ||||
|             Some(WebSocket) | ||||
|         } | ||||
|         else { | ||||
|             Some(ProtocolExt(s.to_string())) | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user