From f45e9326fe4e3f85b7d58034feb98516de97c7ca Mon Sep 17 00:00:00 2001 From: Saya Sugiura Date: Fri, 31 Jul 2020 18:13:24 +0900 Subject: logstorage: Modify rearranging file This commit updates dlt_logstorage_rearrange_file_name() to perform following: - If the maximum index isn't equal to maxcounter, do not rearrange the file name - If the maximum index reaches to maxcounter: - If minimum index is not 1, do not rearrange the file name - If minimum index is 1, check if there's any indexes which the gap is more than 1. If exists, take those indexes as latest and oldest. Signed-off-by: Saya Sugiura --- src/offlinelogstorage/dlt_offline_logstorage_behavior.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/offlinelogstorage/dlt_offline_logstorage_behavior.c b/src/offlinelogstorage/dlt_offline_logstorage_behavior.c index ac3b372..75be657 100644 --- a/src/offlinelogstorage/dlt_offline_logstorage_behavior.c +++ b/src/offlinelogstorage/dlt_offline_logstorage_behavior.c @@ -173,8 +173,17 @@ void dlt_logstorage_rearrange_file_name(DltLogStorageFileList **head) if ((head == NULL) || (*head == NULL) || ((*head)->next == NULL)) return; + if ((*head)->idx != 1) + { + /* Do not sort */ + return; + } + for (n = *head; n != NULL; n = n->next) { - if (n && n_prev) { + /* Compare the diff between n->idx and n_prev->idx only if + * wrap_post and wrap_pre are not set yet. Otherwise continue the loop + * until the tail */ + if (n && n_prev && !wrap_post && !wrap_pre) { if ((n->idx - n_prev->idx) != 1) { wrap_post = n; wrap_pre = n_prev; -- cgit v1.2.1