summaryrefslogtreecommitdiff
path: root/src/offlinelogstorage/dlt_offline_logstorage.c
diff options
context:
space:
mode:
authorSaya Sugiura <ssugiura@jp.adit-jv.com>2019-02-19 13:52:18 +0900
committerSaya Sugiura <ssugiura@jp.adit-jv.com>2019-06-18 17:22:09 +0900
commit711c9b884cf8f869511b31133dc9f7959c9ab843 (patch)
tree4fb8b154d916d43b4da890f2b0f1d623edbe8349 /src/offlinelogstorage/dlt_offline_logstorage.c
parentb049b408f7b15ef5ecdc71723812f43161d25ce8 (diff)
downloadDLT-daemon-711c9b884cf8f869511b31133dc9f7959c9ab843.tar.gz
Logstorage: Sync behavior bug fix
This commit fixes couple of unexpected behavior on Logstorage sync behavior. - A log file is created only if necessary to avoid creating an empty log file. - The cache is synced with the condition: 1) When the ring buffer is not wrapped around, the cache is synced from last sync offset to current offset 2) When the ring buffer is wrapped around for first time and current offset is smaller than last sync offset, the cache is synced from last sync offset to end sync offset, and then from beginning to current offset 3) Otherwise, the cache is synced from offset where the log message starts to end sync offset, and then from beginning to current offset Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
Diffstat (limited to 'src/offlinelogstorage/dlt_offline_logstorage.c')
-rw-r--r--src/offlinelogstorage/dlt_offline_logstorage.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/offlinelogstorage/dlt_offline_logstorage.c b/src/offlinelogstorage/dlt_offline_logstorage.c
index 483bf8a..fe1af71 100644
--- a/src/offlinelogstorage/dlt_offline_logstorage.c
+++ b/src/offlinelogstorage/dlt_offline_logstorage.c
@@ -89,11 +89,11 @@ DLT_STATIC void dlt_logstorage_filter_config_free(DltLogStorageFilterConfig *dat
* @return 0 on success, -1 on error
*/
DLT_STATIC int dlt_logstorage_list_destroy(DltLogStorageFilterList **list,
+ DltLogStorageUserConfig *uconfig,
+ char *dev_path,
int reason)
{
DltLogStorageFilterList *tmp = NULL;
- DltLogStorageUserConfig *uconfig = NULL;
- char *dev_path = NULL;
while (*(list) != NULL) {
tmp = *list;
@@ -295,7 +295,8 @@ void dlt_logstorage_free(DltLogStorage *handle, int reason)
return;
}
- dlt_logstorage_list_destroy(&(handle->config_list), reason);
+ dlt_logstorage_list_destroy(&(handle->config_list), &handle->uconfig,
+ handle->device_mount_point, reason);
}
@@ -2032,6 +2033,8 @@ int dlt_logstorage_write(DltLogStorage *handle,
if (ret == 0) { /* log data (write) */
ret = config[i]->dlt_logstorage_write(config[i],
+ uconfig,
+ handle->device_mount_point,
data1,
size1,
data2,