inside TCustomSslWsocket.Do_FD_READ:

I added

         if (not FSslEnable) or (FSocksState <> socksData) or
            (FHttpTunnelState <> htsData) then begin
             inherited Do_FD_READ(msg);
             Exit;
         end;

before

     WSocket_Synchronized_WSAASyncSelect({$IFDEF POSIX}Self,{$ENDIF}
          FHSocket, Handle, FMsg_WM_ASYNCSELECT, FD_WRITE or FD_CLOSE or
FD_CONNECT);

The code you say you added is already there, but after the WSocket_Synchronized_WSAASyncSelect call, so what needs to be understood is if this call, and the related in the finally section of the try block, is really needed when not in a SSL request, as the non-SSL version of the component doesn't call this WSAASyncSelect method, and this inherited Do_FD_READ(msg) is the only code that will be called in a non-SSL situation anyway.

The move of this WSocket_Synchronized_WSAASyncSelect calls to this method, done in the V8.22, is about a fix in SSL, so I suppose this "Fixed SSL bug where two consecutive requests from a client would leave a server in a waiting state and not process any other requests" is not needed in non-SSL requests?

There is also badly positioned

 BuffSize := (GSSL_BUFFER_SIZE * 2)-1;  { V8.27 size now configurable }
    SetLength(Buffer, BuffSize);

that is not needed if the inherited Do_FD_READ(msg), followed by an exit, is the only code that will run.


--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to