Fix the active conn type logic

This commit is contained in:
Zoltán Papp 2024-06-21 19:13:41 +02:00
parent 7581bbd925
commit 69d8d5aa86

View File

@ -91,6 +91,7 @@ type Conn struct {
statusRelay ConnStatus
statusICE ConnStatus
currentConnType ConnPriority
workerICE *WorkerICE
workerRelay *WorkerRelay
@ -99,8 +100,6 @@ type Conn struct {
beforeAddPeerHooks []BeforeAddPeerHookFunc
afterRemovePeerHooks []AfterRemovePeerHookFunc
currentConnType ConnPriority
endpointRelay *net.UDPAddr
}
@ -366,9 +365,13 @@ func (conn *Conn) relayConnectionIsReady(rci RelayConnInfo) {
conn.statusRelay = stateConnected
// todo review this condition
if conn.currentConnType > connPriorityRelay {
if conn.statusICE == StatusConnected {
log.Debugf("do not switch to relay because current priority is: %v", conn.currentConnType)
return
}
}
if conn.currentConnType != 0 {
conn.log.Infof("update connection to Relay type")
@ -430,6 +433,7 @@ func (conn *Conn) iCEConnectionIsReady(priority ConnPriority, iceConnInfo ICECon
conn.statusICE = stateConnected
// todo review this condition
if conn.currentConnType > priority {
return
}