From owner-freebsd-bugs@FreeBSD.ORG Wed Jan 2 01:40:03 2008 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 76D3E16A4B3 for ; Wed, 2 Jan 2008 01:40:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 6682113C442 for ; Wed, 2 Jan 2008 01:40:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m021e3DI024407 for ; Wed, 2 Jan 2008 01:40:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m021e36s024406; Wed, 2 Jan 2008 01:40:03 GMT (envelope-from gnats) Date: Wed, 2 Jan 2008 01:40:03 GMT Message-Id: <200801020140.m021e36s024406@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: "Takamichi Tateoka" Cc: Subject: Re: bin/74140: ntpdate(8): ntpdate does not try all IPs for a host X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Takamichi Tateoka List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Jan 2008 01:40:03 -0000 The following reply was made to PR bin/74140; it has been noted by GNATS. From: "Takamichi Tateoka" To: , Cc: Subject: Re: bin/74140: ntpdate(8): ntpdate does not try all IPs for a host Date: Wed, 2 Jan 2008 09:58:01 +0900 1jM MIME `.L} `p[g bZ[WE7B ------=_NextPart_000_0001_01C84D25.F65A9780 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit I create a small patch. It simply tries all of unknown addresses. -- Takamichi Tateoka ------=_NextPart_000_0001_01C84D25.F65A9780 Content-Type: application/octet-stream; name="ntpdate.c.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="ntpdate.c.diff" *** contrib/ntp/ntpdate/ntpdate.c.DIST Mon Dec 6 23:33:29 2004=0A= --- contrib/ntp/ntpdate/ntpdate.c Wed Jan 2 09:39:57 2008=0A= ***************=0A= *** 1325,1331 ****=0A= {=0A= register struct server *server;=0A= /* Address infos structure to store result of getaddrinfo */=0A= ! struct addrinfo *addrResult;=0A= /* Address infos structure to store hints for getaddrinfo */=0A= struct addrinfo hints;=0A= /* Error variable for getaddrinfo */=0A= --- 1325,1331 ----=0A= {=0A= register struct server *server;=0A= /* Address infos structure to store result of getaddrinfo */=0A= ! struct addrinfo *addrResult, *addrp;=0A= /* Address infos structure to store hints for getaddrinfo */=0A= struct addrinfo hints;=0A= /* Error variable for getaddrinfo */=0A= ***************=0A= *** 1356,1377 ****=0A= }=0A= #endif=0A= =0A= ! server =3D (struct server *)emalloc(sizeof(struct server));=0A= ! memset((char *)server, 0, sizeof(struct server));=0A= ! =0A= ! /* For now we only get the first returned server of the = addrinfo list */=0A= ! memset(&(server->srcadr), 0, sizeof(struct sockaddr_storage));=0A= ! memcpy(&(server->srcadr), addrResult->ai_addr, = addrResult->ai_addrlen);=0A= ! server->event_time =3D ++sys_numservers;=0A= ! if (sys_servers =3D=3D NULL)=0A= sys_servers =3D server;=0A= ! else {=0A= struct server *sp;=0A= ! =0A= for (sp =3D sys_servers; sp->next_server !=3D NULL;=0A= sp =3D sp->next_server) ;=0A= sp->next_server =3D server;=0A= }=0A= }=0A= =0A= =0A= --- 1356,1379 ----=0A= }=0A= #endif=0A= =0A= ! for (addrp =3D addrResult; addrp !=3D NULL; addrp =3D addrp->ai_next){=0A= ! server =3D (struct server *)emalloc(sizeof(struct server));=0A= ! memset((char *)server, 0, sizeof(struct server));=0A= ! =0A= ! memset(&(server->srcadr), 0, sizeof(struct sockaddr_storage));=0A= ! memcpy(&(server->srcadr), addrp->ai_addr, addrp->ai_addrlen);=0A= ! server->event_time =3D ++sys_numservers;=0A= ! if (sys_servers =3D=3D NULL)=0A= sys_servers =3D server;=0A= ! else {=0A= struct server *sp;=0A= ! =0A= for (sp =3D sys_servers; sp->next_server !=3D NULL;=0A= sp =3D sp->next_server) ;=0A= sp->next_server =3D server;=0A= + }=0A= }=0A= + freeaddrinfo(addrResult);=0A= }=0A= =0A= =0A= ------=_NextPart_000_0001_01C84D25.F65A9780--