From: German Service Network Date: Sun, 22 Mar 2026 08:08:21 +0000 (+0100) Subject: The --oiface option is not allowed with -I --iface X-Git-Url: https://git.gsnw.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5f240bb8d90f1a83edd900bbc38869571fa9a8c;p=fping.git The --oiface option is not allowed with -I --iface --- diff --git a/src/flags.c b/src/flags.c index 2c491e1..6b071b3 100644 --- a/src/flags.c +++ b/src/flags.c @@ -45,6 +45,8 @@ int opt_outage_on = 0; int opt_random_data_on = 0; int opt_check_source_on = 0; int opt_size_on = 0; +int opt_oiface_on = 0; +int opt_bindiface_on = 0; int opt_timestamp_on = 0; int opt_timestamp_format = 0; int opt_icmp_request_typ = 0; \ No newline at end of file diff --git a/src/flags.h b/src/flags.h index 9ab7922..84f345e 100644 --- a/src/flags.h +++ b/src/flags.h @@ -49,6 +49,8 @@ extern int opt_outage_on; extern int opt_random_data_on; extern int opt_check_source_on; extern int opt_size_on; +extern int opt_oiface_on; +extern int opt_bindiface_on; extern int opt_timestamp_on; extern int opt_timestamp_format; extern int opt_icmp_request_typ; diff --git a/src/fping.c b/src/fping.c index be9dcfc..abaebf7 100644 --- a/src/fping.c +++ b/src/fping.c @@ -600,6 +600,7 @@ int main(int argc, char **argv) } else if (strstr(optparse_state.optlongname, "seqmap-timeout") != NULL) { opt_seqmap_timeout = strtod_strict(optparse_state.optarg) * 1000000; } else if (strstr(optparse_state.optlongname, "oiface") != NULL) { + opt_oiface_on = 1; #ifdef IP_PKTINFO if (socket4 >= 0) { socket_set_outgoing_iface_ipv4(socket4, optparse_state.optarg); @@ -863,6 +864,7 @@ int main(int argc, char **argv) exit(1); case 'I': + opt_bindiface_on = 1; #ifdef SO_BINDTODEVICE if (socket4 >= 0) { if (p_setsockopt(suid, socket4, SOL_SOCKET, SO_BINDTODEVICE, optparse_state.optarg, strlen(optparse_state.optarg))) { @@ -955,6 +957,11 @@ int main(int argc, char **argv) exit(1); } + if (opt_oiface_on && opt_bindiface_on) { + fprintf(stderr, "%s: specify only --oiface or -I, --iface\n", prog); + exit(1); + } + if (opt_count_on && opt_loop_on) { fprintf(stderr, "%s: specify only one of c, l\n", prog); exit(1);