From f7b91633c447fb313f299392500eb12fda0e5612 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 29 Jun 2018 21:22:09 -0700 Subject: randpktdump: add --delay option For testing live capture mode in the Qt UI, it is useful to have a continous capture source with some dummy packets. Change-Id: Id76ecbf24828dd3212b208c96679524e4c25b00f Reviewed-on: https://code.wireshark.org/review/28537 Petri-Dish: Peter Wu Tested-by: Petri Dish Buildbot Reviewed-by: Dario Lombardo Reviewed-by: Anders Broman --- extcap/randpktdump.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'extcap/randpktdump.c') diff --git a/extcap/randpktdump.c b/extcap/randpktdump.c index a977a455e9..4fa76e3526 100644 --- a/extcap/randpktdump.c +++ b/extcap/randpktdump.c @@ -29,6 +29,7 @@ enum { OPT_VERSION, OPT_MAXBYTES, OPT_COUNT, + OPT_DELAY, OPT_RANDOM_TYPE, OPT_ALL_RANDOM, OPT_TYPE @@ -40,6 +41,7 @@ static struct option longopts[] = { { "version", no_argument, NULL, OPT_VERSION}, { "maxbytes", required_argument, NULL, OPT_MAXBYTES}, { "count", required_argument, NULL, OPT_COUNT}, + { "delay", required_argument, NULL, OPT_DELAY}, { "random-type", no_argument, NULL, OPT_RANDOM_TYPE}, { "all-random", no_argument, NULL, OPT_ALL_RANDOM}, { "type", required_argument, NULL, OPT_TYPE}, @@ -89,6 +91,9 @@ static int list_config(char *interface) printf("arg {number=%u}{call=--count}{display=Number of packets}" "{type=long}{default=1000}{tooltip=Number of packets to generate (-1 for infinite)}\n", inc++); + printf("arg {number=%u}{call=--delay}{display=Packet delay (ms)}" + "{type=long}{default=0}{tooltip=Milliseconds to wait after writing each packet}\n", + inc++); printf("arg {number=%u}{call=--random-type}{display=Random type}" "{type=boolflag}{default=false}{tooltip=The packets type is randomly chosen}\n", inc++); @@ -120,6 +125,7 @@ int main(int argc, char *argv[]) int result; guint16 maxbytes = 5000; guint64 count = 1000; + guint64 packet_delay_ms = 0; int random_type = FALSE; int all_random = FALSE; char* type = NULL; @@ -156,6 +162,7 @@ int main(int argc, char *argv[]) extcap_help_add_option(extcap_conf, "--version", "print the version"); extcap_help_add_option(extcap_conf, "--maxbytes ", "max bytes per pack"); extcap_help_add_option(extcap_conf, "--count ", "number of packets to generate"); + extcap_help_add_option(extcap_conf, "--delay ", "milliseconds to wait after writing each packet"); extcap_help_add_option(extcap_conf, "--random-type", "one random type is chosen for all packets"); extcap_help_add_option(extcap_conf, "--all-random", "a random type is chosen for each packet"); extcap_help_add_option(extcap_conf, "--type ", "the packet type"); @@ -196,6 +203,13 @@ int main(int argc, char *argv[]) } break; + case OPT_DELAY: + if (!ws_strtou64(optarg, NULL, &packet_delay_ms)) { + g_warning("Invalid packet delay: %s", optarg); + goto end; + } + break; + case OPT_RANDOM_TYPE: random_type = TRUE; break; @@ -275,7 +289,7 @@ int main(int argc, char *argv[]) g_debug("Generating packets: %s", example->abbrev); randpkt_example_init(example, extcap_conf->fifo, maxbytes); - randpkt_loop(example, count); + randpkt_loop(example, count, packet_delay_ms); randpkt_example_close(example); } else { produce_type = randpkt_parse_type(NULL); @@ -285,7 +299,7 @@ int main(int argc, char *argv[]) randpkt_example_init(example, extcap_conf->fifo, maxbytes); while (count-- > 0) { - randpkt_loop(example, 1); + randpkt_loop(example, 1, packet_delay_ms); produce_type = randpkt_parse_type(NULL); savedump = example->dump; -- cgit v1.2.3