"This file format can't be written to a pipe" and "this file format
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 12 Apr 2011 00:44:44 +0000 (00:44 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 12 Apr 2011 00:44:44 +0000 (00:44 +0000)
can't be saved in compress form" are both equivalent to "this file file
format requires seeking when writing it".  Change the "can compress"
Boolean in the file format table to "writing requires seeking", give all
the entries the proper value, and do the checks for attempting to write
a file format to a pipe or write it in compressed format to common code.

This means we don't need to pass the "can't seek" flag to the dump open
routines.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@36575 f5534014-38df-0310-8fa8-9805f1628bb7

37 files changed:
wiretap/5views.c
wiretap/5views.h
wiretap/btsnoop.c
wiretap/btsnoop.h
wiretap/catapult_dct2000.c
wiretap/catapult_dct2000.h
wiretap/commview.c
wiretap/commview.h
wiretap/eyesdn.c
wiretap/eyesdn.h
wiretap/file_access.c
wiretap/k12.c
wiretap/k12.h
wiretap/k12text.l
wiretap/lanalyzer.c
wiretap/lanalyzer.h
wiretap/libpcap.c
wiretap/libpcap.h
wiretap/netmon.c
wiretap/netmon.h
wiretap/netscaler.c
wiretap/netscaler.h
wiretap/nettl.c
wiretap/nettl.h
wiretap/network_instruments.c
wiretap/network_instruments.h
wiretap/netxray.c
wiretap/netxray.h
wiretap/ngsniffer.c
wiretap/ngsniffer.h
wiretap/pcapng.c
wiretap/pcapng.h
wiretap/snoop.c
wiretap/snoop.h
wiretap/visual.c
wiretap/visual.h
wiretap/wtap.h

index 8cfff5e15d2915da64fca7817b5bc0430d5122d6..5352a7be4c2c48677d945d307e9b812ec97e3a4a 100644 (file)
@@ -377,18 +377,10 @@ int _5views_dump_can_write_encap(int encap)
 
 /* Returns TRUE on success, FALSE on failure; sets "*err" to an error code on
    failure */
-gboolean _5views_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err)
+gboolean _5views_dump_open(wtap_dumper *wdh, int *err)
 {
        _5views_dump_t *_5views;
 
-       /* This is a 5Views file.  We can't fill in some fields in the
-          header until all the packets have been written, so we can't
-          write to a pipe. */
-       if (cant_seek) {
-               *err = WTAP_ERR_CANT_WRITE_TO_PIPE;
-               return FALSE;
-       }
-
        /* We can't fill in all the fields in the file header, as we
           haven't yet written any packets.  As we'll have to rewrite
           the header when we've written out all the packets, we just
index bc4a9df84201815f792d8b7a75befb5fa0a616d6..f51aa30e0abd0e4e606134506b31e16f35286d77 100644 (file)
@@ -24,7 +24,7 @@
 #define __5VIEWS_H__
 
 int _5views_open(wtap *wth, int *err, gchar **err_info);
-gboolean _5views_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean _5views_dump_open(wtap_dumper *wdh, int *err);
 int _5views_dump_can_write_encap(int encap);
 
 #endif
index fd266f16b4212e2a9166fd979792a961273342bd..bd965f5a2992d80ed85599590468df376a8bafd6 100644 (file)
@@ -431,7 +431,7 @@ static gboolean btsnoop_dump_h4(wtap_dumper *wdh,
 }
 
 /* FIXME: How do we support multiple backends?*/
-gboolean btsnoop_dump_open_h1(wtap_dumper *wdh, gboolean cant_seek _U_, int *err)
+gboolean btsnoop_dump_open_h1(wtap_dumper *wdh, int *err)
 {
     struct btsnoop_hdr file_hdr;
 
@@ -473,7 +473,7 @@ gboolean btsnoop_dump_open_h1(wtap_dumper *wdh, gboolean cant_seek _U_, int *err
 
 /* Returns TRUE on success, FALSE on failure; sets "*err" to an error code on
    failure */
-gboolean btsnoop_dump_open_h4(wtap_dumper *wdh, gboolean cant_seek _U_, int *err)
+gboolean btsnoop_dump_open_h4(wtap_dumper *wdh, int *err)
 {
     struct btsnoop_hdr file_hdr;
 
index 288fece637cc81e41960b9c1e78700e307b14c8a..e141d4248610946b817f708e5e7fa92628a0613b 100644 (file)
@@ -24,8 +24,8 @@
 #define __W_BTSNOOP_H__
 
 int btsnoop_open(wtap *wth, int *err, gchar **err_info);
-gboolean btsnoop_dump_open_h1(wtap_dumper *wdh, gboolean cant_seek, int *err);
-gboolean btsnoop_dump_open_h4(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean btsnoop_dump_open_h1(wtap_dumper *wdh, int *err);
+gboolean btsnoop_dump_open_h4(wtap_dumper *wdh, int *err);
 int btsnoop_dump_can_write_encap(int encap);
 
 #endif
index cfc21a7249dbffb0a6e9aa9c4ed87a1f27be8092..91a90673742f26c3f3af7b2ca94c418d2ab45ba1 100644 (file)
@@ -571,7 +571,7 @@ typedef struct {
 /* The file that we are writing to has been opened.  */
 /* Set other dump callbacks.                         */
 /*****************************************************/
-gboolean catapult_dct2000_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err _U_)
+gboolean catapult_dct2000_dump_open(wtap_dumper *wdh, int *err _U_)
 {
     /* Fill in other dump callbacks */
     wdh->subtype_write = catapult_dct2000_dump;
index 95253a7fdc0d7243b73448aa25e8b7d02e717c37..4b8773a69a600066fa7f56af2e058c406c40fc30 100644 (file)
@@ -21,7 +21,7 @@
 */
 
 int catapult_dct2000_open(wtap *wth, int *err, gchar **err_info);
-gboolean catapult_dct2000_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean catapult_dct2000_dump_open(wtap_dumper *wdh, int *err);
 int catapult_dct2000_dump_can_write_encap(int encap);
 
 #define DCT2000_ENCAP_UNHANDLED 0
index 266132ecadd5f8854e7f34e60c0334804600d170..4b4781663d417b7289a0a5af11da15b77bcc6fa3 100644 (file)
@@ -300,8 +300,7 @@ int commview_dump_can_write_encap(int encap)
 
 /* Returns TRUE on success, FALSE on failure;
    sets "*err" to an error code on failure */
-gboolean commview_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_,
-                           int *err _U_)
+gboolean commview_dump_open(wtap_dumper *wdh, int *err _U_)
 {
        wdh->subtype_write = commview_dump;
        wdh->subtype_close = NULL;
index 4fc5e2a780dc5c07759a662c518cff9e42ff2ffe..f7220de25092700df4d997454ac0a40cc07a0a14 100644 (file)
@@ -27,7 +27,7 @@
 
 int commview_open(wtap *wth, int *err, gchar **err_info _U_);
 int commview_dump_can_write_encap(int encap);
-gboolean commview_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err);
+gboolean commview_dump_open(wtap_dumper *wdh, int *err);
 
 #endif /* __COMMVIEW_H__ */
 
index 4f5446761e4bdf683376d54b20587ba0b0f42090..51f4926810fafa680dda7911545a421906c82e2f 100644 (file)
@@ -428,7 +428,7 @@ static gboolean eyesdn_dump(wtap_dumper *wdh,
                            const union wtap_pseudo_header *pseudo_header _U_,
                            const guchar *pd, int *err);
 
-gboolean eyesdn_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err)
+gboolean eyesdn_dump_open(wtap_dumper *wdh, int *err)
 {
        wdh->subtype_write=eyesdn_dump;
        wdh->subtype_close=NULL;
index 5df4419c0d307e0dded1f2d0d11273a4b5bc0563..3f64e947cb380fab7760c76e824fdf981db60b80 100644 (file)
@@ -37,7 +37,7 @@ enum EyeSDN_TYPES {
     EYESDN_ENCAP_BACNET
 };
 
-gboolean eyesdn_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err);
+gboolean eyesdn_dump_open(wtap_dumper *wdh, int *err);
 int eyesdn_dump_can_write_encap(int encap);
 
 #endif
index 3070b44f047ed80d0a5820315262c8380c58ac88..c50e4b30a6effbe9f923191f65267cef2d5dc96b 100644 (file)
@@ -398,35 +398,35 @@ static const struct file_type_info dump_open_table_base[] = {
          NULL, NULL },
 
        /* WTAP_FILE_PCAP */
-       { "Wireshark/tcpdump/... - libpcap", "libpcap", "*.pcap;*.cap", ".pcap", TRUE, FALSE,
+       { "Wireshark/tcpdump/... - libpcap", "libpcap", "*.pcap;*.cap", ".pcap", FALSE, FALSE,
          libpcap_dump_can_write_encap, libpcap_dump_open },
 
        /* WTAP_FILE_PCAP_NSEC */
-       { "Wireshark - nanosecond libpcap", "nseclibpcap", "*.pcap;*.cap", ".pcap", TRUE, FALSE,
+       { "Wireshark - nanosecond libpcap", "nseclibpcap", "*.pcap;*.cap", ".pcap", FALSE, FALSE,
          libpcap_dump_can_write_encap, libpcap_dump_open },
 
        /* WTAP_FILE_PCAP_AIX */
-       { "AIX tcpdump - libpcap", "aixlibpcap", "*.pcap;*.cap", ".pcap", TRUE, FALSE,
+       { "AIX tcpdump - libpcap", "aixlibpcap", "*.pcap;*.cap", ".pcap", FALSE, FALSE,
          NULL, NULL },
 
        /* WTAP_FILE_PCAP_SS991029 */
-       { "Modified tcpdump - libpcap", "modlibpcap", "*.pcap;*.cap", ".pcap", TRUE, FALSE,
+       { "Modified tcpdump - libpcap", "modlibpcap", "*.pcap;*.cap", ".pcap", FALSE, FALSE,
          libpcap_dump_can_write_encap, libpcap_dump_open },
 
        /* WTAP_FILE_PCAP_NOKIA */
-       { "Nokia tcpdump - libpcap ", "nokialibpcap", "*.pcap;*.cap", ".pcap", TRUE, FALSE,
+       { "Nokia tcpdump - libpcap ", "nokialibpcap", "*.pcap;*.cap", ".pcap", FALSE, FALSE,
          libpcap_dump_can_write_encap, libpcap_dump_open },
 
        /* WTAP_FILE_PCAP_SS990417 */
-       { "RedHat 6.1 tcpdump - libpcap", "rh6_1libpcap", "*.pcap;*.cap", ".pcap", TRUE, FALSE,
+       { "RedHat 6.1 tcpdump - libpcap", "rh6_1libpcap", "*.pcap;*.cap", ".pcap", FALSE, FALSE,
          libpcap_dump_can_write_encap, libpcap_dump_open },
 
        /* WTAP_FILE_PCAP_SS990915 */
-       { "SuSE 6.3 tcpdump - libpcap", "suse6_3libpcap", "*.pcap;*.cap", ".pcap", TRUE, FALSE,
+       { "SuSE 6.3 tcpdump - libpcap", "suse6_3libpcap", "*.pcap;*.cap", ".pcap", FALSE, FALSE,
          libpcap_dump_can_write_encap, libpcap_dump_open },
 
        /* WTAP_FILE_5VIEWS */
-       { "Accellent 5Views capture", "5views", "*.5vw", ".5vw", FALSE, FALSE,
+       { "Accellent 5Views capture", "5views", "*.5vw", ".5vw", TRUE, FALSE,
          _5views_dump_can_write_encap, _5views_dump_open },
 
        /* WTAP_FILE_IPTRACE_1_0 */
@@ -498,11 +498,11 @@ static const struct file_type_info dump_open_table_base[] = {
          NULL, NULL },
 
        /* WTAP_FILE_NETMON_1_x */
-       { "Microsoft NetMon 1.x", "netmon1", "*.cap", ".cap", FALSE, FALSE,
+       { "Microsoft NetMon 1.x", "netmon1", "*.cap", ".cap", TRUE, FALSE,
          netmon_dump_can_write_encap, netmon_dump_open },
 
        /* WTAP_FILE_NETMON_2_x */
-       { "Microsoft NetMon 2.x", "netmon2", "*.cap", ".cap", FALSE, FALSE,
+       { "Microsoft NetMon 2.x", "netmon2", "*.cap", ".cap", TRUE, FALSE,
          netmon_dump_can_write_encap, netmon_dump_open },
 
        /* WTAP_FILE_NGSNIFFER_UNCOMPRESSED */
@@ -514,19 +514,19 @@ static const struct file_type_info dump_open_table_base[] = {
          NULL, NULL },
 
        /* WTAP_FILE_NETXRAY_1_1 */
-       { "NA Sniffer (Windows) 1.1", "ngwsniffer_1_1", "*.cap", ".cap", FALSE, FALSE,
+       { "NA Sniffer (Windows) 1.1", "ngwsniffer_1_1", "*.cap", ".cap", TRUE, FALSE,
          netxray_dump_can_write_encap_1_1, netxray_dump_open_1_1 },
 
        /* WTAP_FILE_NETXRAY_2_00x */
-       { "NA Sniffer (Windows) 2.00x", "ngwsniffer_2_0", "*.cap", ".cap", FALSE, FALSE,
+       { "NA Sniffer (Windows) 2.00x", "ngwsniffer_2_0", "*.cap", ".cap", TRUE, FALSE,
          netxray_dump_can_write_encap_2_0, netxray_dump_open_2_0 },
 
        /* WTAP_FILE_NETWORK_INSTRUMENTS_V9 */
-       { "Network Instruments Observer (V9)", "niobserverv9", "*.bfr", ".bfr", FALSE, FALSE,
+       { "Network Instruments Observer (V9)", "niobserverv9", "*.bfr", ".bfr", TRUE, FALSE,
          network_instruments_dump_can_write_encap, network_instruments_dump_open },
 
        /* WTAP_FILE_LANALYZER */
-       { "Novell LANalyzer","lanalyzer", "*.tr1", ".tr1", FALSE, FALSE,
+       { "Novell LANalyzer","lanalyzer", "*.tr1", ".tr1", TRUE, FALSE,
          lanalyzer_dump_can_write_encap, lanalyzer_dump_open },
 
        /* WTAP_FILE_PPPDUMP */
@@ -550,7 +550,7 @@ static const struct file_type_info dump_open_table_base[] = {
          NULL, NULL},
 
        /* WTAP_FILE_K12 */
-       { "Tektronix K12xx 32-bit .rf5 format", "rf5", "*.rf5", ".rf5", TRUE, FALSE,
+       { "Tektronix K12xx 32-bit .rf5 format", "rf5", "*.rf5", ".rf5", FALSE, FALSE,
                k12_dump_can_write_encap, k12_dump_open },
 
        /* WTAP_FILE_TOSHIBA */
@@ -558,7 +558,7 @@ static const struct file_type_info dump_open_table_base[] = {
          NULL, NULL },
 
        /* WTAP_FILE_VISUAL_NETWORKS */
-       { "Visual Networks traffic capture", "visual", "*.*", NULL, FALSE, FALSE,
+       { "Visual Networks traffic capture", "visual", "*.*", NULL, TRUE, FALSE,
          visual_dump_can_write_encap, visual_dump_open },
 
        /* WTAP_FILE_ETHERPEEK_V56 */
@@ -578,7 +578,7 @@ static const struct file_type_info dump_open_table_base[] = {
          NULL, NULL },
 
        /* WTAP_FILE_K12TEXT  */
-       { "K12 text file", "k12text", "*.txt", ".txt", TRUE, FALSE,
+       { "K12 text file", "k12text", "*.txt", ".txt", FALSE, FALSE,
          k12text_dump_can_write_encap, k12text_dump_open },
 
        /* WTAP_FILE_NETSCREEN */
@@ -586,7 +586,7 @@ static const struct file_type_info dump_open_table_base[] = {
          NULL, NULL },
 
        /* WTAP_FILE_COMMVIEW */
-       { "TamoSoft CommView", "commview", "*.ncf", ".ncf", TRUE, FALSE,
+       { "TamoSoft CommView", "commview", "*.ncf", ".ncf", FALSE, FALSE,
          commview_dump_can_write_encap, commview_dump_open },
 
        /* WTAP_FILE_PCAPNG */
@@ -618,11 +618,11 @@ static const struct file_type_info dump_open_table_base[] = {
          NULL, NULL },
 
        /* WTAP_FILE_NETSCALER_1_0 */
-       { "NetScaler Trace (Version 1.0)", "nstrace10", "*.*", "*.*", FALSE, FALSE,
+       { "NetScaler Trace (Version 1.0)", "nstrace10", "*.*", "*.*", TRUE, FALSE,
          nstrace_10_dump_can_write_encap, nstrace_dump_open },
 
        /* WTAP_FILE_NETSCALER_2_0 */
-       { "NetScaler Trace (Version 2.0)", "nstrace20", "*.cap", "*.cap", FALSE, FALSE,
+       { "NetScaler Trace (Version 2.0)", "nstrace20", "*.cap", "*.cap", TRUE, FALSE,
          nstrace_20_dump_can_write_encap, nstrace_dump_open },
 
        /* WTAP_FILE_JPEG_JFIF */
@@ -741,8 +741,13 @@ gboolean wtap_dump_can_write_encap(int filetype, int encap)
 #ifdef HAVE_LIBZ
 gboolean wtap_dump_can_compress(int filetype)
 {
+       /*
+        * If this is an unknown file type, or if we have to
+        * seek when writing out a file with this file type,
+        * return FALSE.
+        */
        if (filetype < 0 || filetype >= wtap_num_file_types
-           || dump_open_table[filetype].can_compress == FALSE)
+           || dump_open_table[filetype].writing_must_seek)
                return FALSE;
 
        return TRUE;
@@ -931,8 +936,14 @@ static gboolean wtap_dump_open_finish(wtap_dumper *wdh, int filetype, gboolean c
                }
        }
 
+       /* If this file type requires seeking, and we can't seek, fail. */
+       if (dump_open_table[filetype].writing_must_seek && cant_seek) {
+               *err = WTAP_ERR_CANT_WRITE_TO_PIPE;
+               return FALSE;
+       }
+
        /* Now try to open the file for writing. */
-       if (!(*dump_open_table[filetype].dump_open)(wdh, cant_seek, err)) {
+       if (!(*dump_open_table[filetype].dump_open)(wdh, err)) {
                return FALSE;
        }
 
index 3b23224a0abfa5680432a4f8270acf3d1c9b8181..300f92fbb25f2f6649f37812594b760afd405077 100644 (file)
@@ -1056,14 +1056,9 @@ static gboolean k12_dump_close(wtap_dumper *wdh, int *err) {
 }
 
 
-gboolean k12_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err) {
+gboolean k12_dump_open(wtap_dumper *wdh, int *err) {
     k12_dump_t *k12;
 
-    if (cant_seek) {
-        *err = WTAP_ERR_CANT_WRITE_TO_PIPE;
-        return FALSE;
-    }
-
     if ( ! wtap_dump_file_write(wdh, k12_file_magic, 8, err)) {
         return FALSE;
     }
index d5ebe19f28ec5f6a0446dcfe40db2060c951627d..29bb7163284dc69ce891c9b7589ce7c04fa1ec6f 100644 (file)
@@ -22,7 +22,7 @@
 
 int k12_open(wtap *wth, int *err, gchar **err_info);
 int k12_dump_can_write_encap(int encap);
-gboolean k12_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err);
+gboolean k12_dump_open(wtap_dumper *wdh, int *err);
 int k12text_open(wtap *wth, int *err, gchar **err_info _U_);
 int k12text_dump_can_write_encap(int encap);
-gboolean k12text_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err);
+gboolean k12text_dump_open(wtap_dumper *wdh, int *err);
index 04b61e9f345fbc6ac8c0a8efc0beebe83b782d4c..a8fba9edbce8fb1be6f7727a13220c4e1354d4d2 100644 (file)
@@ -395,14 +395,8 @@ k12text_dump(wtap_dumper *wdh _U_, const struct wtap_pkthdr *phdr,
 
 
 gboolean
-k12text_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err)
+k12text_dump_open(wtap_dumper *wdh, int *err)
 {
-
-    if (cant_seek) {
-       *err = WTAP_ERR_CANT_WRITE_TO_PIPE;
-       return FALSE;
-    }
-
     wdh->subtype_write = k12text_dump;
 
     return TRUE;
index 77f6ac9b4ad805869610b7f3eede5718ff30261d..5719c09a56029976107749a06d10f32abdee9c05 100644 (file)
@@ -600,19 +600,11 @@ int lanalyzer_dump_can_write_encap(int encap)
  * Returns TRUE on success, FALSE on failure; sets "*err" to an
  * error code on failure
  *---------------------------------------------------*/
-gboolean lanalyzer_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err)
+gboolean lanalyzer_dump_open(wtap_dumper *wdh, int *err)
 {
       int   jump;
       void  *tmp;
 
-      /* This is a LANalyzer file.  We can't fill in some fields in the
-         header until all the packets have been written, so we can't
-         write to a pipe. */
-      if (cant_seek) {
-             *err = WTAP_ERR_CANT_WRITE_TO_PIPE;
-             return FALSE;
-            }
-
       tmp = g_malloc(sizeof(LA_TmpInfo));
       if (!tmp) {
              *err = errno;
index 88420d2b93546748a6e931434c5c246c3920b0d5..6c54a0c024b1eb20d810ddb560c36f3d5559f7d4 100644 (file)
@@ -170,7 +170,7 @@ typedef struct {
       } LA_TmpInfo;
 
 int         lanalyzer_open(wtap *wth, int *err, gchar **err_info);
-gboolean    lanalyzer_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean    lanalyzer_dump_open(wtap_dumper *wdh, int *err);
 int         lanalyzer_dump_can_write_encap(int encap);
 
 #endif
index 03ffed19b7cf030b1eb6d5ea711eb24686d3ce7b..5e65da7183343fd12742b6e6315a74bd449cfe91 100644 (file)
@@ -907,7 +907,7 @@ int libpcap_dump_can_write_encap(int encap)
 
 /* Returns TRUE on success, FALSE on failure; sets "*err" to an error code on
    failure */
-gboolean libpcap_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err)
+gboolean libpcap_dump_open(wtap_dumper *wdh, int *err)
 {
        guint32 magic;
        struct pcap_hdr file_hdr;
index 401cf343a71a33d093057db532fb3ba61c096e49..69be8cb2c7ad9c36039dbeb607b266a8bf109274 100644 (file)
@@ -99,7 +99,7 @@ struct pcaprec_nokia_hdr {
 };
 
 int libpcap_open(wtap *wth, int *err, gchar **err_info);
-gboolean libpcap_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean libpcap_dump_open(wtap_dumper *wdh, int *err);
 int libpcap_dump_can_write_encap(int encap);
 
 #endif
index 2f2f1334fa9f879200a4d3ae194a65067b311ceb..d31b32c561afee51fb730ef3f7cebd839b10c73b 100644 (file)
@@ -798,18 +798,10 @@ int netmon_dump_can_write_encap(int encap)
 
 /* Returns TRUE on success, FALSE on failure; sets "*err" to an error code on
    failure */
-gboolean netmon_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err)
+gboolean netmon_dump_open(wtap_dumper *wdh, int *err)
 {
        netmon_dump_t *netmon;
 
-       /* This is a NetMon file.  We can't fill in some fields in the
-          header until all the packets have been written, so we can't
-          write to a pipe. */
-       if (cant_seek) {
-               *err = WTAP_ERR_CANT_WRITE_TO_PIPE;
-               return FALSE;
-       }
-
        /* We can't fill in all the fields in the file header, as we
           haven't yet written any packets.  As we'll have to rewrite
           the header when we've written out all the packets, we just
index 93105475258baf2c9a0961613b2ff30ba8a434a1..599a4e2fd2721e1b673ff3446e9d61634a164f32 100644 (file)
@@ -24,7 +24,7 @@
 #define __NETMON_H__
 
 int netmon_open(wtap *wth, int *err, gchar **err_info);
-gboolean netmon_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean netmon_dump_open(wtap_dumper *wdh, int *err);
 int netmon_dump_can_write_encap(int encap);
 
 #endif
index 03c996d5f64ad2ad4c4f1fed3db00b46bc6c5152..f1e646a15aad838dc336ff94882a95ec39964d30 100644 (file)
@@ -1058,16 +1058,10 @@ int nstrace_20_dump_can_write_encap(int encap)
 
 /* Returns TRUE on success, FALSE on failure; sets "*err" to an error code on
 ** failure */
-gboolean nstrace_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err)
+gboolean nstrace_dump_open(wtap_dumper *wdh, int *err _U_)
 {
        nstrace_dump_t *nstrace;
 
-       if (cant_seek)
-       {
-               *err = WTAP_ERR_CANT_WRITE_TO_PIPE;
-               return FALSE;
-       }
-
        wdh->subtype_write = nstrace_dump;
 
        nstrace = (nstrace_dump_t *)g_malloc(sizeof(nstrace_dump_t));
index 8e1edb5dbe614b915895a31a6d1abe990eb72d2c..0b40fac3057f07030cd6a0645ef4e4073780e6ba 100644 (file)
@@ -76,7 +76,7 @@ int nstrace_open(wtap *wth, int *err, gchar **err_info);
 int nstrace_10_dump_can_write_encap(int encap);
 int nstrace_20_dump_can_write_encap(int encap);
 
-gboolean nstrace_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean nstrace_dump_open(wtap_dumper *wdh, int *err);
 
 
 #endif /* _NETSCALER_H */
index b384947980973cc73caea16c9822b7ae8d76f2ac..29c8dfdc18ffa4459e4d3bbd1bbb7c5c2ca64a91 100644 (file)
@@ -722,7 +722,7 @@ int nettl_dump_can_write_encap(int encap)
 
 /* Returns TRUE on success, FALSE on failure;
    sets "*err" to an error code on failure */
-gboolean nettl_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err)
+gboolean nettl_dump_open(wtap_dumper *wdh, int *err)
 {
        struct nettl_file_hdr file_hdr;
 
index be65ab63f58a4dfdcdeede421fff18dc5775897f..6fca41f44bb057a9cbdc19094ad74fce8c370551 100644 (file)
 #define NETTL_HDR_PDU_MASK              0x30000000
 
 int nettl_open(wtap *wth, int *err, gchar **err_info);
-gboolean nettl_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err);
+gboolean nettl_dump_open(wtap_dumper *wdh, int *err);
 int nettl_dump_can_write_encap(int encap);
 
 #endif
index fb985331832840e5fb91f247f0eb8f6c1d43bd9a..b11a526f591fdb33f6f4236767da25d82cc3b5e7 100644 (file)
@@ -491,7 +491,7 @@ int network_instruments_dump_can_write_encap(int encap)
 
 /* Returns TRUE on success, FALSE on failure; sets "*err" to an error code on
    failure. */
-gboolean network_instruments_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err)
+gboolean network_instruments_dump_open(wtap_dumper *wdh, int *err)
 {
        capture_file_header file_header;
        tlv_header comment_header;
@@ -500,11 +500,6 @@ gboolean network_instruments_dump_open(wtap_dumper *wdh, gboolean cant_seek, int
        time_t system_time;
        niobserver_dump_t *niobserver;
 
-       if (cant_seek) {
-               *err = WTAP_ERR_CANT_WRITE_TO_PIPE;
-               return FALSE;
-       }
-
        wdh->subtype_write = observer_dump;
 
        niobserver = (niobserver_dump_t *)g_malloc(sizeof(niobserver_dump_t));
index 64e1f78d090c827795797ed0adf67af422045b7d..2000bcd043be5735f8cbcee7ab50f0b186a77824 100644 (file)
@@ -24,7 +24,7 @@
 
 int network_instruments_open(wtap *wth, int *err, gchar **err_info);
 int network_instruments_dump_can_write_encap(int encap);
-gboolean network_instruments_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean network_instruments_dump_open(wtap_dumper *wdh, int *err);
 
 typedef struct capture_file_header
 {
index e08a952cb9307957f1174fce5482c1e48606b493..32f5120764d5216c0e5ee196c0e76a2d24b56da0 100644 (file)
@@ -1508,18 +1508,10 @@ int netxray_dump_can_write_encap_1_1(int encap)
 
 /* Returns TRUE on success, FALSE on failure; sets "*err" to an error code on
    failure */
-gboolean netxray_dump_open_1_1(wtap_dumper *wdh, gboolean cant_seek, int *err)
+gboolean netxray_dump_open_1_1(wtap_dumper *wdh, int *err)
 {
     netxray_dump_t *netxray;
 
-    /* This is a NetXRay file.  We can't fill in some fields in the header
-       until all the packets have been written, so we can't write to a
-       pipe. */
-    if (cant_seek) {
-       *err = WTAP_ERR_CANT_WRITE_TO_PIPE;
-       return FALSE;
-    }
-
     wdh->subtype_write = netxray_dump_1_1;
     wdh->subtype_close = netxray_dump_close_1_1;
 
@@ -1676,18 +1668,10 @@ int netxray_dump_can_write_encap_2_0(int encap)
 
 /* Returns TRUE on success, FALSE on failure; sets "*err" to an error code on
    failure */
-gboolean netxray_dump_open_2_0(wtap_dumper *wdh, gboolean cant_seek, int *err)
+gboolean netxray_dump_open_2_0(wtap_dumper *wdh, int *err)
 {
     netxray_dump_t *netxray;
 
-    /* This is a NetXRay file.  We can't fill in some fields in the header
-       until all the packets have been written, so we can't write to a
-       pipe. */
-    if (cant_seek) {
-       *err = WTAP_ERR_CANT_WRITE_TO_PIPE;
-       return FALSE;
-    }
-
     wdh->subtype_write = netxray_dump_2_0;
     wdh->subtype_close = netxray_dump_close_2_0;
 
index eeb33196721ead450ebc6b5346107a8e20145219..56054d12e1bcb5a8862110b6b9134f74535d3573 100644 (file)
@@ -25,8 +25,8 @@
 
 int netxray_open(wtap *wth, int *err, gchar **err_info);
 int netxray_dump_can_write_encap_1_1(int encap);
-gboolean netxray_dump_open_1_1(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean netxray_dump_open_1_1(wtap_dumper *wdh, int *err);
 int netxray_dump_can_write_encap_2_0(int encap);
-gboolean netxray_dump_open_2_0(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean netxray_dump_open_2_0(wtap_dumper *wdh, int *err);
 
 #endif
index d102f5709bdceba43fba330f6e34646d60fa76ab..10cd3d4ede30505d86ed11094bdf1682672c828a 100644 (file)
@@ -2038,7 +2038,7 @@ ngsniffer_dump_can_write_encap(int encap)
 /* Returns TRUE on success, FALSE on failure; sets "*err" to an error code on
    failure */
 gboolean
-ngsniffer_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err)
+ngsniffer_dump_open(wtap_dumper *wdh, int *err)
 {
     ngsniffer_dump_t *ngsniffer;
     char buf[6] = {REC_VERS, 0x00, 0x12, 0x00, 0x00, 0x00}; /* version record */
index 7260947eeb913b5ce024264281da349e27d99467..afbc4993a0a22ce2c222ded4d32e55446999c550 100644 (file)
@@ -24,7 +24,7 @@
 #define __NGSNIFFER_H__
 
 int ngsniffer_open(wtap *wth, int *err, gchar **err_info);
-gboolean ngsniffer_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean ngsniffer_dump_open(wtap_dumper *wdh, int *err);
 int ngsniffer_dump_can_write_encap(int encap);
 
 #endif
index dbd51ace536e109fc3de39d33fa73d21f25718ae..d3f6c4700a9b8202bf7cc99d47bc1218388eaa04 100644 (file)
@@ -2023,7 +2023,7 @@ static gboolean pcapng_dump_close(wtap_dumper *wdh, int *err _U_)
 /* Returns TRUE on success, FALSE on failure; sets "*err" to an error code on
    failure */
 gboolean
-pcapng_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err)
+pcapng_dump_open(wtap_dumper *wdh, int *err)
 {
        wtapng_block_t wblock;
        pcapng_dump_t *pcapng;
index b5b037ebd4cc845a5f0b7e608208cf092365481f..a65ee6ff70ade81795cecf67d57895c4000fdfd7 100644 (file)
@@ -24,7 +24,7 @@
 #define __W_PCAPNG_H__
 
 int pcapng_open(wtap *wth, int *err, gchar **err_info);
-gboolean pcapng_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean pcapng_dump_open(wtap_dumper *wdh, int *err);
 int pcapng_dump_can_write_encap(int encap);
 
 #endif
index 12cad4430486aea667006c4908aac37e4f0c5c01..7822c55f4de7d0bbde4ed4b2fe629e44d8230483 100644 (file)
@@ -875,7 +875,7 @@ int snoop_dump_can_write_encap(int encap)
 
 /* Returns TRUE on success, FALSE on failure; sets "*err" to an error code on
    failure */
-gboolean snoop_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err)
+gboolean snoop_dump_open(wtap_dumper *wdh, int *err)
 {
        struct snoop_hdr file_hdr;
 
index c52972ae101cfb3311eed303679686ec9ba2363b..0cba84dadd98daeb3e4f2364f49dd630a6bdad27 100644 (file)
@@ -24,7 +24,7 @@
 #define __W_SNOOP_H__
 
 int snoop_open(wtap *wth, int *err, gchar **err_info);
-gboolean snoop_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean snoop_dump_open(wtap_dumper *wdh, int *err);
 int snoop_dump_can_write_encap(int encap);
 
 #endif
index c1bbd0db5f887af565ea8727f6392f9640d30666..949c1051723e505cbd066b348a02ec2fb88f02ef 100644 (file)
@@ -661,17 +661,10 @@ int visual_dump_can_write_encap(int encap)
 /* Open a file for writing.
    Returns TRUE on success, FALSE on failure; sets "*err" to an
    error code on failure */
-gboolean visual_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err)
+gboolean visual_dump_open(wtap_dumper *wdh, int *err)
 {
     struct visual_write_info *visual;
 
-    /* We can't fill in some fields in the header until all the packets
-       have been written, so we can't write to a pipe. */
-    if (cant_seek) {
-       *err = WTAP_ERR_CANT_WRITE_TO_PIPE;
-       return FALSE;
-    }
-
     /* Set the write routines for a visual file. */
     wdh->subtype_write = visual_dump;
     wdh->subtype_close = visual_dump_close;
index 9e3279123493f6003fd16ed6c35c9731eb154bea..b028a78ca0aa97368742b19fc590b8ca460dc15a 100644 (file)
@@ -29,7 +29,7 @@
 #define __VISUAL_H__
 
 int visual_open(wtap *wth, int *err, gchar **err_info);
-gboolean visual_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err);
+gboolean visual_dump_open(wtap_dumper *wdh, int *err);
 int visual_dump_can_write_encap(int encap);
 
 #endif
index 6b0eb6e7cf5ad813290dcca8bfb4ab711dc04eb4..858dcf052067b9ec8b1422265d39ff5266b2e93f 100644 (file)
@@ -822,7 +822,6 @@ struct wtap_dumper;
 typedef struct wtap wtap;
 typedef struct wtap_dumper wtap_dumper;
 
-/* XXX Should this be moved to wtap-int.h? It appears to be internal to wtap.c. */
 struct file_type_info {
     /* the file type name */
     /* should be NULL for all "pseudo" types that are only internally used and not read/writeable */
@@ -840,8 +839,8 @@ struct file_type_info {
     /* should be NULL if no default extension is known */
     const char *file_extension_default;
 
-    /* can this type be compressed with gzip? */
-    gboolean can_compress;
+    /* when writing this file format, is seeking required? */
+    gboolean writing_must_seek;
 
     /* does this type support name resolution records? */
     /* should be FALSE is this file type doesn't support name resolution records */
@@ -853,7 +852,7 @@ struct file_type_info {
 
     /* the function to open the capture file for writing */
     /* should be NULL is this file type don't have write support */
-    int (*dump_open)(wtap_dumper *, gboolean, int *);
+    int (*dump_open)(wtap_dumper *, int *);
 };