aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/peer.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2017-09-28 15:32:03 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2017-10-02 02:45:53 +0200
commit4f80103b075046acf7c99eec3a436e76780442f7 (patch)
treeb4a15fedd2bf2969bfae44b6a95264b54fae8fe2 /src/peer.c
parentnetlink: switch from ioctl to netlink for configuration (diff)
downloadwireguard-monolithic-historical-4f80103b075046acf7c99eec3a436e76780442f7.tar.xz
wireguard-monolithic-historical-4f80103b075046acf7c99eec3a436e76780442f7.zip
peer: ensure that lookup tables are added last
Diffstat (limited to 'src/peer.c')
-rw-r--r--src/peer.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/peer.c b/src/peer.c
index 0bc1612..d5fbdb8 100644
--- a/src/peer.c
+++ b/src/peer.c
@@ -39,17 +39,17 @@ struct wireguard_peer *peer_create(struct wireguard_device *wg, const u8 public_
kfree(peer);
return NULL;
}
+ timers_init(peer);
cookie_checker_precompute_peer_keys(peer);
mutex_init(&peer->keypairs.keypair_update_lock);
INIT_WORK(&peer->transmit_handshake_work, packet_handshake_send_worker);
rwlock_init(&peer->endpoint_lock);
kref_init(&peer->refcount);
- pubkey_hashtable_add(&wg->peer_hashtable, peer);
- list_add_tail(&peer->peer_list, &wg->peer_list);
packet_queue_init(&peer->tx_queue, packet_tx_worker, false);
packet_queue_init(&peer->rx_queue, packet_rx_worker, false);
skb_queue_head_init(&peer->staged_packet_queue);
- timers_init(peer);
+ list_add_tail(&peer->peer_list, &wg->peer_list);
+ pubkey_hashtable_add(&wg->peer_hashtable, peer);
pr_debug("%s: Peer %Lu created\n", wg->dev->name, peer->internal_id);
return peer;
}