* [Bug 1426] scripts/VersionName needs . on the search path.
* [Bug 1427] quote missing in ./build - shows up on NetBSD.
* [Bug 1428] Use AC_HEADER_RESOLV to fix breaks from resolv.h
+* [Bug 1429] ntpd -4 option does not reliably force IPv4 resolution.
---
(4.2.6p1-RC1) 2009/12/20 Released by Harlan Stenn <stenn@ntp.org>
*/
extern char const *progname;
extern const char *specific_interface;
-extern short default_ai_family;
#ifdef HAVE_NETINFO
extern int check_netinfo;
*/
errflg = 0;
- if (HAVE_OPT( IPV4 ))
- default_ai_family = AF_INET;
- else if (HAVE_OPT( IPV6 ))
- default_ai_family = AF_INET6;
+ if (ipv4_works && ipv6_works) {
+ if (HAVE_OPT( IPV4 ))
+ ipv6_works = 0;
+ else if (HAVE_OPT( IPV6 ))
+ ipv4_works = 0;
+ } else if (!ipv4_works && !ipv6_works) {
+ msyslog(LOG_ERR, "Neither IPv4 nor IPv6 networking detected, fatal.");
+ exit(1);
+ } else if (HAVE_OPT( IPV4 ) && !ipv4_works)
+ msyslog(LOG_WARNING, "-4/--ipv4 ignored, IPv4 networking not found.");
+ else if (HAVE_OPT( IPV6 ) && !ipv6_works)
+ msyslog(LOG_WARNING, "-6/--ipv6 ignored, IPv6 networking not found.");
if (HAVE_OPT( AUTHREQ ))
proto_config(PROTO_AUTHENTICATE, 1, 0., NULL);
FILE *res_fp;
struct config_tree cfgt; /* Parser output stored here */
struct config_tree *cfg_tree_history = NULL; /* History of configs */
-#if 0
-short default_ai_family = AF_UNSPEC; /* Default either IPv4 or IPv6 */
-#else
-short default_ai_family = AF_INET; /* [Bug 891]: FIX ME */
-#endif
char *sys_phone[MAXPHONE] = {NULL}; /* ACTS phone numbers */
char default_keysdir[] = NTP_KEYSDIR;
char *keysdir = default_keysdir; /* crypto keys directory */
/* port is at same location for v4 and v6 */
SET_PORT(&peeraddr, port_no ? port_no : TRAPPORT);
- if (NULL == localaddr) {
- AF(&peeraddr) = default_ai_family;
+ if (NULL == localaddr)
localaddr = ANY_INTERFACE_CHOOSE(&peeraddr);
- } else
+ else
AF(&peeraddr) = AF(&addr_sock);
if (!ctlsettrap(&peeraddr, localaddr, 0,
/* VARIOUS EXTERNAL DECLARATIONS
* -----------------------------
*/
-extern short default_ai_family;
extern int old_config_style;
extern int input_from_file;
extern struct FILE_INFO *fp[];