aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/snoop.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2002-03-05 08:40:27 +0000
committerGuy Harris <guy@alum.mit.edu>2002-03-05 08:40:27 +0000
commitb5e9cef2bfa66c607b3282952cfb4ce11976dd18 (patch)
tree2c75bbaa81b557864090331ad07e44813683b7ea /wiretap/snoop.c
parente300f4db52ddfcdfbf8a53d69d88e037365cb7a3 (diff)
Make "wtap_seek_read()" return TRUE on success and FALSE on error, like
"wtap_read()". Add some additional error checks to the Sniffer file reader. svn path=/trunk/; revision=4875
Diffstat (limited to 'wiretap/snoop.c')
-rw-r--r--wiretap/snoop.c42
1 files changed, 20 insertions, 22 deletions
diff --git a/wiretap/snoop.c b/wiretap/snoop.c
index 62713f3628..21c09c1d2d 100644
--- a/wiretap/snoop.c
+++ b/wiretap/snoop.c
@@ -1,6 +1,6 @@
/* snoop.c
*
- * $Id: snoop.c,v 1.43 2002/03/05 05:58:40 guy Exp $
+ * $Id: snoop.c,v 1.44 2002/03/05 08:39:29 guy Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@alumni.rice.edu>
@@ -57,11 +57,12 @@ struct snooprec_hdr {
};
static gboolean snoop_read(wtap *wth, int *err, long *data_offset);
-static int snoop_seek_read(wtap *wth, long seek_off,
+static gboolean snoop_seek_read(wtap *wth, long seek_off,
union wtap_pseudo_header *pseudo_header, u_char *pd, int length, int *err);
-static int snoop_read_atm_pseudoheader(FILE_T fh,
+static gboolean snoop_read_atm_pseudoheader(FILE_T fh,
union wtap_pseudo_header *pseudo_header, int *err);
-static int snoop_read_rec_data(FILE_T fh, u_char *pd, int length, int *err);
+static gboolean snoop_read_rec_data(FILE_T fh, u_char *pd, int length,
+ int *err);
static gboolean snoop_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const union wtap_pseudo_header *pseudo_header, const u_char *pd, int *err);
@@ -350,8 +351,8 @@ static gboolean snoop_read(wtap *wth, int *err, long *data_offset)
*err = WTAP_ERR_BAD_RECORD;
return FALSE;
}
- if (snoop_read_atm_pseudoheader(wth->fh, &wth->pseudo_header,
- err) < 0)
+ if (!snoop_read_atm_pseudoheader(wth->fh, &wth->pseudo_header,
+ err))
return FALSE; /* Read error */
/*
@@ -364,8 +365,8 @@ static gboolean snoop_read(wtap *wth, int *err, long *data_offset)
}
buffer_assure_space(wth->frame_buffer, packet_size);
- if (snoop_read_rec_data(wth->fh, buffer_start_ptr(wth->frame_buffer),
- packet_size, err) < 0)
+ if (!snoop_read_rec_data(wth->fh, buffer_start_ptr(wth->frame_buffer),
+ packet_size, err))
return FALSE; /* Read error */
wth->data_offset += packet_size;
@@ -402,23 +403,20 @@ static gboolean snoop_read(wtap *wth, int *err, long *data_offset)
return TRUE;
}
-static int
+static gboolean
snoop_seek_read(wtap *wth, long seek_off,
union wtap_pseudo_header *pseudo_header, u_char *pd, int length, int *err)
{
- int ret;
-
if (file_seek(wth->random_fh, seek_off, SEEK_SET) == -1) {
*err = file_error(wth->random_fh);
- return -1;
+ return FALSE;
}
if (wth->file_encap == WTAP_ENCAP_ATM_SNIFFER) {
- ret = snoop_read_atm_pseudoheader(wth->random_fh, pseudo_header,
- err);
- if (ret < 0) {
+ if (!snoop_read_atm_pseudoheader(wth->random_fh, pseudo_header,
+ err)) {
/* Read error */
- return ret;
+ return FALSE;
}
}
@@ -428,7 +426,7 @@ snoop_seek_read(wtap *wth, long seek_off,
return snoop_read_rec_data(wth->random_fh, pd, length, err);
}
-static int
+static gboolean
snoop_read_atm_pseudoheader(FILE_T fh, union wtap_pseudo_header *pseudo_header,
int *err)
{
@@ -441,7 +439,7 @@ snoop_read_atm_pseudoheader(FILE_T fh, union wtap_pseudo_header *pseudo_header,
*err = file_error(fh);
if (*err == 0)
*err = WTAP_ERR_SHORT_READ;
- return -1;
+ return FALSE;
}
pseudo_header->ngsniffer_atm.channel = (atm_phdr[0] & 0x80) ? 1 : 0;
@@ -466,10 +464,10 @@ snoop_read_atm_pseudoheader(FILE_T fh, union wtap_pseudo_header *pseudo_header,
pseudo_header->ngsniffer_atm.AppTrafType = ATT_AAL5|ATT_HL_UNKNOWN;
pseudo_header->ngsniffer_atm.AppHLType = AHLT_UNKNOWN;
- return 0;
+ return TRUE;
}
-static int
+static gboolean
snoop_read_rec_data(FILE_T fh, u_char *pd, int length, int *err)
{
int bytes_read;
@@ -481,9 +479,9 @@ snoop_read_rec_data(FILE_T fh, u_char *pd, int length, int *err)
*err = file_error(fh);
if (*err == 0)
*err = WTAP_ERR_SHORT_READ;
- return -1;
+ return FALSE;
}
- return 0;
+ return TRUE;
}
static const int wtap_encap[] = {