Skip to content
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

Clear selected pair on ICE failed #612

Merged
merged 1 commit into from
Sep 2, 2023
Merged

Clear selected pair on ICE failed #612

merged 1 commit into from
Sep 2, 2023

Commits on Sep 2, 2023

  1. Clear selected pair on ICE failed

    When ICE times out and fails, all candidates are deleted.
    
    That means all the candidates are closed and their underlying
    conns are clsoed.
    
    But, the selected pair could still be valid. On a subsequenct
    `Write`, ICE transport conn will get the selected pair and
    write to the pair. As the pair is still valid, write will
    flow through to the local candidate `writeTo`.
    
    But, as all candidates and their underlying conns are closed,
    `Write` will return a `io.ErrClosedPipe` error.
    
    There are cases where it is not ignored and causes a broken
    pipe after an ICERestart.
    
    When the `Write` error propagates back to sctp/association,
    the writeLoop is exited.
    
    So, sending data channel traffic after a successful ICERestart
    still fails as the SCTP association errored out and write loop exited.
    
    I have copied the changes that are done when ICERestart happens
    to when ICE state is set to failed (except for gathering state
    and resetting ufrag/pwd). In my testing, it is working well,
    i. e. can continue data channel after ICE Restart whereas
    previously it was failing every time. But, I am not sure of all
    the implications of this change.
    
    Update authors
    
    Update AUTHORS.txt
    boks1971 committed Sep 2, 2023
    Configuration menu
    Copy the full SHA
    54ae7ea View commit details
    Browse the repository at this point in the history