quiche icon indicating copy to clipboard operation
quiche copied to clipboard

Server stall if application close during handshake

Open kevinjohna6 opened this issue 3 years ago • 1 comments

I have created a couple test cases that shows what works and what breaks: 05e4618eb33c72f5912e26c0d851ad628452e0b7

From 10.2.3, I see that application errors must not be sent during the handshake due to that potentially leaking application information. Although the RFC seems to recommending dropping the application data and sending a 0x1c connection_close, I would prefer to pass that information back to the user.

Stepping through send_single, It looks like it stalls because is_closed causes no Handshake acks to be sent, and since the pkt_type is stays Handshake, an application close will not be sent.

What I expected was for the handshake to complete normally, and have the application close be sent with the first 1RTT short header packet ~along with HANDSHAKE_DONE~.

EDIT: I implemented a possible change for this behavior: ffdaeed1b35e1810210071be80153187d15b8d2f

kevinjohna6 avatar Dec 20 '21 09:12 kevinjohna6

Thanks for the report @kevinjohna6, the test cases are really helpful. We're taking a break over the holiday period so follow up will be a bit delayed.

LPardue avatar Dec 22 '21 00:12 LPardue