summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mode-tcpserver.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/mode-tcpserver.lua b/mode-tcpserver.lua
index f1f3e92..671ba09 100644
--- a/mode-tcpserver.lua
+++ b/mode-tcpserver.lua
@@ -119,7 +119,7 @@ function main_loop(opt)
local return_value = 0
while return_value == 0 do
- local readable, _, err = socket.select({ sig , cmdfd , server , unpack(clients) }, clients_get_writeables())
+ local readable, writeable, err = socket.select({ sig , cmdfd , server , unpack(clients) }, clients_get_writeables())
if(err) then
log.printf(log.ERROR, "select returned with error: %s", err)
return_value = -1
@@ -149,6 +149,14 @@ function main_loop(opt)
end
end
end
+ for _, output in ipairs(writeable) do
+ local ret = output.hdl:send(output.buffer)
+ if(ret == nil) then
+ remove_client(output)
+ else
+ output.buffer = string.sub(output.buffer, ret+1)
+ end
+ end
end
end