]> The Tcpdump Group git mirrors - tcpdump/blobdiff - tcpdump.c
use existing PGM decoder for UDP-encapsulated PGM
[tcpdump] / tcpdump.c
index 49029b8988ab6486fdf4627fc41fe356673dd0a5..a32701cf459d46cf9afa7392d815c6c1f7211dc2 100644 (file)
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -1011,6 +1011,12 @@ main(int argc, char **argv)
                                packettype = PT_CARP;
                        else if (strcasecmp(optarg, "radius") == 0)
                                packettype = PT_RADIUS;
+                       else if (strcasecmp(optarg, "zmtp1") == 0)
+                               packettype = PT_ZMTP1;
+                       else if (strcasecmp(optarg, "vxlan") == 0)
+                               packettype = PT_VXLAN;
+                       else if (strcasecmp(optarg, "pgm") == 0)
+                               packettype = PT_PGM;
                        else
                                error("unknown packet type `%s'", optarg);
                        break;
@@ -1210,8 +1216,8 @@ main(int argc, char **argv)
                 * Print a message to the standard error on Windows.
                 * XXX - why do it here, with a different message?
                 */
-               if(strlen(device) == 1) //we assume that an ASCII string is always longer than 1 char
-               {                                               //a Unicode string has a \0 as second byte (so strlen() is 1)
+               if(strlen(device) == 1) /* we assume that an ASCII string is always longer than 1 char */
+               {                                               /* a Unicode string has a \0 as second byte (so strlen() is 1) */
                        fprintf(stderr, "%s: listening on %ws\n", program_name, device);
                }
                else
@@ -1541,6 +1547,14 @@ main(int argc, char **argv)
                        }
                        (void)fflush(stdout);
                }
+                if (status == -2) {
+                       /*
+                        * We got interrupted. If we are reading multiple
+                        * files (via -V) set these so that we stop.
+                        */
+                       VFileName = NULL;
+                       ret = NULL;
+               }
                if (status == -1) {
                        /*
                         * Error.  Report it.