diff options
author | Guy Harris <guy@alum.mit.edu> | 2014-12-17 16:02:50 -0800 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2014-12-18 00:03:26 +0000 |
commit | 51522b33723dec4dd0481dcabc261010be39937c (patch) | |
tree | 4c772ba5dd3a61a470784464e39573ca27c5028c /reordercap.c | |
parent | 8ce0f122011f26ab4e81172e9899ed27a5508abd (diff) |
Handle "I can't map this for that file format" better.
For cases where record (meta)data is something that can't be written out
in a particular file format, return WTAP_ERR_UNWRITABLE_REC_DATA along
with an err_info string.
Report (and free) that err_info string in cases where
WTAP_ERR_UNWRITABLE_REC_DATA is returned.
Clean up some other error reporting cases, and flag with an XXX some
cases where we aren't reporting errors at all, while we're at it.
Change-Id: I91d02093af0d42c24ec4634c2c773b30f3d39ab3
Reviewed-on: https://code.wireshark.org/review/5823
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'reordercap.c')
-rw-r--r-- | reordercap.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/reordercap.c b/reordercap.c index 014c839951..72099cf467 100644 --- a/reordercap.c +++ b/reordercap.c @@ -126,6 +126,7 @@ frame_write(FrameRecord_t *frame, wtap *wth, wtap_dumper *pdh, case WTAP_ERR_UNSUPPORTED: case WTAP_ERR_UNWRITABLE_ENCAP: case WTAP_ERR_BAD_FILE: + case WTAP_ERR_UNWRITABLE_REC_DATA: fprintf(stderr, "(%s)\n", err_info); g_free(err_info); break; @@ -140,9 +141,20 @@ frame_write(FrameRecord_t *frame, wtap *wth, wtap_dumper *pdh, phdr->ts = frame->time; /* Dump frame to outfile */ - if (!wtap_dump(pdh, phdr, ws_buffer_start_ptr(buf), &err)) { - fprintf(stderr, "reordercap: Error (%s) writing frame to outfile\n", - wtap_strerror(err)); + if (!wtap_dump(pdh, phdr, ws_buffer_start_ptr(buf), &err, &err_info)) { + switch (err) { + + case WTAP_ERR_UNWRITABLE_REC_DATA: + fprintf(stderr, "reordercap: Error (%s) writing frame to outfile (%s)\n", + wtap_strerror(err), err_info); + g_free(err_info); + break; + + default: + fprintf(stderr, "reordercap: Error (%s) writing frame to outfile\n", + wtap_strerror(err)); + break; + } exit(1); } } @@ -288,6 +300,7 @@ main(int argc, char *argv[]) case WTAP_ERR_UNSUPPORTED: case WTAP_ERR_UNWRITABLE_ENCAP: case WTAP_ERR_BAD_FILE: + case WTAP_ERR_UNWRITABLE_REC_DATA: fprintf(stderr, "(%s)\n", err_info); g_free(err_info); break; @@ -345,6 +358,7 @@ main(int argc, char *argv[]) case WTAP_ERR_UNSUPPORTED: case WTAP_ERR_UNWRITABLE_ENCAP: case WTAP_ERR_BAD_FILE: + case WTAP_ERR_UNWRITABLE_REC_DATA: fprintf(stderr, "(%s)\n", err_info); g_free(err_info); break; |