summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--libs/nixio/lua/nixio/util.lua11
-rw-r--r--libs/nixio/src/file.c3
2 files changed, 10 insertions, 4 deletions
diff --git a/libs/nixio/lua/nixio/util.lua b/libs/nixio/lua/nixio/util.lua
index 8ad4040d4a..34800b4541 100644
--- a/libs/nixio/lua/nixio/util.lua
+++ b/libs/nixio/lua/nixio/util.lua
@@ -21,11 +21,13 @@ module "nixio.util"
local BUFFERSIZE = 8096
local socket = nixio.socket_meta
-function socket.readall(self, len)
+function socket.recvall(self, len)
local block, code, msg = self:recv(len)
if not block then
return "", code, msg, len
+ elseif #block == 0 then
+ return "", nil, nil, len
end
local data, total = {block}, #block
@@ -35,6 +37,8 @@ function socket.readall(self, len)
if not block then
return data, code, msg, len - #data
+ elseif #block == 0 then
+ return data, nil, nil, len - #data
end
data[#data+1], total = block, total + #block
@@ -66,11 +70,12 @@ end
function socket.linesource(self, limit)
limit = limit or BUFFERSIZE
local buffer = ""
+ local bpos = 0
return function(flush)
- local bpos, line, endp, _ = 0
+ local line, endp, _
if flush then
- line = buffer
+ line = buffer:sub(bpos + 1)
buffer = ""
return line
end
diff --git a/libs/nixio/src/file.c b/libs/nixio/src/file.c
index 13a40c4999..7b65abdc12 100644
--- a/libs/nixio/src/file.c
+++ b/libs/nixio/src/file.c
@@ -76,7 +76,8 @@ static int nixio_file_write(lua_State *L) {
if (written < 0) {
return nixio__perror(L);
} else {
- return written;
+ lua_pushnumber(L, written);
+ return 1;
}
}