Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aff259bbd0 | ||
|
|
4cab2f8598 | ||
|
|
aa5f849c5d | ||
|
|
1bb43dc07f |
@@ -1,5 +1,5 @@
|
||||
UNRELEAESD David Schweikert <david@schweikert.ch>
|
||||
* Version 3.3-rc1
|
||||
2012-08-19 David Schweikert <david@schweikert.ch>
|
||||
* Version 3.3
|
||||
* Do not output icmp errors with -q (#1)
|
||||
* Add --enable-ipv4 and --enable-ipv6 options to configure (Niclas Zeising)
|
||||
* Fix removing of unreachable hosts when doing loop (Thomas Liske, #13 #23)
|
||||
@@ -9,6 +9,8 @@ UNRELEAESD David Schweikert <david@schweikert.ch>
|
||||
* Set default data size to 56 bytes on all architectures (#18)
|
||||
* Added contrib/fping.spec (Stephen Schaefer, #24)
|
||||
* Convert man-page source to POD for easier maintenance
|
||||
* Fix error message on DNS error for IPv6 hosts (#27)
|
||||
* Fix -n flag in fping6 (#28)
|
||||
* Man-page fix: TOS option typo (Thomas Liske, #23)
|
||||
* Man-page fix: inconsistency in regards to numeric arguments (Robert Henney)
|
||||
* Man-page fix: better description of option -q (#15)
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ dnl Process this file with autoconf to produce a configure script.
|
||||
dnl Minimum Autoconf version required.
|
||||
AC_PREREQ(2.59)
|
||||
|
||||
AC_INIT([fping],[3.3-rc1])
|
||||
AC_INIT([fping],[3.3])
|
||||
|
||||
dnl make ipv4 and ipv6 options
|
||||
AC_ARG_ENABLE([ipv4],
|
||||
|
||||
+37
-27
@@ -859,7 +859,6 @@ int main( int argc, char **argv )
|
||||
FILE *ping_file;
|
||||
char line[132];
|
||||
char host[132];
|
||||
char *p;
|
||||
|
||||
if( strcmp( filename, "-" ) == 0 )
|
||||
ping_file = fdopen( 0, "r" );
|
||||
@@ -878,7 +877,7 @@ int main( int argc, char **argv )
|
||||
if( ( !*host ) || ( host[0] == '#' ) ) /* magic to avoid comments */
|
||||
continue;
|
||||
|
||||
add_name(p);
|
||||
add_name(host);
|
||||
}/* WHILE */
|
||||
|
||||
fclose( ping_file );
|
||||
@@ -2193,31 +2192,24 @@ void add_name( char *name )
|
||||
}/* WHILE */
|
||||
}/* ELSE */
|
||||
#else
|
||||
FPING_SOCKADDR dst;
|
||||
struct addrinfo *res, hints;
|
||||
int ret_ga;
|
||||
char *hostname;
|
||||
size_t len;
|
||||
FPING_SOCKADDR dst;
|
||||
struct addrinfo *res, hints;
|
||||
int ret_ga;
|
||||
size_t len;
|
||||
char *printname;
|
||||
char namebuf[256];
|
||||
char addrbuf[256];
|
||||
|
||||
/* getaddrinfo */
|
||||
bzero(&hints, sizeof(struct addrinfo));
|
||||
hints.ai_flags = name_flag ? AI_CANONNAME : 0;
|
||||
hints.ai_flags = 0;
|
||||
hints.ai_family = AF_INET6;
|
||||
hints.ai_socktype = SOCK_RAW;
|
||||
hints.ai_protocol = IPPROTO_ICMPV6;
|
||||
|
||||
ret_ga = getaddrinfo(name, NULL, &hints, &res);
|
||||
if (ret_ga) {
|
||||
if(!quiet_flag)
|
||||
warnx("%s", gai_strerror(ret_ga));
|
||||
num_noaddress++;
|
||||
return;
|
||||
}
|
||||
if (res->ai_canonname) hostname = res->ai_canonname;
|
||||
else hostname = name;
|
||||
if (!res->ai_addr) {
|
||||
if(!quiet_flag)
|
||||
warnx("getaddrinfo failed");
|
||||
print_warning("%s: %s\n", name, gai_strerror(ret_ga));
|
||||
num_noaddress++;
|
||||
return;
|
||||
}
|
||||
@@ -2225,22 +2217,40 @@ void add_name( char *name )
|
||||
if (len > sizeof(FPING_SOCKADDR)) len = sizeof(FPING_SOCKADDR);
|
||||
(void)memcpy(&dst, res->ai_addr, len);
|
||||
|
||||
/* numerical addresses requested */
|
||||
if(addr_flag) {
|
||||
char addrbuf[64];
|
||||
/* name_flag: addr -> name lookup requested) */
|
||||
if(!name_flag) {
|
||||
printname = name;
|
||||
}
|
||||
else {
|
||||
int ret;
|
||||
ret = getnameinfo(res->ai_addr, res->ai_addrlen, addrbuf,
|
||||
64, NULL, 0, NI_NUMERICHOST);
|
||||
ret = getnameinfo(res->ai_addr, res->ai_addrlen, namebuf,
|
||||
sizeof(namebuf)/sizeof(char), NULL, 0, 0);
|
||||
if (ret) {
|
||||
if(!quiet_flag) {
|
||||
warnx("%s", gai_strerror(ret_ga));
|
||||
print_warning("%s: %s\n", name, gai_strerror(ret_ga));
|
||||
}
|
||||
num_noaddress++;
|
||||
return;
|
||||
}
|
||||
printname = namebuf;
|
||||
}
|
||||
|
||||
/* addr_flag: name -> addr lookup requested */
|
||||
if(addr_flag) {
|
||||
int ret;
|
||||
ret = getnameinfo(res->ai_addr, res->ai_addrlen, addrbuf,
|
||||
sizeof(addrbuf)/sizeof(char), NULL, 0, NI_NUMERICHOST);
|
||||
if (ret) {
|
||||
if(!quiet_flag) {
|
||||
print_warning("%s: %s\n", name, gai_strerror(ret_ga));
|
||||
}
|
||||
num_noaddress++;
|
||||
return;
|
||||
}
|
||||
|
||||
if(name_flag) {
|
||||
char nameaddrbuf[256];
|
||||
snprintf(nameaddrbuf, 256, "%s (%s)", name, addrbuf);
|
||||
char nameaddrbuf[512];
|
||||
snprintf(nameaddrbuf, sizeof(nameaddrbuf)/sizeof(char), "%s (%s)", printname, addrbuf);
|
||||
add_addr(name, nameaddrbuf, &dst);
|
||||
}
|
||||
else {
|
||||
@@ -2248,7 +2258,7 @@ void add_name( char *name )
|
||||
}
|
||||
}
|
||||
else {
|
||||
add_addr(name, name, &dst);
|
||||
add_addr(name, printname, &dst);
|
||||
}
|
||||
#endif
|
||||
} /* add_name() */
|
||||
|
||||
Reference in New Issue
Block a user