Reachability.mのreachabilityWithAddressはそのまま使っていて良い?
IPv6の対応方法がよくわからなくて困っています。
Apple提供のReachability.mがありますが、このなかでzeroAddressでReachabilityRefを取りに行っているところがあります。
このメソッドはそのまま使用していていいのでしょうか?
IPv6のアドレスに解決された場合、sockaddr_in
などの変数がオーバーフローするのでは、と思っています。
+ (instancetype)reachabilityWithAddress:(const struct sockaddr_in *)hostAddress
{
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr *)hostAddress);
MVReachability* returnValue = NULL;
if (reachability != NULL)
{
returnValue = [[self alloc] init];
if (returnValue != NULL)
{
returnValue->_reachabilityRef = reachability;
returnValue->_alwaysReturnLocalWiFiStatus = NO;
}
}
return returnValue;
}
+ (instancetype)reachabilityForInternetConnection
{
struct sockaddr_in zeroAddress;
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.sin_len = sizeof(zeroAddress);
zeroAddress.sin_family = AF_INET;
return [self reachabilityWithAddress:&zeroAddress];
}