From 3e4725bb3e7eef600785d8fef3e43c1926eba705 Mon Sep 17 00:00:00 2001 From: "C. Bess" Date: Sat, 28 Jan 2012 13:59:40 -0600 Subject: [PATCH 1/2] Improved reachability check, detects severed internet connections. --- AFNetworking/AFHTTPClient.m | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/AFNetworking/AFHTTPClient.m b/AFNetworking/AFHTTPClient.m index 6ddebdc..c813b81 100644 --- a/AFNetworking/AFHTTPClient.m +++ b/AFNetworking/AFHTTPClient.m @@ -222,7 +222,11 @@ static NSString * AFPropertyListStringFromParameters(NSDictionary *parameters) { static void AFReachabilityCallback(SCNetworkReachabilityRef __unused target, SCNetworkReachabilityFlags flags, void *info) { if (info) { AFNetworkReachabilityStatusBlock block = (AFNetworkReachabilityStatusBlock)info; - BOOL isNetworkReachable = (flags & kSCNetworkReachabilityFlagsReachable); + + BOOL isReachable = ((flags & kSCNetworkFlagsReachable) != 0); + BOOL needsConnection = ((flags & kSCNetworkFlagsConnectionRequired) != 0); + + BOOL isNetworkReachable = (isReachable && !needsConnection); block(isNetworkReachable); } } From fe56222f5ce62b6ff52c50f7b0fad26ef5f0ca70 Mon Sep 17 00:00:00 2001 From: "C. Bess" Date: Sat, 28 Jan 2012 14:13:52 -0600 Subject: [PATCH 2/2] Updated reachability flags. --- AFNetworking/AFHTTPClient.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AFNetworking/AFHTTPClient.m b/AFNetworking/AFHTTPClient.m index c813b81..cb3905e 100644 --- a/AFNetworking/AFHTTPClient.m +++ b/AFNetworking/AFHTTPClient.m @@ -223,10 +223,10 @@ static void AFReachabilityCallback(SCNetworkReachabilityRef __unused target, SCN if (info) { AFNetworkReachabilityStatusBlock block = (AFNetworkReachabilityStatusBlock)info; - BOOL isReachable = ((flags & kSCNetworkFlagsReachable) != 0); - BOOL needsConnection = ((flags & kSCNetworkFlagsConnectionRequired) != 0); - + BOOL isReachable = ((flags & kSCNetworkReachabilityFlagsReachable) != 0); + BOOL needsConnection = ((flags & kSCNetworkReachabilityFlagsConnectionRequired) != 0); BOOL isNetworkReachable = (isReachable && !needsConnection); + block(isNetworkReachable); } }