Support multiple `Sec-WebSocket-Extensions` request headers

pull/235/head
kazk 4 years ago
parent fdb82ed428
commit c3909865e6
  1. 8
      src/handshake/server.rs

@ -246,14 +246,16 @@ impl<S: Read + Write, C: Callback> HandshakeRole for ServerHandshake<S, C> {
let mut response = create_response(&result)?;
if let Some(compression) = &self.config.and_then(|c| c.compression) {
if let Some(extensions) = result
for extensions in result
.headers()
.get("Sec-WebSocket-Extensions")
.and_then(|v| v.to_str().ok())
.get_all("Sec-WebSocket-Extensions")
.iter()
.filter_map(|h| h.to_str().ok())
{
if let Some((agreed, pmce)) = compression.negotiation_response(extensions) {
self.pmce = Some(pmce);
response.headers_mut().insert("Sec-WebSocket-Extensions", agreed);
break;
}
}
}

Loading…
Cancel
Save