// SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
// SPDX-License-Identifier: MIT

// Package ice ... // //nolint:dupl
package ice import ( ) // CandidatePeerReflexive ... type CandidatePeerReflexive struct { candidateBase } // CandidatePeerReflexiveConfig is the config required to create a new CandidatePeerReflexive. type CandidatePeerReflexiveConfig struct { CandidateID string Network string Address string Port int Component uint16 Priority uint32 Foundation string RelAddr string RelPort int } // NewCandidatePeerReflexive creates a new peer reflective candidate. func ( *CandidatePeerReflexiveConfig) (*CandidatePeerReflexive, error) { , := netip.ParseAddr(.Address) if != nil { return nil, } , := determineNetworkType(.Network, ) if != nil { return nil, } := .CandidateID if == "" { = globalCandidateIDGenerator.Generate() } return &CandidatePeerReflexive{ candidateBase: candidateBase{ id: , networkType: , candidateType: CandidateTypePeerReflexive, address: .Address, port: .Port, resolvedAddr: createAddr(, , .Port), component: .Component, foundationOverride: .Foundation, priorityOverride: .Priority, relatedAddress: &CandidateRelatedAddress{ Address: .RelAddr, Port: .RelPort, }, remoteCandidateCaches: map[AddrPort]Candidate{}, }, }, nil }