From: Christian Grothoff Date: Sat, 23 Jun 2012 22:28:37 +0000 (+0000) Subject: -LRN: Support [] (formatted to be pid) in logfile names: X-Git-Tag: initial-import-from-subversion-38251~12857 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a14f9f0fbd4f2226d8ccef8de5d42a4abc7b82fe;p=oweals%2Fgnunet.git -LRN: Support [] (formatted to be pid) in logfile names: I needed it for mesh debugging. Wrote this patch before your log rotation changes, and had to hastily adapt it after them, so i'm not sure it actually works. Did some quick tests on it, and it appears to be working, so i'll just send it to you as is, and see how it turns out. --- 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) int altlog_fd; int dup_return; FILE *altlog; + char *leftsquare; if (NULL == log_file_name) return GNUNET_SYSERR; if (0 == strftime (fn, sizeof (fn), log_file_name, tm)) return GNUNET_SYSERR; + leftsquare = strrchr (fn, '['); + if ( (NULL != leftsquare) && (']' == leftsquare[1]) ) + { + char *logfile_copy = GNUNET_strdup (fn); + logfile_copy[leftsquare - fn] = '\0'; + logfile_copy[leftsquare - fn + 1] = '\0'; + snprintf (fn, PATH_MAX, "%s%d%s", + logfile_copy, getpid (), &logfile_copy[leftsquare - fn + 2]); + GNUNET_free (logfile_copy); + } if (0 == strcmp (fn, last_fn)) return GNUNET_OK; /* no change */ log_rotate (last_fn);