aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/receive.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2017-09-28 15:34:14 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2017-10-02 02:45:53 +0200
commit9c6f27b2513ea07fa3aa452db28f5dbb8ae04606 (patch)
treec48509c5c01cefc44bee2f475370a2de9a4b3cd2 /src/receive.c
parentpeer: ensure that lookup tables are added last (diff)
downloadwireguard-monolithic-historical-9c6f27b2513ea07fa3aa452db28f5dbb8ae04606.tar.xz
wireguard-monolithic-historical-9c6f27b2513ea07fa3aa452db28f5dbb8ae04606.zip
receive: do not consider netfilter drop a real drop
Diffstat (limited to 'src/receive.c')
-rw-r--r--src/receive.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/receive.c b/src/receive.c
index ae79354..68683c0 100644
--- a/src/receive.c
+++ b/src/receive.c
@@ -277,7 +277,6 @@ static void packet_consume_data_done(struct sk_buff *skb, struct wireguard_peer
goto dishonest_packet_size;
if (INET_ECN_is_ce(PACKET_CB(skb)->ds))
IP_ECN_set_ce(ip_hdr(skb));
-
} else if (skb->protocol == htons(ETH_P_IPV6)) {
len = ntohs(ipv6_hdr(skb)->payload_len) + sizeof(struct ipv6hdr);
if (INET_ECN_is_ce(PACKET_CB(skb)->ds))
@@ -299,12 +298,11 @@ static void packet_consume_data_done(struct sk_buff *skb, struct wireguard_peer
goto dishonest_packet_peer;
len = skb->len;
- if (likely(netif_receive_skb(skb) == NET_RX_SUCCESS))
- rx_stats(peer, len);
- else {
+ if (unlikely(netif_receive_skb(skb) == NET_RX_DROP)) {
++dev->stats.rx_dropped;
net_dbg_ratelimited("%s: Failed to give packet to userspace from peer %Lu (%pISpfsc)\n", dev->name, peer->internal_id, &peer->endpoint.addr);
- }
+ } else
+ rx_stats(peer, len);
goto continue_processing;
dishonest_packet_peer: