}
} else if (!strcmp(*argv, "-n")) {
no_dns = 1;
+ } else if (!strcmp(*argv, "-4")) {
+ DNS_SetAddressFamily(IPADDR_INET4);
+ hostname = "127.0.0.1";
+ } else if (!strcmp(*argv, "-6")) {
+ DNS_SetAddressFamily(IPADDR_INET6);
+ hostname = "::1";
} else if (!strcmp("-v", *argv) || !strcmp("--version",*argv)) {
printf("chronyc (chrony) version %s\n", PROGRAM_VERSION_STRING);
exit(0);
} else if (!strncmp(*argv, "-", 1)) {
- fprintf(stderr, "Usage : %s [-h <hostname>] [-p <port-number>] [-n] [command]\n", progname);
+ fprintf(stderr, "Usage : %s [-h <hostname>] [-p <port-number>] [-n] [-4|-6] [command]\n", progname);
exit(1);
} else {
break; /* And process remainder of line as a command */
#include "refclock.h"
#include "clientlog.h"
#include "broadcast.h"
+#include "nameserv.h"
/* ================================================== */
exit(0);
} else if (!strcmp("-d", *argv)) {
debug = 1;
+ } else if (!strcmp("-4", *argv)) {
+ DNS_SetAddressFamily(IPADDR_INET4);
+ } else if (!strcmp("-6", *argv)) {
+ DNS_SetAddressFamily(IPADDR_INET6);
} else {
LOG(LOGS_WARN, LOGF_Main, "Unrecognized command line option [%s]", *argv);
}
#define MAXRETRIES 10
static unsigned int retries = 0;
+static int address_family = IPADDR_UNSPEC;
+
+void
+DNS_SetAddressFamily(int family)
+{
+ address_family = family;
+}
+
int
DNS_Name2IPAddress(const char *name, IPAddr *addr, int retry)
{
break;
#endif
}
+ if (result && address_family != IPADDR_UNSPEC && address_family != addr->family)
+ result = 0;
}
freeaddrinfo(res);
#include "addressing.h"
+/* Resolve names only to selected address family */
+extern void DNS_SetAddressFamily(int family);
+
extern int DNS_Name2IPAddress(const char *name, IPAddr *addr, int retry);
extern void DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len);