aboutsummaryrefslogtreecommitdiffstats
path: root/editcap.c
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2009-06-02 23:14:19 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2009-06-02 23:14:19 +0000
commit9a8e93d88b1d76fcb5c3e427296bf96139ea751e (patch)
tree1e4f67c7082e851cd1b94430908e6c164818ef0b /editcap.c
parent0ea6bce6afa619ed5be4f14b13422c603851c091 (diff)
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.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/editcap.c b/editcap.c
index 48d6f82004..4f0fa14967 100644
--- a/editcap.c
+++ b/editcap.c
@@ -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) {