2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 06:25:31 +00:00

1646. [bug] win32: logging file versions didn't work with

non-UNC filenames.  [RT#11486]
This commit is contained in:
Mark Andrews
2004-06-04 02:19:17 +00:00
parent ea0b0c283b
commit f66cd386cf
2 changed files with 17 additions and 4 deletions

View File

@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: log.c,v 1.85 2004/04/10 04:33:36 marka Exp $ */
/* $Id: log.c,v 1.86 2004/06/04 02:19:17 marka Exp $ */
/* Principal Authors: DCL */
@@ -1140,6 +1140,10 @@ greatest_version(isc_logchannel_t *channel, int *greatestp) {
unsigned int basenamelen;
isc_dir_t dir;
isc_result_t result;
char sep = '/';
#ifdef _WIN32
char *basename2;
#endif
REQUIRE(channel->type == ISC_LOG_TOFILE);
@@ -1147,7 +1151,15 @@ greatest_version(isc_logchannel_t *channel, int *greatestp) {
* It is safe to DE_CONST the file.name because it was copied
* with isc_mem_strdup in isc_log_createchannel.
*/
basename = strrchr(FILE_NAME(channel), '/');
basename = strrchr(FILE_NAME(channel), sep);
#ifdef _WIN32
basename2 = strrchr(FILE_NAME(channel), '\\');
if ((basename != NULL && basename2 != NULL && basename2 > basename) ||
(basename == NULL && basename2 != NULL)) {
basename = basename2;
sep = '\\';
}
#endif
if (basename != NULL) {
*basename++ = '\0';
dirname = FILE_NAME(channel);
@@ -1164,7 +1176,7 @@ greatest_version(isc_logchannel_t *channel, int *greatestp) {
* Replace the file separator if it was taken out.
*/
if (basename != FILE_NAME(channel))
*(basename - 1) = '/';
*(basename - 1) = sep;
/*
* Return if the directory open failed.