From ae6d519a33f792172f29f9032af19e38e38ae9b5 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 21 Nov 2012 20:40:05 +0100 Subject: [PATCH] change reachability target to remove dependency on linphone.org --- Classes/LinphoneManager.m | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index c5dc70fd1..a20cb47c0 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -690,7 +690,11 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach - (void)setupNetworkReachabilityCallback { SCNetworkReachabilityContext *ctx=NULL; - const char *nodeName="linphone.org"; + //any internet cnx + struct sockaddr_in zeroAddress; + bzero(&zeroAddress, sizeof(zeroAddress)); + zeroAddress.sin_len = sizeof(zeroAddress); + zeroAddress.sin_family = AF_INET; if (proxyReachability) { [LinphoneLogger logc:LinphoneLoggerLog format:"Cancelling old network reachability"]; @@ -699,8 +703,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach proxyReachability = nil; } - proxyReachability = SCNetworkReachabilityCreateWithName(nil, nodeName); - + proxyReachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr*)&zeroAddress); if (!SCNetworkReachabilitySetCallback(proxyReachability, (SCNetworkReachabilityCallBack)networkReachabilityCallBack, ctx)){ [LinphoneLogger logc:LinphoneLoggerError format:"Cannot register reachability cb: %s", SCErrorString(SCError())]; @@ -710,6 +713,11 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach [LinphoneLogger logc:LinphoneLoggerError format:"Cannot register schedule reachability cb: %s", SCErrorString(SCError())]; return; } + // this check is to know network connectivity right now without waiting for a change. Don'nt remove it unless you have good reason. Jehan + SCNetworkReachabilityFlags flags; + if (SCNetworkReachabilityGetFlags(proxyReachability, &flags)) { + networkReachabilityCallBack(proxyReachability,flags,nil); + } }