summaryrefslogtreecommitdiff
path: root/shared/systemd/nm-logging-stub.c
Commit message (Collapse)AuthorAgeFilesLines
* logging: make nm-logging thread-safeThomas Haller2019-02-051-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | NetworkManager is single-threaded and uses a mainloop. However, sometimes we may need multiple threads. For example, we will need to write sysctl values asynchronously, using the glib thread-pool. For that to work, we also need to switch the network-namespace of the thread-pool thread. We want to use NMPNetns for that. Hence it's better to have NMPNetns thread-safe, instead of coming up with a duplicate implementation. But NMPNetns may want to log, so we also need nm-logging thread-safe. In general, code under "shared/nm-utils" and nm-logging should be usable from multiple threads. It's simpler to make this code thread-safe than re-implementing it. Also, it's a bad limitation to be unable to log from other threads. If there is an error, the best we can often do is to log about it. Make nm-logging thread-safe. Actually, we only need to be able to log from multiple threads. We don't need to setup or configure logging from multiple threads. This restriction allows us to access logging from the main-thread without any thread-synchronization (because all changes in the logging setup are also done from the main-thread). So, while logging from other threads requires a mutex, logging from the main-thread is lock-free.
* libnm: use "libnm-systemd-shared.a" in "libnm-core.la" (and "libnm.so")Thomas Haller2019-01-021-0/+45
It's not yet used, but it will be. We will need nm_sd_utils_unbase64mem() to strictly validate WireGuard settings, which contain keys in base64 encoding. Note that we also need a stub implementation for logging. This will do nothing for all logging from "libnm-systemd-shared.a". This makes sense because "libnm.so" as a library should not log directly. Also, "libnm.so" will only use a small portion of "libnm-systemd-shared.a" which doesn't log anything. Thus this code is unused and dropped by the linker with "--gc-sections".