summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--agent/discovery.c29
1 files changed, 14 insertions, 15 deletions
diff --git a/agent/discovery.c b/agent/discovery.c
index d8c4e9d..e16c76f 100644
--- a/agent/discovery.c
+++ b/agent/discovery.c
@@ -1160,7 +1160,10 @@ static gboolean priv_discovery_tick_unlocked (NiceAgent *agent)
turn_compat);
}
- if (buffer_len > 0) {
+ if (buffer_len > 0 &&
+ agent_socket_send (cand->nicesock, &cand->server, buffer_len,
+ (gchar *)cand->stun_buffer) >= 0) {
+ /* case: success, start waiting for the result */
if (nice_socket_is_reliable (cand->nicesock)) {
stun_timer_start_reliable (&cand->timer, agent->stun_reliable_timeout);
} else {
@@ -1169,20 +1172,16 @@ static gboolean priv_discovery_tick_unlocked (NiceAgent *agent)
agent->stun_max_retransmissions);
}
- /* send the conncheck */
- agent_socket_send (cand->nicesock, &cand->server,
- buffer_len, (gchar *)cand->stun_buffer);
-
- /* case: success, start waiting for the result */
- g_get_current_time (&cand->next_tick);
-
- } else {
- /* case: error in starting discovery, start the next discovery */
- cand->done = TRUE;
- cand->stun_message.buffer = NULL;
- cand->stun_message.buffer_len = 0;
- continue;
- }
+ g_get_current_time (&cand->next_tick);
+ } else {
+ /* case: error in starting discovery, start the next discovery */
+ nice_debug ("Agent %p : Error starting discovery, skipping the item.",
+ agent);
+ cand->done = TRUE;
+ cand->stun_message.buffer = NULL;
+ cand->stun_message.buffer_len = 0;
+ continue;
+ }
}
else
/* allocate relayed candidates */