diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2009-06-02 23:14:19 +0000 |
---|---|---|
committer | Stig Bjørlykke <stig@bjorlykke.org> | 2009-06-02 23:14:19 +0000 |
commit | 9a8e93d88b1d76fcb5c3e427296bf96139ea751e (patch) | |
tree | 1e4f67c7082e851cd1b94430908e6c164818ef0b /editcap.c | |
parent | 0ea6bce6afa619ed5be4f14b13422c603851c091 (diff) | |
download | wireshark-9a8e93d88b1d76fcb5c3e427296bf96139ea751e.tar.gz wireshark-9a8e93d88b1d76fcb5c3e427296bf96139ea751e.tar.bz2 wireshark-9a8e93d88b1d76fcb5c3e427296bf96139ea751e.zip |
If no valid packages was found in the input file we write an empty
header in the output file. This way we at least create a file.
svn path=/trunk/; revision=28617
Diffstat (limited to 'editcap.c')
-rw-r--r-- | editcap.c | 20 |
1 files changed, 17 insertions, 3 deletions
@@ -1230,7 +1230,6 @@ main(int argc, char *argv[]) count++; } - g_free(filename); g_free(fprefix); g_free(fsuffix); @@ -1250,13 +1249,28 @@ main(int argc, char *argv[]) } } - if (pdh && !wtap_dump_close(pdh, &err)) { + if (!pdh) { + /* No valid packages found, open the outfile so we can write an empty header */ + g_free (filename); + filename = g_strdup(argv[optind+1]); + + pdh = wtap_dump_open(filename, out_file_type, + out_frame_type, wtap_snapshot_length(wth), FALSE /* compressed */, &err); + if (pdh == NULL) { + fprintf(stderr, "editcap: Can't open or create %s: %s\n", filename, + wtap_strerror(err)); + exit(2); + } + } - fprintf(stderr, "editcap: Error closing %s: %s\n", filename, + if (!wtap_dump_close(pdh, &err)) { + + fprintf(stderr, "editcap: Error writing to %s: %s\n", filename, wtap_strerror(err)); exit(2); } + g_free(filename); } if (dup_detect) { |