|
|
|
@ -882,26 +882,11 @@ static int log_error_cycle(server *srv) {
|
|
|
|
|
|
|
|
|
|
if (srv->errorlog_mode == ERRORLOG_FILE) {
|
|
|
|
|
const char *logfile = srv->srvconf.errorlog_file->ptr;
|
|
|
|
|
int new_fd;
|
|
|
|
|
|
|
|
|
|
if (-1 == (new_fd = fdevent_open_logger(logfile))) {
|
|
|
|
|
if (-1 == fdevent_cycle_logger(logfile, &srv->errorlog_fd)) {
|
|
|
|
|
/* write to old log */
|
|
|
|
|
log_error_write(srv, __FILE__, __LINE__, "SSSSS",
|
|
|
|
|
log_error_write(srv, __FILE__, __LINE__, "SSSS",
|
|
|
|
|
"cycling errorlog '", logfile,
|
|
|
|
|
"' failed: ", strerror(errno),
|
|
|
|
|
", falling back to syslog()");
|
|
|
|
|
|
|
|
|
|
close(srv->errorlog_fd);
|
|
|
|
|
srv->errorlog_fd = -1;
|
|
|
|
|
#ifdef HAVE_SYSLOG_H
|
|
|
|
|
srv->errorlog_mode = ERRORLOG_SYSLOG;
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
/* ok, new log is open, close the old one */
|
|
|
|
|
close(srv->errorlog_fd);
|
|
|
|
|
srv->errorlog_fd = new_fd;
|
|
|
|
|
fdevent_setfd_cloexec(srv->errorlog_fd);
|
|
|
|
|
"' failed: ", strerror(errno));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|