summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* dhcp: nettools: parse some missing optionbg/nettools-optionsBeniamino Galvani2020-08-241-0/+38
| | | | | | | | | | Add support for the following options to the nettool client: - Network Information Service Domain (40) - Network Information Servers (41) - NetBIOS over TCP/IP Name Server (44) https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/592
* dhcp: nettools: use generic function to parse address listsBeniamino Galvani2020-08-241-12/+19
|
* shared: add nm_is_ascii()Beniamino Galvani2020-08-241-0/+6
| | | | | | glib's is{alnum,alpha,ascii,...}() functions perform the check based on the current locale. Probably using isascii() would be fine anyway, but add a NM version that just checks that the upper bit is zero.
* po: Update Korean translationChangwoo Ryu2020-08-241-3060/+4708
| | | | | | Signed-off-by: Changwoo Ryu <cwryu@debian.org> https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/611
* shared/trivial: add gtk-doc for nm_utils_buf_utf8safe_unescape()Thomas Haller2020-08-241-0/+37
|
* platform: merge branch 'ss/NMPObject1'Thomas Haller2020-08-219-76/+258
|\ | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/607
| * platform: workaround for old kernels that don't support ↵Thomas Haller2020-08-215-5/+29
| | | | | | | | | | | | | | | | IFLA_BR_VLAN_STATS_ENABLED The kernel of Ubuntu 16.04 doesn't support IFLA_BR_VLAN_STATS_ENABLED. If we want to run on such old kernels (which we probably do), we need to detect that, and act accordingly.
| * platform/tests: add nmtstp_kernel_support_get()Thomas Haller2020-08-212-0/+19
| |
| * platform: extend nm_platform_kernel_support_get() and use atomic operations ↵Thomas Haller2020-08-211-6/+16
| | | | | | | | | | | | | | | | | | | | | | to access result Add nm_platform_kernel_support_get_full() to allow fetching the support state without setting it to the compile time default. Also, use g_atomic_int_get() to access _nm_platform_kernel_support_state values. We should not access static variables without synchronization. Better get it correct in any case than fast.
| * platform/tests: remove unused argument "out_not_supported" from ↵Thomas Haller2020-08-213-14/+5
| | | | | | | | nmtstp_link_bridge_add()
| * platform: use defines from libnm-core for setting defaults values for ↵Thomas Haller2020-08-211-3/+3
| | | | | | | | nm_platform_lnk_bridge_default
| * platform: fix default for bridge setting "mcast_snooping"Thomas Haller2020-08-211-1/+1
| | | | | | | | | | | | The value defaults to TRUE. Also, use the #define for it. Fixes: 58847f85a4c1 ('platform: use netlink for configuring bridge settings'):
| * core: use defines for sysfs values of bridge attributes (group-address and ↵Thomas Haller2020-08-211-3/+3
| | | | | | | | vlan-protocol)
| * platform: use netlink for configuring bridge settingsSayed Shah2020-08-207-53/+183
| | | | | | | | | | NMDeviceBridge is currently using sysfs. The plan is to use netlink in in the future
| * shared: add a struct and definition for MAC addressSayed Shah2020-08-201-0/+8
|/ | | | | This is a shared util which adds an array of 6 bytes and also add define statements for how to format the MAC address
* gitlab-ci: enable fedora:33 build and generate pages on F32Thomas Haller2020-08-181-3/+9
|
* contrib/rpm: enable LTO by default on RHEL-9 and newerThomas Haller2020-08-181-1/+1
|
* nettools: reimport nettools' n-dhcp4Thomas Haller2020-08-170-0/+0
|\ | | | | | | git subtree pull --prefix shared/n-dhcp4/ git@github.com:nettools/n-dhcp4.git master --squash
| * Squashed 'shared/n-dhcp4/' changes from 03d38e83e558..8c91e9ae8999Thomas Haller2020-08-173-25/+12
| | | | | | | | | | | | | | | | | | | | 8c91e9ae8999 trivial: fix spelling in code comment 433998d2be78 merge branch 'th/fix-lto-compiler-warnings' 6c6e9368989e connection: avoid compiler warning in n_dhcp4_c_connection_connect() about fd_udp uninitialized 142eedcfc332 packet: avoid compiler warning in n_dhcp4_c_socket_packet_recv() git-subtree-dir: shared/n-dhcp4 git-subtree-split: 8c91e9ae8999e69edde642e8e9cac206a54e2c0d
* | build: merge branch 'th/fix-lto'Thomas Haller2020-08-1720-42/+120
|\ \ | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/605
| * | contrib/rpm: enable LTO by default on Fedora 33Thomas Haller2020-08-171-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With Fedora 33, LTO will be enabled by default via CFLAGS in redhat-rpm-config ([1]). That basically sets "CFLAGS=-flto -ffat-lto-objects". Note that we have our own configure/meson option to enable LTO. With "--with-lto" we set CFLAGS="-flto -flto-partition=none". This is necessary due ([2], [3]). So, disable Fedora's automatism, but turn on the suitable configure option to get working LTO. [1] https://src.fedoraproject.org/rpms/redhat-rpm-config/c/5baaf4a99cc77572d3496a7000674098bef7ed68?branch=master [2] e6cf4213a774 ('build: fix building with LTO') [3] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200#c28
| * | build: disable "-Wstringop-overflow" warning with LTO enabledThomas Haller2020-08-171-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No amount of _Pragma was able to disable this warning. In function ‘strncpy’, inlined from ‘_nm_strndup_a_step’ at ./shared/nm-glib-aux/nm-macros-internal.h:1367:3, inlined from ‘nms_keyfile_nmmeta_check_filename’ at src/settings/plugins/keyfile/nms-keyfile-utils.c:61:0: /usr/include/bits/string_fortified.h:106:10: error: ‘__builtin_strncpy’ specified bound depends on the length of the source argument [-Werror=stringop-overflow=] 106 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest)); | ^ src/settings/plugins/keyfile/nms-keyfile-utils.c: In function ‘nms_keyfile_nmmeta_check_filename’: src/settings/plugins/keyfile/nms-keyfile-utils.c:44: note: length computed here 44 | len = strlen (filename); | lto1: all warnings being treated as errors Oddly enough, gcc is still emitting the warning even with "-Wno-stringop-overflow", but at least it doesn't break the build.
| * | clients/tests: ensure that we run nmcli before client tests for LTOThomas Haller2020-08-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | nmcli is build with libtool, so "clients/cli/nmcli" is really a shell script that invokes the real nmcli (at "clients/cli/.libs/nmcli"). When building with LTO for some reasons "clients/cli/nmcli" still does some build steps during the first invocation. That means, if we run `make check-local-clients-tests-test-client` it would first do the final build step. This takes a while, and the test times out (worse, we do that build step many times in parallel). Avoid that by invoking "clients/cli/nmcli" first.
| * | build: fix generating "NetworkManager.ver" with LTOThomas Haller2020-08-174-9/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We use a linker version script "NetworkManager.ver", to hide symbols from NetworkManager that are not used. That is important due to our habit of using internal helper libraries that we link statically everywhere, without handpicking the symbols we actually need. We want the tooling to get rid of unnecessary symbols. However, NetworkManager loads shared libraries for settings and device plugins. These libraries require symbols from the NetworkManager binary, but which one depends on build options. Hence, we also generate "NetworkManager.ver" by the "tools/create-exports-NetworkManager.sh" script. For that the script uses "nm" to find symbols that are undefined in the plugin libraries but defined in NetworkManager. With autotools the script looked at "./src/.libs/libNetworkManager.a" to find the present symbols. Note that for meson that already didn't work, and we build instead an intermediate NetworkManager binary first (with all symbols exposed). With LTO, "nm" doesn't find all symbols in "./src/.libs/libNetworkManager.a", and consequently they are not exported and dropped/hidden. This also causes unit tests to fail with LTO, because our test script "tools/check-exports.sh" catches such bugs. Fix that by also with autotools generate a complete "NetworkManager-all-sym" binary that is used to generate "NetworkManager.ver", before rebuilding "NetworkManager" again.
| * | build: prefer python3 over python2 in autotools's configure scriptThomas Haller2020-08-171-1/+4
| | | | | | | | | | | | | | | | | | On Debian sid, pygobject no longer builds "python-gobject" for python2. Still, python2 may be installed and detected preferably by AM_PATH_PYTHON(). Add workaround.
| * | core: avoid deprecated matchfilecon SELinux API instead of selabelThomas Haller2020-08-171-15/+32
| | | | | | | | | | | | | | | | | | | | | | | | The matchfilecon API is deprecated for a very long time. Since selinux 3.1 the functions are also marked as deprecated in the header, which causes compiler warnings and build failures. Update the code to use selabel API instead.
| * | all: avoid wrong compiler warning about uninitalized variables with LTOThomas Haller2020-08-1711-13/+36
| | | | | | | | | | | | | | | | | | Seems with LTO the compiler can sometimes think that thes variables are uninitialized. Usually those code paths are only after an assertion was hit (g_return*()), but we still need to workaround the warning.
| * | tests: fix handling of $NMTST_LIBTOOL in "tools/run-nm-test.sh" scriptThomas Haller2020-08-171-4/+4
|/ /
* | n-dhcp4: merge branch 'th/fix-lto-compiler-warnings'Thomas Haller2020-08-172-24/+11
|\ \ | | | | | | | | | https://github.com/nettools/n-dhcp4/pull/20
| * | n-dhcp4/connection: avoid compiler warning in n_dhcp4_c_connection_connect() ↵Thomas Haller2020-08-171-14/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | about fd_udp uninitialized With LTO and optimizations enabled, we get a compiler warning about fd_udp not initialized: ../src/n-dhcp4-c-connection.c: In function ‘n_dhcp4_c_connection_connect’: ../src/n-dhcp4-c-connection.c:196:13: error: ‘fd_udp’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 196 | r = epoll_ctl(connection->fd_epoll, | ^ ../src/n-dhcp4-c-connection.c:185:16: note: ‘fd_udp’ was declared here 185 | int r, fd_udp; | ^ https://github.com/nettools/n-dhcp4/commit/6c6e9368989eae699448611fc82f41d50bd39dd9
| * | n-dhcp4/packet: avoid compiler warning in n_dhcp4_c_socket_packet_recv()Thomas Haller2020-08-171-10/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc-10.2.1-1.fc32 with optimizations and LTO enabled can think that "len" is uninitialized. Let packet_recv_udp() always set the length. ../src/n-dhcp4-socket.c: In function ‘n_dhcp4_c_socket_packet_recv.constprop’: ../src/n-dhcp4-incoming.c:210:29: error: ‘len’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 210 | incoming->n_message = n_raw; | ^ ../src/n-dhcp4-socket.c:558:16: note: ‘len’ was declared here 558 | size_t len; | ^ https://github.com/nettools/n-dhcp4/commit/142eedcfc332e52f3d3fdfa557be4d77a934e62d
* | platform: set default values for NMPlatformLnkBridge if unspecified on netlinkThomas Haller2020-08-171-0/+18
| | | | | | | | | | | | | | | | Older kernels may not support or send all bridge options in the netlink message. In case the parameter is missing, set the default value. Note that there may be future cases where we need to encode whether the option is present or not. Currently we don't express that.
* | platform/tests: ignore failure for adding bridge with iproute2Thomas Haller2020-08-171-12/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Older versions of iproute2 (Ubuntu 16.04) don't support all the requested bridge options. We need to gracefully ignore a failure and try with our own implementation. While doing that, only set the command line arguments if they are necessary (that is, if they requested value is not the default already). Luckily, Ubuntu 16.04's kernel supports these properties just fine, so we can avoid complicated compatibility code to cope with missing kernel support. It's really just an iproute2 limitation and affects only the tests.
* | platform: add NMP_OBJECT_CAST_LNK_BRIDGE() helper macroThomas Haller2020-08-171-0/+1
| |
* | scripts: use "/bin/cat" in NM-logThomas Haller2020-08-171-2/+2
| | | | | | | | | | Ubuntu 16.04 doesn't have merged /usr directories and cat is in /bin/cat.
* | platform: add support for configuring bridge settings via netlink (2)Sayed Shah2020-08-147-29/+194
| | | | | | | | | | | | | | NMDeviceBridge is currently using sysfs. The plan is to use netlink in in the future. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/601
* | settings: suppress wrong warning about wait-device-timeout for devices that ↵Thomas Haller2020-08-131-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | are still busy Imagine we wait for a device, the device appears and starts activating. That might take a while (during which it has a pending action). In the meantime, the "connection.wait-device-timeout" timeout expires. Now we want to log a warning about profiles that don't have their device upon timeout. However, that the device is still busy at that point is irrelevant. Skip logging a message about those profiles. Fixes: 3df662f534c4 ('settings: rework wait-device-timeout handling and consider device compatibility')
* | systemd: merge branch systemd into masterThomas Haller2020-08-136-14/+78
|\ \
| * | systemd: update code from upstream (2020-08-11)Thomas Haller2020-08-136-14/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a direct dump from systemd git. ====== SYSTEMD_DIR=../systemd COMMIT=c53da7ed02a5d732c9449f79c19675b90a6032e3 ( cd "$SYSTEMD_DIR" git checkout "$COMMIT" git reset --hard git clean -fdx ) git ls-files -z :/src/systemd/src/ \ :/shared/systemd/src/ \ :/shared/nm-std-aux/unaligned.h | \ xargs -0 rm -f nm_copy_sd_shared() { mkdir -p "./shared/systemd/$(dirname "$1")" cp "$SYSTEMD_DIR/$1" "./shared/systemd/$1" } nm_copy_sd_core() { mkdir -p "./src/systemd/$(dirname "$1")" cp "$SYSTEMD_DIR/$1" "./src/systemd/$1" } nm_copy_sd_stdaux() { mkdir -p "./shared/nm-std-aux/" cp "$SYSTEMD_DIR/$1" "./shared/nm-std-aux/${1##*/}" } nm_copy_sd_core "src/libsystemd-network/arp-util.c" nm_copy_sd_core "src/libsystemd-network/arp-util.h" nm_copy_sd_core "src/libsystemd-network/dhcp-identifier.c" nm_copy_sd_core "src/libsystemd-network/dhcp-identifier.h" nm_copy_sd_core "src/libsystemd-network/dhcp-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp-lease-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp-network.c" nm_copy_sd_core "src/libsystemd-network/dhcp-option.c" nm_copy_sd_core "src/libsystemd-network/dhcp-packet.c" nm_copy_sd_core "src/libsystemd-network/dhcp-protocol.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-lease-internal.h" nm_copy_sd_core "src/libsystemd-network/dhcp6-network.c" nm_copy_sd_core "src/libsystemd-network/dhcp6-option.c" nm_copy_sd_core "src/libsystemd-network/dhcp6-protocol.h" nm_copy_sd_core "src/libsystemd-network/lldp-internal.h" nm_copy_sd_core "src/libsystemd-network/lldp-neighbor.c" nm_copy_sd_core "src/libsystemd-network/lldp-neighbor.h" nm_copy_sd_core "src/libsystemd-network/lldp-network.c" nm_copy_sd_core "src/libsystemd-network/lldp-network.h" nm_copy_sd_core "src/libsystemd-network/network-internal.c" nm_copy_sd_core "src/libsystemd-network/network-internal.h" nm_copy_sd_core "src/libsystemd-network/sd-dhcp-client.c" nm_copy_sd_core "src/libsystemd-network/sd-dhcp-lease.c" nm_copy_sd_core "src/libsystemd-network/sd-dhcp6-client.c" nm_copy_sd_core "src/libsystemd-network/sd-dhcp6-lease.c" nm_copy_sd_core "src/libsystemd-network/sd-ipv4acd.c" nm_copy_sd_core "src/libsystemd-network/sd-ipv4ll.c" nm_copy_sd_core "src/libsystemd-network/sd-lldp.c" nm_copy_sd_core "src/libsystemd/sd-event/event-source.h" nm_copy_sd_core "src/libsystemd/sd-event/event-util.c" nm_copy_sd_core "src/libsystemd/sd-event/event-util.h" nm_copy_sd_core "src/libsystemd/sd-event/sd-event.c" nm_copy_sd_core "src/libsystemd/sd-id128/id128-util.c" nm_copy_sd_core "src/libsystemd/sd-id128/id128-util.h" nm_copy_sd_core "src/libsystemd/sd-id128/sd-id128.c" nm_copy_sd_core "src/systemd/_sd-common.h" nm_copy_sd_core "src/systemd/sd-dhcp-client.h" nm_copy_sd_core "src/systemd/sd-dhcp-lease.h" nm_copy_sd_core "src/systemd/sd-dhcp-option.h" nm_copy_sd_core "src/systemd/sd-dhcp6-client.h" nm_copy_sd_core "src/systemd/sd-dhcp6-lease.h" nm_copy_sd_core "src/systemd/sd-dhcp6-option.h" nm_copy_sd_core "src/systemd/sd-event.h" nm_copy_sd_core "src/systemd/sd-id128.h" nm_copy_sd_core "src/systemd/sd-ipv4acd.h" nm_copy_sd_core "src/systemd/sd-ipv4ll.h" nm_copy_sd_core "src/systemd/sd-lldp.h" nm_copy_sd_core "src/systemd/sd-ndisc.h" nm_copy_sd_shared "src/basic/alloc-util.c" nm_copy_sd_shared "src/basic/alloc-util.h" nm_copy_sd_shared "src/basic/async.h" nm_copy_sd_shared "src/basic/cgroup-util.h" nm_copy_sd_shared "src/basic/env-file.c" nm_copy_sd_shared "src/basic/env-file.h" nm_copy_sd_shared "src/basic/env-util.c" nm_copy_sd_shared "src/basic/env-util.h" nm_copy_sd_shared "src/basic/errno-util.h" nm_copy_sd_shared "src/basic/escape.c" nm_copy_sd_shared "src/basic/escape.h" nm_copy_sd_shared "src/basic/ether-addr-util.c" nm_copy_sd_shared "src/basic/ether-addr-util.h" nm_copy_sd_shared "src/basic/extract-word.c" nm_copy_sd_shared "src/basic/extract-word.h" nm_copy_sd_shared "src/basic/fd-util.c" nm_copy_sd_shared "src/basic/fd-util.h" nm_copy_sd_shared "src/basic/fileio.c" nm_copy_sd_shared "src/basic/fileio.h" nm_copy_sd_shared "src/basic/format-util.c" nm_copy_sd_shared "src/basic/format-util.h" nm_copy_sd_shared "src/basic/fs-util.c" nm_copy_sd_shared "src/basic/fs-util.h" nm_copy_sd_shared "src/basic/hash-funcs.c" nm_copy_sd_shared "src/basic/hash-funcs.h" nm_copy_sd_shared "src/basic/hashmap.c" nm_copy_sd_shared "src/basic/hashmap.h" nm_copy_sd_shared "src/basic/hexdecoct.c" nm_copy_sd_shared "src/basic/hexdecoct.h" nm_copy_sd_shared "src/basic/hostname-util.c" nm_copy_sd_shared "src/basic/hostname-util.h" nm_copy_sd_shared "src/basic/in-addr-util.c" nm_copy_sd_shared "src/basic/in-addr-util.h" nm_copy_sd_shared "src/basic/io-util.c" nm_copy_sd_shared "src/basic/io-util.h" nm_copy_sd_shared "src/basic/list.h" nm_copy_sd_shared "src/basic/log.h" nm_copy_sd_shared "src/basic/macro.h" nm_copy_sd_shared "src/basic/memory-util.c" nm_copy_sd_shared "src/basic/memory-util.h" nm_copy_sd_shared "src/basic/mempool.c" nm_copy_sd_shared "src/basic/mempool.h" nm_copy_sd_shared "src/basic/missing_fcntl.h" nm_copy_sd_shared "src/basic/missing_random.h" nm_copy_sd_shared "src/basic/missing_socket.h" nm_copy_sd_shared "src/basic/missing_stat.h" nm_copy_sd_shared "src/basic/missing_syscall.h" nm_copy_sd_shared "src/basic/missing_type.h" nm_copy_sd_shared "src/basic/parse-util.c" nm_copy_sd_shared "src/basic/parse-util.h" nm_copy_sd_shared "src/basic/path-util.c" nm_copy_sd_shared "src/basic/path-util.h" nm_copy_sd_shared "src/basic/prioq.c" nm_copy_sd_shared "src/basic/prioq.h" nm_copy_sd_shared "src/basic/process-util.c" nm_copy_sd_shared "src/basic/process-util.h" nm_copy_sd_shared "src/basic/random-util.c" nm_copy_sd_shared "src/basic/random-util.h" nm_copy_sd_shared "src/basic/set.h" nm_copy_sd_shared "src/basic/signal-util.c" nm_copy_sd_shared "src/basic/signal-util.h" nm_copy_sd_shared "src/basic/siphash24.h" nm_copy_sd_shared "src/basic/socket-util.c" nm_copy_sd_shared "src/basic/socket-util.h" nm_copy_sd_shared "src/basic/sort-util.h" nm_copy_sd_shared "src/basic/sparse-endian.h" nm_copy_sd_shared "src/basic/stat-util.c" nm_copy_sd_shared "src/basic/stat-util.h" nm_copy_sd_shared "src/basic/stdio-util.h" nm_copy_sd_shared "src/basic/string-table.c" nm_copy_sd_shared "src/basic/string-table.h" nm_copy_sd_shared "src/basic/string-util.c" nm_copy_sd_shared "src/basic/string-util.h" nm_copy_sd_shared "src/basic/strv.c" nm_copy_sd_shared "src/basic/strv.h" nm_copy_sd_shared "src/basic/strxcpyx.c" nm_copy_sd_shared "src/basic/strxcpyx.h" nm_copy_sd_shared "src/basic/time-util.c" nm_copy_sd_shared "src/basic/time-util.h" nm_copy_sd_shared "src/basic/tmpfile-util.c" nm_copy_sd_shared "src/basic/tmpfile-util.h" nm_copy_sd_shared "src/basic/umask-util.h" nm_copy_sd_shared "src/basic/user-util.h" nm_copy_sd_shared "src/basic/utf8.c" nm_copy_sd_shared "src/basic/utf8.h" nm_copy_sd_shared "src/basic/util.c" nm_copy_sd_shared "src/basic/util.h" nm_copy_sd_shared "src/shared/dns-domain.c" nm_copy_sd_shared "src/shared/dns-domain.h" nm_copy_sd_shared "src/shared/web-util.c" nm_copy_sd_shared "src/shared/web-util.h" nm_copy_sd_stdaux "src/basic/unaligned.h"
* | | initrd: always set "connection.wait-device-timeout" even if profile has no ↵Thomas Haller2020-08-121-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | interface-name set Since commit 3df662f534c4 ('settings: rework wait-device-timeout handling and consider device compatibility'), "connection.wait-device-timeout" works with profiles in general and doesn't require an interface-name set. Remove that restriction and let initrd generator create profiles that always wait.
* | | core: merge branch 'th/settings-wait-device-timeout'Thomas Haller2020-08-125-191/+254
|\ \ \ | | | | | | | | | | | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1853348 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/603
| * | | settings: rework wait-device-timeout handling and consider device compatibilityThomas Haller2020-08-125-187/+209
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A profile can configure "connection.wait-device-timeout" to indicate that startup complete is blocked until a suitable device around. This is useful for NetworkManager-wait-online and initrd mode. Previously, we looked at NMPlatform whether a link with matching interface-name was present. That is wrong because it cannot handle profiles that rely on "ethernet.mac-address" setting or other "match" settings. Also, the mere presence of the link does not yet mean that the NMDevice was created and ready. In fact, there is a race here: NMPlatform indicates that the device is ready (unblocking NMSettings), but there is no corresponding NMDevice yet which keeps NetworkManager busy to block startup complete. Rework this. Now, only check whether there is a compatible device for the profile. Since we wait for compatible devices, it works now not only for the interface name. Note that we do some optimizations so that we don't have to re-evaluate all profiles (w.r.t. all devices) whenever something on the device changes: we only care about this when all devices finally become ready. Also, we no longer start the timeout for "connection.wait-device-timeout" when the profile appears. Instead, there is one system-wide start time (NMSettingsPrivate.startup_complete_start_timestamp_msec). That simplifies code and makes sense: we start waiting when NetworkManager is starting, not when the profile gets added. Also, we wait for all profiles to become ready together.
| * | | settings: let NMSettings reference NMManagerThomas Haller2020-08-123-4/+45
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NMSettings needs access to the list of all devices, which is tracked by NMManager. Of course, this ties NMSettings and NMManager closer together. Note that NMManager already owns a reference to NMSettings, so they are in fact related. The alternatives of just letting NMSettings reference NMManager (and vice versa) would be more complicated, and likely not help to simplify the code (on the contrary).
* | | tools: minor cleanup to ensure "from_meson" variable is yet set from externThomas Haller2020-08-121-0/+1
| | |
* | | libnm/docs: fix doc for D-Bus format of "ipv6.route-data"Thomas Haller2020-08-101-1/+1
| | | | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/511
* | | license: add Zephaniah to RELICENSE.mdThomas Haller2020-08-101-0/+1
| | | | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/390#note_593619
* | | platform: merge branch 'ss/NMPObject'Thomas Haller2020-08-0712-29/+280
|\ \ \ | | | | | | | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/596
| * | | platform: add support for configuring bridge settings via netlinkSayed Shah2020-08-0712-4/+256
| | | | | | | | | | | | | | | | | | | | NMDeviceBridge is currently using sysfs. The plan is to use netlink in in the future
| * | | nmp-object: add space before parenthesesSayed Shah2020-08-071-25/+24
|/ / /
* | | keyfile: use NM_STR_HAS_SUFFIX_ASCII_CASE_WITH_MORE() to check filename suffixThomas Haller2020-08-071-25/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | In practice, we wouldn't need the _WITH_MORE() variants here, because all the suffixes that we check start with a ".", and we check first that the filename itself does not start with a ".". However, it doesn't hurt to be explicit about this, and it has no overhead at all.