From: guy Date: Wed, 25 Feb 2004 05:52:37 +0000 (+0000) Subject: Only handle as a suffix stuff following a "." in the last component of a X-Git-Url: http://git.samba.org/samba.git/?p=obnox%2Fwireshark%2Fwip.git;a=commitdiff_plain;h=479bfeef4f3279110f0f35323520000f91ae0ad3 Only handle as a suffix stuff following a "." in the last component of a pathname. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@10233 f5534014-38df-0310-8fa8-9805f1628bb7 --- diff --git a/ringbuffer.c b/ringbuffer.c index 2584dde4b4..453697e6d0 100644 --- a/ringbuffer.c +++ b/ringbuffer.c @@ -1,7 +1,7 @@ /* ringbuffer.c * Routines for packet capture windows * - * $Id: ringbuffer.c,v 1.8 2004/02/25 05:21:08 guy Exp $ + * $Id: ringbuffer.c,v 1.9 2004/02/25 05:52:37 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -151,7 +151,7 @@ int ringbuf_init(const char *capfile_name, guint num_files) { unsigned int i; - char *pfx; + char *pfx, *last_pathsep; gchar *save_file; rb_data.files = NULL; @@ -179,13 +179,26 @@ ringbuf_init(const char *capfile_name, guint num_files) /* set file name prefix/suffix */ save_file = g_strdup(capfile_name); + last_pathsep = strrchr(save_file, G_DIR_SEPARATOR); pfx = strrchr(save_file,'.'); - if (pfx != NULL) { + if (pfx != NULL && (last_pathsep == NULL || pfx > last_pathsep)) { + /* The pathname has a "." in it, and it's in the last component + of the pathname (because there is either only one component, + i.e. last_pathsep is null as there are no path separators, + or the "." is after the path separator before the last + component. + + Treat it as a separator between the rest of the file name and + the file name suffix, and arrange that the names given to the + ring buffer files have the specified suffix, i.e. put the + changing part of the name *before* the suffix. */ pfx[0] = '\0'; rb_data.fprefix = g_strdup(save_file); pfx[0] = '.'; /* restore capfile_name */ rb_data.fsuffix = g_strdup(pfx); } else { + /* Either there's no "." in the pathname, or it's in a directory + component, so the last component has no suffix. */ rb_data.fprefix = g_strdup(save_file); rb_data.fsuffix = NULL; }