diff options
Diffstat (limited to 'agent/candidate.c')
-rw-r--r-- | agent/candidate.c | 19 |
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; + } +} |