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:
3
CHANGES
3
CHANGES
@@ -4,7 +4,8 @@
|
||||
|
||||
1647. [placeholder] rt11445
|
||||
|
||||
1646. [placeholder] rt11486
|
||||
1646. [bug] win32: logging file versions didn't work with
|
||||
non-UNC filenames. [RT#11486]
|
||||
|
||||
1645. [bug] named could trigger a REQUIRE failure if multiple
|
||||
masters with keys are specified.
|
||||
|
@@ -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.
|
||||
|
Reference in New Issue
Block a user