aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/netxray.c
diff options
context:
space:
mode:
Diffstat (limited to 'wiretap/netxray.c')
-rw-r--r--wiretap/netxray.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/wiretap/netxray.c b/wiretap/netxray.c
index 19bcc9b129..8acf26a86e 100644
--- a/wiretap/netxray.c
+++ b/wiretap/netxray.c
@@ -1520,10 +1520,8 @@ gboolean netxray_dump_open_1_1(wtap_dumper *wdh, int *err)
haven't yet written any packets. As we'll have to rewrite
the header when we've written out all the packets, we just
skip over the header for now. */
- if (fseek(wdh->fh, CAPTUREFILE_HEADER_SIZE, SEEK_SET) == -1) {
- *err = errno;
+ if (wtap_dump_file_seek(wdh, CAPTUREFILE_HEADER_SIZE, SEEK_SET, err) == -1)
return FALSE;
- }
wdh->bytes_dumped += CAPTUREFILE_HEADER_SIZE;
netxray = (netxray_dump_t *)g_malloc(sizeof(netxray_dump_t));
@@ -1593,13 +1591,15 @@ static gboolean netxray_dump_close_1_1(wtap_dumper *wdh, int *err)
{
char hdr_buf[CAPTUREFILE_HEADER_SIZE - sizeof(netxray_magic)];
netxray_dump_t *netxray = (netxray_dump_t *)wdh->priv;
- guint32 filelen;
+ gint64 filelen;
struct netxray_hdr file_hdr;
- filelen = (guint32)ftell(wdh->fh); /* XXX - large files? */
+ if (-1 == (filelen = wtap_dump_file_tell(wdh, err)))
+ return FALSE;
/* Go back to beginning */
- fseek(wdh->fh, 0, SEEK_SET);
+ if (wtap_dump_file_seek(wdh, 0, SEEK_SET, err) == -1)
+ return FALSE;
/* Rewrite the file header. */
if (!wtap_dump_file_write(wdh, netxray_magic, sizeof netxray_magic, err))
@@ -1611,7 +1611,8 @@ static gboolean netxray_dump_close_1_1(wtap_dumper *wdh, int *err)
file_hdr.start_time = htolel(netxray->start.secs);
file_hdr.nframes = htolel(netxray->nframes);
file_hdr.start_offset = htolel(CAPTUREFILE_HEADER_SIZE);
- file_hdr.end_offset = htolel(filelen);
+ /* XXX - large files? */
+ file_hdr.end_offset = htolel((guint32)filelen);
file_hdr.network = wtap_encap_to_netxray_1_1_encap(wdh->encap);
file_hdr.timelo = htolel(0);
file_hdr.timehi = htolel(0);
@@ -1679,10 +1680,9 @@ gboolean netxray_dump_open_2_0(wtap_dumper *wdh, int *err)
haven't yet written any packets. As we'll have to rewrite
the header when we've written out all the packets, we just
skip over the header for now. */
- if (fseek(wdh->fh, CAPTUREFILE_HEADER_SIZE, SEEK_SET) == -1) {
- *err = errno;
+ if (wtap_dump_file_seek(wdh, CAPTUREFILE_HEADER_SIZE, SEEK_SET, err) == -1)
return FALSE;
- }
+
wdh->bytes_dumped += CAPTUREFILE_HEADER_SIZE;
netxray = (netxray_dump_t *)g_malloc(sizeof(netxray_dump_t));
@@ -1771,13 +1771,15 @@ static gboolean netxray_dump_close_2_0(wtap_dumper *wdh, int *err)
{
char hdr_buf[CAPTUREFILE_HEADER_SIZE - sizeof(netxray_magic)];
netxray_dump_t *netxray = (netxray_dump_t *)wdh->priv;
- guint32 filelen;
+ gint64 filelen;
struct netxray_hdr file_hdr;
- filelen = (guint32)ftell(wdh->fh); /* XXX - large files? */
+ if (-1 == (filelen = wtap_dump_file_tell(wdh, err)))
+ return FALSE;
/* Go back to beginning */
- fseek(wdh->fh, 0, SEEK_SET);
+ if (wtap_dump_file_seek(wdh, 0, SEEK_SET, err) == -1)
+ return FALSE;
/* Rewrite the file header. */
if (!wtap_dump_file_write(wdh, netxray_magic, sizeof netxray_magic, err))
@@ -1789,7 +1791,8 @@ static gboolean netxray_dump_close_2_0(wtap_dumper *wdh, int *err)
file_hdr.start_time = htolel(netxray->start.secs);
file_hdr.nframes = htolel(netxray->nframes);
file_hdr.start_offset = htolel(CAPTUREFILE_HEADER_SIZE);
- file_hdr.end_offset = htolel(filelen);
+ /* XXX - large files? */
+ file_hdr.end_offset = htolel((guint32)filelen);
file_hdr.network = wtap_encap_to_netxray_2_0_encap(wdh->encap);
file_hdr.timelo = htolel(0);
file_hdr.timehi = htolel(0);