From 761987ef0d3fbebe24a47f8429bcc7c25acef5d0 Mon Sep 17 00:00:00 2001
From: Koen Zandberg <koen@bergzand.net>
Date: Fri, 31 Aug 2018 10:40:30 +0200
Subject: [PATCH] ethos: Add drop frame case to recv function

The ethos driver does not drop the received frame if the recv function
is called with NULL buffer and with a length. This commit fixes that.
---
 drivers/ethos/ethos.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/ethos/ethos.c b/drivers/ethos/ethos.c
index cecec42545..a049ac4b7a 100644
--- a/drivers/ethos/ethos.c
+++ b/drivers/ethos/ethos.c
@@ -314,7 +314,14 @@ static int _recv(netdev_t *netdev, void *buf, size_t len, void* info)
         return (int)len;
     }
     else {
-        return dev->last_framesize;
+        if (len) {
+            int dropsize = dev->last_framesize;
+            dev->last_framesize = 0;
+            return tsrb_drop(&dev->inbuf, dropsize);
+        }
+        else {
+            return dev->last_framesize;
+        }
     }
 }
 
-- 
GitLab