| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* some previous dlt_vlog was using %lu specifier to display an uint64_t
variable. However, this isn't portable as depending on the system you're
targeting (32bits, 64bits, Linux, android, etc.), the uint64_t can be an
unsigned long long. This prevents compilation on system where -Werror
and -Wformat is activated coupled with a less tolerant compiler
(e.g clang). Instead, PRIxN macros (e.g PRIu64 for uint64_t) are now
used as specifier to ensure compatibility for each platforms
* for bytes_read which is of type ssize_t, zd specifier is used as
indicated in C99 standard
* for st_size (from struct stat) which is of type off_t, POSIX says that
it should be a signed integer. To be safe, we now use %jd specifier to
ensure that it will fit correctly
|
|
|
|
|
|
|
|
|
| |
Some QNX components when bringing up send messages of severity type "FATAL" instead of "INFO" via slogger2.
QNX component send messages of payload data_type = SLOG2_TYPE_ONLINE. The buffer is new and just came online.
dlt-qnx-slogger2 does not support info->data_type = SLOG2_TYPE_ONLINE and therefore sets the wrong log level.
This commit forcibly change the severity level for all info->data_type = SLOG2_TYPE_ONLINE to SLOG2_INFO.
Signed-off-by: Dinidrol <vamovitch@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Scan of port 3490 from a Linux machine by
'nmap -v -p 3490 -Pn IP_address_of_QNX_board' leads to dlt-daemon crash.
It is necessary to parse the code of the returned error in errno.
If errno = ECONNABORTED it means there was an attempt to scan port 3490
and on this error there is no need to exit the application by error.
Fix for the issue https://github.com/GENIVI/dlt-daemon/issues/341
Signed-off-by: Ruslan Valovyi <ruslan.valovyi@volvocars.com>
|
|
|
|
|
|
|
|
|
| |
when using default const string.
this location is free()'ed in the cleanup routine, leading to bugcheck upon
exit. Use strdup to allocate memory, that can be free()'ed.
Signed-off-by: Marc TITINGER <marc.titinger@non.se.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dlt_mkdir_recursive runs mkdir for directories which already exist.
This fails if the directory already exists and the dlt-daemon
does not have the permissions to change the mode on the directory.
On many systems the directories are not created by dlt-daemon
itself but rather through the build system or while the
root filesystem is created.
At this stage the permissions are already set properly
and they might be less permissive than what dlt-daemon expects
but still sufficient.
For example is rwx not necessary for each directory in the tree.
Before this commit the following scenario would fail:
* Path is set to /mnt/dlt/
* mnt has 755 permissions for root
* dlt has 755 for dlt user
As dlt daemon would try to run mkdir on /mnt
dlt_mkdir_recursive would fail due to lack of permissions
although the permissions are sufficient for dlt-daemon to
work and write its files into /mnt/dlt/
With this commit /mnt would not be created anymore because it
already exists.
If the permissions are not sufficient for dlt-daemon to write in
it will fail when trying to create files and exit at this point
Signed-off-by: Alexander Mohr <alexander.m.mohr@daimler.com>
|
|
|
|
|
|
|
| |
* function atomic_compare_exchange_strong expect a pointer to an _Atomic type. dlt_user_initialised is now an atomic_bool
* function dlt_set_filesize_max returned a DLT_LOG_ERROR which isn't a DltReturnValue. This commit replaces DLT_LOG_ERROR by DLT_RETURN_ERROR which is the expected return type
Signed-off-by: Sebastien RAILLET <sebastien.raillet@marelli.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Before this commit, dlt-daemon sockets were created inside
/data/local/tmp. This works but have many drawbacks:
- /data/local/tmp isn't always a tmpfs depending of the android
system you have. Means sockets are potentially created on a
filesystem which binds to a real device
- as the sockets are created by the dlt-daemon itself, this
prevent the usage of specific SELinux labels / contexts as
they will inherit the label / context from its parent
location (e.g the ones from /data/local/tmp). This prevent a
fine control of the SELinux label / context that you would like
to apply on them
* This commit adapts the dlt-daemon in such way:
- application and control sockets are now created inside
/dev/socket which is the standard path for sockets on android
- these sockets are now created by init (see dlt-daemon.rc) and
their fds are recovered by dlt-daemon through a specific android
API (dlt_daemon_unix_android_get_socket). If the fds can't be
recovered, we fallback to the previous mechanism by creating
by ourself the sockets (even if this will prevent SELinux
label / context on this socket)
- all these modifications have been put under compilation flag
for android
Signed-off-by: Sebastien RAILLET <sebastien.raillet@marelli.com>
|
|
|
|
|
|
| |
rather self-exp: 32bits native hint will not hold 8 bits.
Signed-off-by: Marc TITINGER <marc.titinger@hotmail.com>
|
|
|
|
| |
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
| |
Extern logging_mode and logging_handle variables from commom.c
Reusing dlt_log_init() in cases dlt library internal log file is not opened and logging_mode is DLT_LOG_TO_FILE
Signed-off-by: Le-Tin <Tin.Le@vn.bosch.com>
|
|
|
|
|
|
|
|
|
| |
Adding stdlib.h into dlt-test-cpp-extension.cpp solves the compile issue:
dlt-test-cpp-extension.cpp:89:47: error: 'malloc' was not declared in this scope
char *non_const_string = (char *)malloc(17);
This occoured while building for QNX.
Signed-off-by: Darian Biastoch <dbiastoch@de.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit introduces the use of atomic_compare_exchange at beginning
of both dlt_init functions. This function checks in an atomic way, if
'dlt_user_initialised' is 'false' (first run through dlt_init) and directly
sets it 'true'. If a second thread also entered dlt-init at this point of time,
its call of atomic_compare_exchange will return false and dlt_init will be
immediately left due to that. This is only interesting for startup, because
before each call of dlt_init, there is a check on 'dlt_user_initialised' that
will fail for all later executions.
Signed-off-by: Darian Biastoch <dbiastoch@de.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
| |
Removed duplicate "payload" pointer in dlt_client_send functions inside dlt_client.c.
This pointer was only needed to avoid one cast within a function call.
Now this cast is performed to get rid of clang-tidy analyzer warnings.
In addition to that, malloc calls were replaced through calloc to avoid a subsequent
memset with zero.
Signed-off-by: Darian Biastoch <dbiastoch@de.adit-jv.com>
|
|
|
|
|
|
|
|
| |
Before cancelling the listening thread, try to shutdown
and close the socket so that the listening thread is
terminated intentionally
Signed-off-by: Bui Nguyen Quoc Thanh <thanh.buinguyenquoc@vn.bosch.com>
|
|
|
|
|
|
|
|
| |
This also removed following tests to more appropriate place:
- dlt-test-preregister-context.c
- dlt-test-cpp-extension.cpp
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
| |
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
| |
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
| |
Following cmake options are introduced in order to build and install
only minimum sets from src/console
- WITH_DLT_CONSOLE_WO_CTRL: Set to ON not to build control commands under src/console (Default OFF)
- WITH_DLT_CONSOLE_WO_SBTM: Set to ON not to build dlt-sortbytimestamp under src/console (Default OFF)
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
| |
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
| |
If dlt.h is included in external application, it needed to include
-DDLT_DISABLE_MACRO to make ifdef switch work. This commit adds
DLT_DISABLE_MACRO in dlt_user.h so that no additional definition is
needed in application.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
It depends on OSes if maximum size of pipe can be configured per
process or not. For example, on QNX it can be only set from pipe
resource manager. Also flags used to set the value are only supported
on Linux.
Now DaemonFIFOSize option in dlt.conf is only relevant for Linux.
Also -f option is added to build scripts to enable FIFO as IPC.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
| |
New test case is added in dlt-test-user to verify the behavior of
dlt_user_log_write_start_w_given_buffer() and
dlt_user_log_write_finish_w_given_buffer(). Currently macro usage is not
supported, so empty test case is added for macro test.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
| |
This commit introduces new cmake option "WITH_DLT_DISABLE_MACRO" to
disable macro usage in case it is not allowed. Currently this is adapted
to src/tests and src/examples only. for dlt-test-non-verbose, the build itself is
currently disabled if WITH_DLT_DISABLE_MACRO is set; this needs to be
enabled again in future by replacing or adding function usage.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds new interfaces:
- dlt_user_log_write_start_w_given_buffer(): accepts a log buffer as an input.
- dlt_user_log_write_finish_w_given_buffer(): finalizes logging and send the message to corresponding output
This is to reduce DLT API calls in DLT application as much as possible
and avoid allocating dynamic memory within DLT library. The log buffer
has to be prepared in DLT application in order to use these interfaces.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
| |
Following files are added to execute and verify the behavior of dlt-qnx-system module:
- dlt-test-qnx-system: A test binary to send log messages to slogger2 with specific number of log messages, delay, and payload length.
- start-qnx-system-test: A shell script to invoke the test execution and verify its result from received DLT log.
Signed-Off By: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
| |
Signed-Off By: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
| |
In case the client sends single request of control
there could be a case the dlt_control_init finishes
before the cancellation of receiver thread.
So the main thread should wait for the receiver thread
via pthread_join
Signed-off-by: Bui Nguyen Quoc Thanh <thanh.buinguyenquoc@vn.bosch.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
In read_configuration_file() inside dlt-system-options.c memory is allocated
for saving the parsed options into config struct.
This memory is not freed again.
There are two major changes for resolving this issue:
1) Add a cleanup function inside dlt-system-options.c to free allocated memory
2) Replace all AppID and ContextID char pointer through a char array with the
lenght of DLT_ID_SIZE.
Signed-off-by: dbiastoch <dbiastoch@de.adit-jv.com>
|
|
|
|
|
|
|
| |
Remove duplicate stdbool.h file in dlt_common.c,
which has been included in dlt_common.h
Signed-off-by: Dinh Cong Toan <toan.dinhcong@vn.bosch.com>
|
|
|
|
|
|
|
| |
Add -p option to dlt-control so that IP port can be configured in case
of TCP.
Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
1: Move the call of pthread_sigmask in dlt-qnx-systems main before DLT_REGISTER_APP, because this already spawns a thread, what was done without applying pthread_sigmask before.
2: Replaced all threads in dlt-system, that are spawned for each feature, through one poll. This poll waits for a file descriptor event, that triggers the feature routine, that was executed before in the thread. Done this for following processes:
* reading syslog and journal
* frequently reading logfile and logprocess
* triggering filetransfer, if a file was added/changed in watched directory
* checking watchdog timer of systemd service file with defined intervall
Signed-off-by: dbiastoch <dbiastoch@de.adit-jv.com>
|
|
|
|
|
|
|
| |
Provides argument option to enable send and resync serial header
via command line.
Signed-off-by: Vo Trung Chi <Chi.VoTrung@vn.bosch.com>
|
|
|
| |
Co-authored-by: Saya Sugiura <39760799+ssugiura@users.noreply.github.com>
|
|
|
| |
Signed-off-by: Martin Willers <M.Willers@gmx.net>
|
|
|
| |
As init_p2 does the offline trace initialization, load configuration should be called prior, as LoggingMode is set through run-timeconfiguration file. With original logic it results in offline trace write failed, it is not valid trace directory errors.
|
|
|
|
|
|
|
| |
Use POSIX thread API to rename the housekeeper and segmented threads.
The currently used prctl() function is Linux specific and in general not
available on other platforms (e.g. QNX).
Signed-off-by: Sebastian Lipponer <mail@sebastianlipponer.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously the generated .pc file was changed to export an additional
include path such that '#include <dlt.h>' and '#include <dlt/dlt.h>' can
be used. However the exported CMake config file only supports the latter
include statement. Consequently code that uses the other legacy include
statement does not compile with the exported CMake config file.
This change fixes this inconsistency. It lets users compile existing
code with either the pkg-config .pc file or the CMake config file and
avoids code clutter that is currently necessary to make this work.
Signed-off-by: Sebastian Lipponer <mail@sebastianlipponer.de>
|
|
|
| |
According to AUTOSAR standard the TYLE for the BOOL type shall be set to 1. So I propose to initialize type_info variable for the BOOL type the same way as for uint8 type.
|
|
|
|
|
|
|
|
|
|
|
| |
If a file is deleted while a file transfer is ongoing,
the file transfer tries to seek through the whole file.
This is due to the fact the the file handle is held open.
getFileSerialNumber is already validating the file
by using stat.
If this call returns a negative value, we know
that a stat to the file is not possible anymore,
therefore further reading can be aborted.
|
|
|
|
|
|
| |
Fixing casting incorrect type
Signed-off-by: Dinh Cong Toan <toan.dinhcong@vn.bosch.com>
|
|
|
|
|
|
| |
This commit removes duplicate conditional statements.
Signed-off-by: GwanYeong Kim <gy741.kim@gmail.com>
|
|
|
|
|
|
| |
This commit removes duplicate conditional statements.
Signed-off-by: GwanYeong Kim <gy741.kim@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-Werror=stringop-truncation
cd /build/dlt-daemon-2.18.7/obj-x86_64-linux-gnu/src/console/logstorage && /usr/bin/cc -DCONFIGURATION_FILES_DIR=\"/etc\" -DDLT_DAEMON_USE_FIFO_IPC -DDLT_LIB_USE_FIFO_IPC -DDLT_NETWORK_TRACE_ENABLE -DDLT_SYSTEMD_ENABLE -DDLT_SYSTEMD_JOURNAL_ENABLE -DDLT_UNIT_TESTS -DDLT_USER_IPC_PATH=\"/tmp\" -DDLT_USE_IPv6 -DEXTENDED_FILTERING -D_GNU_SOURCE -I/build/dlt-daemon-2.18.7 -I/build/dlt-daemon-2.18.7/obj-x86_64-linux-gnu/include/dlt -I/build/dlt-daemon-2.18.7/include/dlt -I/build/dlt-daemon-2.18.7/src/shared -I/build/dlt-daemon-2.18.7/src/core_dump_handler -I/build/dlt-daemon-2.18.7/src/offlinelogstorage -I/build/dlt-daemon-2.18.7/src/lib -I/build/dlt-daemon-2.18.7/src/daemon -I/build/dlt-daemon-2.18.7/src/console -I/build/dlt-daemon-2.18.7/src/gateway -I/build/dlt-daemon-2.18.7/systemd/3rdparty -g -O2 -ffile-prefix-map=/build/dlt-daemon-2.18.7=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Werror -std=gnu99 -Wall -Wextra -Wno-variadic-macros -Wno-strict-aliasing -o CMakeFiles/dlt-logstorage-ctrl.dir/__/dlt-control-common.c.o -c /build/dlt-daemon-2.18.7/src/console/dlt-control-common.c
make[3]: Leaving directory '/build/dlt-daemon-2.18.7/obj-x86_64-linux-gnu'
In file included from /usr/include/string.h:495,
from /build/dlt-daemon-2.18.7/src/console/dlt-control-common.c:56:
In function 'strncpy',
inlined from 'dlt_json_filter_load' at /build/dlt-daemon-2.18.7/src/console/dlt-control-common.c:716:13:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:10: error: '__builtin_strncpy' specified bound 4 equals destination size [-Werror=stringop-truncation]
106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function 'strncpy',
inlined from 'dlt_json_filter_load' at /build/dlt-daemon-2.18.7/src/console/dlt-control-common.c:721:13:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:10: error: '__builtin_strncpy' specified bound 4 equals destination size [-Werror=stringop-truncation]
106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
|
|
|
|
|
|
|
|
|
| |
In dlt_buffer_read_block() and dlt_buffer_write_block(), read/write position
should be updated in case these positions are equal to the size of ringbuffer.
Adding boundary check in gtest_dlt_common.cpp
Signed-off-by: Dinh Cong Toan <toan.dinhcong@vn.bosch.com>
|
|
|
|
| |
Signed-off-by: Dinh Cong Toan <toan.dinhcong@vn.bosch.com>
|
|
|
|
|
|
|
|
|
| |
This commit fixes to increment read and write point only if memcpy()
succeeded in dlt_buffer_read_block() and dlt_buffer_write_block().
Related issues: https://github.com/GENIVI/dlt-daemon/issues/305
Signed-off-by: Sugiura, Saya <ssugiura@jp.adit-jv.com>
|
|
|
|
|
|
|
| |
Several verbose condition in dlt_client.c are using printf() and fprintf()
that not print consistent logs to console. These are replaced by dlt-vlog().
Signed-off-by: KHANH LUONG HONG DUY khanh.luonghongduy@vn.bosch.com
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Improve logstorage to sync logs from cache to all connected
mount point when option -s with empty path is used.
E.g: dlt-logstorage-ctrl -s
Logstorage should accept a white space " " after option -s.
E.g: dlt-logstorage-ctrl -s /tmp/
Signed-off-by: Dinh Cong Toan <toan.dinhcong@vn.bosch.com>
|
|
|
|
|
|
|
|
| |
When processing dlt_user_log_send_log() function, message logs will be stored in
internal buffer in error case. Then, the error value is needed to handle correctly
before exiting.
Signed-off-by: Dinh Cong Toan <toan.dinhcong@vn.bosch.com>
|
|
|
|
|
|
|
|
|
|
| |
Currently, when config IPv6 interface for dlt component,
using syslog in dlt-system can not get data from socket.
By changing struct type and interface configuration correctly,
dlt-syslog can receive log from syslog properly.
Signed-off-by: Dinh Cong Toan <toan.dinhcong@vn.bosch.com>
|