@@ -68,6 +68,7 @@ static void print_usage(const char *name)
6868 " -w <file> write log to <file> instead of stderr\n"
6969 "\n"
7070 "Advanced Options:\n"
71+ " -a work on all network interfaces (ignores -i)\n"
7172 " -b <file> use TCP payload from binary file (ignores -h)\n"
7273 " -f skip firewall rules\n"
7374 " -g disable hop count estimation\n"
@@ -103,7 +104,7 @@ int main(int argc, char *argv[])
103104 memset (g_ctx .iface , 0 , sizeof (g_ctx .iface ));
104105 exitcode = EXIT_FAILURE ;
105106
106- while ((opt = getopt (argc , argv , "0146b :dfh:i:km:n:r:st:w:x:z" )) != -1 ) {
107+ while ((opt = getopt (argc , argv , "0146ab :dfh:i:km:n:r:st:w:x:z" )) != -1 ) {
107108 switch (opt ) {
108109 case '0' :
109110 g_ctx .inbound = 1 ;
@@ -121,6 +122,10 @@ int main(int argc, char *argv[])
121122 g_ctx .use_ipv6 = 1 ;
122123 break ;
123124
125+ case 'a' :
126+ g_ctx .alliface = 1 ;
127+ break ;
128+
124129 case 'b' :
125130 g_ctx .payloadpath = optarg ;
126131 if (strlen (g_ctx .payloadpath ) > PATH_MAX - 1 ) {
@@ -286,7 +291,7 @@ int main(int argc, char *argv[])
286291 return EXIT_FAILURE ;
287292 }
288293
289- if (!iface_cnt ) {
294+ if (!g_ctx . alliface && ! iface_cnt ) {
290295 fprintf (stderr , "%s: option -i is required.\n" , argv [0 ]);
291296 print_usage (argv [0 ]);
292297 return EXIT_FAILURE ;
@@ -350,7 +355,9 @@ int main(int argc, char *argv[])
350355 EE ("WARNING: setpriority(): %s" , strerror (errno ));
351356 }
352357
353- if (iface_cnt > 1 ) {
358+ if (g_ctx .alliface ) {
359+ iface_info = "all interfaces" ;
360+ } else if (iface_cnt > 1 ) {
354361 iface_info = "multiple interfaces" ;
355362 } else {
356363 iface_info = g_ctx .iface [0 ];
0 commit comments