The GitHub Actions job "Pull Requests" on pekko.git/tls-drain-after-peer-close-notify has succeeded. Run started by GitHub user pjfanning (triggered by pjfanning).
Head commit for run: 6432c562af6687795df4e826c821207183736fe8 / PJ Fanning <[email protected]> Keep draining TLS plaintext after a TLS 1.3 peer close_notify Motivation: When the plaintext output is cancelled, the GraphStage TLS engine drains plaintext it has already accepted. If a TLS 1.3 peer sent close_notify during that drain, unwrap returned CLOSED and the stage completed, discarding the accepted plaintext without sending it or its own close_notify, although TLS 1.3 close_notify only closes the peer's sending direction. Modification: - Stay in the inbound-closed drain when unwrap returns CLOSED while accepted plaintext is still being drained and the engine's outbound side is open. The drain then finishes and closes outbound as before. - Document that a TLS 1.3 close_notify does not end the drain, while a TLS 1.2 close_notify (which closes both SSLEngine directions) does. - Add real-SSLEngine tests that send close_notify during the drain for IgnoreComplete and EagerClose, on TLS 1.3 and TLS 1.2. Result: A TLS 1.3 peer that half-closes receives the accepted response followed by close_notify. TLS 1.2 behaviour is unchanged and terminates promptly. Tests: - sbt "stream-tests / Test / testOnly org.apache.pekko.stream.io.TlsGraphStageCancellationSpec": the two TLS 1.3 tests failed before the fix (partial response) and pass after it; 6/6 pass. - sbt "stream-tests / Test / testOnly org.apache.pekko.stream.io.Tls*": 281/281 passed. - Native scalafmt and git diff --check passed. References: Refs #3727 Report URL: https://github.com/apache/pekko/actions/runs/40940175259 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
