@@ -30,7 +30,19 @@ public class Draft_10 extends Draft {
3030
3131 private ByteBuffer incompleteframe ;
3232
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+ }
3446 @ Override
3547 public List <Framedata > translateFrame ( ByteBuffer buffer , int available ) {
3648 List <Framedata > frames = new LinkedList <Framedata > ();
@@ -114,7 +126,7 @@ else if( payloadlength == 126 ){
114126 }
115127 }
116128 int maskskeystart = foff + realpacketsize ;
117- realpacketsize += ( MASK ? 4 : 0 );
129+ realpacketsize += ( MASK ? 4 : 0 );
118130 int payloadstart = foff + realpacketsize ;
119131 realpacketsize += payloadlength ;
120132
@@ -207,18 +219,9 @@ public List<Framedata> createFrames( byte[] binary , boolean mask ) {
207219 @ Override
208220 public HandshakeState acceptHandshakeAsServer ( Handshakedata handshakedata ) throws InvalidHandshakeException {
209221 //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 ;
222225 return HandshakeState .NOT_MATCHED ;
223226 }
224227
@@ -241,7 +244,6 @@ public HandshakeBuilder postProcessHandshakeRequestAsClient( HandshakeBuilder re
241244 request .put ( "Upgrade" , "websocket" );
242245 request .put ( "Connection" , "Upgrade" ); //to respond to a Connection keep alives
243246 request .put ( "Sec-WebSocket-Version" , "8" );
244- request .put ( "Sec-WebSocket-Key" , "8" );
245247
246248 byte [] random = new byte [16 ];
247249 new Random ().nextBytes ( random );
0 commit comments