inside TCustomSslWsocket.Do_FD_READ:

I added

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


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

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
Visit our website at

Reply via email to