Commit graph

11654 commits

Author SHA1 Message Date
Thomas Haller
020000433b platform/netlink: add nla_data_as() macro
This macro casts the return pointer and asserts that the netlink attribute
is suitably large.
2019-02-22 09:58:09 +01:00
Thomas Haller
5920f187d3 platform/netlink: add more RTM message types in to-string function nl_nlmsghdr_to_str() 2019-02-22 09:58:09 +01:00
Thomas Haller
bc7bf3c861 platform/netlink: add nla_get_be64() helper 2019-02-22 09:58:09 +01:00
Thomas Haller
fac357ac8b platform/netlink: require valid nla argument for nla_get_u64()
nla_get_u64() was unlike all other nla_get_u*() implementations, in that it
would allow for a missing/invalid nla argument, and return 0.

Don't do this. For one, don't behave different than other getters.
Also, there really is no space to report errors. Hence, the caller must
make sure that the attribute is present and suitable -- like for other
nla_get_*() functions.

None of the callers relied on being able to pass NULL attribute.

Also, inline the function and use unaligned_read_ne64(). That is our
preferred way for reading unaligned data, not memcpy().
2019-02-22 09:58:09 +01:00
Thomas Haller
af13eb6cac platform/netlink: add assertions for nla_get_*() functions
These are only nm_assert(), meaning on non-DEBUG builds they
are not enabled.

Callers are supposed to first check that the netlink attribute
is suitable. Hence, we just assert.
2019-02-22 09:58:09 +01:00
Thomas Haller
5044c33ead platform/netlink: use designated initializer in nlmsg_alloc_size() 2019-02-22 09:58:09 +01:00
Thomas Haller
f7df8fda1a platform/netlink: assert for valid policy for string attribute in validate_nla
The policy for strings must indicate a minlen of at least 1.

Everything else is a bug, because the policy contains invalid
data -- and is determined at compile-time.
2019-02-22 09:58:09 +01:00
Thomas Haller
82e31b2816 platform/netlink: cleanup nla_memcpy()
- use size_t arguments for the memory sizes. While sizes from netlink
  API currently are int typed and inherrently limited, use the more
  appropriate data type.

- rename the arguments. The "count" is really the size of the
  destination buffer.

- return how many bytes we wanted to write (like g_strlcpy()).
  That makes more sense than how many bytes we actually wrote
  because previously, we could not detect truncation.
  Anyway, none of the callers cared about the return-value either
  way.
2019-02-22 09:58:09 +01:00
Thomas Haller
b080146cc6 platform/netlink: cleanup nla_strlcpy()
- let nla_strlcpy() return how many bytes we would like to have
  copied. That way, the caller could detect string truncation.
  In practice, no caller cared about that.

- the code before would also fill the entire buffer with zeros first,
  like strncpy(). We still do that. However, only copy the bytes up
  to the first NUL byte. The previous version would have copied
  "a\0b\0" (with srclen 4) as "a\0b". Strip all bytes after the
  first NUL character from src. That seems more correct here.

