diff --git a/Reachability.m b/Reachability.m index 4c1c94a..98b95a6 100644 --- a/Reachability.m +++ b/Reachability.m @@ -95,11 +95,13 @@ +(instancetype)reachabilityWithHostName:(NSString*)hostname +(instancetype)reachabilityWithHostname:(NSString*)hostname { - SCNetworkReachabilityRef ref = SCNetworkReachabilityCreateWithName(NULL, [hostname UTF8String]); - if (ref) + //Potential leak of an object stored into ref + + SCNetworkReachabilityRef ref = CFAutorelease(SCNetworkReachabilityCreateWithName(NULL, [hostname UTF8String])); + if (ref) { id reachability = [[self alloc] initWithReachabilityRef:ref]; - + return reachability; } @@ -108,8 +110,10 @@ +(instancetype)reachabilityWithHostname:(NSString*)hostname +(instancetype)reachabilityWithAddress:(void *)hostAddress { - SCNetworkReachabilityRef ref = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr*)hostAddress); - if (ref) + //Potential leak of an object stored into ref + + SCNetworkReachabilityRef ref = CFAutorelease(SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr*)hostAddress)); + if (ref) { id reachability = [[self alloc] initWithReachabilityRef:ref]; @@ -119,6 +123,7 @@ +(instancetype)reachabilityWithAddress:(void *)hostAddress return nil; } + +(instancetype)reachabilityForInternetConnection { struct sockaddr_in zeroAddress;