summaryrefslogtreecommitdiff
path: root/agent/candidate.c
diff options
context:
space:
mode:
Diffstat (limited to 'agent/candidate.c')
-rw-r--r--agent/candidate.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/agent/candidate.c b/agent/candidate.c
index 1754324..1632f51 100644
--- a/agent/candidate.c
+++ b/agent/candidate.c
@@ -88,6 +88,9 @@ nice_candidate_free (NiceCandidate *candidate)
if (c->turn)
turn_server_unref (c->turn);
+ if (c->stun_server)
+ nice_address_free (c->stun_server);
+
g_slice_free (NiceCandidateImpl, c);
}
@@ -474,3 +477,19 @@ nice_candidate_relay_address (const NiceCandidate *candidate, NiceAddress *addr)
*addr = c->turn->server;
}
+
+NICEAPI_EXPORT gboolean
+nice_candidate_stun_server_address (const NiceCandidate *candidate, NiceAddress *addr)
+{
+ const NiceCandidateImpl *c = (NiceCandidateImpl *) candidate;
+
+ g_return_val_if_fail (candidate != NULL, FALSE);
+ g_return_val_if_fail (candidate->type != NICE_CANDIDATE_TYPE_SERVER_REFLEXIVE, FALSE);
+
+ if (c->stun_server) {
+ *addr = *c->stun_server;
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+}