Update .changes file
[profile/ivi/dlt-daemon.git] / ReleaseNotes.txt
1 Diagnostic Log and Trace  - Release Notes\r
2 =========================================\r
3 Alexander Wenzel <Alexander.AW.Wenzel@bmw.de>\r
4 \r
5 Version\r
6 -------\r
7 2.10.0 STABLE\r
8 \r
9 Changes\r
10 -------\r
11 \r
12 2.11.0\r
13 \r
14    * Enable dbus trace when adaptor starts up.\r
15    * Added configuration of dbus filter.\r
16    * Fixed segmented messages arguments to standard.\r
17    * First implementation of DLT DBus adapter.\r
18    * DLT_CSTRING implementation non verbose mode.\r
19    * Added new examples which can be manually build against DLt library.\r
20    * Send ECU Id if enabled and added library API to change.\r
21    * Send timestamp can be disabled by new API.\r
22    * Send session/process id by default and add configuration API.\r
23    * Send extended header in non verbose mode by default and add new API to change setting.\r
24    * Make daemon buffer size configurable\r
25 \r
26 2.10.0\r
27 \r
28    * Bug 184 - /tmp/dltpipes directory does not exist before dlt-daemon is started, logging disabled\r
29    * Updated authors information.\r
30    * Fixed missing variable declaration when systemd not enabled.\r
31    * Fixed: all possible malloc, sprintf and strcpy problems\r
32    * Fixed: Creation of dltpipes directory is too late.\r
33    * Cygwin port: cygwin patch, signal handling patch and cppcheck and install lib dll to correct location on Windows.\r
34    * Fixed compiler warnings with 32Bit gcc compiler.\r
35    * Fixed: Fixed offline trace and new send functions issues\r
36    * Fixed: Bug 172 - DLT system crashes because of wrong journald adaptor implementation\r
37    * DLT Common API Wrapper.\r
38    * Removed dlt_free from example and test applications, already called from exit handler.\r
39    * Fixed missing dlt_receiver_remove in dlt_daemon_process_user_xxx functions.\r
40    * Use LIB_SUFFIX as lib installation path.\r
41    * Fixed serial port not working anymore.\r
42    * Added log output of created socket/port In init phase 2 - socket creation\r
43    * Defined return value for dlt_message_read().\r
44    * Cleanup of send return values.Further cleanup of send restructure.\r
45    * Moved daemon client functions to new source file.\r
46    * Centralised send function to client.Introduced connection state to dlt daemon.\r
47    * Removed check of double registration of contexts in user library, already checked by daemon.\r
48    * When using DLT in console mode on a 64-bit machine, timestamps are corrupted due to an address of a 32-bit value being cast to a 64-bit pointer.\r
49    * Bug 3 - Cmake does not check for zlib for dlt-daemon compilation.\r
50    * Added new control message timezone.\r
51    * Fixed deadlock after wrong merge..\r
52    * Fix potential buffer overflow in offline trace.\r
53    * Fix deadlock in dlt_user_log_reattach_to_daemon(void).\r
54    * Fixed possible crash when runtime configurations files are corrupted.\r
55    * Environement variables added to configure internal logging in library.\r
56    * Reduce Timeout between filetransfer packets.\r
57    * Close socket when send fails.\r
58    * Replace threads by timing fds for ecu version, timing packets and watchdog.\r
59    * Added conntection info and unregister context control messages.\r
60    * Configurable Timeout on send.\r
61    * Added further checks to dlt_buffer.\r
62    * atexit handler fix.\r
63    * Add threadnames to libdlt threads.\r
64    * Security fix on DLT pipes.\r
65    * Reduce usage of SEM_LOCK in application library and reset pointers.   \r
66    * Fix: Systemd Journal Adapter provides corrupted output.\r
67    * Fix: Install Example service file only when example enabled\r
68 \r
69 2.9.1\r
70 \r
71    * Implementation of command line tool dlt-control.\r
72    * Fix file transfer bug.\r
73    * Bug 44 - Don't print "Buffer full" message from DLT daemon for each trace.\r
74    * Yocto fix in build builds.\r
75    * Fixed: security issue in dlt-system-shell regarding strncpy.\r
76    * Fixed: Security Issue by Command Injection in DLT System.\r
77    * systemd/CMakeLists: Remove SYSTEMD_CONFIGURATIONS_FILES_DIR existance check.\r
78    * Bug 85 - Include of dlt.h leads to compiler warning.\r
79    * Bug 84 - Adding utf8 support to dlt-daemon, dlt-viewer. Modified patch, originally provided by Stefan Vacek.\r
80    * systemd journal support added.\r
81    * spec file does not package man files when cmake is run with -DWITH_DOC=OFF\r
82    * added length check for paths of files to be transferred\r
83    * Semaphores and Pointer passing insteasd by value and otehr coverity issue fixes   \r
84    * Fixed several issues in DLT filetransfer.\r
85    * added creation date and a simple hash on the file name for to improve the uniqueness of getFileSerialNumber\r
86    * modified filetransfer to be more robust in restarting transfers\r
87    * Remove dangling DLT_SEM_FREE from dlt_user_queue_resend\r
88    * Unifed ECU version sending functions\r
89    * Refinements due to problems reported by static code analysis\r
90    * Spec file does no more package man files when cmake is run with -DWITH_DOC=OFF\r
91    * Made the APID strings in dlt-test-multi-process counting from 00-99\r
92    * Added creation date and a simple hash on the file name for to improve the uniqueness of getFileSerialNumber\r
93    * File Transfer: improved robustness in case of restarted ECU/dlt-system with interrupted transfers\r
94 \r
95 2.9.0\r
96 \r
97    * Changed documentation and man pages into asciidoc format.\r
98    * Increased buffer sizes for DLT user library and DLT daemon\r
99    * [GDLT-120]: truncated and Segmented network tracing\r
100    * [GDLT-137]: Automatically try resending of user buffer after FIFO full\r
101    * [GSWD-85]:  Added authors file\r
102    \r
103 2.8.0\r
104 \r
105    * [GDLT-115]: Encapsulate user macros\r
106    * Fix register app and register context was not stored in buffer when FIFO is full. Other controll messages still not saved in buffer.\r
107    * Create new fifo only when same application registers with different pid.'\r
108    * Do not register appliction again, if already registered.\r
109    * Fixed filetransfer not checking buffer fill level.\r
110 \r
111 2.7.0\r
112 \r
113    * [GDLT-24] Fixing compiler warnings\r
114    * [GDLT-94] Optional sending periodic software version messages. See man pages for more informations\r
115    * [GENDLT-26] Check for description length sanity\r
116    * [GENDLT-24] Crash on invalid injection message fixed\r
117    * [GDLT-93] Add -Wextra flags for compilation Fixed all the warnings that\r
118    * [GDLT-90] Optional: systemd watchdog concept in dlt-system and dlt-daemon\r
119    * [GDLT-67] Re-implemented dlt-system. Read full commit message for more information\r
120 \r
121 2.6.2\r
122 \r
123    * [GDLT-89] Fixed daemon doesn't sent the persistent log level\r
124    * [GDLT-88] Fixed wrong initalization order using offline trace function\r
125 \r
126 2.6.1\r
127 \r
128    * Add _GNU_SOURCE Definition to be able to use O_CLOEXEC\r
129    * Added important SEM_FREE in the daemon and closing fd in the filetransfer\r
130    * [GDLT-3] Fixed missing semaphore around dlt_buffer_push3\r
131    * [GDLT-86] Fixed dlt_free uses absolute file path /tmp and not DLT_USER_DEFINE define\r
132    * [D4099] Check for duplicate file handles, and clean them up if found\r
133    * [GDLT-85] Pipes opened multiple times for the same application pid fixed\r
134    * [GDLT-82] Child process inherits file descriptors openend by their parent fixed\r
135    * [GDLT-84] Instead of calling the injection callback, store a pointer to it and the required parameter data fixed\r
136    * [GDLT-70] Check for malloc failures and return errors where applicable\r
137    * [GDLT-47] Avoid discarding old contexts if no new memory can be allocate\r
138    * [GDLT-69] Fixed bug in dlt-test-multi-process shares context between threads\r
139    \r
140 2.6.0\r
141    \r
142    * [GDLT-75] Use old style directory check on startup\r
143    * [GENDLT-21] Move mcnt from DltContextData to DltContext\r
144    * [GENDLT-15] Fixes to previous integrations from review\r
145    * [GENDLT-15] Safe re-allocations for databuffer\r
146    * [GENDLT-15] use the correct TEXTBUFSIZE\r
147    * [GENDLT-15] Optimize usege of strlen. Improved log level handling\r
148    * [GENDLT-15] Avoid buffer overrun with snprintf()\r
149    * [GENDLT-15] Check return value of dlt_user_log_write_start(_id) correctly\r
150    * [GENDLT-15] Reduce the number of applications if allocation fails\r
151    * [GENDLT-15] Make dlt_user_log_write_start inline\r
152    * [GENDLT-15] Improve errore checking in dlt_user_log_write_start_id\r
153    * [GENDLT-15] Use databussersize to avoid reallocations\r
154    * [GENDLT-15] Rename buffer size constant to avoid confusion\r
155    * [GENDLT-15] Better error handling when writing to FIFO\r
156    * [GENDLT-15] Remove duplicate msg initialization.\r
157    * [GENDLT-15] Optimize away multiple uses of strlen for one check\r
158    * [GDLT-4] Improve queue handling, allow for other messages while transferring a large file\r
159    * [GDLT-4] Limit maximum file queue to 256 files\r
160    * [GDLT-4] First working version of inotify for file transfer\r
161    * [GDLT-2] First test for filetransfer change\r
162    * [GDLT-2] Change to gzip wrapper format. Change file signature creation to account for file size, as inode number maybe duplicate when deleting and creating new files\r
163    * [GDLT-2] Fix bug while reading the options\r
164    * [GDLT-2] Allow for enabling/disabling compression for the separate directories\r
165    * [GDLT-2] Check if the file is already compressed\r
166    * [GDLT-2] Link with libz, fix a typo\r
167    * [GDLT-2] zlib based compression for dlt-system\r
168    * Cleaned some warnings generated from removing stale old code\r
169 \r
170 2.5.2\r
171 \r
172    * Change to Mozilla Public License Version 2.0\r
173    \r
174 2.5.1\r
175 \r
176    * Fixed bug with comparinson between signed and unsigned integer and protection for a buffer overflow.\r
177    * Modified library for new test cases to corrupt data - related to the bug fix for testing signed and unsigned integer\r
178    * [GENDLT-20] Fixed bug to use old cmake version for copy file\r
179    * Replaced dlt-test-filetransfer-image.png with an own created image\r
180    * [GENDLT-21] Fixed bug: Message Counter (MCNT) should be increased but is always 0\r
181 \r
182 2.5.0\r
183 \r
184    * [GDLT-53] Man pages installation included\r
185    * .cproject and .project file for Eclipse included\r
186    * Update of doxygen documentation and generation\r
187    * Rework of root CMake project file, e.g. structure and compile options\r
188    * [GENDLT-16] Create variable in dlt-system.conf to configure the timeout of the filetransfer\r
189    * [GDLT-37] Extend automated test tools for parallel process/threads tests \r
190    * [GSW-138] API Extension to resend the log messages in the user buffer\r
191    * [GDLT-36] Prefixing of dlt_version.h fixed\r
192    * [GDLT-31] Tracefile content stored different under Ubuntu 64 bit version compared to Ubuntu/Win 32 Bit version fixed \r
193    * [GDLT-35] Compile warnings fixed\r
194    * [GSW-137] Wrong include gives error on compailing against dlt fixed\r
195 \r
196 2.4.2\r
197 \r
198    * Added dynamic increasable ringbuffers to user lib and daemon.\r
199    * dlt-system filetransfer now recovers when file is deleted during filetransfer.\r
200        * Added check of file size when starting and deleting files during filetransfer\r
201        * Added chekc of shm buffer availability when push to shm\r
202    * Create abstraction of shm buffer management.\r
203    * Fixed buffer overflow problem in buffer library.\r
204    * Disabled share memory by default - disabled completely shared memory if not enabled.\r
205 \r
206 2.4.1 \r
207 \r
208     * Added dynamic increasable ringbuffers to user lib and dlt-daemon.\r
209     * Created abstraction of shm buffer management.\r
210     * dlt-system filetransfer now recovers when file is deleted during filetransfer.\r
211     * Added check of file size when starting and deleting files during filetransfer.\r
212     * Added check of shm buffer availability when push to shm.\r
213 \r
214 2.4.1 \r
215 \r
216     * Added internal logging facility to stdout, syslog or local file, configurable in configuration file.\r
217     * Added deamonise and signal handlers to dlt-system.\r
218     * Added manual pages.\r
219     * Added new API dlt_check_library_version() function.\r
220     * Fifo or SHM mode can be changed by compiler switch.\r
221     * Replaced SHM implementation.\r
222     * Fixed shared memory problem in DLT library during startup, if application is started before daemon.\r
223     * Fixed syslog adapter in dlt-system.\r
224     * Reverted API changes in dlt_register_app() function.\r
225     * DLT user library does not set the stack size of the receiver thread anymore.\r
226 \r
227 2.4.0\r
228 \r
229     * New config files /etc/dlt.conf and /etc/dlt-system.conf must be adapted to the needs\r
230     * New DLT user lib API dlt_get_log_state() to get DLT client state\r
231     * New DLT user lib API to manage flow control (needed for bulk data logging)\r
232     * New DLT user lib API dlt_set_log_mode() to enable/disable internal/external trace\r
233     * New application dlt-system (filtransfer, proc file system logger,syslog udp adapter included)\r
234     * [GSW-66] File transfer over DLT.\r
235     * [GSW-43] Performance improvement for bulk data over DLT.\r
236     * [GSW-61] Replace command line parameter by configuration file\r
237     * [GSW-13] Support for keep-alive messages as configuration parameter\r
238     * [GSW-60] Extended offline DLT Trace memory handling.\r
239     * Removed filter implementation \r
240         \r
241 2.3.0\r
242 \r
243     * [GSW-16] Systemd configuration for syslog to DLT dapater\r
244     * [GSW-62] DLT Library version check\r
245     * [GSW-28] Directory where persistent data is stored is not configurable  \r
246     * [GSW-59] Statically allocated large array \r
247     * Added init script for Ubuntu\r
248     * Optional adding of gprof compile flags\r
249     * sprintf with float64 fails on ARM platform; disabled this function on QRM platform.\r
250 \r
251 2.2.0\r
252 \r
253     * Moved build process completely to cmake\r
254     * Added commandline parameter -u to set ring buffer size\r
255     * Reduced cpu consumption needed by applications using DLT library\r
256     * Increased default ringbuffer size to 10024 bytes\r
257     * Changed delay in receiver routine to 100ms \r
258 \r
259 2.1.0\r
260 \r
261  * DLT Viewer (QT)\r
262     * New dlt viewer (QT-based) implementated\r
263     * Moved to seperate project, see extra Release Notes for DLT Viewer (QT)\r
264  * DLT Viewer (WX) - Deprecated\r
265     * Old dlt viewer (WX) is removed now from package generation\r
266     * Moved to seperate project\r
267     * Removed filtering of messages during writing to a file\r
268  * DLT library:\r
269     * Functions dlt_file_read_raw() and dlt_file_read_header_raw() added\r
270     * Added support for raw messages in nonverbose mode\r
271     * Injection tables are now dynamically allocated\r
272     * Contexts are now dynamically allocated\r
273     * Added seperate file for platform float types (dlt_float_types.h)\r
274       and used this types.\r
275       Attention: This file must be adapted to each target platform.\r
276     * Removed signal handlers from dlt_user.c; SIGPIPE signal is ignored; atexit() handler still exists\r
277     * Function dlt_forward_msg() added\r
278  * DLT daemon:\r
279     * Small optimization in get_log_info() for one searched application with one searched context,\r
280       which is existing in the context table of the dlt daemon\r
281     * Optional syncing to serial header added\r
282     * Support for keep-alive messages, realized as seperate thread\r
283  * General:\r
284     * Combined dlt-test-user-multi and dlt-test-many to dlt-test-stress\r
285     * Extended dlt-test-client\r
286     * Added stress test3 to dlt-test-stress\r
287     * Added help to dlt-test-stress, printed if no test was selected\r
288     * Added dlt-test-internal\r
289     * Removed plugin support from dlt_receive and dlt_convert\r
290     * Extended documentation\r
291     * dlt viewer (wx): Fixed minor bug, it's possible now to compile the dlt viewer (wx) again under mingw under Windows\r
292     * DLT test programs: Fixed minor bug in dlt-test-user, test3f: Wrong counter was used\r
293     * Removed DLT_LOG calls in injection functions due to problems (application hangs)\r
294 \r
295 2.0.5\r
296 \r
297  * DLT viewer:\r
298         * The default log level is now shown, if already known\r
299         * Renamed Filter->New.. to Filter->Delete all filter\r
300         * Enhanced performance\r
301  * DLT library:\r
302         * On crash or termination of application using the DLT library,\r
303           the registered context and application IDs are removed properly\r
304           (and are deregistered from DLT daemon)\r
305         * dlt_register_context_ll_ts() and Macro therefore added\r
306         * dlt_message_payload() has now additional type DLT_OUTPUT_ASCII_LIMITED\r
307         * dlt_message_header_flags() added\r
308  * DLT daemon:\r
309         * Support for dlt_register_context_ll_ts() added\r
310         * Enhanced support for get_log_info (all modes, 1 app all contexts, 1 app 1 context, all apps all contexts)\r
311         * Added -r option, for automatic sending context information to dlt client; if no client connection is available, \r
312       this information is stored in history buffer in dlt daemon\r
313         * Several internal performance optimizations:\r
314                 * dlt_daemon_context_find(), dlt_daemon_application_find(): Now O(log n) instead O(n)\r
315                 * Several functions optimized\r
316                 * Unnecessary functions removed\r
317  * General:\r
318         * Moved definition of struct DltUser from dlt_user_private.h to dlt_user.h\r
319         * dlt.h includes now dlt_common.h       \r
320         * Extended dlt-test-user and dlt-test-client applications\r
321  * DLT daemon/DLT library: Fixed bug in Filter Delete\r
322  * DLT daemon: Fixed bug in dlt daemon which leads to a crash, when starting/stoping application, then sending\r
323      new log level to context of this (now not running) application.\r
324  * DLT daemon: Fixed bug in unregister application\r
325  * DLT daemon: Fixed bug in reattach to daemon\r
326  * DLT library: Fixed bug in send function\r
327  * DLT viewer: Fixed bug in set default log level\r
328 \r
329 2.0.4\r
330 \r
331  * License has changed from ADRLPD to ADRLRM\r
332  * DLT viewer:\r
333         * Support for non-verbose mode (as FIBEX plugin)\r
334  * DLT library:\r
335         * Support for non-verbose mode (as FIBEX plugin)\r
336         * dlt_message_print_* functions added\r
337         * Semaphore calls added to enable multi-threading\r
338         * Changed injection interface from direct usage to callback\r
339         * Requested log level and trace status is set immediately \r
340           in dlt_set_application_ll_ts_limit()\r
341         * Implemented receiver thread in DLT library\r
342           (used for setting of log level/trace status and for injection handling)\r
343         * Added signal-handler and atexit-handler for cleanup (calls dlt_free())\r
344  * General:\r
345         * Added implementation of clientlib and testclient for Windows\r
346         * Both adaptors sends now log messages with log level DLT_LOG_INFO\r
347         * Multi-threading example in src/tests/dlt-test-user-multi added\r
348  * DLT viewer: Right mouse button for loading plugin descriptions (MOST-/Fibex-XML File)\r
349      is now working (also in Windows)\r
350  * DLT library: Fixed bug in dlt_print_mixed_string()\r
351  * DLT library: Fixed bug in dlt_daemon_contexts_get_next_con_id()\r
352  * DLT daemon: dlt_daemon_process_user_message_unregister_application() also removes now \r
353      all corresponding contexts\r
354  * DLT daemon: Added security check to dlt_daemon_control_get_log_info() in order to avoid crash\r
355      which occured under special circumstances\r
356  * DLT daemon: Register app now opens the connection to the DLT library, \r
357      unregister app closes the connection (was before in register context)\r
358  * Added -lrt to package config file\r
359  * Resolved dependency from dlt_client.h to dlt_common.h -> dlt_common.h is now public\r
360 \r
361 2.0.3\r
362 \r
363  * DLT viewer:\r
364         * Reduced load if idle\r
365         * Modified behaviour of settings in dlt-viewer\r
366         * Always open tmpfile in dlt-viewer if nothing other is specified\r
367         * File->Clear added\r
368  * DLT daemon:\r
369         * Added several checks within code\r
370  * DLT library:\r
371         * Added several checks within code \r
372         * Enhanced local print modes:\r
373           a environment variable now can be used to control local print mode:\r
374           Variable: DLT_LOCAL_PRINT_MODE\r
375           Values  : "AUTOMATIC"             (local print only, if dlt-daemon connection is not\r
376                                              available at startup of program using DLT library)\r
377                     "FORCE_ON"              (always do local print)\r
378                     "FORCE_OFF"             (never do local print)\r
379         * A client library for writing console client applications (Linux) is now available.\r
380           dlt-receiver and dlt-test-client uses this new library code\r
381  * General:\r
382         * Added seperate file for DltMostMessageHeader type\r
383         * Added seperate file for DLT protocol values\r
384         * Relaxed checks for passing trace messages to plugin handler\r
385         * Tested and improved MOST plugin\r
386         * Support for float (32 Bit) and double (64 Bit) values\r
387         * Code fragments for winclientlib and wintestclient added\r
388  * DLT library: Fixed bug in DLT_IMPORT_CONTEXT\r
389  * DLT library: Fixed bug in dlt_plugin_print() and dlt_most_payload()\r
390  * DLT daemon and library: Fixed bug in handling of description strings\r
391  * DLT viewer: Fixed bug in RMB Click for loading plugin description\r
392  * General: Fixed parsing and printing of MOST messages\r
393  * Several small bugs fixed\r
394 \r
395 2.0.2\r
396 \r
397  * DLT viewer:\r
398         * Showing timestamp\r
399         * Compiles now with MS Visual C++\r
400         * Support for loading multiple descriptions \r
401           of plugins is now possible (*)\r
402         * Plugin description can be loaded individually\r
403           by Right-mouse-button (*) \r
404  * DLT daemon:\r
405         * Overflow message is now stored in history buffer,\r
406           if necessary \r
407  * DLT library:\r
408         * Ring-buffer for injection messages implemented\r
409         * History Buffer for Startup + Overflow implemented\r
410         * Setting of maximum logged log level/trace status for \r
411           application triggered by application is now possible\r
412         * Optional local output of Log message is now possible\r
413  * General:\r
414         * Support for ARTIS Box implemented (all, without GUI)\r
415         * Support for timestamp in standardheader extras added\r
416         * Support for ECU ID in standardheader extras added;\r
417           this value can be overwritten by the DLT daemon\r
418  * DLT viewer:\r
419         * Store and load application and context description fixed\r
420         * Fixed crash on termination of Windows version\r
421  * DLT console utilities:\r
422         * Fixed printing of filter ids\r
423  * General:\r
424         * Big Endian/Little Endian support tested and fixed\r
425         * Fixed writing and reading of locally created dlt files\r
426         * Several smaller bugs fixed\r
427 \r
428 2.0.1\r
429 \r
430  * Full support for serial connection between DLT daemon and DLT Viewer\r
431  * Several small bugs fixed in DLT Viewer\r
432 \r
433 2.0.0\r
434 \r
435  * Initial Release of new DLT daemon Version 2 including the new DLT Client DLT Viewer\r
436  * Initial Release\r
437 \r