aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/receive.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2017-04-03 21:40:45 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2017-04-04 03:44:35 +0200
commitfd6d19bb46a666868abd6aeff4fc43dd067489b5 (patch)
treef4dc3a91443258e81a0cc4d402bce8451481f26a /src/receive.c
parentchacha20poly1305: check return values of sgops (diff)
downloadwireguard-monolithic-historical-fd6d19bb46a666868abd6aeff4fc43dd067489b5.tar.xz
wireguard-monolithic-historical-fd6d19bb46a666868abd6aeff4fc43dd067489b5.zip
data: simplify flow
Diffstat (limited to 'src/receive.c')
-rw-r--r--src/receive.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/receive.c b/src/receive.c
index 3b375ae..929d723 100644
--- a/src/receive.c
+++ b/src/receive.c
@@ -205,17 +205,12 @@ static void keep_key_fresh(struct wireguard_peer *peer)
}
}
-static void receive_data_packet(struct sk_buff *skb, struct wireguard_peer *peer, struct endpoint *endpoint, bool used_new_key, int err)
+void packet_consume_data_done(struct sk_buff *skb, struct wireguard_peer *peer, struct endpoint *endpoint, bool used_new_key)
{
struct net_device *dev;
struct wireguard_peer *routed_peer;
struct wireguard_device *wg;
- if (unlikely(err < 0 || !peer || !endpoint)) {
- dev_kfree_skb(skb);
- return;
- }
-
socket_set_peer_endpoint(peer, endpoint);
wg = peer->device;
@@ -305,7 +300,7 @@ void packet_receive(struct wireguard_device *wg, struct sk_buff *skb)
break;
case MESSAGE_DATA:
PACKET_CB(skb)->ds = ip_tunnel_get_dsfield(ip_hdr(skb), skb);
- packet_consume_data(skb, wg, receive_data_packet);
+ packet_consume_data(skb, wg);
break;
default:
net_dbg_skb_ratelimited("Invalid packet from %pISpfsc\n", skb);