mirror of
https://github.com/coder/coder.git
synced 2025-07-12 00:14:10 +00:00
refactor: Improve handshake resiliency of peer (#95)
* fix: Synchronize peer logging with a channel We were depending on the close mutex to properly report connection state. This ensures the RTC connection is properly closed before returning. * Disable pion logging * Remove buffer * Try ICE servers * Remove flushed * Add diagram explaining handshake * Fix candidate accept ordering * Add debug logging to peerbroker * Fix send ordering * Lock adding ICE candidate * Add test for negotiating out of order * Reduce connection to a single negotiation channel * Improve test times by pre-installing Terraform * Lock remote session description being applied * Organize conn * Revert to multi-channel setup * Properly close ICE gatherer * Improve comments * Try removing buffered candidates * Buffer local and remote messages * Log dTLS transport state * Add pion logging
This commit is contained in:
@ -141,9 +141,9 @@ func (c *Channel) init() {
|
||||
// A DataChannel can disconnect multiple times, so this needs to loop.
|
||||
for {
|
||||
select {
|
||||
case <-c.closed:
|
||||
case <-c.conn.closedRTC:
|
||||
// If this channel was closed, there's no need to close again.
|
||||
return
|
||||
err = c.conn.closeError
|
||||
case <-c.conn.Closed():
|
||||
// If the RTC connection closed with an error, this channel
|
||||
// should end with the same one.
|
||||
|
Reference in New Issue
Block a user