]> sjero.net Git - linphone/commitdiff
-uninit sal upon network is no more reachable
authorJehan Monnier <jehan.monnier@linphone.org>
Thu, 17 Feb 2011 16:41:08 +0000 (17:41 +0100)
committerJehan Monnier <jehan.monnier@linphone.org>
Thu, 17 Feb 2011 16:41:08 +0000 (17:41 +0100)
-create new function to refreash registration

coreapi/linphonecore.c
coreapi/linphonecore.h
coreapi/sal_eXosip2.c

index 928209827dfaa8ed13fa4f9c4b1e580522d56150..8db39dd515dca06602be1d1226db6892aae0bcbb 100644 (file)
@@ -3904,8 +3904,24 @@ static void set_network_reachable(LinphoneCore* lc,bool_t isReachable, time_t cu
        }
        lc->netup_time=curtime;
        lc->network_reachable=isReachable;
-}
+       if(!isReachable) {
+               sal_unlisten_ports (lc->sal);
+       } else {
+               apply_transports(lc);
+       }
 
+}
+void linphone_core_refresh_registers(LinphoneCore* lc) {
+       const MSList *elem=linphone_core_get_proxy_config_list(lc);
+       for(;elem!=NULL;elem=elem->next){
+               LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)elem->data;
+               if (linphone_proxy_config_register_enabled(cfg) ) {
+                       cfg->registered=0;
+                       cfg->commit=TRUE;
+               }
+       }
+       
+}
 void linphone_core_set_network_reachable(LinphoneCore* lc,bool_t isReachable) {
        //first disable automatic mode
        if (lc->auto_net_state_mon) {
index 82709208d587ef5145621a8211a494bfa08e3fec..81ab3e949948770cfd2d3446fb0b07d20f8c747d 100644 (file)
@@ -972,7 +972,11 @@ int linphone_core_get_current_call_stats(LinphoneCore *lc, rtp_stats_t *local, r
 const MSList *linphone_core_get_calls(LinphoneCore *lc);
 
 LinphoneGlobalState linphone_core_get_global_state(const LinphoneCore *lc);
-
+/**
+ * force registration refresh to be initiated upon next iterate
+ * @ingroup proxies
+ */
+void linphone_core_refresh_registers(LinphoneCore* lc);        
 #ifdef __cplusplus
 }
 #endif
index 61c7c494d036d20041bb0c8f494bc1c5a8836561..222e6e59759613850b5df59bf2593c4c2fc66385 100644 (file)
@@ -329,6 +329,7 @@ int sal_unlisten_ports(Sal *ctx){
        if (ctx->running){
                eXosip_quit();
                eXosip_init();
+               ctx->running=FALSE;
        }
        return 0;
 }