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
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
Eric Daniels
39c0392295
Support IPv6 from mDNS
2024-03-27 12:47:20 -04:00
Steffen Vogel
5ef81b65f4
Make package REUSE compliant
2023-04-18 13:46:38 +02:00
Sean DuBois
6e4403794a
Implement GetSelectedCandidatePair
...
Related to pion/webrtc#1713
2021-04-10 16:52:52 -07:00
Sean DuBois
28df93f669
Expose Priority and Foundation overrides
...
Allow pion/webrtc to override these as well
2020-09-12 23:40:36 -07:00
Sean DuBois
a03db7f0a3
Preserve Priority and Foundation E2E
...
We need these when handling remote candidates
2020-09-12 23:03:38 -07:00
Sean DuBois
43c86267c6
Add Foundation generation to Candidate
...
Also add some comments to Candidate interface
2020-09-12 21:10:58 -07:00
korymiller1489
166df5842e
Add Marshal and Unmarshal to Candidate Base
...
Move string representation of candidates into pion/ice from pion/webrtc
2020-09-12 00:23:24 -07:00
Jerko Steiner
12f44e93f1
Add support for passive ICE TCP candidate
...
Closes #196
2020-07-15 07:51:55 +02:00
Atsushi Watanabe
06922c1601
Refactor agent task runner
...
- Control blocking tasks by context
- Add tests to check deadlock by calling Close/Restart in
state change callback
- Remove unnecessary chan
2020-07-05 16:05:45 +09:00
Atsushi Watanabe
d64ae4c32f
Pause candidate recvLoop until init
...
Avoid using uninitialized object on receiving packet.
2020-06-26 11:16:59 -07:00
Sean DuBois
5cab987ca4
Add an additional done to Agent.run
...
Callers of run need to be able to cancel their waiting individually.
This would cause hung threads during restart if we attempted to close
a candidate while processing a packet for it.
Before the run would be canceled by the global close, but we can't
depend on that anymore.
Resolves #190
2020-06-25 00:16:58 -07:00
Hugo Arregui
1ff70e0ee1
Initial stats
...
Add basic candidate and candidate pair stats
2019-06-22 11:55:06 +00:00
Sean DuBois
acbf5671b7
IP -> Address in public API
...
ICE RFC specifies this value as `Address` and not IP. We need to fix
this divergence to implement mDNS
Relates to pion/webrtc#699
2019-06-21 20:22:21 +08:00
Sean DuBois
2a96a308d5
Initial TURN implementation
...
This implementation is not fully tested, and we don't
handle all error case yet. We will continue to work on it though.
Tests for send/recv and shutdown are in the works.
Relates to #47
2019-05-27 23:30:50 -07:00
Sean DuBois
14ec800dc4
Cleanup Candidate interface
...
Remove setLastSent and setLastReceived from Candidate interface
2019-05-24 15:55:42 -07:00
Sean DuBois
63b37975b6
Make Candidate an interface
...
This change will allow us to have custom logic and members
per interface type. Relay candidates will have a completely different
read loop, and candidate specific state.
Relates to #47
2019-05-24 15:55:42 -07:00
Aleksandr Razumov
35330ae9e7
Use merged pion/stun instead of gortc/stun
...
The only thing that should be changed after complete merge is version
2019-05-21 15:53:04 -07:00
Aleksandr Razumov
776f24a7f7
Fix linter warnings
...
Ignore dups in test.
Also some minor fixes.
2019-05-21 15:53:04 -07:00
Aleksandr Razumov
d895187fa4
Prepare for stun v2
...
Using github.com/gortc/stun for now.
Should be easy to change it later.
2019-05-21 15:53:04 -07:00
Sean DuBois
5ca0eeb721
Assert bindingSuccessResponse is non-symmetric
...
We previously didn't correctly follow [0] This updates
the agent to assert that a bindingSuccessResponse is
for the address it was sent too.
https://tools.ietf.org/html/rfc8445#section-7.2.5.2.1
2019-04-28 17:53:21 -07:00
Sean DuBois
7fa75afc59
Discard non-STUN if no associated candidate
...
If a inbound message is not associated with a valid remote STUN
candidate discard it
Resolves #20
2019-04-15 15:37:10 -07:00
Sean DuBois
df66c58d56
Shorten agent code
...
Move code out of agent that is general to dedicated files, no logic
changes just moving.
2019-04-14 10:52:10 -07:00
Michael MacDonald
ad7c8697fd
Candidate priority is incorrectly calculated
...
Some constants were being incorrectly generated using 2^N (XOR)
instead of 1 << N. This resulted in incorrect candidate priorities
being used to evaluate candidate pairs.
Resolves #14 .
2019-04-11 13:40:39 -04:00
Sean DuBois
af1bcf662b
Mass replace pions -> pion
...
Pions organization was renamed to pion
2019-04-04 14:22:31 -07:00
backkem
de29578470
Move logging out of tree
...
Relates to #361
2019-03-21 12:48:57 +01:00
Luke Curley
70092d3a81
Optimize Read by buffering
...
Increases the Read performance to acceptable levels. Packet loss went
from roughly 8% to 0.5% with this change.
2019-03-12 21:34:48 -07:00
Michael MacDonald
dc966e04a9
Move pkg/ice to internal/ice
...
Avoid exposing any non-standard API.
2019-03-01 08:07:42 -05:00
Sean DuBois
a202ccbf2f
Revert "Move ICE package from public to internal folder structure"
...
ICE Package needs to be public for peerConnection.OnICEConnectionStateChange
This reverts commit b831f87d28b78044118c4eb66f9b3152d373349b.
2018-08-16 10:10:29 -07:00
Sean DuBois
39211691f5
Fix GoDoc lints
2018-08-16 01:42:37 -07:00
Konstantin Itskov
44939bbf87
Move ICE package from public to internal folder structure
2018-08-16 01:28:48 -07:00