mirror of
https://github.com/netbirdio/ice.git
synced 2026-05-22 17:10:58 -07:00
CandidatePairState is public now
Use more appropiate naming
This commit is contained in:
committed by
Hugo Arregui
parent
935aca0809
commit
da599f54ff
@@ -469,13 +469,16 @@ func (a *Agent) setSelectedPair(p *candidatePair) {
|
||||
|
||||
func (a *Agent) pingAllCandidates() {
|
||||
for _, p := range a.checklist {
|
||||
if p.state != candidatePairStateChecking {
|
||||
|
||||
if p.state == CandidatePairStateWaiting {
|
||||
p.state = CandidatePairStateInProgress
|
||||
} else if p.state != CandidatePairStateInProgress {
|
||||
continue
|
||||
}
|
||||
|
||||
if p.bindingRequestCount > a.maxBindingRequests {
|
||||
a.log.Tracef("max requests reached for pair %s, marking it as failed\n", p)
|
||||
p.state = candidatePairStateFailed
|
||||
p.state = CandidatePairStateFailed
|
||||
} else {
|
||||
a.selector.PingCandidate(p.local, p.remote)
|
||||
p.bindingRequestCount++
|
||||
@@ -486,7 +489,7 @@ func (a *Agent) pingAllCandidates() {
|
||||
func (a *Agent) getBestAvailableCandidatePair() *candidatePair {
|
||||
var best *candidatePair
|
||||
for _, p := range a.checklist {
|
||||
if p.state == candidatePairStateFailed {
|
||||
if p.state == CandidatePairStateFailed {
|
||||
continue
|
||||
}
|
||||
|
||||
@@ -502,7 +505,7 @@ func (a *Agent) getBestAvailableCandidatePair() *candidatePair {
|
||||
func (a *Agent) getBestValidCandidatePair() *candidatePair {
|
||||
var best *candidatePair
|
||||
for _, p := range a.checklist {
|
||||
if p.state != candidatePairStateValid {
|
||||
if p.state != CandidatePairStateSucceeded {
|
||||
continue
|
||||
}
|
||||
|
||||
|
||||
+2
-22
@@ -6,32 +6,12 @@ import (
|
||||
"github.com/pion/stun"
|
||||
)
|
||||
|
||||
type candidatePairState int
|
||||
|
||||
const (
|
||||
candidatePairStateChecking candidatePairState = iota + 1
|
||||
candidatePairStateFailed
|
||||
candidatePairStateValid
|
||||
)
|
||||
|
||||
func (c candidatePairState) String() string {
|
||||
switch c {
|
||||
case candidatePairStateChecking:
|
||||
return "checking"
|
||||
case candidatePairStateFailed:
|
||||
return "failed"
|
||||
case candidatePairStateValid:
|
||||
return "valid"
|
||||
}
|
||||
return "Unknown candidate pair state"
|
||||
}
|
||||
|
||||
func newCandidatePair(local, remote Candidate, controlling bool) *candidatePair {
|
||||
return &candidatePair{
|
||||
iceRoleControlling: controlling,
|
||||
remote: remote,
|
||||
local: local,
|
||||
state: candidatePairStateChecking,
|
||||
state: CandidatePairStateWaiting,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +21,7 @@ type candidatePair struct {
|
||||
remote Candidate
|
||||
local Candidate
|
||||
bindingRequestCount uint16
|
||||
state candidatePairState
|
||||
state CandidatePairState
|
||||
}
|
||||
|
||||
func (p *candidatePair) String() string {
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package ice
|
||||
|
||||
// CandidatePairState represent the ICE candidate pair state
|
||||
type CandidatePairState int
|
||||
|
||||
const (
|
||||
// CandidatePairStateWaiting means a check has not been performed for
|
||||
// this pair
|
||||
CandidatePairStateWaiting = iota + 1
|
||||
|
||||
// CandidatePairStateInProgress means a check has been sent for this pair,
|
||||
// but the transaction is in progress.
|
||||
CandidatePairStateInProgress
|
||||
|
||||
// CandidatePairStateFailed means a check for this pair was already done
|
||||
// and failed, either never producing any response or producing an unrecoverable
|
||||
// failure response.
|
||||
CandidatePairStateFailed
|
||||
|
||||
// CandidatePairStateSucceeded means a check for this pair was already
|
||||
// done and produced a successful result.
|
||||
CandidatePairStateSucceeded
|
||||
)
|
||||
|
||||
func (c CandidatePairState) String() string {
|
||||
switch c {
|
||||
case CandidatePairStateWaiting:
|
||||
return "waiting"
|
||||
case CandidatePairStateInProgress:
|
||||
return "in-progress"
|
||||
case CandidatePairStateFailed:
|
||||
return "failed"
|
||||
case CandidatePairStateSucceeded:
|
||||
return "succeded"
|
||||
}
|
||||
return "Unknown candidate pair state"
|
||||
}
|
||||
+4
-4
@@ -126,7 +126,7 @@ func (s *controllingSelector) HandleBindingRequest(m *stun.Message, local, remot
|
||||
return
|
||||
}
|
||||
|
||||
if p.state == candidatePairStateValid && s.nominatedPair == nil && s.agent.selectedPair == nil {
|
||||
if p.state == CandidatePairStateSucceeded && s.nominatedPair == nil && s.agent.selectedPair == nil {
|
||||
bestPair := s.agent.getBestAvailableCandidatePair()
|
||||
if bestPair == nil {
|
||||
s.log.Tracef("No best pair available\n")
|
||||
@@ -164,7 +164,7 @@ func (s *controllingSelector) HandleSucessResponse(m *stun.Message, local, remot
|
||||
return
|
||||
}
|
||||
|
||||
p.state = candidatePairStateValid
|
||||
p.state = CandidatePairStateSucceeded
|
||||
s.log.Tracef("Found valid candidate pair: %s", p)
|
||||
if pendingRequest.isUseCandidate && s.agent.selectedPair == nil {
|
||||
s.agent.setSelectedPair(p)
|
||||
@@ -256,7 +256,7 @@ func (s *controlledSelector) HandleSucessResponse(m *stun.Message, local, remote
|
||||
return
|
||||
}
|
||||
|
||||
p.state = candidatePairStateValid
|
||||
p.state = CandidatePairStateSucceeded
|
||||
s.log.Tracef("Found valid candidate pair: %s", p)
|
||||
}
|
||||
|
||||
@@ -272,7 +272,7 @@ func (s *controlledSelector) HandleBindingRequest(m *stun.Message, local, remote
|
||||
if useCandidate {
|
||||
// https://tools.ietf.org/html/rfc8445#section-7.3.1.5
|
||||
|
||||
if p.state == candidatePairStateValid {
|
||||
if p.state == CandidatePairStateSucceeded {
|
||||
// If the state of this pair is Succeeded, it means that the check
|
||||
// previously sent by this pair produced a successful response and
|
||||
// generated a valid pair (Section 7.2.5.3.2). The agent sets the
|
||||
|
||||
Reference in New Issue
Block a user