diff options
author | Michael Vetter <jubalh@iodoru.org> | 2021-06-28 17:41:48 +0200 |
---|---|---|
committer | Michael Vetter <jubalh@iodoru.org> | 2021-06-28 17:41:48 +0200 |
commit | 482f8955d7ee21515a82d1844620385ad4503079 (patch) | |
tree | ca8de66eb2bef5b81f59ae6373305a0f70cd007d /src | |
parent | a4230603d3ae5ed52506b097a23d9f4f8a984107 (diff) | |
download | profani-tty-482f8955d7ee21515a82d1844620385ad4503079.tar.gz |
Fix log rotation
See https://github.com/profanity-im/profanity/issues/1518 It has a good explanation of what happened: ``` Apparently, the _rotate_log_file function tried to extract user-provided name from currently used mainlogfile and restart logging to the same place after rotation, but currently this is interpreted as a full path instead. As I understand, the log rotation is no longer done with user-provided paths at all so this should be simply skipped altogether now as passing any non-NULL value is interpreted as user-provided. Replacing start with NULL appears to fix it for me. ``` In log_msg() we only rotate the log if not user_provided_log. https://github.com/profanity-im/profanity/pull/1455 changed the behaviour from user defined filename in the log dir to using full path.
Diffstat (limited to 'src')
-rw-r--r-- | src/log.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/src/log.c b/src/log.c index 6dfc089a..66fe8abe 100644 --- a/src/log.c +++ b/src/log.c @@ -246,18 +246,12 @@ _rotate_log_file(void) break; } - char* lf = strdup(mainlogfile); - char* start = strrchr(lf, '/') + 1; - char* end = strstr(start, ".log"); - *end = '\0'; - log_close(); rename(log_file, log_file_new); - log_init(log_get_filter(), start); + log_init(log_get_filter(), log_file); - free(lf); free(log_file_new); free(log_file); log_info("Log has been rotated"); |