diff options
Diffstat (limited to 'src/lib/dlt_user.c')
-rw-r--r-- | src/lib/dlt_user.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c index 0530ba7..ab92c2d 100644 --- a/src/lib/dlt_user.c +++ b/src/lib/dlt_user.c @@ -1435,6 +1435,13 @@ DltReturnValue dlt_forward_msg(void *msgdata,size_t size) if (ret < DLT_RETURN_OK) { DLT_SEM_LOCK(); + + if (ret == DLT_RETURN_PIPE_ERROR) + { + /* handle not open or pipe error */ + close(dlt_user.dlt_log_handle); + dlt_user.dlt_log_handle = -1; + } if (dlt_buffer_push3(&(dlt_user.startup_buffer), (unsigned char *)&(userheader), sizeof(DltUserHeader), @@ -3717,6 +3724,12 @@ DltReturnValue dlt_user_log_send_log(DltContextData *log, int mtype) if ((ret!=DLT_RETURN_OK) || (dlt_user.appID[0] == '\0')) { DLT_SEM_LOCK(); + if (ret == DLT_RETURN_PIPE_ERROR) + { + /* handle not open or pipe error */ + close(dlt_user.dlt_log_handle); + dlt_user.dlt_log_handle = -1; + } if (dlt_buffer_push3(&(dlt_user.startup_buffer), (unsigned char *)&(userheader), sizeof(DltUserHeader), |