diff options
author | Javier Arteaga <jarteaga@jbeta.is> | 2018-07-01 15:13:25 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2018-07-13 10:38:42 +0200 |
commit | 6ea0cd1300b48407f053846de93e0368f05f3bb0 (patch) | |
tree | 456ee32243c1db67affa755b1cf2b040d2e476ae | |
parent | 6c3174f6e0cdb3e0c61ab07eb244c1a6e033ff6e (diff) | |
download | NetworkManager-6ea0cd1300b48407f053846de93e0368f05f3bb0.tar.gz |
platform: put wireguard_family_id in NMPObjectLink
Limit the lifetime of the cached genl family ID to the lifetime of the
interface so we correctly handle module reloads.
https://github.com/NetworkManager/NetworkManager/pull/161
-rw-r--r-- | src/platform/nm-linux-platform.c | 10 | ||||
-rw-r--r-- | src/platform/nmp-object.h | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c index 641f7d68c0..42bde9dbd0 100644 --- a/src/platform/nm-linux-platform.c +++ b/src/platform/nm-linux-platform.c @@ -3442,8 +3442,6 @@ typedef struct { int is_handling; } delayed_action; - - int wireguard_family_id; } NMLinuxPlatformPrivate; struct _NMLinuxPlatform { @@ -6524,10 +6522,10 @@ _wireguard_get_link_properties (NMPlatform *platform, const NMPlatformLink *link }; guint i, j; - if (!priv->wireguard_family_id) - priv->wireguard_family_id = _support_genl_family (priv->genl, "wireguard"); + if (!obj->_link.wireguard_family_id) + obj->_link.wireguard_family_id = _support_genl_family (priv->genl, "wireguard"); - if (!priv->wireguard_family_id) { + if (!obj->_link.wireguard_family_id) { _LOGD ("wireguard: kernel support not available for wireguard link %s", link->name); goto err; } @@ -6536,7 +6534,7 @@ _wireguard_get_link_properties (NMPlatform *platform, const NMPlatformLink *link if (!msg) goto err; - if (!genlmsg_put (msg, NL_AUTO_PORT, NL_AUTO_SEQ, priv->wireguard_family_id, + if (!genlmsg_put (msg, NL_AUTO_PORT, NL_AUTO_SEQ, obj->_link.wireguard_family_id, 0, NLM_F_DUMP, WG_CMD_GET_DEVICE, 1)) goto err; diff --git a/src/platform/nmp-object.h b/src/platform/nmp-object.h index c4e3da3fdc..2923708f15 100644 --- a/src/platform/nmp-object.h +++ b/src/platform/nmp-object.h @@ -167,6 +167,8 @@ typedef struct { /* Auxiliary data object for Wi-Fi and WPAN */ GObject *ext_data; + + int wireguard_family_id; } NMPObjectLink; typedef struct { |