summaryrefslogtreecommitdiffstatshomepage
path: root/src/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.c')
-rw-r--r--src/config.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/config.c b/src/config.c
index bf8557c..b5d0799 100644
--- a/src/config.c
+++ b/src/config.c
@@ -14,10 +14,10 @@ static int set_device_port(struct wireguard_device *wg, u16 port)
struct wireguard_peer *peer, *temp;
socket_uninit(wg);
wg->incoming_port = port;
- if (!(wg->dev->flags & IFF_UP))
- return 0;
peer_for_each (wg, peer, temp, false)
socket_clear_peer_endpoint_src(peer);
+ if (!netif_running(wg->dev))
+ return 0;
return socket_init(wg);
}
@@ -72,8 +72,6 @@ static int set_peer(struct wireguard_device *wg, void __user *user_peer, size_t
peer = peer_rcu_get(peer_create(wg, in_peer.public_key, in_peer.preshared_key));
if (!peer)
return -ENOMEM;
- if (wg->dev->flags & IFF_UP)
- timers_init_peer(peer);
}
if (in_peer.flags & WGPEER_REMOVE_ME) {
@@ -107,13 +105,13 @@ static int set_peer(struct wireguard_device *wg, void __user *user_peer, size_t
}
if (in_peer.persistent_keepalive_interval != (u16)-1) {
- const bool send_keepalive = !peer->persistent_keepalive_interval && in_peer.persistent_keepalive_interval && wg->dev->flags & IFF_UP;
+ const bool send_keepalive = !peer->persistent_keepalive_interval && in_peer.persistent_keepalive_interval && netif_running(wg->dev);
peer->persistent_keepalive_interval = (unsigned long)in_peer.persistent_keepalive_interval * HZ;
if (send_keepalive)
packet_send_keepalive(peer);
}
- if (wg->dev->flags & IFF_UP)
+ if (netif_running(wg->dev))
packet_send_staged_packets(peer);
peer_put(peer);