--- ntpdate/ntpdate.c.orig 2006-10-14 01:39:35.000000000 +0400 +++ ntpdate/ntpdate.c 2006-10-14 01:37:09.000000000 +0400 @@ -1339,16 +1339,16 @@ * (non-blocking). */ static int -is_reachable (struct sockaddr_storage *dst) +is_reachable (struct addrinfo *dst) { SOCKET sockfd; - sockfd = socket(dst->ss_family, SOCK_DGRAM, 0); + sockfd = socket(dst->ai_family, SOCK_DGRAM, 0); if (sockfd == -1) { return 0; } - if(connect(sockfd, (struct sockaddr *)dst, SOCKLEN(dst))) { + if(connect(sockfd, (struct sockaddr *)(dst->ai_addr), SOCKLEN(dst))) { closesocket(sockfd); return 0; } @@ -1403,7 +1403,7 @@ /* We must get all returned server in case the first one fails */ for (ptr = addrResult; ptr != NULL; ptr = ptr->ai_next) { - if (is_reachable ((struct sockaddr_storage *)ptr->ai_addr)) { + if (is_reachable (ptr)) { server = (struct server *)emalloc(sizeof(struct server)); memset((char *)server, 0, sizeof(struct server));