-
Notifications
You must be signed in to change notification settings - Fork 154
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
Fix DTLS client role in long delay connections #424
Conversation
e9796b6
to
61ae442
Compare
Codecov Report
@@ Coverage Diff @@
## master #424 +/- ##
==========================================
- Coverage 75.98% 75.88% -0.10%
==========================================
Files 91 91
Lines 5371 5374 +3
==========================================
- Hits 4081 4078 -3
- Misses 975 980 +5
- Partials 315 316 +1
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
7726699
to
661397f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to RFC6347, last flight should be retransmitted even after entering the FINISHED state.
https://datatracker.ietf.org/doc/html/rfc6347#page-22
I think transition to the SENDING state was wrong, but retransmission without loop is still needed.
Thank you so much @at-wat . In the text below the diagram, there is this text
This change affects the DTLS Client role path. The server role path is unaffected. It is only the server that is expected to retransmit the last one from the text above. Am I reading it right? |
@boks1971 Your explanation seems right! It would be better to add test cases that fail on master branch and pass on this branch. |
Will take a look @at-wat . Just started with this repo yesterday. So, it might take me a while to get a handle of how tests are written :-) |
e71ff30
to
03d0adb
Compare
Fixes pion/webrtc#2089 When a retranmission from the remote side arrives after the handshake is complete, the `finish` routine puts it back into retransmit loop. With Chrome, this fails after 15 seconds. Firefox does not error out though. Testing: --------- - Tested with Firefox and Chrome with long delay (500 ms up and down) in network link conditioner. - Tested the above with no introduced delays too. - Added test for slow server.
ad3a0b2
to
b04ff13
Compare
@at-wat I have added a couple of tests in |
Thank you for looking at this @at-wat . Can you approve this if you are happy with the change and tests? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
It might be nice if we can avoid increasing the test duration, but the test stability would have priority.
Thank you @at-wat . I increased the timeout as a precaution. It was not strictly needed. Just wanted to prioritise test stability like you mentioned just in case CI is having some trouble. |
Fixes pion/webrtc#2089
When a retranmission from the remote side arrives after
the handshake is complete, the
finish
routineputs it back into retransmit loop.
With Chrome, this fails after 15 seconds.
Firefox does not error out though.