* (feature) New option '-6' to force IPv6
* (feature) Support kernel-timestamping of received packets (#46)
* (feature) Simplify restrictions: only -i >= 1 and -p >= 10 are enforced now
+ * (bugfix) Fix option -m to return all IPs of a hostname
* (bugfix) Fix option -H (ttl) for IPv6
* (bugfix) Fix option -M (don't fragment) for IPv6
* (bugfix) Fix option -O (ToS) for IPv6
-H n Set the IP TTL value (Time To Live hops)
-i n interval between sending ping packets (in millisec) (default 25)
${I_HELP} -l loop sending pings forever
- -m ping multiple interfaces on target host
+ -m use all IPs of provided hostnames (e.g. IPv4 and IPv6), use with -A
-M set the Don't Fragment flag
-n show targets by name (-d is equivalent)
-N output compatible for netdata (-l -Q are required)
* We don't do it yet, however, because is is an incompatible change
* (need to implement a separate option for this)
*/
- for (res = res0; res; res = 0) {
+ for (res = res0; res; res = res->ai_next) {
/* name_flag: addr -> name lookup requested) */
if(!name_flag) {
printname = name;
sizeof(namebuf)/sizeof(char), NULL, 0, 0);
if (ret) {
if(!quiet_flag) {
- print_warning("%s: %s\n", name, gai_strerror(ret_ga));
+ ret = getnameinfo(res->ai_addr, res->ai_addrlen, namebuf,
+ sizeof(namebuf)/sizeof(char), NULL, 0, 0);
+ print_warning("%s: can't reverse-lookup (%s)\n", name, gai_strerror(ret_ga));
}
- num_noaddress++;
- continue;
+ printname = name;
+ }
+ else {
+ printname = namebuf;
}
- printname = namebuf;
}
/* addr_flag: name -> addr lookup requested */
sizeof(addrbuf)/sizeof(char), NULL, 0, NI_NUMERICHOST);
if (ret) {
if(!quiet_flag) {
- print_warning("%s: %s\n", name, gai_strerror(ret_ga));
+ print_warning("%s: can't forward-lookup address (%s)\n", name, gai_strerror(ret_ga));
}
- num_noaddress++;
continue;
}
else {
add_addr(name, printname, res->ai_addr, res->ai_addrlen);
}
+
+ if(!multif_flag) {
+ break;
+ }
}
freeaddrinfo(res0);
fprintf(out, " -I if bind to a particular interface\n");
#endif
fprintf(out, " -l loop sending pings forever\n" );
- fprintf(out, " -m ping multiple interfaces on target host\n" );
+ fprintf(out, " -m use all IPs of provided hostnames (e.g. IPv4 and IPv6), use with -A\n" );
fprintf(out, " -M set the Don't Fragment flag\n" );
fprintf(out, " -n show targets by name (-d is equivalent)\n" );
fprintf(out, " -N output compatible for netdata (-l -Q are required)\n" );