diff options
-rw-r--r-- | wiretap/file.c | 39 | ||||
-rw-r--r-- | wiretap/file.h | 11 | ||||
-rw-r--r-- | wiretap/iptrace.c | 17 | ||||
-rw-r--r-- | wiretap/lanalyzer.c | 35 | ||||
-rw-r--r-- | wiretap/libpcap.c | 22 | ||||
-rw-r--r-- | wiretap/netmon.c | 22 | ||||
-rw-r--r-- | wiretap/netxray.c | 22 | ||||
-rw-r--r-- | wiretap/ngsniffer.c | 42 | ||||
-rw-r--r-- | wiretap/radcom.c | 41 | ||||
-rw-r--r-- | wiretap/snoop.c | 27 | ||||
-rw-r--r-- | wiretap/wtap.c | 12 | ||||
-rw-r--r-- | wiretap/wtap.h | 13 |
12 files changed, 157 insertions, 146 deletions
diff --git a/wiretap/file.c b/wiretap/file.c index bedaf92b6f..7a24ab3a05 100644 --- a/wiretap/file.c +++ b/wiretap/file.c @@ -1,6 +1,6 @@ /* file.c * - * $Id: file.c,v 1.24 1999/09/24 05:49:50 guy Exp $ + * $Id: file.c,v 1.25 1999/10/05 07:06:05 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu> @@ -261,3 +261,40 @@ int wtap_dump_close(wtap_dumper *wdh, int *err) return ret; } +/* + * Routine to return a Wiretap error code (0 for no error, an errno + * for a file error, or a WTAP_ERR_ code for other errors) for an + * I/O stream. + */ +#ifdef HAVE_LIBZ +int +file_error(void *fh) +{ + int errnum; + + gzerror(fh, &errnum); + switch (errnum) { + + case Z_OK: /* no error */ + return 0; + + case Z_STREAM_END: /* EOF - not an error */ + return 0; + + case Z_ERRNO: /* file I/O error */ + return errno; + + default: + return WTAP_ERR_ZLIB + errnum; + } +} +#else /* HAVE_LIBZ */ +int +file_error(FILE *fh) +{ + if (ferror(fh)) + return errno; + else + return 0; +} +#endif /* HAVE_LIBZ */ diff --git a/wiretap/file.h b/wiretap/file.h index eea3b3af06..d30592f3fb 100644 --- a/wiretap/file.h +++ b/wiretap/file.h @@ -1,6 +1,6 @@ /* file.h * - * $Id: file.h,v 1.3 1999/09/24 05:49:50 guy Exp $ + * $Id: file.h,v 1.4 1999/10/05 07:06:05 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu> @@ -33,12 +33,7 @@ #define file_close gzclose #define file_tell gztell #define file_getc gzgetc -static inline int file_error(void *fh) { - int errnum; - gzerror(fh, &errnum); - if (errnum<0) return errnum; - return 0; -} +extern int file_error(void *fh); #else /* No zLib */ #define file_open fopen @@ -47,7 +42,7 @@ static inline int file_error(void *fh) { #define file_read fread #define file_write fwrite #define file_close fclose -#define file_error ferror +extern int file_error(FILE *fh); #define file_tell ftell #define file_getc fgetc #endif /* HAVE_LIBZ */ diff --git a/wiretap/iptrace.c b/wiretap/iptrace.c index c8ffbf2b3f..ab2b05139d 100644 --- a/wiretap/iptrace.c +++ b/wiretap/iptrace.c @@ -1,6 +1,6 @@ /* iptrace.c * - * $Id: iptrace.c,v 1.12 1999/09/24 05:49:50 guy Exp $ + * $Id: iptrace.c,v 1.13 1999/10/05 07:06:05 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu> @@ -44,10 +44,9 @@ int iptrace_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(name, 1, 11, wth->fh); if (bytes_read != 11) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += 11; @@ -74,10 +73,9 @@ static int iptrace_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(header, 1, 40, wth->fh); if (bytes_read != 40) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } if (bytes_read != 0) { *err = WTAP_ERR_SHORT_READ; return -1; @@ -96,9 +94,8 @@ static int iptrace_read(wtap *wth, int *err) packet_size, wth->fh); if (bytes_read != packet_size) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } diff --git a/wiretap/lanalyzer.c b/wiretap/lanalyzer.c index 97c9045f43..dc31977a3a 100644 --- a/wiretap/lanalyzer.c +++ b/wiretap/lanalyzer.c @@ -1,6 +1,6 @@ /* lanalyzer.c * - * $Id: lanalyzer.c,v 1.16 1999/09/24 05:49:51 guy Exp $ + * $Id: lanalyzer.c,v 1.17 1999/10/05 07:06:05 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu> @@ -67,10 +67,9 @@ int lanalyzer_open(wtap *wth, int *err) bytes_read = file_read(LE_record_type, 1, 2, wth->fh); bytes_read += file_read(LE_record_length, 1, 2, wth->fh); if (bytes_read != 4) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += 4; @@ -97,8 +96,8 @@ int lanalyzer_open(wtap *wth, int *err) bytes_read = file_read(LE_record_type, 1, 2, wth->fh); bytes_read += file_read(LE_record_length, 1, 2, wth->fh); if (bytes_read != 4) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) { free(wth->capture.lanalyzer); return -1; } @@ -118,8 +117,8 @@ int lanalyzer_open(wtap *wth, int *err) bytes_read = file_read(summary, 1, sizeof summary, wth->fh); if (bytes_read != sizeof summary) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) { g_free(wth->capture.lanalyzer); return -1; } @@ -214,10 +213,9 @@ static int lanalyzer_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(LE_record_type, 1, 2, wth->fh); if (bytes_read != 2) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } if (bytes_read != 0) { *err = WTAP_ERR_SHORT_READ; return -1; @@ -227,9 +225,8 @@ static int lanalyzer_read(wtap *wth, int *err) wth->data_offset += 2; bytes_read = file_read(LE_record_length, 1, 2, wth->fh); if (bytes_read != 2) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } @@ -255,9 +252,8 @@ static int lanalyzer_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(descriptor, 1, DESCRIPTOR_LEN, wth->fh); if (bytes_read != DESCRIPTOR_LEN) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } @@ -271,9 +267,8 @@ static int lanalyzer_read(wtap *wth, int *err) packet_size, wth->fh); if (bytes_read != packet_size) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } diff --git a/wiretap/libpcap.c b/wiretap/libpcap.c index 2f22d78154..f4dfc19d35 100644 --- a/wiretap/libpcap.c +++ b/wiretap/libpcap.c @@ -1,6 +1,6 @@ /* libpcap.c * - * $Id: libpcap.c,v 1.20 1999/09/24 05:49:51 guy Exp $ + * $Id: libpcap.c,v 1.21 1999/10/05 07:06:06 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu> @@ -152,10 +152,9 @@ int libpcap_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&magic, 1, sizeof magic, wth->fh); if (bytes_read != sizeof magic) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += sizeof magic; @@ -173,10 +172,9 @@ int libpcap_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&hdr, 1, sizeof hdr, wth->fh); if (bytes_read != sizeof hdr) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += sizeof hdr; @@ -227,10 +225,9 @@ static int libpcap_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&hdr, 1, sizeof hdr, wth->fh); if (bytes_read != sizeof hdr) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } if (bytes_read != 0) { *err = WTAP_ERR_SHORT_READ; return -1; @@ -285,9 +282,8 @@ static int libpcap_read(wtap *wth, int *err) packet_size, wth->fh); if (bytes_read != packet_size) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } diff --git a/wiretap/netmon.c b/wiretap/netmon.c index 7aeb64a69b..614660433f 100644 --- a/wiretap/netmon.c +++ b/wiretap/netmon.c @@ -1,6 +1,6 @@ /* netmon.c * - * $Id: netmon.c,v 1.15 1999/09/24 05:49:51 guy Exp $ + * $Id: netmon.c,v 1.16 1999/10/05 07:06:06 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu> @@ -122,10 +122,9 @@ int netmon_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(magic, 1, sizeof magic, wth->fh); if (bytes_read != sizeof magic) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } @@ -138,10 +137,9 @@ int netmon_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&hdr, 1, sizeof hdr, wth->fh); if (bytes_read != sizeof hdr) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } @@ -254,10 +252,9 @@ static int netmon_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&hdr, 1, hdr_size, wth->fh); if (bytes_read != hdr_size) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } if (bytes_read != 0) { *err = WTAP_ERR_SHORT_READ; return -1; @@ -293,9 +290,8 @@ static int netmon_read(wtap *wth, int *err) packet_size, wth->fh); if (bytes_read != packet_size) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } diff --git a/wiretap/netxray.c b/wiretap/netxray.c index e70ec096b2..926dc32045 100644 --- a/wiretap/netxray.c +++ b/wiretap/netxray.c @@ -1,6 +1,6 @@ /* netxray.c * - * $Id: netxray.c,v 1.15 1999/09/24 05:49:51 guy Exp $ + * $Id: netxray.c,v 1.16 1999/10/05 07:06:06 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu> @@ -121,10 +121,9 @@ int netxray_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(magic, 1, sizeof magic, wth->fh); if (bytes_read != sizeof magic) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += sizeof magic; @@ -137,10 +136,9 @@ int netxray_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&hdr, 1, sizeof hdr, wth->fh); if (bytes_read != sizeof hdr) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += sizeof hdr; @@ -241,10 +239,9 @@ reread: errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&hdr, 1, hdr_size, wth->fh); if (bytes_read != hdr_size) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } if (bytes_read != 0) { *err = WTAP_ERR_SHORT_READ; return -1; @@ -272,9 +269,8 @@ reread: packet_size, wth->fh); if (bytes_read != packet_size) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } diff --git a/wiretap/ngsniffer.c b/wiretap/ngsniffer.c index 4bd358cc91..f148e9413e 100644 --- a/wiretap/ngsniffer.c +++ b/wiretap/ngsniffer.c @@ -1,6 +1,6 @@ /* ngsniffer.c * - * $Id: ngsniffer.c,v 1.24 1999/09/30 20:34:26 guy Exp $ + * $Id: ngsniffer.c,v 1.25 1999/10/05 07:06:07 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu> @@ -274,10 +274,9 @@ int ngsniffer_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(magic, 1, 17, wth->fh); if (bytes_read != 17) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += 17; @@ -296,10 +295,9 @@ int ngsniffer_open(wtap *wth, int *err) bytes_read = file_read(record_type, 1, 2, wth->fh); bytes_read += file_read(record_length, 1, 4, wth->fh); if (bytes_read != 6) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += 6; @@ -316,10 +314,9 @@ int ngsniffer_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&version, 1, sizeof version, wth->fh); if (bytes_read != sizeof version) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += sizeof version; @@ -411,10 +408,9 @@ static int ngsniffer_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(record_type, 1, 2, wth->fh); if (bytes_read != 2) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } if (bytes_read != 0) { *err = WTAP_ERR_SHORT_READ; return -1; @@ -425,9 +421,8 @@ static int ngsniffer_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(record_length, 1, 4, wth->fh); if (bytes_read != 4) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } @@ -453,9 +448,8 @@ static int ngsniffer_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&frame2, 1, sizeof frame2, wth->fh); if (bytes_read != sizeof frame2) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } @@ -490,9 +484,8 @@ static int ngsniffer_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&frame4, 1, sizeof frame4, wth->fh); if (bytes_read != sizeof frame4) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } @@ -565,9 +558,8 @@ found: length, wth->fh); if (bytes_read != length) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } diff --git a/wiretap/radcom.c b/wiretap/radcom.c index 6fac1bf283..9787fff8fc 100644 --- a/wiretap/radcom.c +++ b/wiretap/radcom.c @@ -1,6 +1,6 @@ /* radcom.c * - * $Id: radcom.c,v 1.12 1999/09/24 05:49:52 guy Exp $ + * $Id: radcom.c,v 1.13 1999/10/05 07:06:07 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu> @@ -85,10 +85,9 @@ int radcom_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(magic, 1, 8, wth->fh); if (bytes_read != 8) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } @@ -101,10 +100,9 @@ int radcom_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&byte, 1, 1, wth->fh); if (bytes_read != 1) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += 1; @@ -112,10 +110,9 @@ int radcom_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&byte, 1, 1, wth->fh); if (bytes_read != 1) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += 1; @@ -127,10 +124,9 @@ int radcom_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&start_date, 1, sizeof(struct frame_date), wth->fh); if (bytes_read != sizeof(struct frame_date)) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += sizeof(struct frame_date); @@ -215,8 +211,8 @@ int radcom_open(wtap *wth, int *err) return 1; read_error: - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) { free(wth->capture.radcom); return -1; } @@ -239,10 +235,9 @@ static int radcom_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&hdr, 1, sizeof hdr, wth->fh); if (bytes_read != sizeof hdr) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } if (bytes_read != 0) { *err = WTAP_ERR_SHORT_READ; return -1; @@ -281,9 +276,8 @@ static int radcom_read(wtap *wth, int *err) length, wth->fh); if (bytes_read != length) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } @@ -297,9 +291,8 @@ static int radcom_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&fcs, 1, sizeof fcs, wth->fh); if (bytes_read != sizeof fcs) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } diff --git a/wiretap/snoop.c b/wiretap/snoop.c index 187721a1f0..479baf809e 100644 --- a/wiretap/snoop.c +++ b/wiretap/snoop.c @@ -1,6 +1,6 @@ /* snoop.c * - * $Id: snoop.c,v 1.13 1999/09/28 01:19:01 guy Exp $ + * $Id: snoop.c,v 1.14 1999/10/05 07:06:07 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu> @@ -82,10 +82,9 @@ int snoop_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(magic, 1, sizeof magic, wth->fh); if (bytes_read != sizeof magic) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += sizeof magic; @@ -98,10 +97,9 @@ int snoop_open(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&hdr, 1, sizeof hdr, wth->fh); if (bytes_read != sizeof hdr) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } return 0; } wth->data_offset += sizeof hdr; @@ -145,10 +143,9 @@ static int snoop_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(&hdr, 1, sizeof hdr, wth->fh); if (bytes_read != sizeof hdr) { - if (file_error(wth->fh)) { - *err = errno; + *err = file_error(wth->fh); + if (*err != 0) return -1; - } if (bytes_read != 0) { *err = WTAP_ERR_SHORT_READ; return -1; @@ -175,9 +172,8 @@ static int snoop_read(wtap *wth, int *err) packet_size, wth->fh); if (bytes_read != packet_size) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } @@ -204,9 +200,8 @@ static int snoop_read(wtap *wth, int *err) errno = WTAP_ERR_CANT_READ; bytes_read = file_read(padbuf, 1, bytes_to_read, wth->fh); if (bytes_read != bytes_to_read) { - if (file_error(wth->fh)) - *err = errno; - else + *err = file_error(wth->fh); + if (*err == 0) *err = WTAP_ERR_SHORT_READ; return -1; } diff --git a/wiretap/wtap.c b/wiretap/wtap.c index a8ad39fcbd..e4a85ec7ff 100644 --- a/wiretap/wtap.c +++ b/wiretap/wtap.c @@ -1,6 +1,6 @@ /* wtap.c * - * $Id: wtap.c,v 1.22 1999/09/24 05:49:53 guy Exp $ + * $Id: wtap.c,v 1.23 1999/10/05 07:06:07 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu> @@ -123,7 +123,15 @@ const char *wtap_strerror(int err) if (err < 0) { wtap_errlist_index = -1 - err; if (wtap_errlist_index >= WTAP_ERRLIST_SIZE) { - sprintf(errbuf, "Error %d", err); +#ifdef HAVE_ZLIB + if (err >= WTAP_ERR_ZLIB_MIN + && err <= WTAP_ERR_ZLIB_MAX) { + /* Assume it's a zlib error. */ + sprintf(errbuf, "Zlib error: %s", + zError(err)); + } else +#endif + sprintf(errbuf, "Error %d", err); return errbuf; } if (wtap_errlist[wtap_errlist_index] == NULL) diff --git a/wiretap/wtap.h b/wiretap/wtap.h index 84dedcb863..22e76a611c 100644 --- a/wiretap/wtap.h +++ b/wiretap/wtap.h @@ -1,6 +1,6 @@ /* wtap.h * - * $Id: wtap.h,v 1.41 1999/09/24 05:49:53 guy Exp $ + * $Id: wtap.h,v 1.42 1999/10/05 07:06:08 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu> @@ -393,6 +393,17 @@ int wtap_pcap_encap_to_wtap_encap(int encap); #define WTAP_ERR_SHORT_WRITE -12 /* An attempt to write wrote less data than it should have */ +/* Errors from zlib; zlib error Z_xxx turns into Wiretap error + WTAP_ERR_ZLIB + Z_xxx. + + WTAP_ERR_ZLIB_MIN and WTAP_ERR_ZLIB_MAX bound the range of zlib + errors; we leave room for 100 positive and 100 negative error + codes. */ + +#define WTAP_ERR_ZLIB -200 +#define WTAP_ERR_ZLIB_MAX -100 +#define WTAP_ERR_ZLIB_MIN -300 + /* Pointer versions of ntohs and ntohl. Given a pointer to a member of a * byte array, returns the value of the two or four bytes at the pointer. * The pletoh[sl] versions return the little-endian representation. |