X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilclog.c;fp=lib%2Fsilcutil%2Fsilclog.c;h=232a386416c3864f8c0f849cd946893945db432f;hb=1d76faba26d4ac45fb3b17d6e4257d3c461b4a2b;hp=824efb701389912d11b260450b86ea63e6ac12fe;hpb=3e424c7e535b8cbddf8b9c48ef134047d56cebf6;p=silc.git diff --git a/lib/silcutil/silclog.c b/lib/silcutil/silclog.c index 824efb70..232a3864 100644 --- a/lib/silcutil/silclog.c +++ b/lib/silcutil/silclog.c @@ -117,17 +117,26 @@ static void silc_log_checksize(SilcLog log) silc_time_string(0), log->typename, (unsigned long)log->maxsize / 1024); fflush(log->fp); - fclose(log->fp); memset(newname, 0, sizeof(newname)); silc_snprintf(newname, sizeof(newname) - 1, "%s.old", log->filename); unlink(newname); - rename(log->filename, newname); + if (rename(log->filename, newname)) { + fprintf(log->fp, + "[%s] [%s] Couldn't recycle log file '%s' for type '%s': %s", + silc_time_string(0), log->typename, + log->filename, log->typename, strerror(errno)); + log->maxsize = 0; + return; + } + fclose(log->fp); log->fp = fopen(log->filename, "w"); - if (!log->fp) + if (!log->fp) { SILC_LOG_WARNING(("Couldn't reopen log file '%s' for type '%s': %s", log->filename, log->typename, strerror(errno))); + log->maxsize = 0; + } #ifdef HAVE_CHMOD chmod(log->filename, 0600); #endif /* HAVE_CHMOD */