summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* shared: fix _nm_utils_enum_from_str_full() for negative enum valuesth/enum-from-str-fix-signedThomas Haller2021-01-142-16/+49
| | | | | | | Enums can also be negative (contrary to Flags). Fix the parsing. $ nmcli connection modify "$PROFILE" connection.llmnr -1 Error: failed to modify connection.llmnr: invalid option '-1', use one of [default,no,resolve,yes].
* shared: avoid heap allocation in _nm_utils_enum_from_str_full()Thomas Haller2021-01-141-2/+1
| | | | | | In the vast majority of cases is the string for _nm_utils_enum_from_str_full() short. As we duplicate it for stripping, prefer to clone it on the stack with nm_strdup_maybe_a().
* shared: add nm_strdup_maybe_a() helper macroThomas Haller2021-01-141-0/+10
|
* po: update Ukrainian (uk) translationYuri Chornoivan2021-01-141-26/+26
| | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/727
* ndisc: merge branch 'th/ndisc-dns-lifetimes'Thomas Haller2021-01-142-67/+145
|\ | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1874743 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/725
| * ndisc: don't artificially extend the lifetime of DNSSL/RDNSS optionsth/ndisc-dns-lifetimesThomas Haller2021-01-141-14/+0
| | | | | | | | | | | | | | | | | | | | | | RFCs actually expect to honor the lifetime. See for example [1]. This is just not right, and totally arbitrary. It was added when our libndp based implementation was added, but unclear why this was done (beyond the code comment). [1] page 204, v6LC.2.2.25: Processing Router Advertisement DNS (Host only) at https://ipv6ready.org/docs/Core_Conformance_5_0_0.pdf
| * ndisc: fix encoding DNS Search List Option in RAThomas Haller2021-01-141-32/+76
| | | | | | | | | | | | | | | | | | | | | | The format is different than what was implemented. Read [1] or see systemd's implementation ([2]). [1] https://tools.ietf.org/html/rfc8106#section-5.2 [2] https://github.com/systemd/systemd/blob/65ab27211c32089e038de7352091b46903c91ee6/src/libsystemd-network/sd-radv.c#L791 Fixes: 63878566020b ('ndisc/lndp: add ability to announce the managed IPv6 configuration')
| * ndisc: minor cleanup in send_ra()Thomas Haller2021-01-141-27/+34
| | | | | | | | | | - use size_t variable for memory sizes and guint for iterating over GArray.
| * ndisc: pack structs for lndp optionsThomas Haller2021-01-141-2/+2
| | | | | | | | | | | | | | | | | | There is no actual change in behavior, because "struct nd_opt_hdr" as two uint8_t, so in practice this struct was always packed already. But make it explicit, because it's clear that we use these structs to set the binary message and they need a well defined (packed) memory layout.
| * ndisc: add comment and static assert for struct sizes for ndisc packet layoutThomas Haller2021-01-141-0/+16
| | | | | | | | Obviously, there is no change in behavior. It's just an assertion.
| * shared: add nm_str_buf_append_{dirty,c_len}() helpersThomas Haller2021-01-141-0/+25
|/
* wireguard: delay activation while resolving DNS names for WireGuard peers to ↵Thomas Haller2021-01-141-21/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | avoid race The endpoints of WireGuard peers can be configured as DNS name, which NetworkManager will resolve. Since activating a profile might affect now names get resolved, we must first resolve names before completing the activation of the WireGuard device (and before reconfiguring DNS accordingly). For example, if you configure exclusive DNS resolution via the WireGuard device, and if the peer needs to be resolved via DNS, then resolving the peer name must happen before the reconfiguration of DNS. Otherwise the new DNS configuration will be broken due to being unable to reach the WireGuard peer. Fix that by waiting. There is still an unfixed problem. If resolving any peers fails, activation silently proceeds -- again possibly breaking the network setup. Of course, NetworkManager will repeatedly try to re-resolve the name, but that may never succeed if DNS would be resolved via the VPN itself. That is different from `wg set` which resolves hostnames and fails. Consequently `wg-quick up` would also fail. But these are both one shot applications, they are not around and basically let the user handle the error (by reading the log and invoking the command again). NetworkManager can do something different and proceed activation (as it will also periodically re-resolve the hostnames again). Note that it's also valid to activate a WireGuard device without any peers (and to modify the activated device later with Reapply()). As such, having no peers (or being unable to resolve a hostname) may be a valid configuration. I think we should add an option/flag that when enabled will cause the activation to fail of names cannot be resolved. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/535 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/616 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/721
* core: avoid "-Wmaybe-uninitalized" warning in link_negotiation_set()Thomas Haller2021-01-141-3/+3
| | | | | | | | | | | With LTO and gcc-10.2.1-9.fc33.s390x we get: src/platform/nm-platform.c:3325:1: error: link_duplex may be used uninitialized in this function [-Werror=maybe-uninitialized] 3325 | NM_UTILS_LOOKUP_STR_DEFINE(nm_platform_link_duplex_type_to_string, | ^ src/devices/nm-device-ethernet.c:899: note: link_duplex was declared here 899 | NMPlatformLinkDuplexType link_duplex; |
* device: clean up dispatcher calls when canceling an activationbg/rh1888348Beniamino Galvani2021-01-141-0/+1
| | | | | | | | Ensure the callback for dispatcher calls is not executed, or it will resume the activation chain we want to interrupt. https://bugzilla.redhat.com/show_bug.cgi?id=1888348 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/723
* contrib: handle no files in "nm-code-format.sh"Thomas Haller2021-01-131-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling `clang-format` with no files means to read stdin, it thus hangs: $ ./contrib/scripts/nm-code-format.sh .git Also, the following does not work: $ ./contrib/scripts/nm-code-format.sh src/platform/ hangs. Seems there is a bug in `git ls-files` to not list all files: podman run -ti alpine:latest \ sh -c ' apk add git && git clone https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git && cd NetworkManager && git checkout -B tmp cd754680a6a0e35b286d4157269053ccc3996a32 && echo ">>>>>>BAD1: $PWD" && git ls-files -- src/platform/ ":(exclude)shared/n-acd" echo ">>>>>>GOOD1: $PWD" && git ls-files -- src/platform/ ":(exclude)shared/c-list" echo ">>>>>>GOOD2: $PWD" && git ls-files -- src/platform ":(exclude)shared/n-acd" echo ">>>>>>GOOD3: $PWD" && git ls-files -- src/vpn/ ":(exclude)shared/n-acd" ' Fixes: 9bef4ece925c ('contrib: improve nm-code-format.sh script')
* src/tests: avoid "-Wmaybe-uninitialized" warning in nmtstp_acd_defender_new()Thomas Haller2021-01-131-1/+1
| | | | | | | | | | | | With gcc-10.2.1-9.fc33.s390x we get a (false positive) warning: src/platform/tests/test-common.c: In function nmtstp_acd_defender_new: src/platform/tests/test-common.c:2688:15: error: probe may be used uninitialized in this function [-Werror=maybe-uninitialized] 2688 | *defender = (NMTstpAcdDefender){ | ^ src/platform/tests/test-common.c:2656:56: note: probe was declared here 2656 | NAcdProbe * probe; | ^
* contrib: improve nm-code-format.sh scriptThomas Haller2021-01-131-59/+125
| | | | | | | | | | | | | | | | | | | | - accept directory names in the command line. In that case, still honor the excluded files. That is a major improvement for me, because I usually only want to reformat a directory that I know has changed and it is fast to only process some directories. - pass all files at once to clang-format. For me that gives a significant speed improvement (about 3 times faster), although clang-format is only single threaded. Possibly clang-format could even be faster by checking files in parallel. In case of a style error, the script still falls back to iterate over all files to find the first bad file and print the full diff. But that is considered an unusual case. - make it correctly work from calling it from a subdirectory. In that case, we only check files inside that directory -- but still correctly honor the excluded files.
* core: replace g_return_if_fail() with nm_assert() in ↵Thomas Haller2021-01-132-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | nm_ip_config_iter_ip[46]_(address,route)_init() With LTO, the compiler can see that some code paths return without initializing the variable. But it fails to see that those are code paths after an assertion fail. Still that can lead to "-Wmaybe-uninitialized" warnings in the caller. Avoid that by not using g_return_if_fail() but nm_assert(). src/nm-ip6-config.c: In function '_nmtst_ip6_config_get_address': ./shared/nm-glib-aux/nm-dedup-multi.h:337:8: error: 'iter._next' may be used uninitialized in this function [-Werror=maybe-uninitialized] 337 | if (!iter->_next) | ^ src/nm-ip6-config.c:1622:33: note: 'iter._next' was declared here 1622 | NMDedupMultiIter iter; | ^ ./shared/nm-glib-aux/nm-dedup-multi.h:343:8: error: 'iter._head' may be used uninitialized in this function [-Werror=maybe-uninitialized] 343 | if (iter->_next->next == iter->_head) | ^ src/nm-ip6-config.c:1622:33: note: 'iter._head' was declared here 1622 | NMDedupMultiIter iter; | ^ and more.
* device: set out-argument to nm_device_get_permanent_hw_address_full() in ↵Thomas Haller2021-01-131-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | assertion case When compiling with LTO, the compiler can think that an assertion failure (g_return*()) is regular code path, and thus that the output variable is not set. This can lead to "-Wmaybe-uninitialized" warnings in the caller, despite this not happening in non-bug case. Work aound that by setting the out argument. Warning with LTO enabled and gcc-10.2.1-9.fc33.s390x: src/nm-config-data.c: In function nm_config_data_get_device_config: src/devices/nm-device.c:17454:9: error: is_fake may be used uninitialized in this function [-Werror=maybe-uninitialized] 17454 | m = nm_match_spec_device(specs, | ^ src/devices/nm-device.c:17444:26: note: is_fake was declared here 17444 | gboolean is_fake; | ^ src/nm-config-data.c: In function nm_config_data_get_connection_default: src/devices/nm-device.c:17454:9: error: is_fake may be used uninitialized in this function [-Werror=maybe-uninitialized] 17454 | m = nm_match_spec_device(specs, | ^ src/devices/nm-device.c:17444:26: note: is_fake was declared here 17444 | gboolean is_fake; | ^ src/devices/nm-device.c: In function nm_device_check_unrealized_device_managed: src/devices/nm-device.c:17454:9: error: is_fake may be used uninitialized in this function [-Werror=maybe-uninitialized] 17454 | m = nm_match_spec_device(specs, | ^
* lldp/tests: make assertion in _test_recv_fixture_setup() clearerThomas Haller2021-01-121-1/+4
| | | | ... to print the errno value on failure.
* core: avoid "-Wmaybe-uninitialized" warning in lldp_neighbor_get_raw()Thomas Haller2021-01-121-2/+2
| | | | | | | | | | | | | | | | src/devices/nm-lldp-listener.c: In function 'lldp_neighbor_to_variant': ./shared/nm-glib-aux/nm-shared-utils.h:1271:5: error: 'raw_len' may be used uninitialized in this function [-Werror=maybe-uninitialized] 1271 | g_variant_builder_add(builder, | ^ src/devices/nm-lldp-listener.c:107:19: note: 'raw_len' was declared here 107 | gsize raw_len; | ^ ./shared/nm-glib-aux/nm-shared-utils.h:1271:5: error: 'raw_data' may be used uninitialized in this function [-Werror=maybe-uninitialized] 1271 | g_variant_builder_add(builder, | ^ src/devices/nm-lldp-listener.c:106:19: note: 'raw_data' was declared here 106 | gconstpointer raw_data; | ^
* NEWS: updateThomas Haller2021-01-121-0/+1
|
* libnm: avoid "-Wmaybe-uninitialized" warning in ↵Thomas Haller2021-01-121-1/+1
| | | | | | | | | | | | | | | | | | | | | nm_setting_ethtool_get_optnames() With LTO build on s390x (Fedora 33) we get a compiler warning: libnm-core/nm-setting-ethtool.c: In function 'nm_setting_ethtool_get_optnames': libnm-core/nm-setting-ethtool.c:263:60: error: 'len' may be used uninitialized in this function [-Werror=maybe-uninitialized] 263 | return len > 0 ? nm_memdup(names, sizeof(names[0]) * (((gsize) len) + 1u)) : NULL; | ^ libnm-core/nm-setting-ethtool.c:257:24: note: 'len' was declared here 257 | guint len; | ^ libnm-core/nm-setting-ethtool.c: In function 'nm_setting_ethtool_get_optnames': libnm-core/nm-setting-ethtool.c:263:60: error: 'len' may be used uninitialized in this function [-Werror=maybe-uninitialized] 263 | return len > 0 ? nm_memdup(names, sizeof(names[0]) * (((gsize) len) + 1u)) : NULL; | ^ libnm-core/nm-setting-ethtool.c:257:24: note: 'len' was declared here 257 | guint len; | ^
* contrib: fix "contrib/scripts/nm-copr-build.sh" scriptThomas Haller2021-01-121-3/+4
|
* contrib: add "contrib/scripts/nm-copr-build.sh" scriptThomas Haller2021-01-121-0/+65
| | | | | | | This will be the script used by our copr repositories ([1]) for building the SRPM of NetworkManger from git. [1] https://copr.fedorainfracloud.org/coprs/networkmanager/
* contrib: add "contrib/scripts/nm-copr-build-nm-git-bundle.sh" scriptThomas Haller2021-01-121-0/+84
|
* shared: fix unit tests for nm_utils_get_next_realloc_size()Thomas Haller2021-01-122-8/+12
| | | | | | | | | | | The change broke unit tests on 32 bit systems. Change the code again to make it more similar to what it was before. Now only on 64 bit systems there is any difference compared to before. That makes it easier about reasoning for how the unit test should be (in most cases, it is unchanged). Fixes: 040c86f15cbf ('shared: avoid compiler warning for nm_utils_get_next_realloc_size() returning huge sizes')
* n-dhcp4: work around compiler warning in n_dhcp4_socket_packet_send()Thomas Haller2021-01-111-1/+2
| | | | | | | | | | | | | | | | With LTO enabled, the compiler might think that "len" is not initialized. That is even a correct assumption, if the compiler does not understand the API of sendmsg() and that sendmsg() is supposed to set a negative errno. Work around by initializing the variable. shared/n-dhcp4/src/n-dhcp4-c-connection.c: In function n_dhcp4_c_connection_send_request: shared/n-dhcp4/src/n-dhcp4-socket.c:368:19: error: len may be used uninitialized in this function [-Werror=maybe-uninitialized] } else if (len != n_buf) { ^ shared/n-dhcp4/src/n-dhcp4-socket.c:351:23: note: len was declared here size_t n_buf, len; ^
* shared: avoid compiler warning for nm_utils_get_next_realloc_size() ↵Thomas Haller2021-01-112-19/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | returning huge sizes On s390x (gcc-8.3.1-5.1.el8.s390x) the compiler warns that we don't pass size larger than 2^63-1 to malloc. With LTO enabled, it is also quite adamant in detecting that with nm_utils_get_next_realloc_size(). Optimally, we would disable this useless warning with "-Wno-alloc-size-larger-than", but that seems not to work. So add a workaround in code :( It's hard to actually workaround the warning while handling all kinds of sizes. The only simple solution is to no handle such huge cases and only assert. In function 'nm_secret_mem_realloc', inlined from '_nm_str_buf_ensure_size' at shared/nm-glib-aux/nm-shared-utils.c:5316:31: shared/nm-glib-aux/nm-secret-utils.h:180:17: error: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Werror=alloc-size-larger-than=] m_new = g_malloc(new_len); ^ shared/nm-glib-aux/nm-secret-utils.h: In function '_nm_str_buf_ensure_size': /usr/include/glib-2.0/glib/gmem.h:78:10: note: in a call to allocation function 'g_malloc' declared here gpointer g_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); ^ lto1: all warnings being treated as errors
* device: add "ipv4.dhcp-client-id=ipv6-duid" property for RFC4361Thomas Haller2021-01-116-20/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | RFC4361 intends to set the same IAID/DUID for both DHCPv4 and DHCPv6. Previously, we didn't have a mode for that. Of course, you could always set "ipv4.dhcp-client-id" and "ipv6.dhcp-duid" to (the same) hex string, but there was no automatic mode. Instead we had: - "ipv4.dhcp-client-id=duid" which sets the client ID to a stable, generated DUID. However, there was no option so that the same DUID/IAID would be automatically used for DHCPv6. - there are various special values for "ipv6.dhcp-duid" which generate a stable DUIDs. However, those values did not work for "ipv4.dhcp-client-id". Solve that by adding "ipv4.dhcp-client-id=ipv6-duid" which indicates to use the DUID from DHCPv6's "ipv6.dhcp-duid" setting. As IAID it will prefer "ipv4.dhcp-iaid" (if set), but fallback to "ipv6.dhcp-iaid". https://tools.ietf.org/html/rfc4361 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/618 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/718
* wifi: merge branch 'ac/wpa3_pmf_fix'Antonio Cardace2021-01-111-10/+0
|\ | | | | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/722
| * wifi: always require PMF when using WPA-EAP-SUITE-B-192ac/wpa3_pmf_fixAntonio Cardace2021-01-111-10/+0
|/ | | | | | | | | | | The default value is `optional' so the current check in place is actually wrong and blocks NM from connecting to WPA3 networks. Overall the check is not that useful as WPA3 Enterprise always requires PMF to be 'required' so let's always force it instead. Signed-off-by: Antonio Cardace <acardace@redhat.com> Fixes: e874ccc9177c ('wifi: add WPA-EAP-SUITE-B-192 support')
* n-dhcp4: revert "all: remove unnecessary <netinet/ether.h> includes"Thomas Haller2021-01-111-0/+1
| | | | | | | | This file has no relevance for NetworkManager. And we should not deviate from upstream n-dhcp4 which we include via git-subtree. Revert the change. This partly reverts commit 7f4a7bf4333562e2ff70b67b1dd0e9d4c4bfb28f.
* po: update Ukrainian (uk) translationYuri Chornoivan2021-01-111-1013/+1025
| | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/720
* clients: fix compiler warning in _do_test_parse_passwd_file()Thomas Haller2021-01-081-1/+1
| | | | | | | | | Since "_i" is int type and G_N_ELEMENTS() is size_t, the compiler can warn error: comparison of unsigned expression in '< 0' is always false [-Werror=type-limits] Avoid the warning by casting.
* cloud-setup: merge branch 'th/cloud-setup-man'Thomas Haller2021-01-0810-516/+699
|\ | | | | | | | | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1867997 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/600 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/719
| * man: improve "nm-cloud-setup" manual pageThomas Haller2021-01-081-10/+90
| | | | | | | | | | | | | | | | | | | | It's questionable whether the manual page should explain exactly what it does. However, it's a good exercise writing this up (to review what happens). Also, a manual page that simply says "it configures the network automatically" without going into how exactly, is not very useful either.
| * cloud-setup: assign incremental iface_idx for Azure,GCP get_config() resultThomas Haller2021-01-082-39/+46
| | | | | | | | | | | | | | | | | | | | | | | | We use the iface_idx for example to determine the routing table, by using table 30400+iface_idx. While the HTTP API for Azure has a index, it does not mean that we should use that index as-is for our purpose. Instead, treat those indexes separately and ensure that the iface_idx that we return is numbering the interfaces starting from zero.
| * cloud-setup: fail get_config() for Azure on invalid prefixThomas Haller2021-01-081-0/+2
| | | | | | | | | | | | | | | | While it's not clear whether we should be strict or forgiving when fetching the HTTP meta data, we should be consistent. On a parse error of the IP addresses we fail. Hence also fail on a parse error for the subnet.
| * cloud-setup: use nmcs_utils_ipaddr_normalize_bin() in Azure providerThomas Haller2021-01-081-9/+18
| |
| * cloud-setup: use nmcs_utils_ipaddr_normalize_gbytes() in GCP providerThomas Haller2021-01-081-5/+5
| |
| * cloud-setup: add nmcs_utils_ipaddr_normalize*() helperThomas Haller2021-01-082-0/+73
| |
| * cloud-setup: handle unknown interaces in get_config() for GCP/AzureThomas Haller2021-01-084-37/+92
| | | | | | | | | | | | | | | | | | | | The API of mcs_provider_get_config() allows to explicitly request for certain interfaces (MAC addresses), but it also allows to fetch any. That means, the result dictionary will be pre-populated with the MAC addresses that were requested, but if we encounter an unknown interface, then that is not a reason to fail.
| * cloud-setup: add and use nmcs_utils_hwaddr_normalize_gbytes()Thomas Haller2021-01-084-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we would call nmcs_utils_hwaddr_normalize(g_bytes_get_data(response, NULL), -1); which treats the data in response as NUL terminated. That is not entirely wrong, because the HTTP request's response is guaranteed to have a NUL termination at the end. However, it doesn't seam to good either. For one, we already have the length. Use it. But also, if the response contains any NUL bytes in the middle, then this would wrongly only consider the first line. We should not accept "00:11:22:33:44:55\0bogus" as valid. While at it, reject NUL characters from nmcs_utils_hwaddr_normalize() -- except one NUL at the end.
| * cloud-setup: strip whitespace from nmcs_utils_hwaddr_normalize()Thomas Haller2021-01-081-7/+15
| | | | | | | | | | This function should be accepting, and not reject leading/trailing white space.
| * cloud-setup: move common code for get_config() to base class and improve ↵Thomas Haller2021-01-085-444/+356
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cancellation First note that all three provider implementations are very similar. That is why NMCSProvider's implementation does already some work that is common to all implementations. For example, it provides the NMCSProviderGetConfigTaskData structure to help tracking the data of the request. Also note that the GCP/Azure implementations didn't handle the cancellation correctly. They always would pass g_task_get_cancellable(get_config_data->task) to the asynchronous requests. That is the GCancellable provider by the caller. That is fine when there is only one async operation ongoing. But that is not the case, we have parallel HTTP requests. Then, when an error happened, the overall get_config() operations fails and the still pending requests should all be aborted. However, we must not cancel the GCancellable of the user (because that is not owned by us). The correct solution is to use an internal cancellable in those cases. Anyway. Since all of this is similar, we can extend the base class to handle things for us. This also gets the cancellation right by having a "get_config_data->intern_cancellable".
| * cloud-setup/trivial: rename "response_data" variableThomas Haller2021-01-083-16/+16
| | | | | | | | | | We have three implementations of providers, that all do something similar. Name the variable with the HTTP response GBytes the same everywhere.
| * cloud-setup/trivial: rename variables "config_data" to "get_config_data"Thomas Haller2021-01-082-27/+28
| | | | | | | | | | | | | | | | | | | | | | | | The code is not entirely straight forward. Consistent naming is hence important. In "nmcs-provider-ec2.c", variables of this kind are called "get_config_data". That also matches to the type of the data (NMCSProviderGetConfigTaskData). Rename the variables to make naming consistent. Also, I find the longer name to be clearer.
| * shared: add nm_g_bytes_new_from_str() helperThomas Haller2021-01-082-0/+17
|/
* platform: avoid "-Wmaybe-uninitialized" warning in ip_route_add()Thomas Haller2021-01-081-10/+3
| | | | | | | | | | | | | | | | | When building without "more-asserts" and LTO enabled, we can get a warning about uninitalized "obj" variable: src/platform/nm-linux-platform.c: In function 'ip_route_add': src/platform/nm-platform.c:4761:24: warning: 'MEM[(struct NMPlatformIPRoute *)&obj + 24B].rt_source' may be used uninitialized in this function [-Wmaybe-uninitialized] 4761 | route->rt_source = nmp_utils_ip_config_source_round_trip_rtprot(route->rt_source); | ^ src/platform/nm-platform.h:2139:25: warning: 'BIT_FIELD_REF <MEM[(const struct NMPlatformIPRoute *)&obj + 24B], 8, 72>' may be used uninitialized in this function [-Wmaybe-uninitialized] 2139 | return r->table_any ? 254u /* RT_TABLE_MAIN */ | That is due to the "default" switch case which was unhandled when building without more-asserts". Avoid that by reworking the code.