sec_vt_header: dissect cont_id + opnum
[metze/wireshark/wip.git] / captype.c
index 0e13422dc3f505db98efa2b86bb8e412867d64ce..1aed705f0201bbcd52d6bd772b2a8ba9ef6b8e2d 100644 (file)
--- a/captype.c
+++ b/captype.c
@@ -135,7 +135,7 @@ main(int argc, char *argv[])
   /* Set the C-language locale to the native environment. */
   setlocale(LC_ALL, "");
 
-  if ((argc - optind) < 1) {
+  if (argc < 2) {
     usage();
     return 1;
   }
@@ -145,10 +145,16 @@ main(int argc, char *argv[])
   for (i = 1; i < argc; i++) {
     wth = wtap_open_offline(argv[i], &err, &err_info, FALSE);
 
-    if (!wth) {
-      fprintf(stderr, "captype: Can't open %s: %s\n", argv[i],
-          wtap_strerror(err));
-      switch (err) {
+    if(wth) {
+      printf("%s: %s\n", argv[i], wtap_file_type_subtype_short_string(wtap_file_type_subtype(wth)));
+      wtap_close(wth);
+    } else {
+      if (err == WTAP_ERR_FILE_UNKNOWN_FORMAT)
+        printf("%s: unknown\n", argv[i]);
+      else {
+        fprintf(stderr, "captype: Can't open %s: %s\n", argv[i],
+                wtap_strerror(err));
+        switch (err) {
 
         case WTAP_ERR_UNSUPPORTED:
         case WTAP_ERR_UNSUPPORTED_ENCAP:
@@ -156,14 +162,11 @@ main(int argc, char *argv[])
           fprintf(stderr, "(%s)\n", err_info);
           g_free(err_info);
           break;
+        }
+        overall_error_status = 1; /* remember that an error has occurred */
       }
-      overall_error_status = 1; /* remember that an error has occurred */
     }
 
-    if(wth) {
-      printf("%s: %s\n", argv[i], wtap_file_type_subtype_short_string(wtap_file_type_subtype(wth)));
-      wtap_close(wth);
-    }
   }
 
   return overall_error_status;