aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/timers.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2017-10-03 14:55:33 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2017-10-03 14:55:33 +0200
commit905839bff398d8ce6d050ee766413fa0c7b5d02c (patch)
tree01f377b6cf47772dd53ae87ae39b1c8b2011f03a /src/timers.c
parentglobal: use _WG prefix for include guards (diff)
downloadwireguard-monolithic-historical-905839bff398d8ce6d050ee766413fa0c7b5d02c.tar.xz
wireguard-monolithic-historical-905839bff398d8ce6d050ee766413fa0c7b5d02c.zip
global: add space around variable declarations
Diffstat (limited to 'src/timers.c')
-rw-r--r--src/timers.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/timers.c b/src/timers.c
index 42e188c..2838821 100644
--- a/src/timers.c
+++ b/src/timers.c
@@ -33,6 +33,7 @@ static inline bool timers_active(struct wireguard_peer *peer)
static void expired_retransmit_handshake(unsigned long ptr)
{
peer_get_from_ptr(ptr);
+
if (peer->timer_handshake_attempts > MAX_TIMER_HANDSHAKES) {
pr_debug("%s: Handshake for peer %Lu (%pISpfsc) did not complete after %d attempts, giving up\n", peer->device->dev->name, peer->internal_id, &peer->endpoint.addr, MAX_TIMER_HANDSHAKES + 2);
@@ -61,6 +62,7 @@ static void expired_retransmit_handshake(unsigned long ptr)
static void expired_send_keepalive(unsigned long ptr)
{
peer_get_from_ptr(ptr);
+
packet_send_keepalive(peer);
if (peer->timer_need_another_keepalive) {
peer->timer_need_another_keepalive = false;
@@ -73,6 +75,7 @@ static void expired_send_keepalive(unsigned long ptr)
static void expired_new_handshake(unsigned long ptr)
{
peer_get_from_ptr(ptr);
+
pr_debug("%s: Retrying handshake with peer %Lu (%pISpfsc) because we stopped hearing back after %d seconds\n", peer->device->dev->name, peer->internal_id, &peer->endpoint.addr, (KEEPALIVE_TIMEOUT + REKEY_TIMEOUT) / HZ);
/* We clear the endpoint address src address, in case this is the cause of trouble. */
socket_clear_peer_endpoint_src(peer);
@@ -83,12 +86,14 @@ static void expired_new_handshake(unsigned long ptr)
static void expired_zero_key_material(unsigned long ptr)
{
peer_get_from_ptr(ptr);
+
if (!queue_work(peer->device->handshake_send_wq, &peer->clear_peer_work)) /* Takes our reference. */
peer_put(peer); /* If the work was already on the queue, we want to drop the extra reference */
}
static void queued_expired_zero_key_material(struct work_struct *work)
{
struct wireguard_peer *peer = container_of(work, struct wireguard_peer, clear_peer_work);
+
pr_debug("%s: Zeroing out all keys for peer %Lu (%pISpfsc), since we haven't received a new one in %d seconds\n", peer->device->dev->name, peer->internal_id, &peer->endpoint.addr, (REJECT_AFTER_TIME * 3) / HZ);
noise_handshake_clear(&peer->handshake);
noise_keypairs_clear(&peer->keypairs);
@@ -98,6 +103,7 @@ static void queued_expired_zero_key_material(struct work_struct *work)
static void expired_send_persistent_keepalive(unsigned long ptr)
{
peer_get_from_ptr(ptr);
+
if (likely(peer->persistent_keepalive_interval)) {
if (likely(timers_active(peer)))
del_timer(&peer->timer_send_keepalive);