svn commit: r261427 - stable/9/tools/tools/mcgrab
George V. Neville-Neil
gnn at FreeBSD.org
Mon Feb 3 03:35:44 UTC 2014
Author: gnn
Date: Mon Feb 3 03:35:43 2014
New Revision: 261427
URL: http://svnweb.freebsd.org/changeset/base/261427
Log:
MFC: 260791
Add a command line argument to turn off blocking waiting for the user
to press Ctrl-C (-b). This allows tests with tight loops of mcgrabs
that can stress the multicast tables.
Modified:
stable/9/tools/tools/mcgrab/mcgrab.cc
Directory Properties:
stable/9/tools/tools/mcgrab/ (props changed)
Modified: stable/9/tools/tools/mcgrab/mcgrab.cc
==============================================================================
--- stable/9/tools/tools/mcgrab/mcgrab.cc Mon Feb 3 03:34:36 2014 (r261426)
+++ stable/9/tools/tools/mcgrab/mcgrab.cc Mon Feb 3 03:35:43 2014 (r261427)
@@ -88,7 +88,7 @@ void usage(string message)
//
// @return 0 for 0K, -1 for error, sets errno
//
-void grab(char *interface, struct in_addr *group, int number) {
+void grab(char *interface, struct in_addr *group, int number, int block) {
int sock;
@@ -138,8 +138,10 @@ void grab(char *interface, struct in_add
group->s_addr = htonl(ntohl(group->s_addr) + 1);
}
- printf("Press Control-C to exit.\n");
- sleep(INT_MAX);
+ if (block > 0) {
+ printf("Press Control-C to exit.\n");
+ sleep(INT_MAX);
+ }
}
@@ -160,11 +162,12 @@ int main(int argc, char**argv)
char* interface = 0; ///< Name of the interface
struct in_addr *group = NULL; ///< the multicast group address
int number = 0; ///< Number of addresses to grab
+ int block = 1; ///< Do we block or just return?
- if (argc != 7)
+ if ((argc < 7) || (argc > 8))
usage();
- while ((ch = getopt(argc, argv, "g:i:n:h")) != -1) {
+ while ((ch = getopt(argc, argv, "g:i:n:bh")) != -1) {
switch (ch) {
case 'g':
group = new (struct in_addr );
@@ -178,12 +181,15 @@ int main(int argc, char**argv)
case 'n':
number = atoi(optarg);
break;
+ case 'b':
+ block = 0;
+ break;
case 'h':
usage(string("Help\n"));
break;
}
}
- grab(interface, group, number);
+ grab(interface, group, number, block);
}
More information about the svn-src-stable-9
mailing list