libs/nixio: add destination table argument to nixio.util.consume()
[project/luci.git] / libs / nixio / lua / nixio / util.lua
index 6f92951..d83209a 100644 (file)
@@ -23,9 +23,11 @@ local ZIOBLKSIZE = 65536
 local socket = nixio.meta_socket
 local tls_socket = nixio.meta_tls_socket
 local file = nixio.meta_file
+local uname = nixio.uname()
+local ZBUG = uname.sysname == "Linux" and uname.release:sub(1, 3) == "2.4"
 
-function consume(iter)
-       local tbl = {}
+function consume(iter, append)
+       local tbl = append or {}
        for obj in iter do
                tbl[#tbl+1] = obj
        end
@@ -191,7 +193,7 @@ function meta.copyz(self, fd, size)
        local sent, lsent, code, msg = 0
        local splicable
 
-       if self:is_file() then
+       if not ZBUG and self:is_file() then
                local ftype = self:stat("type")
                if nixio.sendfile and fd:is_socket() and ftype == "reg" then
                        repeat
@@ -257,4 +259,4 @@ for k, v in pairs(meta) do
        file[k] = v
        socket[k] = v
        tls_socket[k] = v
-end
\ No newline at end of file
+end