diff options
author | Petr Vorel <pvorel@suse.cz> | 2017-09-14 15:04:48 +0200 |
---|---|---|
committer | Petr Vorel <pvorel@suse.cz> | 2017-10-30 13:00:41 +0100 |
commit | db77fb5b910f3865c158e761392bf7fc97c66ffa (patch) | |
tree | 98f0ab8aa8af02299563465ce7bbdadb83010645 /ping6_common.c | |
parent | 98dbf8e5909b81a5121e6d2a4cab6266d7a715e7 (diff) | |
download | iputils-db77fb5b910f3865c158e761392bf7fc97c66ffa.tar.gz |
Revert "correctly initialize first hop"
This reverts commit e25568f5e580d5631f533ae8474bcca40a011690.
as it breaks ping to local IPv6 interfaces:
$ ip addr |grep 'inet6'
inet6 fe80::fc54:ff:fe2d:cc21/64 scope link
$ ./ping -6 fe80::fc54:ff:fe2d:cc21
connect: Invalid argument
Fixes #99 (regression in #57).
Diffstat (limited to 'ping6_common.c')
-rw-r--r-- | ping6_common.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/ping6_common.c b/ping6_common.c index d9f5e69..c0b8396 100644 --- a/ping6_common.c +++ b/ping6_common.c @@ -775,7 +775,11 @@ int ping6_run(int argc, char **argv, struct addrinfo *ai, struct socket_st *sock } disable_capability_raw(); } - firsthop.sin6_family = AF_INET6; + + if (!IN6_IS_ADDR_LINKLOCAL(&firsthop.sin6_addr) && + !IN6_IS_ADDR_MC_LINKLOCAL(&firsthop.sin6_addr)) + firsthop.sin6_family = AF_INET6; + firsthop.sin6_port = htons(1025); if (connect(probe_fd, (struct sockaddr*)&firsthop, sizeof(firsthop)) == -1) { perror("connect"); |