diff options
| -rw-r--r-- | plugins/check_fping.c | 19 | 
1 files changed, 19 insertions, 0 deletions
diff --git a/plugins/check_fping.c b/plugins/check_fping.c index 49235e28..67fa2363 100644 --- a/plugins/check_fping.c +++ b/plugins/check_fping.c  | |||
| @@ -60,6 +60,8 @@ static int packet_count = PACKET_COUNT; | |||
| 60 | static int target_timeout = 0; | 60 | static int target_timeout = 0; | 
| 61 | static int packet_interval = 0; | 61 | static int packet_interval = 0; | 
| 62 | static bool verbose = false; | 62 | static bool verbose = false; | 
| 63 | static bool dontfrag = false; | ||
| 64 | static bool randomize_packet_data = false; | ||
| 63 | static int cpl; | 65 | static int cpl; | 
| 64 | static int wpl; | 66 | static int wpl; | 
| 65 | static double crta; | 67 | static double crta; | 
| @@ -103,6 +105,11 @@ int main(int argc, char **argv) { | |||
| 103 | xasprintf(&option_string, "%s-S %s ", option_string, sourceip); | 105 | xasprintf(&option_string, "%s-S %s ", option_string, sourceip); | 
| 104 | if (sourceif) | 106 | if (sourceif) | 
| 105 | xasprintf(&option_string, "%s-I %s ", option_string, sourceif); | 107 | xasprintf(&option_string, "%s-I %s ", option_string, sourceif); | 
| 108 | if (dontfrag) | ||
| 109 | xasprintf(&option_string, "%s-M ", option_string); | ||
| 110 | if (randomize_packet_data) | ||
| 111 | xasprintf(&option_string, "%s-R ", option_string); | ||
| 112 | |||
| 106 | 113 | ||
| 107 | #ifdef PATH_TO_FPING6 | 114 | #ifdef PATH_TO_FPING6 | 
| 108 | if (address_family != AF_INET && is_inet6_addr(server)) | 115 | if (address_family != AF_INET && is_inet6_addr(server)) | 
| @@ -279,6 +286,8 @@ int process_arguments(int argc, char **argv) { | |||
| 279 | {"help", no_argument, 0, 'h'}, | 286 | {"help", no_argument, 0, 'h'}, | 
| 280 | {"use-ipv4", no_argument, 0, '4'}, | 287 | {"use-ipv4", no_argument, 0, '4'}, | 
| 281 | {"use-ipv6", no_argument, 0, '6'}, | 288 | {"use-ipv6", no_argument, 0, '6'}, | 
| 289 | {"dontfrag", no_argument, 0, 'M'}, | ||
| 290 | {"random", no_argument, 0, 'R'}, | ||
| 282 | {0, 0, 0, 0}}; | 291 | {0, 0, 0, 0}}; | 
| 283 | 292 | ||
| 284 | rv[PL] = NULL; | 293 | rv[PL] = NULL; | 
| @@ -390,6 +399,12 @@ int process_arguments(int argc, char **argv) { | |||
| 390 | else | 399 | else | 
| 391 | usage(_("Interval must be a positive integer")); | 400 | usage(_("Interval must be a positive integer")); | 
| 392 | break; | 401 | break; | 
| 402 | case 'R': | ||
| 403 | randomize_packet_data = true; | ||
| 404 | break; | ||
| 405 | case 'M': | ||
| 406 | dontfrag = true; | ||
| 407 | break; | ||
| 393 | } | 408 | } | 
| 394 | } | 409 | } | 
| 395 | 410 | ||
| @@ -470,6 +485,10 @@ void print_help(void) { | |||
| 470 | printf(" %s\n", _("name or IP Address of sourceip")); | 485 | printf(" %s\n", _("name or IP Address of sourceip")); | 
| 471 | printf(" %s\n", "-I, --sourceif=IF"); | 486 | printf(" %s\n", "-I, --sourceif=IF"); | 
| 472 | printf(" %s\n", _("source interface name")); | 487 | printf(" %s\n", _("source interface name")); | 
| 488 | printf(" %s\n", "-M, --dontfrag"); | ||
| 489 | printf(" %s\n", _("set the Don't Fragment flag")); | ||
| 490 | printf(" %s\n", "-R, --random"); | ||
| 491 | printf(" %s\n", _("random packet data (to foil link data compression)")); | ||
| 473 | printf(UT_VERBOSE); | 492 | printf(UT_VERBOSE); | 
| 474 | printf("\n"); | 493 | printf("\n"); | 
| 475 | printf(" %s\n", _("THRESHOLD is <rta>,<pl>%% where <rta> is the round trip average travel time (ms)")); | 494 | printf(" %s\n", _("THRESHOLD is <rta>,<pl>%% where <rta> is the round trip average travel time (ms)")); | 
