Refactored the Reachability status logic
This commit is contained in:
parent
428c13e1e0
commit
50c136f5d4
1 changed files with 11 additions and 19 deletions
|
|
@ -354,27 +354,19 @@ static void AFReachabilityReleaseCallback(const void *info) {
|
|||
BOOL needsConnection = ((flags & kSCNetworkReachabilityFlagsConnectionRequired) != 0);
|
||||
BOOL isNetworkReachable = (isReachable && !needsConnection);
|
||||
|
||||
AFNetworkReachabilityStatus status = AFNetworkReachabilityStatusNotReachable;
|
||||
if(isNetworkReachable == NO) {
|
||||
AFNetworkReachabilityStatus status = AFNetworkReachabilityStatusUnknown;
|
||||
if(isNetworkReachable == NO){
|
||||
status = AFNetworkReachabilityStatusNotReachable;
|
||||
} else {
|
||||
#if TARGET_OS_IPHONE
|
||||
if((flags & kSCNetworkReachabilityFlagsIsWWAN) != 0){
|
||||
status = AFNetworkReachabilityStatusReachableViaWWAN;
|
||||
}
|
||||
#endif
|
||||
|
||||
struct sockaddr_in localWiFiAddress;
|
||||
memset(&localWiFiAddress, '\0', sizeof(localWiFiAddress));
|
||||
localWiFiAddress.sin_len = sizeof(localWiFiAddress);
|
||||
localWiFiAddress.sin_family = AF_INET;
|
||||
localWiFiAddress.sin_addr.s_addr = htonl(IN_LINKLOCALNETNUM);
|
||||
|
||||
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr *)&localWiFiAddress);
|
||||
if (reachability != NULL) {
|
||||
status = AFNetworkReachabilityStatusReachableViaWiFi;
|
||||
}
|
||||
}
|
||||
#if TARGET_OS_IPHONE
|
||||
else if((flags & kSCNetworkReachabilityFlagsIsWWAN) != 0){
|
||||
status = AFNetworkReachabilityStatusReachableViaWWAN;
|
||||
}
|
||||
#endif
|
||||
else {
|
||||
status = AFNetworkReachabilityStatusReachableViaWiFi;
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue