Skip to content

Tags: pion/ice

Tags

v4.2.2

Toggle v4.2.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Respect transport parameters and allowed net types (#901)

## Summary

This change makes transport/network-type handling consistent across
candidate gathering and remote candidate admission.

It fixes cases where the ICE agent could use STUN/TURN URLs with
mismatched transport or accept remote candidates on disabled network
types.

## What changed

### 1) Remote candidate filtering by configured network types

- Added a guard in `addRemoteCandidate` to ignore candidates whose
`NetworkType` is not enabled in `AgentConfig.NetworkTypes`.
- Added logging for ignored candidates.

### 2) URL transport interpretation and filtering

- Added helpers:
- `effectiveURLProtoType` (applies default transport when URI transport
is omitted)
  - `urlSupportsSrflxGathering`
  - `relayNetworkTypesForURL`
  - `configuredNetworkTypes`
- Applied this logic to srflx gathering (`gatherCandidatesSrflx`,
`gatherCandidatesSrflxUDPMux`) so only valid UDP URLs are used.

### 3) Relay gathering honors network types and filtered local binds

- Refactored relay gathering to select per-URL/per-network-type behavior
instead of hardcoded network assumptions.
- Kept support for interface/IP filtered local binding addresses in
relay/srflx paths.
- Replaced manual host:port formatting in srflx paths with
`net.JoinHostPort(..., strconv.Itoa(...))` for safer address
construction.

### 4) IPv6 TURN status (important)

- IPv6 TURN code paths were updated and covered by tests, but full IPv6
TURN support is not complete yet.
- For now, IPv6 TURN relay gathering is intentionally disabled in
runtime path.
- Related IPv6 relay test scenario is present but currently skipped
(`t.Skip("IPv6 TURN is not supported yet")`).

### Reference issue
Fixes #367

v4.2.1

Toggle v4.2.1's commit message

Verified

This commit was signed with the committer’s verified signature.
JoTurk Jo Turk
Use semver format for go version

v4.2.0

Toggle v4.2.0's commit message

Verified

This commit was signed with the committer’s verified signature.
JoTurk Jo Turk
Improve active_tcp test timeout

v4.1.0

Toggle v4.1.0's commit message

Verified

This commit was signed with the committer’s verified signature.
JoTurk Jo Turk
Deprecate AgentConfig

v4.0.13

Toggle v4.0.13's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Cancel gathering before removing candidates (#842)

#### Description

When ICE agent is closed, the connections from UDP/TCP mux were removed
before gathering was canceled. This led to candidate gathering adding
entries to UDP mux which were not cleaned up.

~Also passing into logger to the mux as ICE agent logger could have more
context and is useful to see the context.~

v4.0.12

Toggle v4.0.12's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Set linger time for tcp connections (#841)

#### Description

It is possible that Close() of a TCP connection to block if there is
pending data to be written till it is written out. Set linger to ensure
that it does not block.

v4.0.11

Toggle v4.0.11's commit message

Verified

This commit was signed with the committer’s verified signature.
JoTurk Jo Turk
Fix a deadlock in TaskLoop

v2.3.38

Toggle v2.3.38's commit message
Implement ICE Role conflict resolution

Detect if remote has a role conflict and resolve it as defined by
RFC 8445 section-7.3.1.1

Resolves #359

v4.0.10

Toggle v4.0.10's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Pass LoggerFactory to dtls and mdns (#772)

v4.0.9

Toggle v4.0.9's commit message
Handle candidate: prefix with UnmarshalCandidate

Make UnmarshalCandidate able to handle candidate: prefix in the
candidate string.