]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add more range to saved candidates and fix off-by-one error when total is met
authorAnthony Minessale <anthm@freeswitch.org>
Sun, 1 Dec 2013 01:13:49 +0000 (19:13 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Sun, 1 Dec 2013 01:13:49 +0000 (19:13 -0600)
src/include/switch_rtp.h
src/switch_core_media.c

index ca0b3f3b8df7c4422c3c1d3066d35dc95b1bde26..82dde7a798d1386ad3837417740bb6dc6ff14256 100644 (file)
@@ -96,7 +96,7 @@ typedef struct icand_s {
        uint8_t ready;
 } icand_t;
 
-#define MAX_CAND 25
+#define MAX_CAND 50
 typedef struct ice_s {
 
        icand_t cands[MAX_CAND][2];
index a8336dd03bc4366c1bd66b1635426112d13cd55b..8008e0cceea59c085eea5ca78bf5c2346eaeca16 100644 (file)
@@ -2332,6 +2332,8 @@ static void check_ice(switch_media_handle_t *smh, switch_media_type_t type, sdp_
                        data = switch_core_session_strdup(smh->session, attr->a_value);
 
                        argc = switch_split(data, ' ', fields);
+
+                       engine->ice_in.cand_idx++;
                        
                        if (argc < 5 || engine->ice_in.cand_idx >= MAX_CAND) {
                                switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(smh->session), SWITCH_LOG_WARNING, "Invalid data\n");
@@ -2349,8 +2351,6 @@ static void check_ice(switch_media_handle_t *smh, switch_media_type_t type, sdp_
                                                          "Checking Candidate cid: %d proto: %s type: %s addr: %s:%s\n", cid+1, fields[2], fields[7], fields[4], fields[5]);
 
 
-                       engine->ice_in.cand_idx++;
-
                        for (i = 0; i < engine->cand_acl_count; i++) {
                                if (!engine->ice_in.chosen[cid] && switch_check_network_list_ip(fields[4], engine->cand_acl[i])) {
                                        engine->ice_in.chosen[cid] = engine->ice_in.cand_idx;