aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap
diff options
context:
space:
mode:
Diffstat (limited to 'wiretap')
-rw-r--r--wiretap/wtap.c12
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 */