make fping fail if it cannot bind the interface (-I)

pull/163/head
Konrad Bucheli 5 years ago
parent 12961d59ec
commit bc9ce2fdf1

@ -5,6 +5,7 @@ UNRELEASED
- Corrected long option name of -s to --stats (#148, thanks @wopfel) - Corrected long option name of -s to --stats (#148, thanks @wopfel)
- Do not fail if using fping6 with -6 flag (#149, thanks @stromnet) - Do not fail if using fping6 with -6 flag (#149, thanks @stromnet)
- Fail if interface binding (-I) does not work (by @kbucheli)
fping 4.2 (2019-02-19) fping 4.2 (2019-02-19)
====================== ======================

@ -626,7 +626,7 @@ int main(int argc, char** argv)
case 'x': case 'x':
if (!(min_reachable = (unsigned int)atoi(optparse_state.optarg))) if (!(min_reachable = (unsigned int)atoi(optparse_state.optarg)))
usage(1); usage(1);
break; break;
case 'f': case 'f':
@ -658,12 +658,14 @@ int main(int argc, char** argv)
if (socket4 >= 0) { if (socket4 >= 0) {
if (setsockopt(socket4, SOL_SOCKET, SO_BINDTODEVICE, optparse_state.optarg, strlen(optparse_state.optarg))) { if (setsockopt(socket4, SOL_SOCKET, SO_BINDTODEVICE, optparse_state.optarg, strlen(optparse_state.optarg))) {
perror("binding to specific interface (SO_BINTODEVICE)"); perror("binding to specific interface (SO_BINTODEVICE)");
exit(1);
} }
} }
#ifdef IPV6 #ifdef IPV6
if (socket6 >= 0) { if (socket6 >= 0) {
if (setsockopt(socket6, SOL_SOCKET, SO_BINDTODEVICE, optparse_state.optarg, strlen(optparse_state.optarg))) { if (setsockopt(socket6, SOL_SOCKET, SO_BINDTODEVICE, optparse_state.optarg, strlen(optparse_state.optarg))) {
perror("binding to specific interface (SO_BINTODEVICE), IPV6"); perror("binding to specific interface (SO_BINTODEVICE), IPV6");
exit(1);
} }
} }
#endif #endif

Loading…
Cancel
Save