Diagnostic Log and Trace  - Release Notes
=========================================
Alexander Wenzel <Alexander.AW.Wenzel@bmw.de>

Version
-------
2.9.1 RELEASE

Changes
-------
2.9.1

   * Implementation of command line tool dlt-control.
   * Fix file transfer bug.
   * Bug 44 - Don't print "Buffer full" message from DLT daemon for each trace.
   * Yocto fix in build builds.
   * Fixed: security issue in dlt-system-shell regarding strncpy.
   * Fixed: Security Issue by Command Injection in DLT System.
   * systemd/CMakeLists: Remove SYSTEMD_CONFIGURATIONS_FILES_DIR existance check.
   * Bug 85 - Include of dlt.h leads to compiler warning.
   * Bug 84 - Adding utf8 support to dlt-daemon, dlt-viewer. Modified patch, originally provided by Stefan Vacek.
   * systemd journal support added.
   * spec file does not package man files when cmake is run with -DWITH_DOC=OFF
   * added length check for paths of files to be transferred
   * Semaphores and Pointer passing insteasd by value and otehr coverity issue fixes   
   * Fixed several issues in DLT filetransfer.
   * added creation date and a simple hash on the file name for to improve the uniqueness of getFileSerialNumber
   * modified filetransfer to be more robust in restarting transfers
   * Remove dangling DLT_SEM_FREE from dlt_user_queue_resend
   * Unifed ECU version sending functions
   * Refinements due to problems reported by static code analysis
   * Spec file does no more package man files when cmake is run with -DWITH_DOC=OFF
   * Made the APID strings in dlt-test-multi-process counting from 00-99
   * Added creation date and a simple hash on the file name for to improve the uniqueness of getFileSerialNumber
   * File Transfer: improved robustness in case of restarted ECU/dlt-system with interrupted transfers

2.9.0

   * Changed documentation and man pages into asciidoc format.
   * Increased buffer sizes for DLT user library and DLT daemon
   * [GDLT-120]: truncated and Segmented network tracing
   * [GDLT-137]: Automatically try resending of user buffer after FIFO full
   * [GSWD-85]:  Added authors file
   
2.8.0

   * [GDLT-115]: Encapsulate user macros
   * Fix register app and register context was not stored in buffer when FIFO is full. Other controll messages still not saved in buffer.
   * Create new fifo only when same application registers with different pid.'
   * Do not register appliction again, if already registered.
   * Fixed filetransfer not checking buffer fill level.

2.7.0

   * [GDLT-24] Fixing compiler warnings
   * [GDLT-94] Optional sending periodic software version messages. See man pages for more informations
   * [GENDLT-26] Check for description length sanity
   * [GENDLT-24] Crash on invalid injection message fixed
   * [GDLT-93] Add -Wextra flags for compilation Fixed all the warnings that
   * [GDLT-90] Optional: systemd watchdog concept in dlt-system and dlt-daemon
   * [GDLT-67] Re-implemented dlt-system. Read full commit message for more information

2.6.2

   * [GDLT-89] Fixed daemon doesn't sent the persistent log level
   * [GDLT-88] Fixed wrong initalization order using offline trace function

2.6.1

   * Add _GNU_SOURCE Definition to be able to use O_CLOEXEC
   * Added important SEM_FREE in the daemon and closing fd in the filetransfer
   * [GDLT-3] Fixed missing semaphore around dlt_buffer_push3
   * [GDLT-86] Fixed dlt_free uses absolute file path /tmp and not DLT_USER_DEFINE define
   * [D4099] Check for duplicate file handles, and clean them up if found
   * [GDLT-85] Pipes opened multiple times for the same application pid fixed
   * [GDLT-82] Child process inherits file descriptors openend by their parent fixed
   * [GDLT-84] Instead of calling the injection callback, store a pointer to it and the required parameter data fixed
   * [GDLT-70] Check for malloc failures and return errors where applicable
   * [GDLT-47] Avoid discarding old contexts if no new memory can be allocate
   * [GDLT-69] Fixed bug in dlt-test-multi-process shares context between threads
   
