diff options
-rw-r--r-- | src/util/common_logging.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/util/common_logging.c b/src/util/common_logging.c index 6c3dda9bc..8ba955dea 100644 --- a/src/util/common_logging.c +++ b/src/util/common_logging.c | |||
@@ -336,11 +336,22 @@ setup_log_file (const struct tm *tm) | |||
336 | int altlog_fd; | 336 | int altlog_fd; |
337 | int dup_return; | 337 | int dup_return; |
338 | FILE *altlog; | 338 | FILE *altlog; |
339 | char *leftsquare; | ||
339 | 340 | ||
340 | if (NULL == log_file_name) | 341 | if (NULL == log_file_name) |
341 | return GNUNET_SYSERR; | 342 | return GNUNET_SYSERR; |
342 | if (0 == strftime (fn, sizeof (fn), log_file_name, tm)) | 343 | if (0 == strftime (fn, sizeof (fn), log_file_name, tm)) |
343 | return GNUNET_SYSERR; | 344 | return GNUNET_SYSERR; |
345 | leftsquare = strrchr (fn, '['); | ||
346 | if ( (NULL != leftsquare) && (']' == leftsquare[1]) ) | ||
347 | { | ||
348 | char *logfile_copy = GNUNET_strdup (fn); | ||
349 | logfile_copy[leftsquare - fn] = '\0'; | ||
350 | logfile_copy[leftsquare - fn + 1] = '\0'; | ||
351 | snprintf (fn, PATH_MAX, "%s%d%s", | ||
352 | logfile_copy, getpid (), &logfile_copy[leftsquare - fn + 2]); | ||
353 | GNUNET_free (logfile_copy); | ||
354 | } | ||
344 | if (0 == strcmp (fn, last_fn)) | 355 | if (0 == strcmp (fn, last_fn)) |
345 | return GNUNET_OK; /* no change */ | 356 | return GNUNET_OK; /* no change */ |
346 | log_rotate (last_fn); | 357 | log_rotate (last_fn); |