diff options
Diffstat (limited to 'wiretap')
-rw-r--r-- | wiretap/wtap.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/wiretap/wtap.c b/wiretap/wtap.c index a1d76d7cd0..f3a12b1432 100644 --- a/wiretap/wtap.c +++ b/wiretap/wtap.c @@ -35,6 +35,10 @@ #include <unistd.h> #endif +#ifdef HAVE_LIBZ +#include <zlib.h> +#endif + #include "wtap-int.h" #include "wtap.h" @@ -646,6 +650,14 @@ wtap_read(wtap *wth, int *err, gchar **err_info, gint64 *data_offset) */ wth->phdr.pkt_encap = wth->file_encap; +#if defined(ZLIB_VERNUM) && ZLIB_VERNUM == 0x1250 + /* Reset EOF */ + /* g_log(NULL, G_LOG_LEVEL_DEBUG, "wtap_read: eof before seek: %d", gzeof(wth->fh)); */ + if (gzeof(wth->fh)) + gzseek(wth->fh, 0, SEEK_CUR); + /* g_log(NULL, G_LOG_LEVEL_DEBUG, "wtap_read: eof after seek: %d", gzeof(wth->fh)); */ +#endif + if (!wth->subtype_read(wth, err, err_info, data_offset)) return FALSE; /* failure */ |