From 194cfe2d2fd2ca3e51a5b5050a0784f99733fa6f Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Sun, 6 Jun 2010 22:19:30 +0000 Subject: [PATCH] Don't use fwrite directly when writing a dump file; call it through wtap_dump_file_write(). Replace various wrappers around fwrite() with wtap_dump_file_write(), or at least make the wrappers call wtap_dump_file_write(). svn path=/trunk/; revision=33116 --- wiretap/5views.c | 38 ++--- wiretap/catapult_dct2000.c | 46 ++---- wiretap/commview.c | 72 ++++----- wiretap/k12.c | 30 +--- wiretap/k12text.l | 38 +++-- wiretap/lanalyzer.c | 292 ++++++++++++---------------------- wiretap/netmon.c | 56 +------ wiretap/netscaler.c | 67 +++----- wiretap/nettl.c | 50 +----- wiretap/network_instruments.c | 30 +--- wiretap/netxray.c | 76 +-------- wiretap/ngsniffer.c | 64 ++------ wiretap/pcap-common.c | 25 +-- wiretap/snoop.c | 50 +----- wiretap/visual.c | 50 +----- 15 files changed, 262 insertions(+), 722 deletions(-) diff --git a/wiretap/5views.c b/wiretap/5views.c index 3eeb28eb5c..39c8a56bff 100644 --- a/wiretap/5views.c +++ b/wiretap/5views.c @@ -377,10 +377,18 @@ int _5views_dump_can_write_encap(int encap) /* Returns TRUE on success, FALSE on failure; sets "*err" to an error code on failure */ -gboolean _5views_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err) +gboolean _5views_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err) { _5views_dump_t *_5views; + /* This is a 5Views file. We can't fill in some fields in the + header until all the packets have been written, so we can't + write to a pipe. */ + if (cant_seek) { + *err = WTAP_ERR_CANT_WRITE_TO_PIPE; + return FALSE; + } + /* We can't fill in all the fields in the file header, as we haven't yet written any packets. As we'll have to rewrite the header when we've written out all the packets, we just @@ -408,7 +416,6 @@ static gboolean _5views_dump(wtap_dumper *wdh, const guchar *pd, int *err) { _5views_dump_t *_5views = (_5views_dump_t *)wdh->priv; - size_t nwritten; static t_5VW_TimeStamped_Header HeaderFrame; /* Frame Header */ @@ -427,24 +434,13 @@ static gboolean _5views_dump(wtap_dumper *wdh, HeaderFrame.RecInfo = htolel(0); /* write the record header */ - nwritten = fwrite(&HeaderFrame, 1, sizeof(t_5VW_TimeStamped_Header), wdh->fh); - if (nwritten != sizeof(t_5VW_TimeStamped_Header)) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &HeaderFrame, + sizeof(t_5VW_TimeStamped_Header), err)) return FALSE; - } /* write the data */ - nwritten = fwrite(pd, 1, phdr->caplen, wdh->fh); - if (nwritten != phdr->caplen) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) return FALSE; - } _5views->nframes ++; @@ -455,7 +451,6 @@ static gboolean _5views_dump_close(wtap_dumper *wdh, int *err) { _5views_dump_t *_5views = (_5views_dump_t *)wdh->priv; t_5VW_Capture_Header file_hdr; - size_t nwritten; if (fseek(wdh->fh, 0, SEEK_SET) == -1) { *err = errno; @@ -496,14 +491,9 @@ static gboolean _5views_dump_close(wtap_dumper *wdh, int *err) file_hdr.TramesStockeesInFile = htolel(_5views->nframes); /* Write the file header. */ - nwritten = fwrite(&file_hdr, 1, sizeof(t_5VW_Capture_Header), wdh->fh); - if (nwritten != sizeof(t_5VW_Capture_Header)) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &file_hdr, sizeof(t_5VW_Capture_Header), + err)) return FALSE; - } return TRUE; } diff --git a/wiretap/catapult_dct2000.c b/wiretap/catapult_dct2000.c index 9ad1199d6c..26edae2b41 100644 --- a/wiretap/catapult_dct2000.c +++ b/wiretap/catapult_dct2000.c @@ -601,24 +601,6 @@ int catapult_dct2000_dump_can_write_encap(int encap) /* Write a single packet out to the file */ /*****************************************/ -static gboolean do_fwrite(const void *data, size_t size, size_t count, FILE *stream, int *err_p) -{ - size_t nwritten; - - nwritten = fwrite(data, size, count, stream); - if (nwritten != count) { - if (nwritten == 0 && ferror(stream)) { - *err_p = errno; - } - else { - *err_p = WTAP_ERR_SHORT_WRITE; - } - - return FALSE; - } - return TRUE; -} - gboolean catapult_dct2000_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, const union wtap_pseudo_header *pseudo_header, const guchar *pd, int *err) @@ -639,20 +621,22 @@ gboolean catapult_dct2000_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, if (dct2000 == NULL) { /* Write out saved first line */ - if (!do_fwrite(file_externals->firstline, 1, file_externals->firstline_length, wdh->fh, err)) { + if (!wtap_dump_file_write(wdh, file_externals->firstline, + file_externals->firstline_length, err)) { return FALSE; } - if (!do_fwrite("\n", 1, 1, wdh->fh, err)) { + if (!wtap_dump_file_write(wdh, "\n", 1, err)) { return FALSE; } /* Also write out saved second line with timestamp corresponding to the opening time of the log. */ - if (!do_fwrite(file_externals->secondline, 1, file_externals->secondline_length, wdh->fh, err)) { + if (!wtap_dump_file_write(wdh, file_externals->secondline, + file_externals->secondline_length, err)) { return FALSE; } - if (!do_fwrite("\n", 1, 1, wdh->fh, err)) { + if (!wtap_dump_file_write(wdh, "\n", 1, err)) { return FALSE; } @@ -678,7 +662,8 @@ gboolean catapult_dct2000_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, (const void*)&(pseudo_header->dct2000.seek_off)); /* Write out text before timestamp */ - if (!do_fwrite(prefix->before_time, 1, strlen(prefix->before_time), wdh->fh, err)) { + if (!wtap_dump_file_write(wdh, prefix->before_time, + strlen(prefix->before_time), err)) { return FALSE; } @@ -698,18 +683,19 @@ gboolean catapult_dct2000_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, } /* Write out the calculated timestamp */ - if (!do_fwrite(time_string, 1, strlen(time_string), wdh->fh, err)) { + if (!wtap_dump_file_write(wdh, time_string, strlen(time_string), err)) { return FALSE; } /* Write out text between timestamp and start of hex data */ if (prefix->after_time == NULL) { - if (!do_fwrite(" l ", 1, strlen(" l "), wdh->fh, err)) { + if (!wtap_dump_file_write(wdh, " l ", strlen(" l "), err)) { return FALSE; } } else { - if (!do_fwrite(prefix->after_time, 1, strlen(prefix->after_time), wdh->fh, err)) { + if (!wtap_dump_file_write(wdh, prefix->after_time, + strlen(prefix->after_time), err)) { return FALSE; } } @@ -747,7 +733,7 @@ gboolean catapult_dct2000_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, /**************************************/ /* Remainder is encapsulated protocol */ - if (!do_fwrite("$", 1, 1, wdh->fh, err)) { + if (!wtap_dump_file_write(wdh, "$", 1, err)) { return FALSE; } @@ -759,7 +745,7 @@ gboolean catapult_dct2000_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, c[1] = char_from_hex((guchar)(pd[n] & 0x0f)); /* Write both hex chars of byte together */ - if (!do_fwrite(c, 1, 2, wdh->fh, err)) { + if (!wtap_dump_file_write(wdh, c, 2, err)) { return FALSE; } } @@ -770,14 +756,14 @@ gboolean catapult_dct2000_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, c[0] = pd[n]; /* Write both hex chars of byte together */ - if (!do_fwrite(c, 1, 1, wdh->fh, err)) { + if (!wtap_dump_file_write(wdh, c, 1, err)) { return FALSE; } } } /* End the line */ - if (!do_fwrite("\n", 1, 1, wdh->fh, err)) { + if (!wtap_dump_file_write(wdh, "\n", 1, err)) { return FALSE; } diff --git a/wiretap/commview.c b/wiretap/commview.c index 47af425160..5341928b77 100644 --- a/wiretap/commview.c +++ b/wiretap/commview.c @@ -320,7 +320,6 @@ static gboolean commview_dump(wtap_dumper *wdh, const guchar *pd, int *err) { commview_header_t cv_hdr; - size_t bytes_written = 0; char date_time[5]; memset(&cv_hdr, 0, sizeof(cv_hdr)); @@ -376,47 +375,44 @@ static gboolean commview_dump(wtap_dumper *wdh, return FALSE; } - bytes_written += fwrite(&cv_hdr.data_len, 2, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.source_data_len, 2, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.version, 1, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.year, 2, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.month, 1, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.day, 1, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.hours, 1, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.minutes, 1, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.seconds, 1, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.usecs, 4, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.flags, 1, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.signal_level, 1, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.rate, 1, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.band, 1, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.channel, 1, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.direction, 1, 1, wdh->fh); - bytes_written += fwrite(&cv_hdr.reserved, 2, 1, wdh->fh); - - if(bytes_written != 17) { /* 17 units of data should have been written - * above. */ - if(bytes_written == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - + if (!wtap_dump_file_write(wdh, &cv_hdr.data_len, 2, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.source_data_len, 2, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.version, 1, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.year, 2, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.month, 1, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.day, 1, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.hours, 1, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.minutes, 1, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.seconds, 1, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.usecs, 4, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.flags, 1, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.signal_level, 1, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.rate, 1, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.band, 1, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.channel, 1, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.direction, 1, err)) + return FALSE; + if (!wtap_dump_file_write(wdh, &cv_hdr.reserved, 2, err)) return FALSE; - } - wdh->bytes_dumped += COMMVIEW_HEADER_SIZE; - bytes_written = fwrite(pd, 1, phdr->caplen, wdh->fh); - - if(bytes_written != phdr->caplen) { - if(bytes_written == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) return FALSE; - } - wdh->bytes_dumped += phdr->caplen; return TRUE; diff --git a/wiretap/k12.c b/wiretap/k12.c index 99d8aae596..59b1096741 100644 --- a/wiretap/k12.c +++ b/wiretap/k12.c @@ -745,38 +745,24 @@ int k12_dump_can_write_encap(int encap) { static const gchar dumpy_junk[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -static gboolean do_fwrite(const void *data, size_t size, size_t count, FILE *stream, int *err_p) { - size_t nwritten; - - nwritten = fwrite(data, size, count, stream); - if (nwritten != count) { - if (nwritten == 0 && ferror(stream)) - *err_p = errno; - else - *err_p = WTAP_ERR_SHORT_WRITE; - return FALSE; - } - return TRUE; -} - static gboolean k12_dump_record(wtap_dumper *wdh, guint32 len, guint8* buffer, int *err_p) { k12_dump_t *k12 = (k12_dump_t *)wdh->priv; guint32 junky_offset = (0x2000 - ( (k12->file_offset - 0x200) % 0x2000 )) % 0x2000; if (len > junky_offset) { if (junky_offset) { - if (! do_fwrite(buffer, 1, junky_offset, wdh->fh, err_p)) + if (! wtap_dump_file_write(wdh, buffer, junky_offset, err_p)) return FALSE; } - if (! do_fwrite(dumpy_junk, 1, 0x10, wdh->fh, err_p)) + if (! wtap_dump_file_write(wdh, dumpy_junk, 0x10, err_p)) return FALSE; - if (! do_fwrite(buffer+junky_offset, 1, len - junky_offset, wdh->fh, err_p)) + if (! wtap_dump_file_write(wdh, buffer+junky_offset, len - junky_offset, err_p)) return FALSE; k12->file_offset += len + 0x10; } else { - if (! do_fwrite(buffer, 1, len, wdh->fh, err_p)) + if (! wtap_dump_file_write(wdh, buffer, len, err_p)) return FALSE; k12->file_offset += len; } @@ -950,7 +936,7 @@ static gboolean k12_dump_close(wtap_dumper *wdh, int *err) { guint32 u; } d; - if (! do_fwrite(k12_eof, 1, 2, wdh->fh, err)) + if (! wtap_dump_file_write(wdh, k12_eof, 2, err)) return FALSE; if (fseek(wdh->fh, 8, SEEK_SET) == -1) { @@ -960,12 +946,12 @@ static gboolean k12_dump_close(wtap_dumper *wdh, int *err) { d.u = g_htonl(k12->file_len); - if (! do_fwrite(d.b, 1, 4, wdh->fh, err)) + if (! wtap_dump_file_write(wdh, d.b, 4, err)) return FALSE; d.u = g_htonl(k12->num_of_records); - if (! do_fwrite(d.b, 1, 4, wdh->fh, err)) + if (! wtap_dump_file_write(wdh, d.b, 4, err)) return FALSE; return TRUE; @@ -980,7 +966,7 @@ gboolean k12_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err) { return FALSE; } - if ( ! do_fwrite(k12_file_magic, 1, 8, wdh->fh, err)) { + if ( ! wtap_dump_file_write(wdh, k12_file_magic, 8, err)) { return FALSE; } diff --git a/wiretap/k12text.l b/wiretap/k12text.l index 0bfa8fc8ff..805e386cb4 100644 --- a/wiretap/k12text.l +++ b/wiretap/k12text.l @@ -333,7 +333,7 @@ static const struct { int e; const char* s; } encaps[] = { static gboolean k12text_dump(wtap_dumper *wdh _U_, const struct wtap_pkthdr *phdr, const union wtap_pseudo_header *pseudo_header _U_, - const guchar *pd, int *err _U_) { + const guchar *pd, int *err) { char buf[196808]; size_t left = 196808; gint wl; @@ -352,27 +352,25 @@ static gboolean k12text_dump(wtap_dumper *wdh _U_, const struct wtap_pkthdr *phd } strftime(p,90,"+---------+---------------+----------+\r\n%H:%M:%S,",gmtime(&phdr->ts.secs)); - wl = strlen(p); - p += wl; - left -= wl; - - wl = g_snprintf(p,left,"%.3d,%.3d %s\r\n|0 |",ms,ns,str_enc); - p+= wl; - left -= wl; - - for(i=0;i < phdr->caplen && left > 2; i++) { - wl = g_snprintf(p,left,"%.2x|",pd[i]); - p += wl; - left -= wl; - } + wl = strlen(p); + p += wl; + left -= wl; + + wl = g_snprintf(p,left,"%.3d,%.3d %s\r\n|0 |",ms,ns,str_enc); + p+= wl; + left -= wl; + + for(i=0;i < phdr->caplen && left > 2; i++) { + wl = g_snprintf(p,left,"%.2x|",pd[i]); + p += wl; + left -= wl; + } - wl = g_snprintf(p,left,"\r\n\r\n"); - p+= wl; - left -= wl; - - fwrite(buf, 1, strlen(buf), wdh->fh); + wl = g_snprintf(p,left,"\r\n\r\n"); + p+= wl; + left -= wl; - return TRUE; + return wtap_dump_file_write(wdh, buf, strlen(buf), err); } diff --git a/wiretap/lanalyzer.c b/wiretap/lanalyzer.c index 2cfbec940f..76d19767b8 100644 --- a/wiretap/lanalyzer.c +++ b/wiretap/lanalyzer.c @@ -434,97 +434,47 @@ static gboolean lanalyzer_seek_read(wtap *wth, gint64 seek_off, } /*--------------------------------------------------- - * Returns 0 or error - * Write one block with error control + * Returns TRUE on success, FALSE on error + * Write "cnt" bytes of zero with error control *---------------------------------------------------*/ -static int swrite(const void* what, guint size, FILE *hd) +static gboolean s0write(wtap_dumper *wdh, size_t cnt, int *err) { - size_t nwritten; - - nwritten = fwrite(what, 1, size, hd); - if (nwritten != size) { - if (nwritten == 0 && ferror(hd)) - return errno; - else - return WTAP_ERR_SHORT_WRITE; - } - return 0; /* ok */ -} - -/*--------------------------------------------------- - * Returns 0 or error - * Write one block with error control - *---------------------------------------------------*/ -static int s0write(size_t cnt, FILE *hd) -{ - static guint8 z64[64]; - size_t nwritten; + static const guint8 z64[64]; size_t snack; while (cnt) { - snack = cnt > 64 ? 64 : cnt; - nwritten = fwrite(z64, 1, snack, hd); - if (nwritten != snack) { - if (nwritten == 0 && ferror(hd)) - return errno; - else - return WTAP_ERR_SHORT_WRITE; - } - cnt -= snack; - } - return 0; /* ok */ + snack = cnt > 64 ? 64 : cnt; + + if (!wtap_dump_file_write(wdh, z64, snack, err)) + return FALSE; + cnt -= snack; + } + return TRUE; /* ok */ } /*--------------------------------------------------- - * Returns 0 or error - * Write one block with error control + * Returns TRUE on success, FALSE on error + * Write an 8-bit value with error control *---------------------------------------------------*/ -static int s8write(const guint8 s8, FILE *hd) +static gboolean s8write(wtap_dumper *wdh, const guint8 s8, int *err) { - size_t nwritten; - - nwritten = fwrite(&s8, 1, 1, hd); - if (nwritten != 1) { - if (nwritten == 0 && ferror(hd)) - return errno; - else - return WTAP_ERR_SHORT_WRITE; - } - return 0; /* ok */ + return wtap_dump_file_write(wdh, &s8, 1, err); } /*--------------------------------------------------- - * Returns 0 or error - * Write one block with error control + * Returns TRUE on success, FALSE on error + * Write a 16-bit value with error control *---------------------------------------------------*/ -static int s16write(const guint16 s16, FILE *hd) +static gboolean s16write(wtap_dumper *wdh, const guint16 s16, int *err) { - size_t nwritten; - - nwritten = fwrite(&s16, 1, 2, hd); - if (nwritten != 2) { - if (nwritten == 0 && ferror(hd)) - return errno; - else - return WTAP_ERR_SHORT_WRITE; - } - return 0; /* ok */ + return wtap_dump_file_write(wdh, &s16, 2, err); } /*--------------------------------------------------- - * Returns 0 or error - * Write one block with error control + * Returns TRUE on success, FALSE on error + * Write a 32-bit value with error control *---------------------------------------------------*/ -static int s32write(const guint32 s32, FILE *hd) +static gboolean s32write(wtap_dumper *wdh, const guint32 s32, int *err) { - size_t nwritten; - - nwritten = fwrite(&s32, 1, 4, hd); - if (nwritten != 4) { - if (nwritten == 0 && ferror(hd)) - return errno; - else - return WTAP_ERR_SHORT_WRITE; - } - return 0; /* ok */ + return wtap_dump_file_write(wdh, &s32, 4, err); } /*--------------------------------------------------- * @@ -569,15 +519,13 @@ static gboolean lanalyzer_dump(wtap_dumper *wdh, len = phdr->caplen + (phdr->caplen ? LA_PacketRecordSize : 0); - *err = s16write(htoles(0x1005), wdh->fh); - if (*err) + if (!s16write(wdh, htoles(0x1005), err)) return FALSE; - *err = s16write(htoles(len), wdh->fh); - if (*err) + if (!s16write(wdh, htoles(len), err)) return FALSE; - tv.tv_sec = (long int) phdr->ts.secs; - tv.tv_usec = phdr->ts.nsecs / 1000; + tv.tv_sec = (long int) phdr->ts.secs; + tv.tv_usec = phdr->ts.nsecs / 1000; if (!itmp->init) { /* collect some information for the @@ -597,41 +545,32 @@ static gboolean lanalyzer_dump(wtap_dumper *wdh, x += (double) td.tv_sec * 1000000; x *= 2; - *err = s16write(htoles(0x0001), wdh->fh); /* pr.rx_channels */ - if (*err) + if (!s16write(wdh, htoles(0x0001), err)) /* pr.rx_channels */ return FALSE; - *err = s16write(htoles(0x0008), wdh->fh); /* pr.rx_errors */ - if (*err) + if (!s16write(wdh, htoles(0x0008), err)) /* pr.rx_errors */ return FALSE; - *err = s16write(htoles(phdr->len + 4), wdh->fh); /* pr.rx_frm_len */ - if (*err) + if (!s16write(wdh, htoles(phdr->len + 4), err)) /* pr.rx_frm_len */ return FALSE; - *err = s16write(htoles(phdr->caplen), wdh->fh); /* pr.rx_frm_sln */ - if (*err) + if (!s16write(wdh, htoles(phdr->caplen), err)) /* pr.rx_frm_sln */ return FALSE; for (i = 0; i < 3; i++) { - *err = s16write(htoles((guint16) x), wdh->fh);/* pr.rx_time[i] */ - if (*err) + if (!s16write(wdh, htoles((guint16) x), err)) /* pr.rx_time[i] */ return FALSE; x /= 0xffff; - } + } - *err = s32write(htolel(++itmp->pkts), wdh->fh); /* pr.pktno */ - if (*err) + if (!s32write(wdh, htolel(++itmp->pkts), err)) /* pr.pktno */ return FALSE; - *err = s16write(htoles(itmp->lastlen), wdh->fh); /* pr.prlen */ - if (*err) + if (!s16write(wdh, htoles(itmp->lastlen), err)) /* pr.prlen */ return FALSE; itmp->lastlen = len; - *err = s0write(12, wdh->fh); - if (*err) - return FALSE; + if (!s0write(wdh, 12, err)) + return FALSE; - *err = swrite(pd , phdr->caplen , wdh->fh); - if (*err) - return FALSE; + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) + return FALSE; wdh->bytes_dumped += thisSize; @@ -721,138 +660,107 @@ static gboolean lanalyzer_dump_header(wtap_dumper *wdh, int *err) fseek(wdh->fh, 0, SEEK_SET); - *err = swrite(&LA_HeaderRegularFake, sizeof LA_HeaderRegularFake, wdh->fh); - if (*err) + if (!wtap_dump_file_write(wdh, &LA_HeaderRegularFake, + sizeof LA_HeaderRegularFake, err)) return FALSE; - *err = swrite(&LA_RxChannelNameFake , sizeof LA_RxChannelNameFake , wdh->fh); - if (*err) + if (!wtap_dump_file_write(wdh, &LA_RxChannelNameFake, + sizeof LA_RxChannelNameFake, err)) return FALSE; - *err = swrite(&LA_TxChannelNameFake , sizeof LA_TxChannelNameFake , wdh->fh); - if (*err) + if (!wtap_dump_file_write(wdh, &LA_TxChannelNameFake, + sizeof LA_TxChannelNameFake, err)) return FALSE; - *err = swrite(&LA_RxTemplateNameFake, sizeof LA_RxTemplateNameFake, wdh->fh); - if (*err) + if (!wtap_dump_file_write(wdh, &LA_RxTemplateNameFake, + sizeof LA_RxTemplateNameFake, err)) return FALSE; - *err = swrite(&LA_TxTemplateNameFake, sizeof LA_TxTemplateNameFake, wdh->fh); - if (*err) + if (!wtap_dump_file_write(wdh, &LA_TxTemplateNameFake, + sizeof LA_TxTemplateNameFake, err)) return FALSE; - *err = swrite(&LA_DisplayOptionsFake, sizeof LA_DisplayOptionsFake, wdh->fh); - if (*err) + if (!wtap_dump_file_write(wdh, &LA_DisplayOptionsFake, + sizeof LA_DisplayOptionsFake, err)) return FALSE; /*-----------------------------------------------------------------*/ - *err = s16write(htoles(RT_Summary), wdh->fh); /* rid */ - if (*err) + if (!s16write(wdh, htoles(RT_Summary), err)) /* rid */ return FALSE; - *err = s16write(htoles(SummarySize), wdh->fh); /* rlen */ - if (*err) + if (!s16write(wdh, htoles(SummarySize), err)) /* rlen */ return FALSE; - *err = s8write((guint8) fT->tm_mday, wdh->fh); /* s.datcre.day */ - if (*err) + if (!s8write(wdh, (guint8) fT->tm_mday, err)) /* s.datcre.day */ return FALSE; - *err = s8write((guint8) (fT->tm_mon+1), wdh->fh); /* s.datcre.mon */ - if (*err) + if (!s8write(wdh, (guint8) (fT->tm_mon+1), err)) /* s.datcre.mon */ return FALSE; - *err = s16write(htoles(fT->tm_year + 1900), wdh->fh);/* s.datcre.year */ - if (*err) + if (!s16write(wdh, htoles(fT->tm_year + 1900), err)) /* s.datcre.year */ return FALSE; - *err = s8write((guint8) fT->tm_mday, wdh->fh); /* s.datclo.day */ - if (*err) + if (!s8write(wdh, (guint8) fT->tm_mday, err)) /* s.datclo.day */ return FALSE; - *err = s8write((guint8) (fT->tm_mon+1), wdh->fh); /* s.datclo.mon */ - if (*err) + if (!s8write(wdh, (guint8) (fT->tm_mon+1), err)) /* s.datclo.mon */ return FALSE; - *err = s16write(htoles(fT->tm_year + 1900), wdh->fh);/* s.datclo.year */ - if (*err) + if (!s16write(wdh, htoles(fT->tm_year + 1900), err)) /* s.datclo.year */ return FALSE; - *err = s8write((guint8) fT->tm_sec, wdh->fh); /* s.timeopn.second */ - if (*err) + if (!s8write(wdh, (guint8) fT->tm_sec, err)) /* s.timeopn.second */ return FALSE; - *err = s8write((guint8) fT->tm_min, wdh->fh); /* s.timeopn.minute */ - if (*err) + if (!s8write(wdh, (guint8) fT->tm_min, err)) /* s.timeopn.minute */ return FALSE; - *err = s8write((guint8) fT->tm_hour, wdh->fh); /* s.timeopn.hour */ - if (*err) + if (!s8write(wdh, (guint8) fT->tm_hour, err)) /* s.timeopn.hour */ return FALSE; - *err = s8write((guint8) fT->tm_mday, wdh->fh); /* s.timeopn.mday */ - if (*err) + if (!s8write(wdh, (guint8) fT->tm_mday, err)) /* s.timeopn.mday */ return FALSE; - *err = s0write(2, wdh->fh); - if (*err) - return FALSE; - *err = s8write((guint8) fT->tm_sec, wdh->fh); /* s.timeclo.second */ - if (*err) + if (!s0write(wdh, 2, err)) return FALSE; - *err = s8write((guint8) fT->tm_min, wdh->fh); /* s.timeclo.minute */ - if (*err) + if (!s8write(wdh, (guint8) fT->tm_sec, err)) /* s.timeclo.second */ return FALSE; - *err = s8write((guint8) fT->tm_hour, wdh->fh); /* s.timeclo.hour */ - if (*err) + if (!s8write(wdh, (guint8) fT->tm_min, err)) /* s.timeclo.minute */ return FALSE; - *err = s8write((guint8) fT->tm_mday, wdh->fh); /* s.timeclo.mday */ - if (*err) + if (!s8write(wdh, (guint8) fT->tm_hour, err)) /* s.timeclo.hour */ return FALSE; - *err = s0write(2, wdh->fh); - if (*err) - return FALSE; - *err = s0write(6, wdh->fh); /* EAddr == 0 */ - if (*err) - return FALSE; - *err = s16write(htoles(1), wdh->fh); /* s.mxseqno */ - if (*err) + if (!s8write(wdh, (guint8) fT->tm_mday, err)) /* s.timeclo.mday */ return FALSE; - *err = s16write(htoles(0), wdh->fh); /* s.slcoffo */ - if (*err) + if (!s0write(wdh, 2, err)) return FALSE; - *err = s16write(htoles(1514), wdh->fh); /* s.mxslc */ - if (*err) + if (!s0write(wdh, 6, err)) /* EAddr == 0 */ return FALSE; - *err = s32write(htolel(itmp->pkts), wdh->fh); /* s.totpktt */ - if (*err) + if (!s16write(wdh, htoles(1), err)) /* s.mxseqno */ return FALSE; - *err = s0write(12, wdh->fh); /* statrg == 0; ? -1*/ - if (*err) /* stptrg == 0; ? -1*/ - return FALSE; /* s.mxpkta[0]=0 */ - *err = s32write(htolel(itmp->pkts), wdh->fh); /* sr.s.mxpkta[1] */ - if (*err) + if (!s16write(wdh, htoles(0), err)) /* s.slcoffo */ return FALSE; - *err = s0write(34*4, wdh->fh); /* s.mxpkta[2-33]=0 */ - if (*err) - return FALSE; - *err = s16write(htoles(board_type), wdh->fh); - if (*err) + if (!s16write(wdh, htoles(1514), err)) /* s.mxslc */ return FALSE; - *err = s0write(20, wdh->fh); /* board_version == 0 */ - if (*err) + if (!s32write(wdh, htolel(itmp->pkts), err)) /* s.totpktt */ + return FALSE; + /* + * statrg == 0; ? -1 + * stptrg == 0; ? -1 + * s.mxpkta[0]=0 + */ + if (!s0write(wdh, 12, err)) + return FALSE; + if (!s32write(wdh, htolel(itmp->pkts), err)) /* sr.s.mxpkta[1] */ + return FALSE; + if (!s0write(wdh, 34*4, err)) /* s.mxpkta[2-33]=0 */ + return FALSE; + if (!s16write(wdh, htoles(board_type), err)) + return FALSE; + if (!s0write(wdh, 20, err)) /* board_version == 0 */ return FALSE; /*-----------------------------------------------------------------*/ - *err = s16write(htoles(RT_SubfileSummary), wdh->fh); /* ssr.rid */ - if (*err) + if (!s16write(wdh, htoles(RT_SubfileSummary), err)) /* ssr.rid */ return FALSE; - *err = s16write(htoles(LA_SubfileSummaryRecordSize-4), wdh->fh); /* ssr.rlen */ - if (*err) + if (!s16write(wdh, htoles(LA_SubfileSummaryRecordSize-4), err)) /* ssr.rlen */ return FALSE; - *err = s16write(htoles(1), wdh->fh); /* ssr.seqno */ - if (*err) + if (!s16write(wdh, htoles(1), err)) /* ssr.seqno */ return FALSE; - *err = s32write(htolel(itmp->pkts), wdh->fh); /* ssr.totpkts */ - if (*err) + if (!s32write(wdh, htolel(itmp->pkts), err)) /* ssr.totpkts */ return FALSE; /*-----------------------------------------------------------------*/ - *err = swrite(&LA_CyclicInformationFake, sizeof LA_CyclicInformationFake, wdh->fh); - if (*err) - return FALSE; + if (!wtap_dump_file_write(wdh, &LA_CyclicInformationFake, + sizeof LA_CyclicInformationFake, err)) + return FALSE; /*-----------------------------------------------------------------*/ - *err = s16write(htoles(RT_Index), wdh->fh); /* rid */ - if (*err) + if (!s16write(wdh, htoles(RT_Index), err)) /* rid */ return FALSE; - *err = s16write(htoles(LA_IndexRecordSize -4), wdh->fh);/* rlen */ - if (*err) + if (!s16write(wdh, htoles(LA_IndexRecordSize -4), err)) /* rlen */ return FALSE; - *err = s16write(htoles(LA_IndexSize), wdh->fh); /* idxsp */ - if (*err) + if (!s16write(wdh, htoles(LA_IndexSize), err)) /* idxsp */ return FALSE; - *err = s0write(LA_IndexRecordSize - 6, wdh->fh); - if (*err) + if (!s0write(wdh, LA_IndexRecordSize - 6, err)) return FALSE; return TRUE; diff --git a/wiretap/netmon.c b/wiretap/netmon.c index e56dc822ad..d255b16bac 100644 --- a/wiretap/netmon.c +++ b/wiretap/netmon.c @@ -681,7 +681,6 @@ static gboolean netmon_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, struct netmonrec_2_x_hdr rec_2_x_hdr; char *hdrp; size_t hdr_size; - size_t nwritten; double t; guint32 time_low, time_high; struct netmon_atm_hdr atm_hdr; @@ -738,14 +737,8 @@ static gboolean netmon_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, return FALSE; } - nwritten = fwrite(hdrp, 1, hdr_size, wdh->fh); - if (nwritten != hdr_size) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, hdrp, hdr_size, err)) return FALSE; - } if (wdh->encap == WTAP_ENCAP_ATM_PDUS) { /* @@ -756,24 +749,12 @@ static gboolean netmon_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, memset(&atm_hdr.src, 0, sizeof atm_hdr.src); atm_hdr.vpi = g_htons(pseudo_header->atm.vpi); atm_hdr.vci = g_htons(pseudo_header->atm.vci); - nwritten = fwrite(&atm_hdr, 1, sizeof atm_hdr, wdh->fh); - if (nwritten != sizeof atm_hdr) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &atm_hdr, sizeof atm_hdr, err)) return FALSE; - } } - nwritten = fwrite(pd, 1, phdr->caplen, wdh->fh); - if (nwritten != phdr->caplen) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) return FALSE; - } /* * Stash the file offset of this frame. @@ -811,7 +792,6 @@ static gboolean netmon_dump_close(wtap_dumper *wdh, int *err) { netmon_dump_t *netmon = (netmon_dump_t *)wdh->priv; size_t n_to_write; - size_t nwritten; struct netmon_hdr file_hdr; const char *magicp; size_t magic_size; @@ -820,16 +800,8 @@ static gboolean netmon_dump_close(wtap_dumper *wdh, int *err) /* Write out the frame table. "netmon->frame_table_index" is the number of entries we've put into it. */ n_to_write = netmon->frame_table_index * sizeof *netmon->frame_table; - nwritten = fwrite(netmon->frame_table, 1, n_to_write, wdh->fh); - if (nwritten != n_to_write) { - if (err != NULL) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - } + if (!wtap_dump_file_write(wdh, netmon->frame_table, n_to_write, err)) return FALSE; - } /* Now go fix up the file header. */ fseek(wdh->fh, 0, SEEK_SET); @@ -862,16 +834,8 @@ static gboolean netmon_dump_close(wtap_dumper *wdh, int *err) *err = WTAP_ERR_UNSUPPORTED_FILE_TYPE; return FALSE; } - nwritten = fwrite(magicp, 1, magic_size, wdh->fh); - if (nwritten != magic_size) { - if (err != NULL) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - } + if (!wtap_dump_file_write(wdh, magicp, magic_size, err)) return FALSE; - } file_hdr.network = htoles(wtap_encap[wdh->encap]); tm = localtime(&netmon->first_record_time.secs); @@ -897,16 +861,8 @@ static gboolean netmon_dump_close(wtap_dumper *wdh, int *err) file_hdr.frametableoffset = htolel(netmon->frame_table_offset); file_hdr.frametablelength = htolel(netmon->frame_table_index * sizeof *netmon->frame_table); - nwritten = fwrite(&file_hdr, 1, sizeof file_hdr, wdh->fh); - if (nwritten != sizeof file_hdr) { - if (err != NULL) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - } + if (!wtap_dump_file_write(wdh, &file_hdr, sizeof file_hdr, err)) return FALSE; - } return TRUE; } diff --git a/wiretap/netscaler.c b/wiretap/netscaler.c index 5fb4b4b971..74cdeeda3b 100644 --- a/wiretap/netscaler.c +++ b/wiretap/netscaler.c @@ -430,8 +430,6 @@ guint64 ns_hrtime2nsec(guint32 tm); static gboolean nstrace_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, const union wtap_pseudo_header *pseudo_header, const guchar *pd, int *err); -gboolean nstrace_add_signature(wtap_dumper *wdh); -gboolean nstrace_add_abstime(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, const guchar *pd); #define GET_READ_PAGE_SIZE(remaining_file_size) ((gint32)((remaining_file_size>NSPR_PAGESIZE)?NSPR_PAGESIZE:remaining_file_size)) @@ -1086,10 +1084,9 @@ gboolean nstrace_dump_open(wtap_dumper *wdh, gboolean cant_seek, int *err) } -gboolean nstrace_add_signature(wtap_dumper *wdh) +static gboolean nstrace_add_signature(wtap_dumper *wdh, int *err) { nstrace_dump_t *nstrace = (nstrace_dump_t *)wdh->priv; - size_t nwritten; if (wdh->file_type == WTAP_FILE_NETSCALER_1_0) { @@ -1101,12 +1098,12 @@ gboolean nstrace_add_signature(wtap_dumper *wdh) memcpy(sig10.sig_Signature, NSPR_SIGSTR_V10, NSPR_SIGSIZE_V10); /* Write the record into the file */ - nwritten = fwrite(&sig10, 1, nspr_signature_v10_s, wdh->fh); - if (nwritten != nspr_signature_v10_s) + if (!wtap_dump_file_write(wdh, &sig10, nspr_signature_v10_s, + err)) return FALSE; /* Move forward the page offset */ - nstrace->page_offset += (guint16) nwritten; + nstrace->page_offset += (guint16) nspr_signature_v10_s; } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0) { @@ -1119,12 +1116,12 @@ gboolean nstrace_add_signature(wtap_dumper *wdh) memcpy(sig20->sig_Signature, NSPR_SIGSTR_V20, sizeof(NSPR_SIGSTR_V20)); /* Write the record into the file */ - nwritten = fwrite(sig20, 1, sig20->sig_RecordSize, wdh->fh); - if (nwritten != sig20->sig_RecordSize) + if (!wtap_dump_file_write(wdh, sig20, sig20->sig_RecordSize, + err)) return FALSE; /* Move forward the page offset */ - nstrace->page_offset += (guint16) nwritten; + nstrace->page_offset += (guint16) sig20->sig_RecordSize; } else { @@ -1136,11 +1133,11 @@ gboolean nstrace_add_signature(wtap_dumper *wdh) } -gboolean nstrace_add_abstime(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, - const guchar *pd) +static gboolean +nstrace_add_abstime(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, + const guchar *pd, int *err) { nstrace_dump_t *nstrace = (nstrace_dump_t *)wdh->priv; - size_t nwritten; guint64 nsg_creltime; if (wdh->file_type == WTAP_FILE_NETSCALER_1_0) @@ -1159,8 +1156,7 @@ gboolean nstrace_add_abstime(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, abs10.abs_Time = htolel((guint32)phdr->ts.secs - (guint32)(nsg_creltime/1000000000)); /* Write the record into the file */ - nwritten = fwrite(&abs10, 1, nspr_abstime_v10_s, wdh->fh); - if (nwritten != nspr_abstime_v10_s) + if (!wtap_dump_file_write(wdh, &abs10, nspr_abstime_v10_s, err)) return FALSE; /* Move forward the page offset */ @@ -1181,8 +1177,7 @@ gboolean nstrace_add_abstime(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, abs20.abs_Time = htolel((guint32)phdr->ts.secs - (guint32)(nsg_creltime/1000000000)); /* Write the record into the file */ - nwritten = fwrite(&abs20, 1, nspr_abstime_v20_s, wdh->fh); - if (nwritten != nspr_abstime_v20_s) + if (!wtap_dump_file_write(wdh, &abs20, nspr_abstime_v20_s, err)) return FALSE; /* Move forward the page offset */ @@ -1204,18 +1199,19 @@ static gboolean nstrace_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, const union wtap_pseudo_header *pseudo_header, const guchar *pd, int *err) { nstrace_dump_t *nstrace = (nstrace_dump_t *)wdh->priv; - size_t nwritten; if (nstrace->page_offset == 0) { /* Add the signature record and abs time record */ if (wdh->file_type == WTAP_FILE_NETSCALER_1_0) { - if ((nstrace_add_signature(wdh) == FALSE) || (nstrace_add_abstime(wdh, phdr, pd) == FALSE)) + if (!nstrace_add_signature(wdh, err) || + !nstrace_add_abstime(wdh, phdr, pd, err)) return FALSE; } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0) { - if ((nstrace_add_signature(wdh) == FALSE) || (nstrace_add_abstime(wdh, phdr, pd) == FALSE)) + if (!nstrace_add_signature(wdh, err) || + !nstrace_add_abstime(wdh, phdr, pd, err)) return FALSE; } else { @@ -1242,23 +1238,15 @@ static gboolean nstrace_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, nstrace->page_offset = 0; /* Possibly add signature and abstime records and increment offset */ - if (nstrace_add_signature(wdh) == FALSE) + if (!nstrace_add_signature(wdh, err)) return FALSE; } /* Write the actual record as is */ - nwritten = fwrite(pd, 1, phdr->caplen, wdh->fh); - if (nwritten != phdr->caplen) - { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) return FALSE; - } - nstrace->page_offset += (guint16) nwritten; + nstrace->page_offset += (guint16) phdr->caplen; } else if (wdh->file_type == WTAP_FILE_NETSCALER_2_0) { *err = WTAP_ERR_UNSUPPORTED_FILE_TYPE; @@ -1290,24 +1278,15 @@ static gboolean nstrace_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, nstrace->page_offset = 0; /* Possibly add signature and abstime records and increment offset */ - if (nstrace_add_signature(wdh) == FALSE) - return FALSE; + if (!nstrace_add_signature(wdh, err)) + return FALSE; } /* Write the actual record as is */ - nwritten = fwrite(pd, 1, phdr->caplen, wdh->fh); - - if (nwritten != phdr->caplen) - { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) return FALSE; - } - nstrace->page_offset += (guint16) nwritten; + nstrace->page_offset += (guint16) phdr->caplen; } break; diff --git a/wiretap/nettl.c b/wiretap/nettl.c index bd4f3834c2..8991731c47 100644 --- a/wiretap/nettl.c +++ b/wiretap/nettl.c @@ -723,7 +723,6 @@ int nettl_dump_can_write_encap(int encap) gboolean nettl_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err) { struct nettl_file_hdr file_hdr; - size_t nwritten; /* This is a nettl file */ wdh->subtype_write = nettl_dump; @@ -739,14 +738,8 @@ gboolean nettl_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err) file_hdr.os_v=0x55; g_strlcpy(file_hdr.model,"9000/800",11); file_hdr.unknown=g_htons(0x406); - nwritten = fwrite(&file_hdr, 1, sizeof file_hdr, wdh->fh); - if (nwritten != sizeof(file_hdr)) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &file_hdr, sizeof file_hdr, err)) return FALSE; - } wdh->bytes_dumped += sizeof(file_hdr); return TRUE; @@ -760,7 +753,6 @@ static gboolean nettl_dump(wtap_dumper *wdh, const guchar *pd, int *err) { struct nettlrec_hdr rec_hdr; - size_t nwritten; guint8 dummyc[24]; memset(&rec_hdr,0,sizeof(rec_hdr)); @@ -831,67 +823,37 @@ static gboolean nettl_dump(wtap_dumper *wdh, return FALSE; } - nwritten = fwrite(&rec_hdr, 1, sizeof(rec_hdr), wdh->fh); - if (nwritten != sizeof(rec_hdr)) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &rec_hdr, sizeof(rec_hdr), err)) return FALSE; - } wdh->bytes_dumped += sizeof(rec_hdr); /* Write out 4 extra bytes of unknown stuff for HP-UX11 * header format. */ memset(dummyc, 0, sizeof dummyc); - nwritten = fwrite(dummyc, 1, 4, wdh->fh); - if (nwritten != 4) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, dummyc, 4, err)) return FALSE; - } wdh->bytes_dumped += 4; if ((phdr->pkt_encap == WTAP_ENCAP_FDDI_BITSWAPPED) || (phdr->pkt_encap == WTAP_ENCAP_NETTL_FDDI)) { /* add those weird 3 bytes of padding */ - nwritten = fwrite(dummyc, 1, 3, wdh->fh); - if (nwritten != 3) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, dummyc, 3, err)) return FALSE; - } wdh->bytes_dumped += 3; } /* } else if (phdr->pkt_encap == WTAP_ENCAP_NETTL_X25) { - nwritten = fwrite(dummyc, 1, 24, wdh->fh); - if (nwritten != 24) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, dummyc, 24, err)) return FALSE; - } wdh->bytes_dumped += 24; } */ /* write actual PDU data */ - nwritten = fwrite(pd, 1, phdr->caplen, wdh->fh); - if (nwritten != phdr->caplen) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) return FALSE; - } wdh->bytes_dumped += phdr->caplen; return TRUE; diff --git a/wiretap/network_instruments.c b/wiretap/network_instruments.c index 731a4be8d8..5ab221ba9a 100644 --- a/wiretap/network_instruments.c +++ b/wiretap/network_instruments.c @@ -507,23 +507,17 @@ gboolean network_instruments_dump_open(wtap_dumper *wdh, gboolean cant_seek, int file_header.offset_to_first_packet = (guint16) (sizeof(capture_file_header) + sizeof(tlv_header) + strlen(comment)); file_header.offset_to_first_packet = GUINT16_TO_LE(file_header.offset_to_first_packet); file_header.number_of_information_elements = 1; - if(!fwrite(&file_header, sizeof(capture_file_header), 1, wdh->fh)) { - *err = errno; + if(!wtap_dump_file_write(wdh, &file_header, sizeof(capture_file_header), err)) return FALSE; - } /* create the comment entry */ comment_header.type = GUINT16_TO_LE(INFORMATION_TYPE_COMMENT); comment_header.length = (guint16) (sizeof(tlv_header) + strlen(comment)); comment_header.length = GUINT16_TO_LE(comment_header.length); - if(!fwrite(&comment_header, sizeof(tlv_header), 1, wdh->fh)) { - *err = errno; + if(!wtap_dump_file_write(wdh, &comment_header, sizeof(tlv_header), err)) return FALSE; - } - if(!fwrite(&comment, sizeof(char), strlen(comment), wdh->fh)) { - *err = errno; + if(!wtap_dump_file_write(wdh, &comment, strlen(comment), err)) return FALSE; - } init_time_offset(); @@ -538,7 +532,6 @@ static gboolean observer_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, { niobserver_dump_t *niobserver = (niobserver_dump_t *)wdh->priv; packet_entry_header packet_header; - size_t nwritten; guint64 capture_nanoseconds; if (phdr->ts.secs < seconds1970to2000) { @@ -566,23 +559,12 @@ static gboolean observer_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, niobserver->packet_count++; packet_header.nano_seconds_since_2000 = GUINT64_TO_LE(capture_nanoseconds); - nwritten = fwrite(&packet_header, sizeof(packet_header), 1, wdh->fh); - if (nwritten != 1) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &packet_header, sizeof(packet_header), + err)) return FALSE; - } - nwritten = fwrite(pd, 1, phdr->caplen, wdh->fh); - if (nwritten != phdr->caplen) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) return FALSE; - } return TRUE; } diff --git a/wiretap/netxray.c b/wiretap/netxray.c index cba22a0d7f..1c3c24a4b4 100644 --- a/wiretap/netxray.c +++ b/wiretap/netxray.c @@ -1549,7 +1549,6 @@ static gboolean netxray_dump_1_1(wtap_dumper *wdh, guint64 timestamp; guint32 t32; struct netxrayrec_1_x_hdr rec_hdr; - size_t nwritten; /* NetXRay/Windows Sniffer files have a capture start date/time in the header, in a UNIX-style format, with one-second resolution, @@ -1577,24 +1576,12 @@ static gboolean netxray_dump_1_1(wtap_dumper *wdh, rec_hdr.orig_len = htoles(phdr->len); rec_hdr.incl_len = htoles(phdr->caplen); - nwritten = fwrite(&rec_hdr, 1, sizeof(rec_hdr), wdh->fh); - if (nwritten != sizeof(rec_hdr)) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &rec_hdr, sizeof(rec_hdr), err)) return FALSE; - } /* write the packet data */ - nwritten = fwrite(pd, 1, phdr->caplen, wdh->fh); - if (nwritten != phdr->caplen) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) return FALSE; - } netxray->nframes++; @@ -1609,7 +1596,6 @@ static gboolean netxray_dump_close_1_1(wtap_dumper *wdh, int *err) netxray_dump_t *netxray = (netxray_dump_t *)wdh->priv; guint32 filelen; struct netxray_hdr file_hdr; - size_t nwritten; filelen = (guint32)ftell(wdh->fh); /* XXX - large files? */ @@ -1617,16 +1603,8 @@ static gboolean netxray_dump_close_1_1(wtap_dumper *wdh, int *err) fseek(wdh->fh, 0, SEEK_SET); /* Rewrite the file header. */ - nwritten = fwrite(netxray_magic, 1, sizeof netxray_magic, wdh->fh); - if (nwritten != sizeof netxray_magic) { - if (err != NULL) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - } + if (!wtap_dump_file_write(wdh, netxray_magic, sizeof netxray_magic, err)) return FALSE; - } /* "sniffer" version ? */ memset(&file_hdr, '\0', sizeof file_hdr); @@ -1641,16 +1619,8 @@ static gboolean netxray_dump_close_1_1(wtap_dumper *wdh, int *err) memset(hdr_buf, '\0', sizeof hdr_buf); memcpy(hdr_buf, &file_hdr, sizeof(file_hdr)); - nwritten = fwrite(hdr_buf, 1, sizeof hdr_buf, wdh->fh); - if (nwritten != sizeof hdr_buf) { - if (err != NULL) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - } + if (!wtap_dump_file_write(wdh, hdr_buf, sizeof hdr_buf, err)) return FALSE; - } return TRUE; } @@ -1744,7 +1714,6 @@ static gboolean netxray_dump_2_0(wtap_dumper *wdh, guint64 timestamp; guint32 t32; struct netxrayrec_2_x_hdr rec_hdr; - size_t nwritten; /* NetXRay/Windows Sniffer files have a capture start date/time in the header, in a UNIX-style format, with one-second resolution, @@ -1790,24 +1759,12 @@ static gboolean netxray_dump_2_0(wtap_dumper *wdh, break; } - nwritten = fwrite(&rec_hdr, 1, sizeof(rec_hdr), wdh->fh); - if (nwritten != sizeof(rec_hdr)) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &rec_hdr, sizeof(rec_hdr), err)) return FALSE; - } /* write the packet data */ - nwritten = fwrite(pd, 1, phdr->caplen, wdh->fh); - if (nwritten != phdr->caplen) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) return FALSE; - } netxray->nframes++; @@ -1822,7 +1779,6 @@ static gboolean netxray_dump_close_2_0(wtap_dumper *wdh, int *err) netxray_dump_t *netxray = (netxray_dump_t *)wdh->priv; guint32 filelen; struct netxray_hdr file_hdr; - size_t nwritten; filelen = (guint32)ftell(wdh->fh); /* XXX - large files? */ @@ -1830,16 +1786,8 @@ static gboolean netxray_dump_close_2_0(wtap_dumper *wdh, int *err) fseek(wdh->fh, 0, SEEK_SET); /* Rewrite the file header. */ - nwritten = fwrite(netxray_magic, 1, sizeof netxray_magic, wdh->fh); - if (nwritten != sizeof netxray_magic) { - if (err != NULL) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - } + if (!wtap_dump_file_write(wdh, netxray_magic, sizeof netxray_magic, err)) return FALSE; - } /* "sniffer" version ? */ memset(&file_hdr, '\0', sizeof file_hdr); @@ -1877,16 +1825,8 @@ static gboolean netxray_dump_close_2_0(wtap_dumper *wdh, int *err) memset(hdr_buf, '\0', sizeof hdr_buf); memcpy(hdr_buf, &file_hdr, sizeof(file_hdr)); - nwritten = fwrite(hdr_buf, 1, sizeof hdr_buf, wdh->fh); - if (nwritten != sizeof hdr_buf) { - if (err != NULL) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - } + if (!wtap_dump_file_write(wdh, hdr_buf, sizeof hdr_buf, err)) return FALSE; - } return TRUE; } diff --git a/wiretap/ngsniffer.c b/wiretap/ngsniffer.c index b9e1613f59..74978ae4a4 100644 --- a/wiretap/ngsniffer.c +++ b/wiretap/ngsniffer.c @@ -2025,7 +2025,6 @@ int ngsniffer_dump_can_write_encap(int encap) gboolean ngsniffer_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err) { ngsniffer_dump_t *ngsniffer; - size_t nwritten; char buf[6] = {REC_VERS, 0x00, 0x12, 0x00, 0x00, 0x00}; /* version record */ /* This is a sniffer file */ @@ -2038,22 +2037,11 @@ gboolean ngsniffer_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err) ngsniffer->start = 0; /* Write the file header. */ - nwritten = fwrite(ngsniffer_magic, 1, sizeof ngsniffer_magic, wdh->fh); - if (nwritten != sizeof ngsniffer_magic) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, ngsniffer_magic, sizeof ngsniffer_magic, + err)) return FALSE; - } - nwritten = fwrite(buf, 1, 6, wdh->fh); - if (nwritten != 6) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, buf, 6, err)) return FALSE; - } return TRUE; } @@ -2065,7 +2053,6 @@ static gboolean ngsniffer_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, { ngsniffer_dump_t *ngsniffer = (ngsniffer_dump_t *)wdh->priv; struct frame2_rec rec_hdr; - size_t nwritten; char buf[6]; time_t tsecs; guint64 t; @@ -2109,14 +2096,8 @@ static gboolean ngsniffer_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, version.cmprs_level = 0; version.rsvd[0] = 0; version.rsvd[1] = 0; - nwritten = fwrite(&version, 1, sizeof version, wdh->fh); - if (nwritten != sizeof version) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &version, sizeof version, err)) return FALSE; - } } buf[0] = REC_FRAME2; @@ -2125,14 +2106,8 @@ static gboolean ngsniffer_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, buf[3] = (char)((phdr->caplen + sizeof(struct frame2_rec))/256); buf[4] = 0x00; buf[5] = 0x00; - nwritten = fwrite(buf, 1, 6, wdh->fh); - if (nwritten != 6) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, buf, 6, err)) return FALSE; - } /* Seconds since the start of the capture */ tsecs = phdr->ts.secs - ngsniffer->start; /* Extract the number of days since the start of the capture */ @@ -2187,22 +2162,10 @@ static gboolean ngsniffer_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, rec_hdr.flags = 0; rec_hdr.true_size = phdr->len != phdr->caplen ? htoles(phdr->len) : 0; rec_hdr.rsvd = 0; - nwritten = fwrite(&rec_hdr, 1, sizeof rec_hdr, wdh->fh); - if (nwritten != sizeof rec_hdr) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &rec_hdr, sizeof rec_hdr, err)) return FALSE; - } - nwritten = fwrite(pd, 1, phdr->caplen, wdh->fh); - if (nwritten != phdr->caplen) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) return FALSE; - } return TRUE; } @@ -2212,18 +2175,9 @@ static gboolean ngsniffer_dump_close(wtap_dumper *wdh, int *err) { /* EOF record */ char buf[6] = {REC_EOF, 0x00, 0x00, 0x00, 0x00, 0x00}; - size_t nwritten; - - nwritten = fwrite(buf, 1, 6, wdh->fh); - if (nwritten != 6) { - if (err != NULL) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - } + + if (!wtap_dump_file_write(wdh, buf, 6, err)) return FALSE; - } return TRUE; } diff --git a/wiretap/pcap-common.c b/wiretap/pcap-common.c index ed6ab52f1c..8e4a8d49d0 100644 --- a/wiretap/pcap-common.c +++ b/wiretap/pcap-common.c @@ -1647,7 +1647,6 @@ pcap_write_phdr(wtap_dumper *wdh, int encap, const union wtap_pseudo_header *pse struct i2c_file_hdr i2c_hdr; struct libpcap_bt_phdr bt_hdr; struct libpcap_ppp_phdr ppp_hdr; - size_t nwritten; size_t size; switch (encap) { @@ -1729,14 +1728,8 @@ pcap_write_phdr(wtap_dumper *wdh, int encap, const union wtap_pseudo_header *pse phtons(&lapd_hdr[LAPD_SLL_PROTOCOL_OFFSET], ETH_P_LAPD); lapd_hdr[LAPD_SLL_ADDR_OFFSET + 0] = pseudo_header->lapd.we_network?0x01:0x00; - nwritten = fwrite(&lapd_hdr, 1, sizeof(lapd_hdr), wdh->fh); - if (nwritten != sizeof(lapd_hdr)) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, lapd_hdr, sizeof(lapd_hdr), err)) return FALSE; - } wdh->bytes_dumped += sizeof(lapd_hdr); break; @@ -1750,14 +1743,8 @@ pcap_write_phdr(wtap_dumper *wdh, int encap, const union wtap_pseudo_header *pse sita_hdr[SITA_ERRORS1_OFFSET] = pseudo_header->sita.errors1; sita_hdr[SITA_ERRORS2_OFFSET] = pseudo_header->sita.errors2; sita_hdr[SITA_PROTO_OFFSET] = pseudo_header->sita.proto; - nwritten = fwrite(&sita_hdr, 1, sizeof(sita_hdr), wdh->fh); - if (nwritten != sizeof(sita_hdr)) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, sita_hdr, sizeof(sita_hdr), err)) return FALSE; - } wdh->bytes_dumped += sizeof(sita_hdr); break; @@ -1807,14 +1794,8 @@ pcap_write_phdr(wtap_dumper *wdh, int encap, const union wtap_pseudo_header *pse i2c_hdr.bus = pseudo_header->i2c.bus | (pseudo_header->i2c.is_event ? 0x80 : 0x00); phtonl((guint8 *)&i2c_hdr.flags, pseudo_header->i2c.flags); - nwritten = fwrite(&i2c_hdr, 1, sizeof(i2c_hdr), wdh->fh); - if (nwritten != sizeof(i2c_hdr)) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &i2c_hdr, sizeof(i2c_hdr), err)) return FALSE; - } wdh->bytes_dumped += sizeof(i2c_hdr); break; diff --git a/wiretap/snoop.c b/wiretap/snoop.c index 3ddb12a2ef..f971df547a 100644 --- a/wiretap/snoop.c +++ b/wiretap/snoop.c @@ -878,33 +878,20 @@ int snoop_dump_can_write_encap(int encap) gboolean snoop_dump_open(wtap_dumper *wdh, gboolean cant_seek _U_, int *err) { struct snoop_hdr file_hdr; - size_t nwritten; /* This is a snoop file */ wdh->subtype_write = snoop_dump; wdh->subtype_close = NULL; /* Write the file header. */ - nwritten = fwrite(&snoop_magic, 1, sizeof snoop_magic, wdh->fh); - if (nwritten != sizeof snoop_magic) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &snoop_magic, sizeof snoop_magic, err)) return FALSE; - } /* current "snoop" format is 2 */ file_hdr.version = g_htonl(2); file_hdr.network = g_htonl(wtap_encap[wdh->encap]); - nwritten = fwrite(&file_hdr, 1, sizeof file_hdr, wdh->fh); - if (nwritten != sizeof file_hdr) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &file_hdr, sizeof file_hdr, err)) return FALSE; - } return TRUE; } @@ -917,7 +904,6 @@ static gboolean snoop_dump(wtap_dumper *wdh, const guchar *pd, int *err) { struct snooprec_hdr rec_hdr; - size_t nwritten; int reclen; guint padlen; static char zeroes[4]; @@ -942,14 +928,8 @@ static gboolean snoop_dump(wtap_dumper *wdh, rec_hdr.cum_drops = 0; rec_hdr.ts_sec = g_htonl(phdr->ts.secs); rec_hdr.ts_usec = g_htonl(phdr->ts.nsecs / 1000); - nwritten = fwrite(&rec_hdr, 1, sizeof rec_hdr, wdh->fh); - if (nwritten != sizeof rec_hdr) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &rec_hdr, sizeof rec_hdr, err)) return FALSE; - } if (wdh->encap == WTAP_ENCAP_ATM_PDUS) { /* @@ -986,33 +966,15 @@ static gboolean snoop_dump(wtap_dumper *wdh, } atm_hdr.vpi = (guint8) pseudo_header->atm.vpi; atm_hdr.vci = g_htons(pseudo_header->atm.vci); - nwritten = fwrite(&atm_hdr, 1, sizeof atm_hdr, wdh->fh); - if (nwritten != sizeof atm_hdr) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &atm_hdr, sizeof atm_hdr, err)) return FALSE; - } } - nwritten = fwrite(pd, 1, phdr->caplen, wdh->fh); - if (nwritten != phdr->caplen) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) return FALSE; - } /* Now write the padding. */ - nwritten = fwrite(zeroes, 1, padlen, wdh->fh); - if (nwritten != padlen) { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, zeroes, padlen, err)) return FALSE; - } return TRUE; } diff --git a/wiretap/visual.c b/wiretap/visual.c index 4d9452b617..1d6f4ace1a 100644 --- a/wiretap/visual.c +++ b/wiretap/visual.c @@ -705,7 +705,6 @@ static gboolean visual_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, struct visual_write_info * visual = wdh->priv; struct visual_pkt_hdr vpkt_hdr; size_t hdr_size = sizeof vpkt_hdr; - size_t nwritten; unsigned delta_msec; guint32 packet_status; @@ -785,26 +784,12 @@ static gboolean visual_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, vpkt_hdr.status = htolel(packet_status); /* Write the packet header. */ - nwritten = fwrite(&vpkt_hdr, 1, hdr_size, wdh->fh); - if (nwritten != hdr_size) - { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, &vpkt_hdr, hdr_size, err)) return FALSE; - } /* Write the packet data */ - nwritten = fwrite(pd, 1, phdr->caplen, wdh->fh); - if (nwritten != phdr->caplen) - { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; + if (!wtap_dump_file_write(wdh, pd, phdr->caplen, err)) return FALSE; - } /* Store the frame offset in the index table. */ if (visual->index_table_index >= visual->index_table_size) @@ -830,7 +815,6 @@ static gboolean visual_dump_close(wtap_dumper *wdh, int *err) { struct visual_write_info * visual = wdh->priv; size_t n_to_write; - size_t nwritten; struct visual_file_hdr vfile_hdr; const char *magicp; size_t magic_size; @@ -845,16 +829,8 @@ static gboolean visual_dump_close(wtap_dumper *wdh, int *err) { /* Write the index table to the file. */ n_to_write = visual->index_table_index * sizeof *visual->index_table; - nwritten = fwrite(visual->index_table, 1, n_to_write, wdh->fh); - if (nwritten != n_to_write) + if (!wtap_dump_file_write(wdh, visual->index_table, n_to_write, err)) { - if (err != NULL) - { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - } visual_dump_free(wdh); return FALSE; } @@ -864,16 +840,8 @@ static gboolean visual_dump_close(wtap_dumper *wdh, int *err) fseek(wdh->fh, 0, SEEK_SET); magicp = visual_magic; magic_size = sizeof visual_magic; - nwritten = fwrite(magicp, 1, magic_size, wdh->fh); - if (nwritten != magic_size) + if (!wtap_dump_file_write(wdh, magicp, magic_size, err)) { - if (err != NULL) - { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - } visual_dump_free(wdh); return FALSE; } @@ -914,16 +882,8 @@ static gboolean visual_dump_close(wtap_dumper *wdh, int *err) } /* Write the file header following the magic bytes. */ - nwritten = fwrite(&vfile_hdr, 1, sizeof vfile_hdr, wdh->fh); - if (nwritten != sizeof vfile_hdr) + if (!wtap_dump_file_write(wdh, &vfile_hdr, sizeof vfile_hdr, err)) { - if (err != NULL) - { - if (nwritten == 0 && ferror(wdh->fh)) - *err = errno; - else - *err = WTAP_ERR_SHORT_WRITE; - } visual_dump_free(wdh); return FALSE; } -- 2.34.1