diff options
author | Philippe Normand <philn@igalia.com> | 2022-04-16 12:03:46 +0100 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@ocrete.ca> | 2022-05-03 20:14:59 +0000 |
commit | bf978f303869851a6f767dbbfb73c05c16f699bb (patch) | |
tree | 6e6f286303e5084d487ac0478acc7910bcd7d411 | |
parent | 41ac7386b2d8fc2215f244e899e70e536decc83e (diff) | |
download | libnice-bf978f303869851a6f767dbbfb73c05c16f699bb.tar.gz |
candidate: Add utility function to get TURN relay address
Can be useful to know which TURN server is being used as relay server for a given candidate.
-rw-r--r-- | agent/candidate.c | 11 | ||||
-rw-r--r-- | agent/candidate.h | 13 | ||||
-rw-r--r-- | docs/reference/libnice/libnice-sections.txt | 1 | ||||
-rw-r--r-- | nice/libnice.sym | 1 |
4 files changed, 26 insertions, 0 deletions
diff --git a/agent/candidate.c b/agent/candidate.c index 3b40c6c..1754324 100644 --- a/agent/candidate.c +++ b/agent/candidate.c @@ -463,3 +463,14 @@ nice_candidate_transport_to_string (NiceCandidateTransport transport) g_assert_not_reached (); } } + +NICEAPI_EXPORT void +nice_candidate_relay_address (const NiceCandidate *candidate, NiceAddress *addr) +{ + const NiceCandidateImpl *c = (NiceCandidateImpl *) candidate; + + g_return_if_fail (candidate != NULL); + g_return_if_fail (candidate->type != NICE_CANDIDATE_TYPE_RELAYED); + + *addr = c->turn->server; +} diff --git a/agent/candidate.h b/agent/candidate.h index 76a6b0d..419a52e 100644 --- a/agent/candidate.h +++ b/agent/candidate.h @@ -40,6 +40,7 @@ #ifndef __LIBNICE_CANDIDATE_H__ #define __LIBNICE_CANDIDATE_H__ +#include "address.h" #include <glib.h> #include <glib-object.h> @@ -254,6 +255,18 @@ nice_candidate_type_to_string (NiceCandidateType type); const gchar * nice_candidate_transport_to_string (NiceCandidateTransport transport); +/** + * nice_candidate_relay_address: + * @candidate: A relay candidate + * @addr: The #NiceAddress to fill + * + * In case the given candidate is relayed through a TURN server, use this utility function to get + * its address. + * + * Since: 0.1.19 + */ +void +nice_candidate_relay_address (const NiceCandidate *candidate, NiceAddress *addr); /** * NICE_TYPE_CANDIDATE: diff --git a/docs/reference/libnice/libnice-sections.txt b/docs/reference/libnice/libnice-sections.txt index a26d596..d0c48e1 100644 --- a/docs/reference/libnice/libnice-sections.txt +++ b/docs/reference/libnice/libnice-sections.txt @@ -99,6 +99,7 @@ nice_candidate_copy nice_candidate_equal_target nice_candidate_transport_to_string nice_candidate_type_to_string +nice_candidate_relay_address <SUBSECTION Standard> NICE_TYPE_CANDIDATE nice_candidate_get_type diff --git a/nice/libnice.sym b/nice/libnice.sym index facc386..2c8cec5 100644 --- a/nice/libnice.sym +++ b/nice/libnice.sym @@ -72,6 +72,7 @@ nice_candidate_transport_get_type nice_candidate_transport_to_string nice_candidate_type_get_type nice_candidate_type_to_string +nice_candidate_relay_address nice_compatibility_get_type nice_component_state_get_type nice_component_state_to_string |