summaryrefslogtreecommitdiffhomepage
path: root/modules/base/luasrc/ltn12.lua
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2014-11-17 14:25:51 +0100
committerMatthias Schiffer <mschiffer@universe-factory.net>2014-11-17 14:35:24 +0100
commit7bd68db7d702c5951d192359f2dd6b256a98c62d (patch)
tree4066d4bca96253af79e98254ed44cf018ed29aeb /modules/base/luasrc/ltn12.lua
parenta226f199accb4a9adce10d3373fb832109e60876 (diff)
modules/base: ltn12: source.file() should terminate when an empty chunk is read
The read method of nixio's file and socket objects both return an empty string when they reach EOF, not nil, causing the consumer to loop endlessly as source.file() never terminates. As there is no other situation in which an empty chunk is read, just change it to nil to terminate the consumer's loop. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
Diffstat (limited to 'modules/base/luasrc/ltn12.lua')
-rw-r--r--modules/base/luasrc/ltn12.lua1
1 files changed, 1 insertions, 0 deletions
diff --git a/modules/base/luasrc/ltn12.lua b/modules/base/luasrc/ltn12.lua
index 9371290c61..b59fb8c48a 100644
--- a/modules/base/luasrc/ltn12.lua
+++ b/modules/base/luasrc/ltn12.lua
@@ -144,6 +144,7 @@ function source.file(handle, io_err)
if handle then
return function()
local chunk = handle:read(BLOCKSIZE)
+ if chunk and chunk:len() == 0 then chunk = nil end
if not chunk then handle:close() end
return chunk
end