aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/netmon.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2002-03-05 05:58:41 +0000
committerGuy Harris <guy@alum.mit.edu>2002-03-05 05:58:41 +0000
commite300f4db52ddfcdfbf8a53d69d88e037365cb7a3 (patch)
treeedc94f3db1aa4b8d5dfc6192d153023fb32d9a0d /wiretap/netmon.c
parenta7553a55864b398593c9e3c922d91ae804e0d732 (diff)
Have "wtap_seek_read()" return 0 on success and -1 on failure, and take
an "err" argument that points to an "int" into which to put an error code if it fails. Check for errors in one call to it, and note that we should do so in other places. In the "wtap_seek_read()" call in the TCP graphing code, don't overwrite "cfile.pseudo_header", and make the buffer into which we read the data WTAP_MAX_PACKET_SIZE bytes, as it should be. In some of the file readers for text files, check for errors from the "parse the record header" and "parse the hex dump" routines when reading sequentially. In "csids_seek_read()", fix some calls to "file_error()" to check the error on the random stream (that being what we're reading). svn path=/trunk/; revision=4874
Diffstat (limited to 'wiretap/netmon.c')
-rw-r--r--wiretap/netmon.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/wiretap/netmon.c b/wiretap/netmon.c
index c2e7a30aca..5c7188b7fe 100644
--- a/wiretap/netmon.c
+++ b/wiretap/netmon.c
@@ -1,6 +1,6 @@
/* netmon.c
*
- * $Id: netmon.c,v 1.49 2002/03/04 00:25:35 guy Exp $
+ * $Id: netmon.c,v 1.50 2002/03/05 05:58:40 guy Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@alumni.rice.edu>
@@ -108,7 +108,7 @@ struct netmon_atm_hdr {
static gboolean netmon_read(wtap *wth, int *err, long *data_offset);
static int netmon_seek_read(wtap *wth, long seek_off,
- union wtap_pseudo_header *pseudo_header, u_char *pd, int length);
+ union wtap_pseudo_header *pseudo_header, u_char *pd, int length, int *err);
static int netmon_read_atm_pseudoheader(FILE_T fh,
union wtap_pseudo_header *pseudo_header, int *err);
static int netmon_read_rec_data(FILE_T fh, u_char *pd, int length, int *err);
@@ -447,16 +447,18 @@ static gboolean netmon_read(wtap *wth, int *err, long *data_offset)
static int
netmon_seek_read(wtap *wth, long seek_off,
- union wtap_pseudo_header *pseudo_header, u_char *pd, int length)
+ union wtap_pseudo_header *pseudo_header, u_char *pd, int length, int *err)
{
int ret;
- int err; /* XXX - return this */
- file_seek(wth->random_fh, seek_off, SEEK_SET);
+ if (file_seek(wth->random_fh, seek_off, SEEK_SET) == -1) {
+ *err = file_error(wth->random_fh);
+ return -1;
+ }
if (wth->file_encap == WTAP_ENCAP_ATM_SNIFFER) {
ret = netmon_read_atm_pseudoheader(wth->random_fh, pseudo_header,
- &err);
+ err);
if (ret < 0) {
/* Read error */
return ret;
@@ -466,7 +468,7 @@ netmon_seek_read(wtap *wth, long seek_off,
/*
* Read the packet data.
*/
- return netmon_read_rec_data(wth->random_fh, pd, length, &err);
+ return netmon_read_rec_data(wth->random_fh, pd, length, err);
}
static int