aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/receive.c
diff options
context:
space:
mode:
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);