diff options
author | Saya Sugiura <ssugiura@jp.adit-jv.com> | 2018-06-28 11:15:47 +0900 |
---|---|---|
committer | Manikandan C <mchockalingam@de.adit-jv.com> | 2018-12-11 09:32:55 +0100 |
commit | 8c55a51cfb09f81ee23db7c380ede6a814fb3014 (patch) | |
tree | c7a0c81e6ce47a41a71b91fda56e76cad9122e5f /src/lib/dlt_env_ll.c | |
parent | 192cb10aced9c1c4b1cf13736e2f624fc4e6d0ca (diff) | |
download | DLT-daemon-8c55a51cfb09f81ee23db7c380ede6a814fb3014.tar.gz |
lib: socket: Flush all data before closing socket
Sometimes socket will be closed even not all of the data is flushed to daemon.
So before closing, following will be handled:
1. Use shutdown() to shut down further transmissions
2. Subsequent read() to resend_buffer
Also socket fd is reset in child fork handler since the socket itself will
not be duplicated in the child process.
Solves JIRA: SWGIII-28702
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
Diffstat (limited to 'src/lib/dlt_env_ll.c')
-rw-r--r-- | src/lib/dlt_env_ll.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib/dlt_env_ll.c b/src/lib/dlt_env_ll.c index a3e3a16..aeaa1d3 100644 --- a/src/lib/dlt_env_ll.c +++ b/src/lib/dlt_env_ll.c @@ -354,8 +354,11 @@ void dlt_env_free_ll_set(dlt_env_ll_set * const ll_set) return; } - free(ll_set->item); - ll_set->item = NULL; + if (!ll_set->item) + { + free(ll_set->item); + ll_set->item = NULL; + } ll_set->array_size = 0u; ll_set->num_elem = 0u; } |