Skip to content

Commit 879de66

Browse files
authored
Merge pull request #8 from mu2019/patch-1
2 parents d0d9bf0 + a9eccf6 commit 879de66

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/handler.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,13 @@ enum UpgradeStatus<S> {
107107
}
108108
use UpgradeStatus::{NotUpgraded, Upgraded};
109109

110-
fn header_eq_ignore_case<T>(req: &Request<T>, header_name: HeaderName, value: &str) -> bool {
110+
fn header_contains_ignore_case<T>(req: &Request<T>, header_name: HeaderName, value: &str) -> bool {
111111
req.header(header_name)
112-
.map(|h| h.as_str().eq_ignore_ascii_case(value))
112+
.map(|h| {
113+
h.as_str()
114+
.split(',')
115+
.any(|s| s.trim().eq_ignore_ascii_case(value.trim()))
116+
})
113117
.unwrap_or(false)
114118
}
115119

@@ -139,8 +143,8 @@ where
139143
}
140144

141145
async fn handle_upgrade(&self, req: Request<S>) -> UpgradeStatus<S> {
142-
let connection_upgrade = header_eq_ignore_case(&req, CONNECTION, "upgrade");
143-
let upgrade_to_websocket = header_eq_ignore_case(&req, UPGRADE, "websocket");
146+
let connection_upgrade = header_contains_ignore_case(&req, CONNECTION, "upgrade");
147+
let upgrade_to_websocket = header_contains_ignore_case(&req, UPGRADE, "websocket");
144148
let upgrade_requested = connection_upgrade && upgrade_to_websocket;
145149

146150
if !upgrade_requested {

0 commit comments

Comments
 (0)