@@ -30,7 +30,19 @@ public class Draft_10 extends Draft {
30
30
31
31
private ByteBuffer incompleteframe ;
32
32
33
-
33
+ public static int readVersion (Handshakedata handshakedata ){
34
+ String vers = handshakedata .getFieldValue ( "Sec-WebSocket-Version" );
35
+ if ( !vers .isEmpty () ){
36
+ int v ;
37
+ try {
38
+ v = new Integer ( vers .trim () );
39
+ return v ;
40
+ } catch ( NumberFormatException e ) {
41
+ return -1 ;
42
+ }
43
+ }
44
+ return -1 ;
45
+ }
34
46
@ Override
35
47
public List <Framedata > translateFrame ( ByteBuffer buffer , int available ) {
36
48
List <Framedata > frames = new LinkedList <Framedata > ();
@@ -114,7 +126,7 @@ else if( payloadlength == 126 ){
114
126
}
115
127
}
116
128
int maskskeystart = foff + realpacketsize ;
117
- realpacketsize += ( MASK ? 4 : 0 );
129
+ realpacketsize += ( MASK ? 4 : 0 );
118
130
int payloadstart = foff + realpacketsize ;
119
131
realpacketsize += payloadlength ;
120
132
@@ -207,18 +219,9 @@ public List<Framedata> createFrames( byte[] binary , boolean mask ) {
207
219
@ Override
208
220
public HandshakeState acceptHandshakeAsServer ( Handshakedata handshakedata ) throws InvalidHandshakeException {
209
221
//TODO Do a more detailed formal handshake test
210
- String vers = handshakedata .getFieldValue ( "Sec-WebSocket-Version" );
211
- if ( !vers .isEmpty () ){
212
- int v ;
213
- try {
214
- v = new Integer ( vers .trim () );
215
- } catch ( NumberFormatException e ) {
216
- return HandshakeState .NOT_MATCHED ;
217
- }
218
- if ( v == 7 || v == 8 )//g
219
- return HandshakeState .MATCHED ;
220
- }
221
-
222
+ int v = readVersion ( handshakedata );
223
+ if ( v == 7 || v == 8 )//g
224
+ return HandshakeState .MATCHED ;
222
225
return HandshakeState .NOT_MATCHED ;
223
226
}
224
227
@@ -241,7 +244,6 @@ public HandshakeBuilder postProcessHandshakeRequestAsClient( HandshakeBuilder re
241
244
request .put ( "Upgrade" , "websocket" );
242
245
request .put ( "Connection" , "Upgrade" ); //to respond to a Connection keep alives
243
246
request .put ( "Sec-WebSocket-Version" , "8" );
244
- request .put ( "Sec-WebSocket-Key" , "8" );
245
247
246
248
byte [] random = new byte [16 ];
247
249
new Random ().nextBytes ( random );
0 commit comments