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