/* ringbuffer.c
* Routines for packet capture windows
*
- * $Id: ringbuffer.c,v 1.10 2004/06/02 18:49:40 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
int filetype;
int linktype;
int snaplen;
- guint16 number;
+
int fd; /* Current ringbuffer file descriptor */
wtap_dumper *pdh;
} ringbuf_data;
static ringbuf_data rb_data;
+
+/*
+ * create the next filename and open a new binary file with that name
+ */
static int ringbuf_open_file(rb_file *rfile, int *err)
{
char filenum[5+1];
#endif
current_time = time(NULL);
- rb_data.number++;
-
- snprintf(filenum, sizeof(filenum), "%05d", rb_data.number);
+ snprintf(filenum, sizeof(filenum), "%05d", rb_data.curr_file_num + 1 /*.number*/);
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);
rb_data.unlimited = FALSE;
rb_data.fd = -1;
rb_data.pdh = NULL;
- rb_data.number = 0;
/* just to be sure ... */
if (num_files <= RINGBUFFER_MAX_NUM_FILES) {
* Switches to the next ringbuffer file
*/
gboolean
-ringbuf_switch_file(capture_file *cf, wtap_dumper **pdh, int *err)
+ringbuf_switch_file(wtap_dumper **pdh, gchar **save_file, int *save_file_fd, int *err)
{
int next_file_num;
rb_file *next_rfile = NULL;
/* switch to the new file */
rb_data.curr_file_num = next_file_num;
- cf->save_file = next_rfile->name;
- cf->save_file_fd = rb_data.fd;
+ *save_file = next_rfile->name;
+ *save_file_fd = rb_data.fd;
(*pdh) = rb_data.pdh;
return TRUE;
* Calls wtap_dump_close() for the current ringbuffer file
*/
gboolean
-ringbuf_wtap_dump_close(capture_file *cf, int *err)
+ringbuf_wtap_dump_close(gchar **save_file, int *err)
{
gboolean ret_val = TRUE;
}
/* set the save file name to the current file */
- cf->save_file = rb_data.files[rb_data.curr_file_num].name;
+ *save_file = rb_data.files[rb_data.curr_file_num].name;
return ret_val;
}