package ice
import (
"net/netip"
)
type CandidatePeerReflexive struct {
candidateBase
}
type CandidatePeerReflexiveConfig struct {
CandidateID string
Network string
Address string
Port int
Component uint16
Priority uint32
Foundation string
RelAddr string
RelPort int
}
func NewCandidatePeerReflexive (config *CandidatePeerReflexiveConfig ) (*CandidatePeerReflexive , error ) {
ipAddr , err := netip .ParseAddr (config .Address )
if err != nil {
return nil , err
}
networkType , err := determineNetworkType (config .Network , ipAddr )
if err != nil {
return nil , err
}
candidateID := config .CandidateID
if candidateID == "" {
candidateID = globalCandidateIDGenerator .Generate ()
}
return &CandidatePeerReflexive {
candidateBase : candidateBase {
id : candidateID ,
networkType : networkType ,
candidateType : CandidateTypePeerReflexive ,
address : config .Address ,
port : config .Port ,
resolvedAddr : createAddr (networkType , ipAddr , config .Port ),
component : config .Component ,
foundationOverride : config .Foundation ,
priorityOverride : config .Priority ,
relatedAddress : &CandidateRelatedAddress {
Address : config .RelAddr ,
Port : config .RelPort ,
},
remoteCandidateCaches : map [AddrPort ]Candidate {},
},
}, nil
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .