680 Commits

Author SHA1 Message Date
Joe Turki
3897c30941 Remove nolint, validate port 2025-09-22 18:05:29 +03:00
Joe Turki
ee3a2e4341 Fix the tests on Windows 2025-09-22 17:39:54 +03:00
Pion
92565e1979 Update CI configs to v0.11.29
Update lint scripts and CI configs.
2025-09-21 23:36:22 +00:00
philipch07
965031eb25 Add IceCandidatePairStats 2025-09-16 10:50:44 -04:00
philipch07
1ce9ff1d8d Apply go modernize 2025-09-14 18:20:22 -04:00
philipch07
f7437da850 Improve code cov by adding various tests 2025-09-14 15:34:52 -04:00
philipch07
14b3cccabf Replace verbose check with slices.Contains 2025-09-14 14:58:35 -04:00
philipch07
0d561290f4 Fix typo in FirstResponseReceivedAt 2025-09-14 14:15:06 -04:00
philipch07
0227f4ba5a Fix flakiness in tcp_packet_conn test 2025-09-13 16:00:47 -04:00
philipch07
6fbde9fb03 Improve code cov for tcp_mux_multi 2025-09-13 16:00:47 -04:00
philipch07
1ac89758a3 Improve code cov for tcp_packet_conn 2025-09-13 16:00:47 -04:00
philipch07
351ccd8088 Improve code cov for udp_mux_universal 2025-09-13 16:00:47 -04:00
philipch07
1a618559fc Improve code cov for udp_muxed_conn 2025-09-13 16:00:47 -04:00
philipch07
3deadbd6f1 Re-enable ipv6 UDP mux tests in i386 2025-09-12 16:39:54 -04:00
Pion
67dccba0a6 Update CI configs to v0.11.26
Update lint scripts and CI configs.
2025-08-31 23:17:13 -04:00
Pion
850dec457f Update CI configs to v0.11.25
Update lint scripts and CI configs.
2025-08-31 22:25:38 -04:00
Pion
82b1ba3a48 Update CI configs to v0.11.24
Update lint scripts and CI configs.
2025-08-29 23:15:02 -04:00
renovate[bot]
b717342750 Update module github.com/stretchr/testify to v1.11.1
Generated by renovateBot
2025-08-27 22:31:21 +00:00
Kevin Wang
71de7d2b18 Add more configuration to AgentOptions 2025-08-25 11:44:35 -04:00
Kevin Wang
4b50bc8078 Add support for renomination 2025-08-25 10:44:44 -04:00
renovate[bot]
fb0107e8ae Update module github.com/stretchr/testify to v1.11.0
Generated by renovateBot
2025-08-24 20:50:38 +00:00
renovate[bot]
3d59690a71 Update module github.com/pion/turn/v4 to v4.1.1
Generated by renovateBot
2025-08-17 14:06:14 +00:00
Kevin Wang
be0657f17b Fix lint errors 2025-08-16 23:35:36 -04:00
Pion
e13ec52278 Update CI configs to v0.11.22
Update lint scripts and CI configs.
2025-08-16 23:35:36 -04:00
renovate[bot]
0b78af9301 Update module github.com/pion/dtls/v3 to v3.0.7
Generated by renovateBot
2025-08-16 14:52:16 +00:00
renovate[bot]
1d2f139ce3 Update module github.com/pion/turn/v4 to v4.1.0
Generated by renovateBot
2025-08-07 16:50:07 +00:00
Sean DuBois
2c04474e38 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
2025-07-17 12:42:47 -04:00
Xiaobo Liu
f6a1153ce7 Optimize slice allocation in UDPMuxDefault
Pre-allocate localAddrsForUnspecified slice with known capacity
and use index assignment instead of append to avoid multiple
slice reallocations.

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
2025-07-07 23:05:14 -04:00
renovate[bot]
cc019aabdf Update module github.com/pion/logging to v0.2.4
Generated by renovateBot
2025-06-23 20:01:54 +00:00
renovate[bot]
2a0a17ed34 Update module github.com/pion/turn/v4 to v4.0.2
Generated by renovateBot
2025-06-23 16:14:12 +00:00
renovate[bot]
b818e2cbcf Update module github.com/pion/dtls/v3 to v3.0.6
Generated by renovateBot
2025-06-23 08:50:57 +00:00
Pion
8930d1b7d0 Update CI configs to v0.11.20
Update lint scripts and CI configs.
2025-06-18 07:42:56 +00:00
Xiaobo Liu
613ac5a204 Use atomic.Uint64 for thread-safe byte counters
Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
2025-06-15 15:58:10 +08:00
Xiaobo Liu
eef8d96d36 Replace interface{} with any type alias
This change maintains full backward compatibility while adopting
modern Go type alias conventions for better code clarity.

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
2025-06-14 16:52:30 +08:00
Xiaobo Liu
bbb9792ca9 Change activeTCPConn.close to atomic.Bool
Replace manual atomic operations with atomic.Bool type for better
type safety and cleaner code. This modernizes the atomic usage
pattern from atomic.LoadInt32/StoreInt32 to the newer Load/Store
methods on atomic.Bool.

