From 897aa30b9bfc923a0280e79392073b3b790734e1 Mon Sep 17 00:00:00 2001 From: serega6531 Date: Wed, 8 Apr 2020 17:24:17 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D1=80=D0=B0=D0=B1=D0=B0=D1=82?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20=D0=B2=D1=81=D0=B5?= =?UTF-8?q?=20WebSocket,=20=D0=B0=20=D0=BD=D0=B5=20=D1=82=D0=BE=D0=BB?= =?UTF-8?q?=D1=8C=D0=BA=D0=BE=20=D1=81=D0=B6=D0=B0=D1=82=D1=8B=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../packmate/service/WebSocketsParser.java | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/src/main/java/ru/serega6531/packmate/service/WebSocketsParser.java b/src/main/java/ru/serega6531/packmate/service/WebSocketsParser.java index 0486001..0a66388 100644 --- a/src/main/java/ru/serega6531/packmate/service/WebSocketsParser.java +++ b/src/main/java/ru/serega6531/packmate/service/WebSocketsParser.java @@ -31,8 +31,6 @@ public class WebSocketsParser { private static final java.util.regex.Pattern WEBSOCKET_ACCEPT_PATTERN = java.util.regex.Pattern.compile("Sec-WebSocket-Accept: (.+)\\r\\n"); - private static final String WEBSOCKET_EXTENSION_HEADER = "Sec-WebSocket-Extension: permessage-deflate"; - private static final String WEBSOCKET_EXTENSIONS_HEADER = "Sec-WebSocket-Extensions: permessage-deflate"; private static final String WEBSOCKET_UPGRADE_HEADER = "upgrade: websocket\r\n"; private static final String WEBSOCKET_CONNECTION_HEADER = "connection: upgrade\r\n"; @@ -103,7 +101,6 @@ public class WebSocketsParser { final List handshakes = packets.subList(0, httpEnd); parse(wsPackets, handshakes, draft); - parsed = true; } private void parse(final List wsPackets, final List handshakes, Draft_6455 draft) { @@ -142,6 +139,8 @@ public class WebSocketsParser { } } } + + parsed = true; } public List getParsedPackets() { @@ -190,11 +189,6 @@ public class WebSocketsParser { return null; } - if (!handshake.contains(WEBSOCKET_EXTENSION_HEADER) && - !handshake.contains(WEBSOCKET_EXTENSIONS_HEADER)) { - return null; - } - return handshake; } @@ -212,10 +206,10 @@ public class WebSocketsParser { String key = matcher.group(1); matcher = WEBSOCKET_EXTENSIONS_PATTERN.matcher(clientHandshake); - if (!matcher.find()) { - return null; + String extensions = null; + if (matcher.find()) { + extensions = matcher.group(1); } - String extensions = matcher.group(1); HandshakeImpl1Client clientHandshakeImpl = new HandshakeImpl1Client(); @@ -223,7 +217,10 @@ public class WebSocketsParser { clientHandshakeImpl.put("Connection", "Upgrade"); clientHandshakeImpl.put("Sec-WebSocket-Version", version); clientHandshakeImpl.put("Sec-WebSocket-Key", key); - clientHandshakeImpl.put("Sec-WebSocket-Extensions", extensions); + + if(extensions != null) { + clientHandshakeImpl.put("Sec-WebSocket-Extensions", extensions); + } return clientHandshakeImpl; } @@ -236,10 +233,10 @@ public class WebSocketsParser { String accept = matcher.group(1); matcher = WEBSOCKET_EXTENSIONS_PATTERN.matcher(serverHandshake); - if (!matcher.find()) { - return null; + String extensions = null; + if (matcher.find()) { + extensions = matcher.group(1); } - String extensions = matcher.group(1); HandshakeImpl1Server serverHandshakeImpl = new HandshakeImpl1Server();