aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2016-10-19 15:34:28 +0900
committerJason A. Donenfeld <Jason@zx2c4.com>2016-10-19 17:22:11 +0900
commitf3482b4456bd718dea108adac9086364decda3d0 (patch)
tree4a46205a0633d3d53d30452ec25b317c14312eb9 /src
parenttimers: kill half-open handshakes after a while (diff)
downloadwireguard-monolithic-historical-f3482b4456bd718dea108adac9086364decda3d0.tar.xz
wireguard-monolithic-historical-f3482b4456bd718dea108adac9086364decda3d0.zip
timers: move constants to header
Diffstat (limited to 'src')
-rw-r--r--src/messages.h4
-rw-r--r--src/timers.c17
2 files changed, 9 insertions, 12 deletions
diff --git a/src/messages.h b/src/messages.h
index fc539ec..0a799eb 100644
--- a/src/messages.h
+++ b/src/messages.h
@@ -44,7 +44,9 @@ enum limits {
REKEY_AFTER_TIME = 120 * HZ,
REJECT_AFTER_TIME = 180 * HZ,
INITIATIONS_PER_SECOND = HZ / 50,
- MAX_PEERS_PER_DEVICE = U16_MAX
+ MAX_PEERS_PER_DEVICE = U16_MAX,
+ KEEPALIVE_TIMEOUT = 10 * HZ,
+ MAX_TIMER_HANDSHAKES = (90 * HZ) / REKEY_TIMEOUT
};
enum message_type {
diff --git a/src/timers.c b/src/timers.c
index f85054b..300becb 100644
--- a/src/timers.c
+++ b/src/timers.c
@@ -5,15 +5,10 @@
#include "peer.h"
#include "packets.h"
-enum {
- KEEPALIVE = 10 * HZ,
- MAX_TIMER_HANDSHAKES = (90 * HZ) / REKEY_TIMEOUT
-};
-
/*
* Timer for retransmitting the handshake if we don't hear back after `REKEY_TIMEOUT` ms
- * Timer for sending empty packet if we have received a packet but after have not sent one for `KEEPALIVE` ms
- * Timer for initiating new handshake if we have sent a packet but after have not received one (even empty) for `(KEEPALIVE + REKEY_TIMEOUT)` ms
+ * Timer for sending empty packet if we have received a packet but after have not sent one for `KEEPALIVE_TIMEOUT` ms
+ * Timer for initiating new handshake if we have sent a packet but after have not received one (even empty) for `(KEEPALIVE_TIMEOUT + REKEY_TIMEOUT)` ms
* Timer for zeroing out all ephemeral keys after `(REJECT_AFTER_TIME * 3)` ms if no new keys have been received
* Timer for, if enabled, sending an empty authenticated packet every user-specified seconds
*/
@@ -51,7 +46,7 @@ static void expired_send_keepalive(unsigned long ptr)
packet_send_keepalive(peer);
if (peer->timer_need_another_keepalive) {
peer->timer_need_another_keepalive = false;
- mod_timer(&peer->timer_send_keepalive, jiffies + KEEPALIVE);
+ mod_timer(&peer->timer_send_keepalive, jiffies + KEEPALIVE_TIMEOUT);
}
}
@@ -59,7 +54,7 @@ static void expired_new_handshake(unsigned long ptr)
{
struct wireguard_peer *peer = (struct wireguard_peer *)ptr;
- pr_debug("Retrying handshake with peer %Lu (%pISpfsc) because we stopped hearing back after %d seconds\n", peer->internal_id, &peer->endpoint_addr, (KEEPALIVE + REKEY_TIMEOUT) / HZ);
+ pr_debug("Retrying handshake with peer %Lu (%pISpfsc) because we stopped hearing back after %d seconds\n", peer->internal_id, &peer->endpoint_addr, (KEEPALIVE_TIMEOUT + REKEY_TIMEOUT) / HZ);
packet_queue_send_handshake_initiation(peer);
}
@@ -102,14 +97,14 @@ void timers_data_sent(struct wireguard_peer *peer)
del_timer(&peer->timer_send_keepalive);
if (likely(peer->timer_new_handshake.data) && !timer_pending(&peer->timer_new_handshake))
- mod_timer(&peer->timer_new_handshake, jiffies + KEEPALIVE + REKEY_TIMEOUT);
+ mod_timer(&peer->timer_new_handshake, jiffies + KEEPALIVE_TIMEOUT + REKEY_TIMEOUT);
}
/* Should be called after an authenticated data packet is received. */
void timers_data_received(struct wireguard_peer *peer)
{
if (likely(peer->timer_send_keepalive.data) && !timer_pending(&peer->timer_send_keepalive))
- mod_timer(&peer->timer_send_keepalive, jiffies + KEEPALIVE);
+ mod_timer(&peer->timer_send_keepalive, jiffies + KEEPALIVE_TIMEOUT);
else
peer->timer_need_another_keepalive = true;
}