summaryrefslogtreecommitdiff
path: root/wiretap/packetlogger.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2011-04-21 09:41:52 +0000
committerGuy Harris <guy@alum.mit.edu>2011-04-21 09:41:52 +0000
commit6cbf6ce16c45c4855ebddd3516465885e3c476d5 (patch)
tree299ce4fc08cb26cc0c0712c6b54de9c76893e7ca /wiretap/packetlogger.c
parent0315e063e4267b97fc7716301350af07dd0f2bea (diff)
downloadwireshark-6cbf6ce16c45c4855ebddd3516465885e3c476d5.tar.gz
Add a new WTAP_ERR_DECOMPRESS error, and use that for errors discovered
by the gunzipping code. Have it also supply a err_info string, and report it. Have file_error() supply an err_info string. Put "the file" - or, for WTAP_ERR_DECOMPRESS, "the compressed file", to suggest a decompression error - into the rawshark and tshark errors, along the lines of what other programs print. Fix a case in the Netscaler code where we weren't fetching the error code on a read failure. svn path=/trunk/; revision=36748
Diffstat (limited to 'wiretap/packetlogger.c')
-rw-r--r--wiretap/packetlogger.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/wiretap/packetlogger.c b/wiretap/packetlogger.c
index 956c11d9e8..3cb4b92945 100644
--- a/wiretap/packetlogger.c
+++ b/wiretap/packetlogger.c
@@ -50,22 +50,22 @@ typedef struct packetlogger_header {
#define PACKETLOGGER_HEADER_SIZE 12
-static gboolean packetlogger_read(wtap *wth, int *err, gchar **err_info _U_,
+static gboolean packetlogger_read(wtap *wth, int *err, gchar **err_info,
gint64 *data_offset);
static gboolean packetlogger_seek_read(wtap *wth, gint64 seek_off,
union wtap_pseudo_header *pseudo_header _U_,
guchar *pd, int length, int *err,
- gchar **err_info _U_);
+ gchar **err_info);
static gboolean packetlogger_read_header(packetlogger_header_t *pl_hdr,
- FILE_T fh, int *err);
+ FILE_T fh, int *err, gchar **err_info);
-int packetlogger_open(wtap *wth, int *err, gchar **err_info _U_)
+int packetlogger_open(wtap *wth, int *err, gchar **err_info)
{
packetlogger_header_t pl_hdr;
guint8 type;
- if(!packetlogger_read_header(&pl_hdr, wth->fh, err))
+ if(!packetlogger_read_header(&pl_hdr, wth->fh, err, err_info))
return -1;
if (file_read(&type, 1, wth->fh) <= 0)
@@ -100,7 +100,7 @@ packetlogger_read(wtap *wth, int *err, gchar **err_info, gint64 *data_offset)
*data_offset = wth->data_offset;
- if(!packetlogger_read_header(&pl_hdr, wth->fh, err))
+ if(!packetlogger_read_header(&pl_hdr, wth->fh, err, err_info))
return FALSE;
if (pl_hdr.len < 8) {
@@ -114,7 +114,7 @@ packetlogger_read(wtap *wth, int *err, gchar **err_info, gint64 *data_offset)
pl_hdr.len - 8,
wth->fh);
if(bytes_read != pl_hdr.len - 8) {
- *err = file_error(wth->fh);
+ *err = file_error(wth->fh, err_info);
if(*err == 0)
*err = WTAP_ERR_SHORT_READ;
@@ -135,7 +135,7 @@ packetlogger_read(wtap *wth, int *err, gchar **err_info, gint64 *data_offset)
static gboolean
packetlogger_seek_read(wtap *wth, gint64 seek_off, union wtap_pseudo_header
*pseudo_header _U_, guchar *pd, int length, int *err,
- gchar **err_info _U_)
+ gchar **err_info)
{
packetlogger_header_t pl_hdr;
guint bytes_read;
@@ -143,7 +143,7 @@ packetlogger_seek_read(wtap *wth, gint64 seek_off, union wtap_pseudo_header
if(file_seek(wth->random_fh, seek_off, SEEK_SET, err) == -1)
return FALSE;
- if(!packetlogger_read_header(&pl_hdr, wth->random_fh, err)) {
+ if(!packetlogger_read_header(&pl_hdr, wth->random_fh, err, err_info)) {
if(*err == 0)
*err = WTAP_ERR_SHORT_READ;
@@ -158,7 +158,7 @@ packetlogger_seek_read(wtap *wth, gint64 seek_off, union wtap_pseudo_header
bytes_read = file_read(pd, pl_hdr.len - 8, wth->random_fh);
if(bytes_read != (pl_hdr.len - 8)) {
- *err = file_error(wth->random_fh);
+ *err = file_error(wth->random_fh, err_info);
if(*err == 0)
*err = WTAP_ERR_SHORT_READ;
@@ -169,7 +169,8 @@ packetlogger_seek_read(wtap *wth, gint64 seek_off, union wtap_pseudo_header
}
static gboolean
-packetlogger_read_header(packetlogger_header_t *pl_hdr, FILE_T fh, int *err)
+packetlogger_read_header(packetlogger_header_t *pl_hdr, FILE_T fh, int *err,
+ gchar **err_info)
{
guint bytes_read = 0;
@@ -181,7 +182,7 @@ packetlogger_read_header(packetlogger_header_t *pl_hdr, FILE_T fh, int *err)
pl_hdr->ts = GUINT64_FROM_BE(pl_hdr->ts);
if(bytes_read < PACKETLOGGER_HEADER_SIZE) {
- *err = file_error(fh);
+ *err = file_error(fh, err_info);
if(*err == 0 && bytes_read > 0)
*err = WTAP_ERR_SHORT_READ;