2.6.0
   
   * [GDLT-75] Use old style directory check on startup
   * [GENDLT-21] Move mcnt from DltContextData to DltContext
   * [GENDLT-15] Fixes to previous integrations from review
   * [GENDLT-15] Safe re-allocations for databuffer
   * [GENDLT-15] use the correct TEXTBUFSIZE
   * [GENDLT-15] Optimize usege of strlen. Improved log level handling
   * [GENDLT-15] Avoid buffer overrun with snprintf()
   * [GENDLT-15] Check return value of dlt_user_log_write_start(_id) correctly
   * [GENDLT-15] Reduce the number of applications if allocation fails
   * [GENDLT-15] Make dlt_user_log_write_start inline
   * [GENDLT-15] Improve errore checking in dlt_user_log_write_start_id
   * [GENDLT-15] Use databussersize to avoid reallocations
   * [GENDLT-15] Rename buffer size constant to avoid confusion
   * [GENDLT-15] Better error handling when writing to FIFO
   * [GENDLT-15] Remove duplicate msg initialization.
   * [GENDLT-15] Optimize away multiple uses of strlen for one check
   * [GDLT-4] Improve queue handling, allow for other messages while transferring a large file
   * [GDLT-4] Limit maximum file queue to 256 files
   * [GDLT-4] First working version of inotify for file transfer
   * [GDLT-2] First test for filetransfer change
   * [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
   * [GDLT-2] Fix bug while reading the options
   * [GDLT-2] Allow for enabling/disabling compression for the separate directories
   * [GDLT-2] Check if the file is already compressed
   * [GDLT-2] Link with libz, fix a typo
   * [GDLT-2] zlib based compression for dlt-system
   * Cleaned some warnings generated from removing stale old code

2.5.2

   * Change to Mozilla Public License Version 2.0
   
2.5.1

   * Fixed bug with comparinson between signed and unsigned integer and protection for a buffer overflow.
   * Modified library for new test cases to corrupt data - related to the bug fix for testing signed and unsigned integer
   * [GENDLT-20] Fixed bug to use old cmake version for copy file
   * Replaced dlt-test-filetransfer-image.png with an own created image
   * [GENDLT-21] Fixed bug: Message Counter (MCNT) should be increased but is always 0

2.5.0

   * [GDLT-53] Man pages installation included
   * .cproject and .project file for Eclipse included
   * Update of doxygen documentation and generation
   * Rework of root CMake project file, e.g. structure and compile options
   * [GENDLT-16] Create variable in dlt-system.conf to configure the timeout of the filetransfer
   * [GDLT-37] Extend automated test tools for parallel process/threads tests 
   * [GSW-138] API Extension to resend the log messages in the user buffer
   * [GDLT-36] Prefixing of dlt_version.h fixed
   * [GDLT-31] Tracefile content stored different under Ubuntu 64 bit version compared to Ubuntu/Win 32 Bit version fixed 
   * [GDLT-35] Compile warnings fixed
   * [GSW-137] Wrong include gives error on compailing against dlt fixed

2.4.2

   * Added dynamic increasable ringbuffers to user lib and daemon.
   * dlt-system filetransfer now recovers when file is deleted during filetransfer.
       * Added check of file size when starting and deleting files during filetransfer
       * Added chekc of shm buffer availability when push to shm
   * Create abstraction of shm buffer management.
   * Fixed buffer overflow problem in buffer library.
   * Disabled share memory by default - disabled completely shared memory if not enabled.

2.4.1 

    * Added dynamic increasable ringbuffers to user lib and dlt-daemon.
    * Created abstraction of shm buffer management.
    * dlt-system filetransfer now recovers when file is deleted during filetransfer.
    * Added check of file size when starting and deleting files during filetransfer.
    * Added check of shm buffer availability when push to shm.

2.4.1 

    * Added internal logging facility to stdout, syslog or local file, configurable in configuration file.
    * Added deamonise and signal handlers to dlt-system.
    * Added manual pages.
    * Added new API dlt_check_library_version() function.
    * Fifo or SHM mode can be changed by compiler switch.
    * Replaced SHM implementation.
    * Fixed shared memory problem in DLT library during startup, if application is started before daemon.
    * Fixed syslog adapter in dlt-system.
    * Reverted API changes in dlt_register_app() function.
    * DLT user library does not set the stack size of the receiver thread anymore.

2.4.0

    * New config files /etc/dlt.conf and /etc/dlt-system.conf must be adapted to the needs
    * New DLT user lib API dlt_get_log_state() to get DLT client state
    * New DLT user lib API to manage flow control (needed for bulk data logging)
    * New DLT user lib API dlt_set_log_mode() to enable/disable internal/external trace
    * New application dlt-system (filtransfer, proc file system logger,syslog udp adapter included)
    * [GSW-66] File transfer over DLT.
    * [GSW-43] Performance improvement for bulk data over DLT.
    * [GSW-61] Replace command line parameter by configuration file
    * [GSW-13] Support for keep-alive messages as configuration parameter
    * [GSW-60] Extended offline DLT Trace memory handling.
    * Removed filter implementation 
	
2.3.0

    * [GSW-16] Systemd configuration for syslog to DLT dapater
    * [GSW-62] DLT Library version check
    * [GSW-28] Directory where persistent data is stored is not configurable  
    * [GSW-59] Statically allocated large array 
    * Added init script for Ubuntu
    * Optional adding of gprof compile flags
    * sprintf with float64 fails on ARM platform; disabled this function on QRM platform.

2.2.0

    * Moved build process completely to cmake
    * Added commandline parameter -u to set ring buffer size
    * Reduced cpu consumption needed by applications using DLT library
    * Increased default ringbuffer size to 10024 bytes
    * Changed delay in receiver routine to 100ms 

2.1.0

 * DLT Viewer (QT)
    * New dlt viewer (QT-based) implementated
    * Moved to seperate project, see extra Release Notes for DLT Viewer (QT)
 * DLT Viewer (WX) - Deprecated
    * Old dlt viewer (WX) is removed now from package generation
    * Moved to seperate project
    * Removed filtering of messages during writing to a file
 * DLT library:
    * Functions dlt_file_read_raw() and dlt_file_read_header_raw() added
    * Added support for raw messages in nonverbose mode
    * Injection tables are now dynamically allocated
    * Contexts are now dynamically allocated
    * Added seperate file for platform float types (dlt_float_types.h)
      and used this types.
      Attention: This file must be adapted to each target platform.
    * Removed signal handlers from dlt_user.c; SIGPIPE signal is ignored; atexit() handler still exists
    * Function dlt_forward_msg() added
 * DLT daemon:
    * Small optimization in get_log_info() for one searched application with one searched context,
      which is existing in the context table of the dlt daemon
    * Optional syncing to serial header added
    * Support for keep-alive messages, realized as seperate thread
 * General:
    * Combined dlt-test-user-multi and dlt-test-many to dlt-test-stress
    * Extended dlt-test-client
    * Added stress test3 to dlt-test-stress
    * Added help to dlt-test-stress, printed if no test was selected
    * Added dlt-test-internal
    * Removed plugin support from dlt_receive and dlt_convert
    * Extended documentation
    * dlt viewer (wx): Fixed minor bug, it's possible now to compile the dlt viewer (wx) again under mingw under Windows
    * DLT test programs: Fixed minor bug in dlt-test-user, test3f: Wrong counter was used
    * Removed DLT_LOG calls in injection functions due to problems (application hangs)

2.0.5

 * DLT viewer:
	* The default log level is now shown, if already known
	* Renamed Filter->New.. to Filter->Delete all filter
	* Enhanced performance
 * DLT library:
	* On crash or termination of application using the DLT library,
	  the registered context and application IDs are removed properly
	  (and are deregistered from DLT daemon)
	* dlt_register_context_ll_ts() and Macro therefore added
	* dlt_message_payload() has now additional type DLT_OUTPUT_ASCII_LIMITED
	* dlt_message_header_flags() added
 * DLT daemon:
	* Support for dlt_register_context_ll_ts() added
	* Enhanced support for get_log_info (all modes, 1 app all contexts, 1 app 1 context, all apps all contexts)
	* Added -r option, for automatic sending context information to dlt client; if no client connection is available, 
      this information is stored in history buffer in dlt daemon
	* Several internal performance optimizations:
		* dlt_daemon_context_find(), dlt_daemon_application_find(): Now O(log n) instead O(n)
		* Several functions optimized
		* Unnecessary functions removed
 * General:
	* Moved definition of struct DltUser from dlt_user_private.h to dlt_user.h
	* dlt.h includes now dlt_common.h	
	* Extended dlt-test-user and dlt-test-client applications
 * DLT daemon/DLT library: Fixed bug in Filter Delete
 * DLT daemon: Fixed bug in dlt daemon which leads to a crash, when starting/stoping application, then sending
     new log level to context of this (now not running) application.
 * DLT daemon: Fixed bug in unregister application
 * DLT daemon: Fixed bug in reattach to daemon
 * DLT library: Fixed bug in send function
 * DLT viewer: Fixed bug in set default log level

2.0.4

 * License has changed from ADRLPD to ADRLRM
 * DLT viewer:
	* Support for non-verbose mode (as FIBEX plugin)
 * DLT library:
	* Support for non-verbose mode (as FIBEX plugin)
	* dlt_message_print_* functions added
	* Semaphore calls added to enable multi-threading
	* Changed injection interface from direct usage to callback
	* Requested log level and trace status is set immediately 
          in dlt_set_application_ll_ts_limit()
	* Implemented receiver thread in DLT library
          (used for setting of log level/trace status and for injection handling)
        * Added signal-handler and atexit-handler for cleanup (calls dlt_free())
 * General:
	* Added implementation of clientlib and testclient for Windows
 	* Both adaptors sends now log messages with log level DLT_LOG_INFO
	* Multi-threading example in src/tests/dlt-test-user-multi added
 * DLT viewer: Right mouse button for loading plugin descriptions (MOST-/Fibex-XML File)
     is now working (also in Windows)
 * DLT library: Fixed bug in dlt_print_mixed_string()
 * DLT library: Fixed bug in dlt_daemon_contexts_get_next_con_id()
 * DLT daemon: dlt_daemon_process_user_message_unregister_application() also removes now 
     all corresponding contexts
 * DLT daemon: Added security check to dlt_daemon_control_get_log_info() in order to avoid crash
     which occured under special circumstances
 * DLT daemon: Register app now opens the connection to the DLT library, 
     unregister app closes the connection (was before in register context)
 * Added -lrt to package config file
 * Resolved dependency from dlt_client.h to dlt_common.h -> dlt_common.h is now public

2.0.3

 * DLT viewer:
	* Reduced load if idle
	* Modified behaviour of settings in dlt-viewer
	* Always open tmpfile in dlt-viewer if nothing other is specified
	* File->Clear added
 * DLT daemon:
	* Added several checks within code
 * DLT library:
	* Added several checks within code 
	* Enhanced local print modes:
	  a environment variable now can be used to control local print mode:
	  Variable: DLT_LOCAL_PRINT_MODE
	  Values  : "AUTOMATIC"             (local print only, if dlt-daemon connection is not
		                             available at startup of program using DLT library)
		    "FORCE_ON"              (always do local print)
		    "FORCE_OFF"             (never do local print)
	* A client library for writing console client applications (Linux) is now available.
	  dlt-receiver and dlt-test-client uses this new library code
 * General:
	* Added seperate file for DltMostMessageHeader type
	* Added seperate file for DLT protocol values
	* Relaxed checks for passing trace messages to plugin handler
	* Tested and improved MOST plugin
	* Support for float (32 Bit) and double (64 Bit) values
	* Code fragments for winclientlib and wintestclient added
 * DLT library: Fixed bug in DLT_IMPORT_CONTEXT
 * DLT library: Fixed bug in dlt_plugin_print() and dlt_most_payload()
 * DLT daemon and library: Fixed bug in handling of description strings
 * DLT viewer: Fixed bug in RMB Click for loading plugin description
 * General: Fixed parsing and printing of MOST messages
 * Several small bugs fixed

2.0.2

 * DLT viewer:
	* Showing timestamp
	* Compiles now with MS Visual C++
	* Support for loading multiple descriptions 
	  of plugins is now possible (*)
	* Plugin description can be loaded individually
	  by Right-mouse-button (*) 
 * DLT daemon:
	* Overflow message is now stored in history buffer,
	  if necessary 
 * DLT library:
	* Ring-buffer for injection messages implemented
	* History Buffer for Startup + Overflow implemented
	* Setting of maximum logged log level/trace status for 
          application triggered by application is now possible
	* Optional local output of Log message is now possible
 * General:
	* Support for ARTIS Box implemented (all, without GUI)
	* Support for timestamp in standardheader extras added
	* Support for ECU ID in standardheader extras added;
	  this value can be overwritten by the DLT daemon
 * DLT viewer:
	* Store and load application and context description fixed
	* Fixed crash on termination of Windows version
 * DLT console utilities:
	* Fixed printing of filter ids
 * General:
	* Big Endian/Little Endian support tested and fixed
	* Fixed writing and reading of locally created dlt files
	* Several smaller bugs fixed

2.0.1

 * Full support for serial connection between DLT daemon and DLT Viewer
 * Several small bugs fixed in DLT Viewer

2.0.0

 * Initial Release of new DLT daemon Version 2 including the new DLT Client DLT Viewer
 * Initial Release

