diff --git a/AFNetworking/AFNetworkReachabilityManager.h b/AFNetworking/AFNetworkReachabilityManager.h index 31dd9538d3..77433f752a 100644 --- a/AFNetworking/AFNetworkReachabilityManager.h +++ b/AFNetworking/AFNetworkReachabilityManager.h @@ -100,7 +100,7 @@ NS_ASSUME_NONNULL_BEGIN /** Creates and returns a network reachability manager for the socket address. - @param address The socket address (`sockaddr_in`) used to evaluate network reachability. + @param address The socket address (`sockaddr_in6`) used to evaluate network reachability. @return An initialized network reachability manager, actively monitoring the specified socket address. */ diff --git a/AFNetworking/AFNetworkReachabilityManager.m b/AFNetworking/AFNetworkReachabilityManager.m index 6b9d5fa5bb..5fba0f7019 100644 --- a/AFNetworking/AFNetworkReachabilityManager.m +++ b/AFNetworking/AFNetworkReachabilityManager.m @@ -144,10 +144,17 @@ + (instancetype)managerForAddress:(const void *)address { + (instancetype)manager { +#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) + struct sockaddr_in6 address; + bzero(&address, sizeof(address)); + address.sin6_len = sizeof(address); + address.sin6_family = AF_INET6; +#else struct sockaddr_in address; bzero(&address, sizeof(address)); address.sin_len = sizeof(address); address.sin_family = AF_INET; +#endif return [self managerForAddress:&address]; } diff --git a/Tests/Tests/AFNetworkReachabilityManagerTests.m b/Tests/Tests/AFNetworkReachabilityManagerTests.m index b8f3ef7ddf..b2bff5043c 100644 --- a/Tests/Tests/AFNetworkReachabilityManagerTests.m +++ b/Tests/Tests/AFNetworkReachabilityManagerTests.m @@ -36,14 +36,7 @@ - (void)setUp { //both of these manager objects should always be reachable when the tests are run self.domainReachability = [AFNetworkReachabilityManager managerForDomain:@"localhost"]; - - //don't use the shared manager because it retains state between tests - //but recreate it each time in the same way that the shared manager is created - struct sockaddr_in address; - bzero(&address, sizeof(address)); - address.sin_len = sizeof(address); - address.sin_family = AF_INET; - self.addressReachability = [AFNetworkReachabilityManager managerForAddress:&address]; + self.addressReachability = [AFNetworkReachabilityManager manager]; } - (void)tearDown