]> sjero.net Git - linphone/commitdiff
Disable keep alive when using uPnP
authorYann Diorcet <yann.diorcet@belledonne-communications.com>
Tue, 19 Feb 2013 15:07:58 +0000 (16:07 +0100)
committerYann Diorcet <yann.diorcet@belledonne-communications.com>
Tue, 19 Feb 2013 15:07:58 +0000 (16:07 +0100)
coreapi/linphonecore.c

index bc421e51b8ea938505e372dc8066eb8cd6c48870..5ba0fbf700d78965838b0e1070a0b642fad3ec44 100644 (file)
@@ -4239,7 +4239,9 @@ void linphone_core_set_firewall_policy(LinphoneCore *lc, LinphoneFirewallPolicy
                ms_warning("UPNP is not available, reset firewall policy to no firewall");
                pol = LinphonePolicyNoFirewall;
        }
-#else //BUILD_UPNP
+#endif //BUILD_UPNP
+       lc->net_conf.firewall_policy=pol;
+#ifdef BUILD_UPNP
        if(pol == LinphonePolicyUseUpnp) {
                if(lc->upnp == NULL) {
                        lc->upnp = linphone_upnp_context_new(lc);
@@ -4249,9 +4251,9 @@ void linphone_core_set_firewall_policy(LinphoneCore *lc, LinphoneFirewallPolicy
                        linphone_upnp_context_destroy(lc->upnp);
                        lc->upnp = NULL;
                }
-       }       
+       }
+       linphone_core_enable_keep_alive(lc, (lc->sip_conf.keepalive_period > 0));
 #endif //BUILD_UPNP
-       lc->net_conf.firewall_policy=pol;
        if (lc->sip_conf.contact) update_primary_contact(lc);
        if (linphone_core_ready(lc))
                lp_config_set_int(lc->config,"net","firewall_policy",pol);
@@ -5490,6 +5492,11 @@ const char *linphone_error_to_string(LinphoneReason err){
  * Enables signaling keep alive
  */
 void linphone_core_enable_keep_alive(LinphoneCore* lc,bool_t enable) {
+#ifdef BUILD_UPNP
+       if (linphone_core_get_firewall_policy(lc)==LinphonePolicyUseUpnp) {
+               enable = FALSE;
+       }
+#endif //BUILD_UPNP
        if (enable > 0) {
                sal_use_tcp_tls_keepalive(lc->sal,lc->sip_conf.tcp_tls_keepalive);
                sal_set_keepalive_period(lc->sal,lc->sip_conf.keepalive_period);