diff --git a/doc/socket.html b/doc/socket.html index fec09c4..a99d71b 100644 --- a/doc/socket.html +++ b/doc/socket.html @@ -243,7 +243,9 @@ non-numeric indices) in the arrays will be silently ignored.

The function returns a list with the sockets ready for reading, a list with the sockets ready for writing and an error message. -The error message is "timeout" if a timeout condition was met and +The error message is "timeout" if a timeout +condition was met, "select failed" if the call +to select failed, and nil otherwise. The returned tables are doubly keyed both by integers and also by the sockets themselves, to simplify the test if a specific socket has @@ -251,7 +253,7 @@ changed status.

-Note: : select can monitor a limited number +Note: select can monitor a limited number of sockets, as defined by the constant socket._SETSIZE. This number may be as high as 1024 or as low as 64 by default, depending on the system. It is usually possible to change this diff --git a/src/ftp.lua b/src/ftp.lua index 917cd89..e0c3cae 100644 --- a/src/ftp.lua +++ b/src/ftp.lua @@ -271,8 +271,17 @@ _M.command = socket.protect(function(cmdt) local f = _M.open(cmdt.host, cmdt.port, cmdt.create) f:greet() f:login(cmdt.user, cmdt.password) - f.try(f.tp:command(cmdt.command, cmdt.argument)) - if cmdt.check then f.try(f.tp:check(cmdt.check)) end + if type(cmdt.command) == "table" then + local argument = cmdt.argument or {} + local check = cmdt.check or {} + for i,cmd in ipairs(cmdt.command) do + f.try(f.tp:command(cmd, argument[i])) + if check[i] then f.try(f.tp:check(check[i])) end + end + else + f.try(f.tp:command(cmdt.command, cmdt.argument)) + if cmdt.check then f.try(f.tp:check(cmdt.check)) end + end f:quit() return f:close() end) @@ -282,4 +291,4 @@ _M.get = socket.protect(function(gett) else return tget(gett) end end) -return _M \ No newline at end of file +return _M diff --git a/src/ltn12.lua b/src/ltn12.lua index dede0fa..575c5a7 100644 --- a/src/ltn12.lua +++ b/src/ltn12.lua @@ -22,6 +22,9 @@ _M.source = source _M.sink = sink _M.pump = pump +local unpack = unpack or table.unpack +local select = base.select + -- 2048 seems to be better in windows... _M.BLOCKSIZE = 2048 _M._VERSION = "LTN12 1.0.3"