Commit 525e092d authored by Pierre Ynard's avatar Pierre Ynard

lua: do delete stdin/stdout client

This fixes an endless loop when piping commands to stdin with echo
for example
parent ccaf5b8d
......@@ -125,24 +125,24 @@ function host()
return vlc.win.console_read()
end
local function del_client( client, nostdioerror )
--client:send("Cleaning up.\r\n")
local function del_client( client )
if not clients[client] then
vlc.msg.err("couldn't find client to remove.")
return
end
if client.type == client_type.stdio then
if not nostdioerror then
client:send( "Cannot delete stdin/stdout client.\n" )
end
elseif clients[client] then
if client.type == client_type.net
or client.type == client_type.telnet then
if client.wfd ~= client.rfd then
vlc.net.close( client.rfd )
end
vlc.net.close( client.wfd )
h:broadcast("Shutting down.\r\n")
vlc.msg.info("Requested shutdown.")
vlc.misc.quit()
elseif client.type == client_type.net
or client.type == client_type.telnet then
if client.wfd ~= client.rfd then
vlc.net.close( client.rfd )
end
clients[client] = nil
else
vlc.msg.err("couldn't find client to remove.")
vlc.net.close( client.wfd )
end
clients[client] = nil
end
local function switch_status( client, s )
......@@ -318,7 +318,9 @@ function host()
local function destructor( h )
for _,client in pairs(clients) do
client:del(true)
if client.type ~= client_type.stdio then
client:del()
end
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment