aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/peer.h
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-10-26 02:09:02 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-10-27 14:20:00 +0200
commite63e36076c68748cd359a28c737a12258e56cb46 (patch)
tree7ea5cb244a0abc47e7a6d10b78418cddb2284cd8 /src/peer.h
parentratelimiter: make hash calls explicit (diff)
downloadwireguard-monolithic-historical-e63e36076c68748cd359a28c737a12258e56cb46.tar.xz
wireguard-monolithic-historical-e63e36076c68748cd359a28c737a12258e56cb46.zip
timers: it is always reasonable to remove a timer
If struct timer_list has not been setup, it is zeroed, in which case timer_pending is false, so calling del_timer is safe. Calling del_timer is also safe on a timer that has already been del_timer'd. And calling del_timer is safe after a peer is dead, since the whole point of it being dead is that no more timers are created and all contexts eventually stop. Finally del_timer uses a lock, which means it's safe to call it concurrently. Therefore, we do not need any guards around calls to del_timer. While we're at it, we can get rid of the old lingering timers_enabled boolean which wasn't doing anything anyway anymore.
Diffstat (limited to 'src/peer.h')
-rw-r--r--src/peer.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/peer.h b/src/peer.h
index 10de4b6..d19e617 100644
--- a/src/peer.h
+++ b/src/peer.h
@@ -54,7 +54,7 @@ struct wg_peer {
struct timer_list timer_persistent_keepalive;
unsigned int timer_handshake_attempts;
u16 persistent_keepalive_interval;
- bool timers_enabled, timer_need_another_keepalive;
+ bool timer_need_another_keepalive;
bool sent_lastminute_handshake;
struct timespec walltime_last_handshake;
struct kref refcount;