diff options
author | Gerald Combs <gerald@wireshark.org> | 2010-05-27 18:00:46 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2010-05-27 18:00:46 +0000 |
commit | 8598c522b23a64ca600b0440e43b1bc406eda01b (patch) | |
tree | ecf82b787638623aa139392d753f78b9ff4eb9d1 | |
parent | 09c06a932dfe47f73d479026cb1db7b84fa401a8 (diff) | |
download | wireshark-8598c522b23a64ca600b0440e43b1bc406eda01b.tar.gz |
Set RINGBUFFER_MAX_NUM_FILES to 100000. Use it to generate file names.
Add RINGBUFFER_WARN_NUM_FILES and use it to print a warning. Print
warnings when we change the number of ringbuffer files.
svn path=/trunk/; revision=32998
-rw-r--r-- | capture_opts.c | 7 | ||||
-rw-r--r-- | ringbuffer.c | 2 | ||||
-rw-r--r-- | ringbuffer.h | 10 |
3 files changed, 13 insertions, 6 deletions
diff --git a/capture_opts.c b/capture_opts.c index 23297b60eb..e24ec8fed1 100644 --- a/capture_opts.c +++ b/capture_opts.c @@ -604,10 +604,15 @@ void capture_opts_trim_snaplen(capture_options *capture_opts, int snaplen_min) void capture_opts_trim_ring_num_files(capture_options *capture_opts) { /* Check the value range of the ring_num_files parameter */ - if (capture_opts->ring_num_files > RINGBUFFER_MAX_NUM_FILES) + if (capture_opts->ring_num_files > RINGBUFFER_MAX_NUM_FILES) { + cmdarg_err("Too many ring buffer files (%u). Reducing to %u.\n", capture_opts->ring_num_files, RINGBUFFER_MAX_NUM_FILES); capture_opts->ring_num_files = RINGBUFFER_MAX_NUM_FILES; + } else if (capture_opts->ring_num_files > RINGBUFFER_WARN_NUM_FILES) { + cmdarg_err("%u is a lot of ring buffer files.\n", capture_opts->ring_num_files); + } #if RINGBUFFER_MIN_NUM_FILES > 0 else if (capture_opts->ring_num_files < RINGBUFFER_MIN_NUM_FILES) + cmdarg_err("Too few ring buffer files (%u). Increasing to %u.\n", capture_opts->ring_num_files, RINGBUFFER_MIN_NUM_FILES); capture_opts->ring_num_files = RINGBUFFER_MIN_NUM_FILES; #endif } diff --git a/ringbuffer.c b/ringbuffer.c index 94efe0b5c7..ca94655438 100644 --- a/ringbuffer.c +++ b/ringbuffer.c @@ -113,7 +113,7 @@ static int ringbuf_open_file(rb_file *rfile, int *err) #endif current_time = time(NULL); - g_snprintf(filenum, sizeof(filenum), "%05u", (rb_data.curr_file_num + 1) % 100000); + g_snprintf(filenum, sizeof(filenum), "%05u", (rb_data.curr_file_num + 1) % RINGBUFFER_MAX_NUM_FILES); strftime(timestr, sizeof(timestr), "%Y%m%d%H%M%S", localtime(¤t_time)); rfile->name = g_strconcat(rb_data.fprefix, "_", filenum, "_", timestr, rb_data.fsuffix, NULL); diff --git a/ringbuffer.h b/ringbuffer.h index b4ef7a42f1..497c9827d2 100644 --- a/ringbuffer.h +++ b/ringbuffer.h @@ -30,11 +30,13 @@ #include "wiretap/wtap.h" #define RINGBUFFER_UNLIMITED_FILES 0 -/* minimum number of ringbuffer files */ +/* Minimum number of ringbuffer files */ #define RINGBUFFER_MIN_NUM_FILES 0 -/* maximum number of ringbuffer files */ -/* (only to avoid crashes on very large numbers) */ -#define RINGBUFFER_MAX_NUM_FILES 10000 +/* Maximum number of ringbuffer files */ +/* Avoid crashes on very large numbers. Should be a power of 10 */ +#define RINGBUFFER_MAX_NUM_FILES 100000 +/* Maximum number for FAT filesystems */ +#define RINGBUFFER_WARN_NUM_FILES 65535 int ringbuf_init(const char *capture_name, guint num_files); const gchar *ringbuf_current_filename(void); |