-
Notifications
You must be signed in to change notification settings - Fork 700
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Client side quiche::Connection
is_established()
returns true before handshake completes.
#1489
Comments
Digging through the code, Line 6431 in 0b37da1
This is getting the value from Line 784 in 0b37da1
Acording to https://www.openssl.org/docs/man1.1.1/man3/SSL_in_init.html
This seems to be the wrong thing to be using here? If we're still processing the handshake then the handshake isn't done yet. Shouldn't it use
|
Nope, per RFC9001, Section 4.1.1:
Which is what
I don't think it would make any difference, since in BoringSSL that just calls |
Ah, sorry for my misunderstanding, I'm pretty new to this library. If this is intended behaviour then I had a bad assumption about when a connection is considered established. Digging deeper into my problem. In my code to avoid an Is there a way to know when this stage in the connection has been reached? |
For reference MatrixAI/js-quic#9 (comment).
For context, I have a test in our code that checks if a connection fails if the server fails to authenticate the client. My expectation here is that the server will end up with a
TlsFail
error and close the connection. The client should see the closing frame with theTLS
error BEFORE the handshake has completed andis_established()
returns true.What I am seeing is that the client's
is_established()
is returning true very early in the handshake procedure.It is my understanding that
is_established()
should only return true once the handshake has completed. And the handshake only completes once theHANDSHAKE_DONE
frame (shown asDONE
in the packet logs) has been sent.For reference, here are the packet logs for a connection that succeeds.
Here we see that the client is established far before the
DONE
frame is sent in packet 7.So is this a bug with
quiche
?The text was updated successfully, but these errors were encountered: