Skip to content

Commit bb43acc

Browse files
committed
Make sure to reopen error log if server name is being substituted (Issue #1277)
1 parent 87fc128 commit bb43acc

2 files changed

Lines changed: 19 additions & 4 deletions

File tree

scheduler/conf.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -946,6 +946,17 @@ cupsdReadConfiguration(void)
946946

947947
ServerNameIsIP = !*slash;
948948

949+
/*
950+
* If the ErrorLog value contains "%s", close the current log file (if any)
951+
* so that the proper ServerName value is used when logging.
952+
*/
953+
954+
if (ErrorLog && strstr(ErrorLog, "%s") && ErrorFile && ErrorFile != LogStderr)
955+
{
956+
cupsFileClose(ErrorFile);
957+
ErrorFile = NULL;
958+
}
959+
949960
/*
950961
* Make sure ServerAdmin is initialized...
951962
*/

scheduler/log.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,12 @@ cupsdCheckLogFile(cups_file_t **lf, /* IO - Log file */
153153
strlcat(filename, "/", sizeof(filename));
154154
}
155155
else
156+
{
156157
filename[0] = '\0';
158+
}
157159

158-
for (logptr = logname, ptr = filename + strlen(filename);
159-
*logptr && ptr < (filename + sizeof(filename) - 1);
160-
logptr ++)
160+
for (logptr = logname, ptr = filename + strlen(filename); *logptr && ptr < (filename + sizeof(filename) - 1); logptr ++)
161+
{
161162
if (*logptr == '%')
162163
{
163164
/*
@@ -171,7 +172,7 @@ cupsdCheckLogFile(cups_file_t **lf, /* IO - Log file */
171172
* Insert the server name...
172173
*/
173174

174-
strlcpy(ptr, ServerName, sizeof(filename) - (size_t)(ptr - filename));
175+
strlcpy(ptr, ServerName ? ServerName : "localhost", sizeof(filename) - (size_t)(ptr - filename));
175176
ptr += strlen(ptr);
176177
}
177178
else
@@ -184,7 +185,10 @@ cupsdCheckLogFile(cups_file_t **lf, /* IO - Log file */
184185
}
185186
}
186187
else
188+
{
187189
*ptr++ = *logptr;
190+
}
191+
}
188192

189193
*ptr = '\0';
190194
}

0 commit comments

Comments
 (0)