diff options
-rw-r--r-- | util/dbuffer.lua | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/util/dbuffer.lua b/util/dbuffer.lua index 6c671fa3..0a36288d 100644 --- a/util/dbuffer.lua +++ b/util/dbuffer.lua @@ -91,8 +91,12 @@ function dbuffer_methods:read_until(char) end function dbuffer_methods:discard(requested_bytes) - if requested_bytes > self._length then - return nil; + if self._length == 0 then return true; end + if not requested_bytes or requested_bytes >= self._length then + self.front_consumed = 0; + self._length = 0; + for _ in self.items:consume() do end + return true; end local chunk, read_bytes = self:read_chunk(requested_bytes); |