Browse Source

* RFC states that client must use mask: enforce mask on connect

Michaël Van Canneyt 2 years ago
parent
commit
a5f49c1cef
1 changed files with 4 additions and 1 deletions
  1. 4 1
      packages/fcl-web/src/websocket/fpwebsocketclient.pp

+ 4 - 1
packages/fcl-web/src/websocket/fpwebsocketclient.pp

@@ -294,6 +294,9 @@ begin
   FConnection:=CreateClientConnection(FTransport);
   FConnection.OnMessageReceived:=@MessageReceived;
   FConnection.OnControl:=@ControlReceived;
+  // RFC states we MUST use a mask.
+  if OutGoingFrameMask=0 then
+    OutGoingFrameMask:=1+Random(MaxInt-1);
   FConnection.OutgoingFrameMask:=Self.OutGoingFrameMask;
   if UseSSL then
     FSocket.Connect;
@@ -389,7 +392,7 @@ end;
 
 Function TCustomWebsocketClient.CheckHandShakeResponse(aHeaders : TStrings) : Boolean;
 
-Var
+Var 
   K : String;
   {%H-}hash : TSHA1Digest;
   B : TBytes;