summaryrefslogtreecommitdiffstats
path: root/tinyNET/src/ice/tnet_ice_candidate.c
diff options
context:
space:
mode:
Diffstat (limited to 'tinyNET/src/ice/tnet_ice_candidate.c')
-rwxr-xr-xtinyNET/src/ice/tnet_ice_candidate.c383
1 files changed, 193 insertions, 190 deletions
diff --git a/tinyNET/src/ice/tnet_ice_candidate.c b/tinyNET/src/ice/tnet_ice_candidate.c
index bb75b33..7900933 100755
--- a/tinyNET/src/ice/tnet_ice_candidate.c
+++ b/tinyNET/src/ice/tnet_ice_candidate.c
@@ -34,15 +34,15 @@
#include <ctype.h>
static int _tnet_ice_candidate_tostring(
- uint8_t* foundation,
- uint32_t comp_id,
- const char* transport_str,
- uint32_t priority,
- const char* connection_addr,
- tnet_port_t port,
- const char* cand_type_str,
- const tsk_params_L_t *extension_att_list,
- char** output);
+ uint8_t* foundation,
+ uint32_t comp_id,
+ const char* transport_str,
+ uint32_t priority,
+ const char* connection_addr,
+ tnet_port_t port,
+ const char* cand_type_str,
+ const tsk_params_L_t *extension_att_list,
+ char** output);
static const char* _tnet_ice_candidate_get_foundation(tnet_ice_cand_type_t type);
static tnet_stun_pkt_t * _tnet_ice_candidate_stun_create_bind_request(tnet_ice_candidate_t* self, const char* username, const char* password);
static tsk_bool_t _tnet_ice_candidate_stun_transac_id_equals(const tnet_stun_transac_id_t id1, const tnet_stun_transac_id_t id2);
@@ -54,7 +54,7 @@ static tnet_ice_cand_type_t _tnet_ice_candtype_get_transport_type(const char* ca
static tsk_object_t* tnet_ice_candidate_ctor(tsk_object_t * self, va_list * app)
{
tnet_ice_candidate_t *candidate = self;
- if (candidate){
+ if (candidate) {
candidate->extension_att_list = tsk_list_create();
}
return self;
@@ -63,23 +63,23 @@ static tsk_object_t* tnet_ice_candidate_ctor(tsk_object_t * self, va_list * app)
static tsk_object_t* tnet_ice_candidate_dtor(tsk_object_t * self)
{
tnet_ice_candidate_t *candidate = self;
- if (candidate){
+ if (candidate) {
TSK_SAFE_FREE(candidate->transport_str);
TSK_SAFE_FREE(candidate->cand_type_str);
TSK_OBJECT_SAFE_FREE(candidate->extension_att_list);
TSK_OBJECT_SAFE_FREE(candidate->socket);
-
-
+
+
TSK_SAFE_FREE(candidate->stun.nonce);
TSK_SAFE_FREE(candidate->stun.realm);
TSK_SAFE_FREE(candidate->stun.srflx_addr);
-
+
TSK_SAFE_FREE(candidate->turn.relay_addr);
TSK_OBJECT_SAFE_FREE(candidate->turn.ss);
-
+
TSK_SAFE_FREE(candidate->ufrag);
TSK_SAFE_FREE(candidate->pwd);
-
+
TSK_SAFE_FREE(candidate->tostring);
}
return self;
@@ -89,16 +89,19 @@ static int tnet_ice_candidate_cmp(const tsk_object_t *_s1, const tsk_object_t *_
{
const tnet_ice_candidate_t *c1 = _s1;
const tnet_ice_candidate_t *c2 = _s2;
-
- if (c1 && c2){
+
+ if (c1 && c2) {
return (int)(c1->priority - c2->priority);
}
- else if (!c1 && !c2) return 0;
- else return -1;
+ else if (!c1 && !c2) {
+ return 0;
+ }
+ else {
+ return -1;
+ }
}
-static const tsk_object_def_t tnet_ice_candidate_def_s =
-{
+static const tsk_object_def_t tnet_ice_candidate_def_s = {
sizeof(tnet_ice_candidate_t),
tnet_ice_candidate_ctor,
tnet_ice_candidate_dtor,
@@ -108,12 +111,12 @@ static const tsk_object_def_t tnet_ice_candidate_def_s =
tnet_ice_candidate_t* tnet_ice_candidate_create(tnet_ice_cand_type_t type_e, tnet_socket_t* socket, tsk_bool_t is_ice_jingle, tsk_bool_t is_rtp, tsk_bool_t is_video, const char* ufrag, const char* pwd, const char *foundation)
{
tnet_ice_candidate_t* candidate;
-
- if (!(candidate = tsk_object_new(&tnet_ice_candidate_def_s))){
+
+ if (!(candidate = tsk_object_new(&tnet_ice_candidate_def_s))) {
TSK_DEBUG_ERROR("Failed to create candidate");
return tsk_null;
}
-
+
candidate->type_e = type_e;
candidate->socket = tsk_object_ref(socket);
candidate->local_pref = 0xFFFF;
@@ -121,20 +124,20 @@ tnet_ice_candidate_t* tnet_ice_candidate_create(tnet_ice_cand_type_t type_e, tne
candidate->is_rtp = is_rtp;
candidate->is_video = is_video;
candidate->comp_id = is_rtp ? TNET_ICE_CANDIDATE_COMPID_RTP : TNET_ICE_CANDIDATE_COMPID_RTCP;
- if (foundation){
+ if (foundation) {
memcpy(candidate->foundation, foundation, TSK_MIN(tsk_strlen(foundation), TNET_ICE_CANDIDATE_FOUND_SIZE_PREF));
}
- else{
+ else {
tnet_ice_utils_compute_foundation((char*)candidate->foundation, TSK_MIN(sizeof(candidate->foundation), TNET_ICE_CANDIDATE_FOUND_SIZE_PREF));
}
candidate->priority = tnet_ice_utils_get_priority(candidate->type_e, candidate->local_pref, candidate->is_rtp);
- if (candidate->socket){
+ if (candidate->socket) {
memcpy(candidate->connection_addr, candidate->socket->ip, sizeof(candidate->socket->ip));
candidate->port = candidate->socket->port;
candidate->transport_e = socket->type;
}
tnet_ice_candidate_set_credential(candidate, ufrag, pwd);
-
+
return candidate;
}
@@ -144,104 +147,96 @@ tnet_ice_candidate_t* tnet_ice_candidate_parse(const char* str)
char *v, *copy, *saveptr;
int32_t k;
tnet_ice_candidate_t* candidate;
-
- if (tsk_strnullORempty(str)){
+
+ if (tsk_strnullORempty(str)) {
TSK_DEBUG_ERROR("Invalid parameter");
return tsk_null;
}
-
- if (!(candidate = tsk_object_new(&tnet_ice_candidate_def_s))){
+
+ if (!(candidate = tsk_object_new(&tnet_ice_candidate_def_s))) {
TSK_DEBUG_ERROR("Failed to create candidate");
return tsk_null;
}
-
+
k = 0;
copy = tsk_strdup(str);
v = tsk_strtok_r(copy, " ", &saveptr);
-
- while (v){
- switch (k){
- case 0:
- {
- memcpy(candidate->foundation, v, TSK_MIN(tsk_strlen(v), sizeof(candidate->foundation)));
- break;
- }
- case 1:
- {
- candidate->comp_id = atoi(v);
- break;
- }
- case 2:
- {
- candidate->transport_str = tsk_strdup(v);
- break;
- }
- case 3:
- {
- candidate->priority = atoi(v);
- break;
- }
- case 4:
- {
- memcpy(candidate->connection_addr, v, TSK_MIN(tsk_strlen(v), sizeof(candidate->connection_addr)));
- break;
- }
- case 5:
- {
- tnet_family_t family;
- candidate->port = atoi(v);
- family = tnet_get_family(candidate->connection_addr, candidate->port);
- candidate->transport_e = _tnet_ice_candidate_get_transport_type((family == AF_INET6), candidate->transport_str);
- break;
- }
- case 6:
- {
- v = tsk_strtok_r(tsk_null, " ", &saveptr);
- tsk_strupdate(&candidate->cand_type_str, v);
- candidate->type_e = _tnet_ice_candtype_get_transport_type(v);
- break;
- }
- default:
- {
- const char* name = v;
- const char* value = (v = tsk_strtok_r(tsk_null, " ", &saveptr));
- tsk_param_t* param = tsk_param_create(name, value);
- if (param){
- tsk_list_push_back_data(candidate->extension_att_list, (void**)&param);
- }
- break;
+
+ while (v) {
+ switch (k) {
+ case 0: {
+ memcpy(candidate->foundation, v, TSK_MIN(tsk_strlen(v), sizeof(candidate->foundation)));
+ break;
+ }
+ case 1: {
+ candidate->comp_id = atoi(v);
+ break;
+ }
+ case 2: {
+ candidate->transport_str = tsk_strdup(v);
+ break;
+ }
+ case 3: {
+ candidate->priority = atoi(v);
+ break;
+ }
+ case 4: {
+ memcpy(candidate->connection_addr, v, TSK_MIN(tsk_strlen(v), sizeof(candidate->connection_addr)));
+ break;
+ }
+ case 5: {
+ tnet_family_t family;
+ candidate->port = atoi(v);
+ family = tnet_get_family(candidate->connection_addr, candidate->port);
+ candidate->transport_e = _tnet_ice_candidate_get_transport_type((family == AF_INET6), candidate->transport_str);
+ break;
+ }
+ case 6: {
+ v = tsk_strtok_r(tsk_null, " ", &saveptr);
+ tsk_strupdate(&candidate->cand_type_str, v);
+ candidate->type_e = _tnet_ice_candtype_get_transport_type(v);
+ break;
+ }
+ default: {
+ const char* name = v;
+ const char* value = (v = tsk_strtok_r(tsk_null, " ", &saveptr));
+ tsk_param_t* param = tsk_param_create(name, value);
+ if (param) {
+ tsk_list_push_back_data(candidate->extension_att_list, (void**)&param);
}
+ break;
+ }
}
-
+
++k;
v = tsk_strtok_r(tsk_null, " ", &saveptr);
}
-
- if (k < 6){
+
+ if (k < 6) {
TSK_DEBUG_ERROR("Failed to parse: %s", str);
TSK_OBJECT_SAFE_FREE(candidate);
}
TSK_FREE(copy);
-
+
return candidate;
}
int tnet_ice_candidate_set_credential(tnet_ice_candidate_t* self, const char* ufrag, const char* pwd)
{
- if (!self){
+ if (!self) {
TSK_DEBUG_ERROR("Invalid parameter");
return -1;
}
-
+
tsk_strupdate(&self->ufrag, ufrag);
tsk_strupdate(&self->pwd, pwd);
-
+
return 0;
}
int tnet_ice_candidate_set_rflx_addr(tnet_ice_candidate_t* self, const char* addr, tnet_port_t port)
{
- if (!self || !addr || !port){
+ if (!self || !addr || !port) {
TSK_DEBUG_ERROR("Invalid argument");
return -1;
}
@@ -253,7 +248,7 @@ int tnet_ice_candidate_set_rflx_addr(tnet_ice_candidate_t* self, const char* add
const char* tnet_ice_candidate_get_att_value(const tnet_ice_candidate_t* self, const char* att_name)
{
- if (!self || !att_name){
+ if (!self || !att_name) {
TSK_DEBUG_ERROR("Invalid parameter");
return tsk_null;
}
@@ -262,7 +257,7 @@ const char* tnet_ice_candidate_get_att_value(const tnet_ice_candidate_t* self, c
int tnet_ice_candidate_set_local_pref(tnet_ice_candidate_t* self, uint16_t local_pref)
{
- if (!self){
+ if (!self) {
TSK_DEBUG_ERROR("Invalid parameter");
return -1;
}
@@ -275,12 +270,12 @@ const char* tnet_ice_candidate_tostring(tnet_ice_candidate_t* self)
{
const char* _transport_str;
char __str[255]; // always allocated: bad idea :(
-
- if (!self){
+
+ if (!self) {
TSK_DEBUG_ERROR("Invalid argument");
return tsk_null;
}
-
+
if (self->type_e == tnet_ice_cand_type_relay && self->turn.ss) {
enum tnet_turn_transport_e e_req_transport = tnet_turn_transport_udp;
tnet_turn_session_get_req_transport(self->turn.ss, &e_req_transport);
@@ -288,47 +283,45 @@ const char* tnet_ice_candidate_tostring(tnet_ice_candidate_t* self)
}
else {
_transport_str = self->transport_str ? self->transport_str : _tnet_ice_candidate_get_transport_str(self->transport_e);
- if (self->is_ice_jingle){
+ if (self->is_ice_jingle) {
tsk_size_t i, s = tsk_strlen(_transport_str);
memset(__str, 0, sizeof(__str));
- for (i = 0; i < s && i < sizeof(__str) / sizeof(__str[0]); ++i){
+ for (i = 0; i < s && i < sizeof(__str) / sizeof(__str[0]); ++i) {
__str[i] = tolower(_transport_str[i]);
}
_transport_str = &__str[0];
}
}
-
+
_tnet_ice_candidate_tostring(
- self->foundation,
- self->comp_id,
- _transport_str,
- self->priority,
- (tsk_strnullORempty(self->connection_addr) && self->socket) ? self->socket->ip : self->connection_addr,
- (self->port <= 0 && self->socket) ? self->socket->port : self->port,
- self->cand_type_str ? self->cand_type_str : _tnet_ice_candidate_get_candtype_str(self->type_e),
- self->extension_att_list,
- &self->tostring);
-
+ self->foundation,
+ self->comp_id,
+ _transport_str,
+ self->priority,
+ (tsk_strnullORempty(self->connection_addr) && self->socket) ? self->socket->ip : self->connection_addr,
+ (self->port <= 0 && self->socket) ? self->socket->port : self->port,
+ self->cand_type_str ? self->cand_type_str : _tnet_ice_candidate_get_candtype_str(self->type_e),
+ self->extension_att_list,
+ &self->tostring);
+
/* <rel-addr> and <rel-port>: convey transport addresses related to the
candidate, useful for diagnostics and other purposes. <rel-addr>
and <rel-port> MUST be present for server reflexive, peer
reflexive, and relayed candidates. */
- switch (self->type_e){
- case tnet_ice_cand_type_srflx:
- case tnet_ice_cand_type_prflx:
- case tnet_ice_cand_type_relay:
- {
- if (self->socket){ // when called from the browser(IE, Safari, Opera or Firefox) webrtc4all
- tsk_strcat_2(&self->tostring, " raddr %s rport %d", self->socket->ip, self->socket->port);
- }
- break;
- }
- default:
- {
- break;
+ switch (self->type_e) {
+ case tnet_ice_cand_type_srflx:
+ case tnet_ice_cand_type_prflx:
+ case tnet_ice_cand_type_relay: {
+ if (self->socket) { // when called from the browser(IE, Safari, Opera or Firefox) webrtc4all
+ tsk_strcat_2(&self->tostring, " raddr %s rport %d", self->socket->ip, self->socket->port);
}
+ break;
}
-
+ default: {
+ break;
+ }
+ }
+
// To ease debugging
if (self->socket) {
tsk_strcat_2(&self->tostring, " tr %s", _tnet_ice_candidate_get_transport_str(self->socket->type));
@@ -343,26 +336,26 @@ const char* tnet_ice_candidate_tostring(tnet_ice_candidate_t* self)
tsk_strcat_2(&self->tostring, " fd %d", self->socket->fd);
}
}
-
+
// WebRTC (Chrome) specific
if (self->is_ice_jingle) {
- if (!tsk_params_have_param(self->extension_att_list, "name")){
+ if (!tsk_params_have_param(self->extension_att_list, "name")) {
tsk_strcat_2(&self->tostring, " name %s", self->is_rtp ? (self->is_video ? "video_rtp" : "rtp") : (self->is_video ? "video_rtcp" : "rtcp"));
}
- if (!tsk_params_have_param(self->extension_att_list, "username")){
+ if (!tsk_params_have_param(self->extension_att_list, "username")) {
tsk_strcat_2(&self->tostring, " username %s", self->ufrag);
}
- if (!tsk_params_have_param(self->extension_att_list, "password")){
+ if (!tsk_params_have_param(self->extension_att_list, "password")) {
tsk_strcat_2(&self->tostring, " password %s", self->pwd);
}
- if (!tsk_params_have_param(self->extension_att_list, "network_name")){
+ if (!tsk_params_have_param(self->extension_att_list, "network_name")) {
tsk_strcat_2(&self->tostring, " network_name %s", "{9EBBE687-CCE6-42D3-87F5-B57BB30DEE23}");
}
- if (!tsk_params_have_param(self->extension_att_list, "generation")){
+ if (!tsk_params_have_param(self->extension_att_list, "generation")) {
tsk_strcat_2(&self->tostring, " generation %s", "0");
}
}
-
+
return self->tostring;
}
@@ -371,56 +364,56 @@ int tnet_ice_candidate_send_stun_bind_request(tnet_ice_candidate_t* self, const
tnet_stun_pkt_t *request = tsk_null;
tsk_buffer_t *buffer = tsk_null;
int ret, sendBytes;
-
- if (!self || !server_addr || !TNET_SOCKET_IS_VALID(self->socket)){
+
+ if (!self || !server_addr || !TNET_SOCKET_IS_VALID(self->socket)) {
TSK_DEBUG_ERROR("Invalid parameter");
return -1;
}
-
+
request = _tnet_ice_candidate_stun_create_bind_request(self, username, password);
- if (!request){
+ if (!request) {
TSK_DEBUG_ERROR("Failed to create STUN request");
ret = -2;
goto bail;
}
-
- if ((ret = tnet_stun_pkt_write_with_padding_2(request, &buffer))){
+
+ if ((ret = tnet_stun_pkt_write_with_padding_2(request, &buffer))) {
TSK_DEBUG_ERROR("Failed to serialize STUN request");
goto bail;
}
-
+
sendBytes = tnet_sockfd_sendto(self->socket->fd, (const struct sockaddr*)server_addr, buffer->data, buffer->size);// return number of sent bytes
- if (sendBytes == buffer->size){
+ if (sendBytes == buffer->size) {
memcpy(self->stun.transac_id, request->transac_id, sizeof(tnet_stun_transac_id_t));
ret = 0;
}
- else{
+ else {
TSK_DEBUG_ERROR("Only %d bytes sent", sendBytes);
ret = -4;
goto bail;
}
-
+
bail:
TSK_OBJECT_SAFE_FREE(request);
TSK_OBJECT_SAFE_FREE(buffer);
-
+
return 0;
}
int tnet_ice_candidate_process_stun_response(tnet_ice_candidate_t* self, const tnet_stun_pkt_resp_t* response, tnet_fd_t fd)
{
int ret = 0;
-
- if (!self || !response){
+
+ if (!self || !response) {
TSK_DEBUG_ERROR("Inavlid parameter");
return -1;
}
-
+
//if(!(_tnet_ice_candidate_stun_transac_id_equals(response->transac_id, self->stun.transac_id))){
// TSK_DEBUG_ERROR("Transaction id mismatch");
// return -2;
//}
-
+
if (TNET_STUN_PKT_RESP_IS_ERROR(response)) {
uint16_t u_code;
if ((ret = tnet_stun_pkt_get_errorcode(response, &u_code))) {
@@ -452,7 +445,7 @@ int tnet_ice_candidate_process_stun_response(tnet_ice_candidate_t* self, const t
else if (TNET_STUN_PKT_RESP_IS_SUCCESS(response)) {
const tnet_stun_attr_address_t* pc_attr_addr;
if (((ret = tnet_stun_pkt_attr_find_first(response, tnet_stun_attr_type_xor_mapped_address, (const tnet_stun_attr_t**)&pc_attr_addr)) == 0 && pc_attr_addr)
- || ((ret = tnet_stun_pkt_attr_find_first(response, tnet_stun_attr_type_mapped_address, (const tnet_stun_attr_t**)&pc_attr_addr)) == 0 && pc_attr_addr)) {
+ || ((ret = tnet_stun_pkt_attr_find_first(response, tnet_stun_attr_type_mapped_address, (const tnet_stun_attr_t**)&pc_attr_addr)) == 0 && pc_attr_addr)) {
tnet_ip_t ip;
if ((ret = tnet_stun_utils_inet_ntop((pc_attr_addr->e_family == tnet_stun_address_family_ipv6), &pc_attr_addr->address, &ip))) {
return ret;
@@ -461,7 +454,7 @@ int tnet_ice_candidate_process_stun_response(tnet_ice_candidate_t* self, const t
self->stun.srflx_port = pc_attr_addr->u_port;
}
}
-
+
return ret;
}
@@ -470,7 +463,7 @@ const tnet_ice_candidate_t* tnet_ice_candidate_find_by_fd(tnet_ice_candidates_L_
if (candidates) {
const tsk_list_item_t *item;
const tnet_ice_candidate_t* candidate;
-
+
tsk_list_lock(candidates);
tsk_list_foreach(item, candidates) {
if (!(candidate = item->data)) {
@@ -482,13 +475,13 @@ const tnet_ice_candidate_t* tnet_ice_candidate_find_by_fd(tnet_ice_candidates_L_
}
}
}
-
+
return tsk_null;
}
const char* tnet_ice_candidate_get_ufrag(const tnet_ice_candidate_t* self)
{
- if (self){
+ if (self) {
return self->ufrag ? self->ufrag : tnet_ice_candidate_get_att_value(self, "username");
}
return tsk_null;
@@ -496,22 +489,22 @@ const char* tnet_ice_candidate_get_ufrag(const tnet_ice_candidate_t* self)
const char* tnet_ice_candidate_get_pwd(const tnet_ice_candidate_t* self)
{
- if (self){
+ if (self) {
return self->pwd ? self->pwd : tnet_ice_candidate_get_att_value(self, "password");
}
return tsk_null;
}
static int _tnet_ice_candidate_tostring(
- uint8_t* foundation,
- uint32_t comp_id,
- const char* transport_str,
- uint32_t priority,
- const char* connection_addr,
- tnet_port_t port,
- const char* cand_type_str,
- const tsk_params_L_t *extension_att_list,
- char** output)
+ uint8_t* foundation,
+ uint32_t comp_id,
+ const char* transport_str,
+ uint32_t priority,
+ const char* connection_addr,
+ tnet_port_t port,
+ const char* cand_type_str,
+ const tsk_params_L_t *extension_att_list,
+ char** output)
{
if (!output) {
TSK_DEBUG_ERROR("Invalid argument");
@@ -525,10 +518,10 @@ static int _tnet_ice_candidate_tostring(
connection_addr,
port,
cand_type_str);
-
+
if (extension_att_list) {
const tsk_list_item_t *item;
- tsk_list_foreach(item, extension_att_list){
+ tsk_list_foreach(item, extension_att_list) {
tsk_strcat_2(output, " %s %s", TSK_PARAM(item->data)->name, TSK_PARAM(item->data)->value);
}
}
@@ -537,11 +530,16 @@ static int _tnet_ice_candidate_tostring(
static const char* _tnet_ice_candidate_get_foundation(tnet_ice_cand_type_t type)
{
- switch (type){
- case tnet_ice_cand_type_host: return TNET_ICE_CANDIDATE_FOUNDATION_HOST;
- case tnet_ice_cand_type_srflx: return TNET_ICE_CANDIDATE_FOUNDATION_SRFLX;
- case tnet_ice_cand_type_prflx: return TNET_ICE_CANDIDATE_FOUNDATION_PRFLX;
- case tnet_ice_cand_type_relay: default: return TNET_ICE_CANDIDATE_FOUNDATION_RELAY;
+ switch (type) {
+ case tnet_ice_cand_type_host:
+ return TNET_ICE_CANDIDATE_FOUNDATION_HOST;
+ case tnet_ice_cand_type_srflx:
+ return TNET_ICE_CANDIDATE_FOUNDATION_SRFLX;
+ case tnet_ice_cand_type_prflx:
+ return TNET_ICE_CANDIDATE_FOUNDATION_PRFLX;
+ case tnet_ice_cand_type_relay:
+ default:
+ return TNET_ICE_CANDIDATE_FOUNDATION_RELAY;
}
}
@@ -550,8 +548,8 @@ static tsk_bool_t _tnet_ice_candidate_stun_transac_id_equals(const tnet_stun_tra
{
tsk_size_t i;
static const tsk_size_t size = sizeof(tnet_stun_transac_id_t);
- for (i = 0; i < size; i++){
- if (id1[i] != id2[i]){
+ for (i = 0; i < size; i++) {
+ if (id1[i] != id2[i]) {
return tsk_false;
}
}
@@ -562,12 +560,12 @@ static tnet_stun_pkt_t * _tnet_ice_candidate_stun_create_bind_request(tnet_ice_c
{
tnet_stun_pkt_t *request = tsk_null;
int ret;
-
+
if (!self) {
TSK_DEBUG_ERROR("Invalid parameter");
return tsk_null;
}
-
+
if ((ret = tnet_stun_pkt_create_empty(tnet_stun_pkt_type_binding_request, &request))) {
TSK_DEBUG_ERROR("Failed to create STUN Bind request");
goto bail;
@@ -585,7 +583,7 @@ static tnet_stun_pkt_t * _tnet_ice_candidate_stun_create_bind_request(tnet_ice_c
goto bail;
}
}
-
+
bail:
if (ret) {
TSK_OBJECT_SAFE_FREE(request);
@@ -606,7 +604,7 @@ return TNET_ICE_CANDIDATE_TRANSPORT_##STR; \
TRANSPORT_GET(WS);
TRANSPORT_GET(WSS);
return "UNKNOWN";
-
+
#undef TRANSPORT_GET
}
@@ -616,7 +614,7 @@ static tnet_socket_type_t _tnet_ice_candidate_get_transport_type(tsk_bool_t ipv6
if(tsk_striequals(TNET_ICE_CANDIDATE_TRANSPORT_##STR, transport_str)){ \
return tnet_socket_type_##str##_ipv4; \
}
-
+
TRANSPORT_GET(UDP, udp);
TRANSPORT_GET(TCP, tcp);
TRANSPORT_GET(TLS, tls);
@@ -624,37 +622,42 @@ return tnet_socket_type_##str##_ipv4; \
TRANSPORT_GET(WS, ws);
TRANSPORT_GET(WSS, wss);
return tnet_socket_type_invalid;
-
+
#undef TRANSPORT_GET
}
static const char* _tnet_ice_candidate_get_candtype_str(tnet_ice_cand_type_t candtype_e)
{
- switch (candtype_e){
- case tnet_ice_cand_type_unknown:
- default: return "unknown";
- case tnet_ice_cand_type_host: return TNET_ICE_CANDIDATE_TYPE_HOST;
- case tnet_ice_cand_type_srflx: return TNET_ICE_CANDIDATE_TYPE_SRFLX;
- case tnet_ice_cand_type_prflx: return TNET_ICE_CANDIDATE_TYPE_PRFLX;
- case tnet_ice_cand_type_relay: return TNET_ICE_CANDIDATE_TYPE_RELAY;
+ switch (candtype_e) {
+ case tnet_ice_cand_type_unknown:
+ default:
+ return "unknown";
+ case tnet_ice_cand_type_host:
+ return TNET_ICE_CANDIDATE_TYPE_HOST;
+ case tnet_ice_cand_type_srflx:
+ return TNET_ICE_CANDIDATE_TYPE_SRFLX;
+ case tnet_ice_cand_type_prflx:
+ return TNET_ICE_CANDIDATE_TYPE_PRFLX;
+ case tnet_ice_cand_type_relay:
+ return TNET_ICE_CANDIDATE_TYPE_RELAY;
}
}
static tnet_ice_cand_type_t _tnet_ice_candtype_get_transport_type(const char* candtype_str)
{
- if (tsk_striequals(TNET_ICE_CANDIDATE_TYPE_HOST, candtype_str)){
+ if (tsk_striequals(TNET_ICE_CANDIDATE_TYPE_HOST, candtype_str)) {
return tnet_ice_cand_type_host;
}
- else if (tsk_striequals(TNET_ICE_CANDIDATE_TYPE_SRFLX, candtype_str)){
+ else if (tsk_striequals(TNET_ICE_CANDIDATE_TYPE_SRFLX, candtype_str)) {
return tnet_ice_cand_type_srflx;
}
- else if (tsk_striequals(TNET_ICE_CANDIDATE_TYPE_PRFLX, candtype_str)){
+ else if (tsk_striequals(TNET_ICE_CANDIDATE_TYPE_PRFLX, candtype_str)) {
return tnet_ice_cand_type_prflx;
}
- else if (tsk_striequals(TNET_ICE_CANDIDATE_TYPE_RELAY, candtype_str)){
+ else if (tsk_striequals(TNET_ICE_CANDIDATE_TYPE_RELAY, candtype_str)) {
return tnet_ice_cand_type_relay;
}
- else{
+ else {
return tnet_ice_cand_type_unknown;
}
}
OpenPOWER on IntegriCloud