File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11322,6 +11322,12 @@ procedure TOpenSslNetTls.AfterAccept(Socket: TNetSocket;
1132211322 if BoundContext.AcceptCert = nil then
1132311323 raise EOpenSslNetTls.Create(' AfterAccept: missing AfterBind' );
1132411324 fSsl := SSL_new(BoundContext.AcceptCert);
11325+ // SSL_MODE_ENABLE_PARTIAL_WRITE ($01): SSL_write returns partial count on
11326+ // partial send, so mORMot can advance the buffer pointer correctly and
11327+ // issue a fresh SSL_write for the remainder (no retry-same-buffer constraint)
11328+ // SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER ($02): allow retry with different
11329+ // buffer pointer after WANT_WRITE (mORMot copies pending data to fWr)
11330+ SSL_set_mode(fSsl, $00000003 ); // ENABLE_PARTIAL_WRITE | ACCEPT_MOVING_WRITE_BUFFER
1132511331 Check(' AfterAccept set_fd' , SSL_set_fd(fSsl, Socket.Socket));
1132611332 // server TLS negotiation with server
1132711333 Check(' AfterAccept accept' , SSL_accept(fSsl));
You can’t perform that action at this time.
0 commit comments