- accept nla argument as %NULL.
2019-02-22 09:58:09 +01:00
Thomas Haller
6c24846929 platform/trivial: coding style fixes/whitespace 2019-02-22 09:58:09 +01:00
Thomas Haller
6f8208c0d4 platform/netlink: cleanup nla_parse*() code by using safer macros
- drop explicit MAX sizes like

      static const struct nla_policy policy[IFLA_INET6_MAX+1] = {

  The compiler will deduce that.

  It saves redundant information (which is possibly wrong). Also,
  the max define might be larger than we actually need it, so we
  just waste a few bytes of static memory and do unnecesary steps
  during validation.

  Also, the compiler will catch bugs, if the array size of policy/tb
  is too short for what we access later (-Warray-bounds).

- avoid redundant size specifiers like:

      static const struct nla_policy policy[IFLA_INET6_MAX+1] = {
      ...
      struct nlattr *tb[IFLA_INET6_MAX+1];
      ...
      err = nla_parse_nested (tb, IFLA_INET6_MAX, attr, policy);

- use the nla_parse*_arr() macros that determine the maxtype
  based on the argument types.

- move declaration of "static const struct nla_policy policy" variable
  to the beginning, before auto variables.

- drop unneeded temporay error variables.
2019-02-22 09:58:09 +01:00
Thomas Haller
cf22d28c2e platform/netlink: add nla_parse* macros that safely determine the max-type
The common idiom is to stack allocate the tb array. Hence,
the maxtype is redundant. Add macros that autodetect the
maxtype based on the C type infomation.

Also, there is a static assertion that the size of the policy
(if provided) matches.
2019-02-22 09:58:09 +01:00
Thomas Haller
6245569c6d platform/netlink: cleanup unnecessary "goto out" from nla_parse() 2019-02-22 09:58:09 +01:00
Thomas Haller
d8727f6aa9 platform/netlink: fix return value of nla_get_s8() 2019-02-22 09:58:09 +01:00
Thomas Haller
7f1865cad9 platform/wifi: fix size check for parsing netlink attribute NL80211_BSS_BSSID 2019-02-22 09:58:09 +01:00
Thomas Haller
a4cff10ceb platform: fix error handling for creating nlmsg in do_request_all_no_delayed_actions()
In practice, we don't fail to create the nlmsg, because in glib
malloc() cannot fail and we always create large enough buffers.

Anyway, handle the error correctly, and reduce the in-progress
counter again.
2019-02-22 09:58:09 +01:00
Thomas Haller
106e4ebc13 platform/netlink: fix _genl_parse_getfamily() for checking error code from genlmsg_parse()
Errors are negative numbers.

This had no effect however, because currently genlmsg_parse() won't ever return
positive values.
2019-02-22 09:58:09 +01:00
Thomas Haller
b7d4ad8547 wifi-p2p: drop WiFi-P2P "group-owner" property from D-Bus API and libnm
It's not yet implemented server-side.

Until it is clear that we need this property and until it is implemented,
drop it again from public API.

See-also: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/80#note_118004
2019-02-21 15:34:55 +01:00
Jonathan Kang
243af16c5b Add polkit action for Wi-Fi scans
Previously, Wi-Fi scans uses polkit action
"org.freedesktop.NetworkManager.network-control". This is introduced
in commit 5e3e19d0. But in a system with restrict polkit rules, for
example "org.freedesktop.NetworkManager.network-control" was set as
auth_admin. When you open the network panel of GNOME Control Center, a
polkit dialog will keep showing up asking for admin password, as GNOME
Control Center scans the Wi-Fi list every 15 seconds.

Fix that by adding a new polkit action
"org.freedesktop.NetworkManager.wifi.scan" so that distributions can
add specific rule to allow Wi-Fi scans.

[thaller@redhat.com: fix macro in "shared/nm-common-macros.h"]

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/68
2019-02-21 13:49:17 +01:00
Thomas Haller
696cf38f45 supplicant: avoid G_VARIANT_BUILDER_INIT() from glib 2.50
G_VARIANT_BUILDER_INIT() was only added in glib 2.50, hence we cannot use
it.

Maybe nm-glib.h should provide a compat macro, but the macro relies
on the magic number GVSB_MAGIC_PARTIAL, which is private to glib.
It's not clear that we can savely provide such a compat implementation
for older glib variants.

Fixes: 642f15f2f6
2019-02-21 13:27:34 +01:00
Benjamin Berg
8fd5505ed5 device: Set WFD IEs when connecting to P2P device
Set the WFD IEs before trying to connect to a P2P device. Reset the
value when cancelling or when disconnecting.
2019-02-21 10:10:20 +01:00
Benjamin Berg
642f15f2f6 supplicant: Add API to set WFD IEs
This API allows setting the global WFDIEs property of wpa_supplicant.
Ideally it would be better if this property was per-device, but this is
a limitation of wpa_supplicant.
2019-02-21 10:10:20 +01:00
Benjamin Berg
3d12dbc0a7 Remove WFD IEs property from P2P device
While this can be considered a property of the P2P device, the API will
require setting it through the settings when activating a connection. As
such, having a (read only) property on the device is not very useful, so
remove it again.
2019-02-21 10:10:20 +01:00
Beniamino Galvani
b5efcf08f4 all: move nm_utils_bin2hexstr_full() to shared
reuse++
2019-02-21 09:36:17 +01:00
Thomas Haller
045d1d350f keyfile: cleanup _internal_write_connection()
- use gs_free instead of explicit free().

- use nm_streq*() instead of strcmp().

- move deletion of existing file after we successfully wrote
  the new file.

- add parameter existing_path_readonly, to avoid to overwrite or
  delete the existing path (if it exists). This is still mostly unused,
  but will be necessary when we have read-only directories.
2019-02-21 09:17:58 +01:00
Thomas Haller
f324091557 keyfile: use nm_utils_file_is_in_path() for detecting required rename 2019-02-21 09:17:58 +01:00
Thomas Haller
a13b2397de ifcfg-rh: don't rely on g_steal_pointer() returning a void pointer
Next, we will update g_steal_pointer() to cast the return type
to the type of the argument. Hence, this automatic conversion
from setting (sub) classes to NMSetting no longer works.

Add an explict cast.
2019-02-21 07:22:36 +01:00
Beniamino Galvani
787a18c467 systemd: merge branch systemd into master 2019-02-20 19:18:52 +01:00
Beniamino Galvani
62e6df1f1c systemd: update code from upstream (2019-02-20)
This is a direct dump from systemd git.

======

SYSTEMD_DIR=../systemd
COMMIT=eb5149ba7462e0e27a349fcf9f8514440b06067c

(
  cd "$SYSTEMD_DIR"
  git checkout "$COMMIT"
  git reset --hard
  git clean -fdx
)

git ls-files -z :/src/systemd/src/ \
                :/shared/systemd/src/ \
                :/shared/nm-utils/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_nmutils() {
    mkdir -p "./shared/nm-utils/"
    cp "$SYSTEMD_DIR/$1" "./shared/nm-utils/${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/shared/dns-domain.c"
nm_copy_sd_core "src/shared/dns-domain.h"
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-dhcp6-client.h"
nm_copy_sd_core "src/systemd/sd-dhcp6-lease.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_nmutils "src/basic/unaligned.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/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/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/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/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_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/refcnt.h"
nm_copy_sd_shared "src/basic/set.h"
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/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/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/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"
2019-02-20 17:53:22 +01:00
Thomas Haller
c2b3b9b955 dhcp/internal: handle localhost and 0.0.0.0 DNS/NTP servers specially
- regarding the DHCP options, we should not suppress them. If the lease
  contains such bogus(?) addresses, we still want to expose them on
  D-Bus without modification.

- regrading using the DNS server, ignore localhost addresses like done for
  systemd-networkd ([1], [2]).

Until recently, the DHCP library would internally suppress such
addresses ([3]). That is no longer the case, and we should handle
them specially.

[1] https://github.com/systemd/systemd/issues/4524
[2] d9ec2e632d
[3] 334d5682ae
2019-02-20 10:02:30 +01:00
Thomas Haller
f3e1dea1fe dhcp/internal: handle multiple Router options in internal DHCP clint
https://bugzilla.redhat.com/show_bug.cgi?id=1634657
2019-02-20 10:01:09 +01:00
Thomas Haller
ca540adfeb systemd: network: avoid inet_ntoa() in favor of inet_ntop()
Imported from systemd:

    inet_ntop() is not documented to be thread-safe, so it should not
    be used in the DHCP library. Arguably, glibc uses a thread local
    buffer, so indeed there is no problem with a suitable libc. Anyway,
    just avoid it.

189255d2b5
2019-02-19 16:18:57 +01:00
Thomas Haller
19c3d1f58b systemd: dhcp: move filtering of bogus DNS/NTP addresses out of DHCP client
Imported from systemd:

    The DHCP client should not pre-filter addresses beyond what RFC
    requires. If a client's user (like networkd) wishes to skip/filter
    certain addresses, it's their responsibility.

    The point of this is that the DHCP library does not hide/abstract
    information that might be relevant for certain users. For example,
    NetworkManager exposes DHCP options in its API. When doing that, the
    options should be close to the actual lease.

    This is related to commit d9ec2e632df4905201facf76d6a205edc952116a
    (dhcp4: filter bogus DNS/NTP server addresses silently).

072320eab0
2019-02-19 16:18:57 +01:00
Thomas Haller
39ac79c55d systemd: dhcp: handle multiple addresses for "Router" (option 3) in DHCP library
Imported from systemd:

    The Router DHCP option may contain a list of one or more
    routers ([1]). Extend the API of sd_dhcp_lease to return a
    list instead of only the first.

    Note that networkd still only uses the first router (if present).
    Aside from extending the internal API of the DHCP client, there
    is almost no change in behavior. The only visible difference in
    behavior is that the "ROUTER" variable in the lease file is now a
    list of addresses.

    Note how RFC 2132 does not define certain IP addresses as invalid for the
    router option. Still, previously sd_dhcp_lease_get_router() would never
    return a "0.0.0.0" address. In fact, the previous API could not
    differenciate whether no router option was present, whether it
    was invalid, or whether its first router was "0.0.0.0". No longer let
    the DHCP client library impose additional restrictions that are not
    part of RFC. Instead, the caller should handle this. The patch does
    that, and networkd only consideres the first router entry if it is not
    "0.0.0.0".

    [1] https://tools.ietf.org/html/rfc2132#section-3.5

This also required adjusting "src/dhcp/nm-dhcp-systemd.c" due to the
changed internal API.

f8862395e8
2019-02-19 16:18:57 +01:00
Thomas Haller
2b8434ea46 systemd: network: don't return allocated buffer of zero length from deserialize_in_addrs()
Imported from systemd:

    deserialize_in_addrs() allocates the buffer before trying to parse
    the IP address. Since a parsing error is silently ignored, the returned
    size might be zero. In such a case we shouldn't return any buffer.

    Anyway, there was no leak, because there are only two callers like

        r = deserialize_in_addrs(&lease->dns, dns);

    which both keep the unused buffer and later release it.

    Note that deserialize_in_addrs() doesn't free the pointer before
    reassigning the new output. The caller must take care to to pass
    "ret" with an allocated buffer that would be leaked when returning
    the result.

c24b682162
2019-02-19 16:18:57 +01:00
Thomas Haller
1d0b07bcfc dhcp/internal: cleanup logging and failure handling in lease_to_ip4_config()
... and lease_to_ip6_config().

- Handle reasons that render the lease invalid first, before logging
  anything. This way, upon invalid lease we don't have partially logged
  about the lease.

- prefer logging one line for options that contain multiple values, for
  example for search domains.

- reorder statements to consistently log first before calling add_option().

- prefer

      g_string_append (nm_gstring_add_space_delimiter (str), ...

  over

      g_string_append_printf (str, "%s%s", str->len ? " " : "", ...

- use @addr_str buffer directly, instead of assigning to another
  temporary variable.
2019-02-19 16:18:57 +01:00
Benjamin Berg
3a2aa5632d device: Recheck P2P availability after setting a supplicant interface
The newly set interface may already be in a READY state. In that case,
the device should progress into the DISCONNECTED state rather than
remaining in the UNAVAILABLE state.
2019-02-19 15:00:48 +01:00
Benjamin Berg
3e079e87a5 device: Destroy P2P device with its parent Wifi device
This can for example happen when a wifi device is unmanaged.
2019-02-19 14:04:37 +01:00
Benjamin Berg
27bc2cb22a device: Ensure P2P device is unavailable without wpa_supplicant
Put the device into UNAVAILABLE state when the corresponding WPA
supplicant management interface is unset. This is important to
explicitly clear any pending state changes that are not permissible when
there is no management interface.
2019-02-19 14:01:39 +01:00
Thomas Haller
fc9d661018 platform/wireguard: fix parsing WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL from netlink
Fixes: 0827d4c2e4
2019-02-18 15:10:07 +01:00
Thomas Haller
9ae71bf555 all: use nm_c_list_move_*() helpers 2019-02-18 15:00:10 +01:00
Beniamino Galvani
29984c07cd ovs: fix dispose()
input and output must be freed only when not NULL.

Also, ovsdb_disconnect() should do nothing if there is no client.

Fixes: 830a5a14cb
2019-02-17 19:39:08 +01:00
Beniamino Galvani
b92f2c9323 ovs: don't leak a GCancellable on connection failure
Every time we clear priv->client we should also clear the cancellable
or it will be leaked.

Fixes: 830a5a14cb
2019-02-17 19:39:08 +01:00
Beniamino Galvani
139b9974fa ovs: fix leak of json objects
Fixes: 830a5a14cb
2019-02-17 19:39:07 +01:00
Beniamino Galvani
8d9685ef98 ovs: use nm_auto_decref_json 2019-02-17 19:39:07 +01:00
Thomas Haller
1423ad24c0 wifi/iwd: fix compiler warning about pointer cast in powered_changed()
../src/devices/wifi/nm-device-iwd.c: In function ‘powered_changed’:
    ../src/devices/wifi/nm-device-iwd.c:2336:15: warning: assignment from incompatible pointer type [enabled by default]
         interface = g_object_ref (priv->dbus_device_proxy);
                   ^
2019-02-17 11:14:08 +01:00
Thomas Haller
5923a30c43 settings/ifupdown: fix ifupdown plugin after merging eni_ifaces and connections hashes
The @eni_ifaces hash may now contain %NULL elements. They are only markers
for interface names, but are not actual connections.

They must be skipped.

Fixes: 6aa66426a4

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/124
2019-02-15 16:12:14 +01:00
Thomas Haller
a3d4dea61f platform: print persistent-keepalive setting of WireGuard peers 2019-02-14 08:00:29 +01:00
Thomas Haller
153b41fa97 platform: add peer_flags argument to nm_platform_link_wireguard_change() 2019-02-14 08:00:29 +01:00
Thomas Haller
1e1b03c089 platform: add flags for setting individual WireGuard options of link 2019-02-14 08:00:29 +01:00