int webrtc_foreach_turn_server(webrtc_h webrtc, webrtc_turn_server_cb callback, void *user_data)
{
webrtc_s *_webrtc = (webrtc_s*)webrtc;
- int idx = 0;
+ GList *l;
+ const char *turn_server;
RET_VAL_IF(_webrtc == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "webrtc is NULL");
RET_VAL_IF(callback == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "callback is NULL");
+ LOG_INFO("callback[%p] user_data[%p]", callback, user_data);
+
g_mutex_lock(&_webrtc->mutex);
- for (idx = 0; idx < (int)g_list_length(_webrtc->turn_server_urls); idx++) {
- if (!callback((const char *)g_list_nth(_webrtc->turn_server_urls, idx)->data, user_data)) {
+ for (l = g_list_first(_webrtc->turn_server_urls); l; l = g_list_next(l)) {
+ turn_server = (const char *)l->data;
+ LOG_INFO("turn_server[%s]", turn_server);
+ if (!callback(turn_server, user_data)) {
LOG_INFO("stop foreach callback");
break;
}
}
- LOG_INFO("callback[%p] user_data[%p]", callback, user_data);
-
g_mutex_unlock(&_webrtc->mutex);
return WEBRTC_ERROR_NONE;