- Update activeTCPConn.closed field type from int32 to atomic.Bool
- Replace atomic.LoadInt32(&a.closed) with a.closed.Load()
- Replace atomic.StoreInt32(&a.closed, 1) with a.closed.Store(true)

All existing functionality preserved with improved type safety.

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>

tweak

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
2025-06-14 15:16:36 +08:00
Pion
753c2a0fe8 Update CI configs to v0.11.19
Update lint scripts and CI configs.
2025-04-23 10:53:29 -04:00
Sean DuBois
f32c107a62 Update lint rules, force testify/assert for tests
Use testify's assert package instead of the standard library's testing
package.
2025-04-22 23:36:32 -04:00
sirzooro
dd072edae9 Pass LoggerFactory to dtls and mdns (#772) v4.0.10 2025-04-12 19:09:54 +02:00
Joe Turki
dddf6a4565 Update social media links, move to discord 2025-04-07 05:29:52 +02:00
Joe Turki
ef453b3fdd Handle candidate: prefix with UnmarshalCandidate
Make UnmarshalCandidate able to handle candidate: prefix in the
candidate string.
v4.0.9
2025-03-25 06:52:45 +02:00
oto313
37fb5d2fc3 Always send KeepAlives (#767)
Pion incorrectly resets the consent timer when sending any traffic. 
The consent timer must only be reset on STUN traffic.

RFC 7675
> Consent expires after 30 seconds.  That is, if a valid STUN binding
> response has not been received from the remote peer's transport
> address in 30 seconds, the endpoint MUST cease transmission on that
> 5-tuple.  STUN consent responses received after consent expiry do not
> re-establish consent and may be discarded or cause an ICMP error.
v4.0.8
2025-03-17 14:06:54 -04:00
cnderrauber
f92d05f17c Add Req/Res count/time to candidate stats (#763)
These details will provide information for
connectivity issue.
v4.0.7
2025-02-27 12:57:32 +08:00
Joe Turki
d21ae5e0e5 Include ufrag in generated ICE candidates
Include ufrag extension in the ICE candidates generated by the ICE agent
v4.0.6
2025-01-30 23:42:03 -06:00
renovate[bot]
141df5a086 Update module github.com/pion/logging to v0.2.3
Generated by renovateBot
2025-01-30 23:36:28 -06:00
Joe Turki
9dfb5c2667 Allow for empty extension values
While not spec compliant, some implementations allow for empty extension
values. This aligns with our behavior for empty foundation values.
And makes the parser more forgiving for bad implementations.
2025-01-30 23:02:25 -06:00
Joe Turki
47dad556f1 Add methods to add and remove extensions
Added `AddExtension` and `RemoveExtension` methods to `ICECandidate`,
allowing extensions to be managed dynamically.
Ensure that `TCPType` is stored in one place (candidate.TCPType)
2025-01-30 03:24:09 -06:00
Joe Turki
cad1676659 Upgrade golangci-lint, more linters
Introduces new linters, upgrade golangci-lint to version (v1.63.4)
2025-01-17 08:21:15 -06:00
renovate[bot]
647b9786dd Update golang.org/x/net to v0.33.0 [security]
Generated by renovateBot
v4.0.5
2025-01-16 01:59:15 -06:00
Joe Turki
ab6e243686 Parse Candidate Extensions (RFC5245)
- Rewrote `UnmarshalCandidate` to better align with RFC5245.
- Added Candidate `Extensions` and `GetExtension`.
- Updated `Equal` and `Marshal` to accommodate these changes.
- New Type `CandidateExtension` to handle.
2025-01-15 21:38:13 -06:00
Paul Wells
abdc0cadec Use addrEqual for candidate comparison (#752) v4.0.4 2025-01-13 07:48:00 -05:00