diff --git a/lib/download.lua b/lib/download.lua index 659cc3a..c11730c 100644 --- a/lib/download.lua +++ b/lib/download.lua @@ -67,7 +67,6 @@ end function dl.protos.http(host, optPort, path, dest, url) -- string string string number -- boolean -- Downloads *url* to *dest* via the internet card, if available. if not component.list("internet")() then - print("Internet card unavailable, falling back to proxy.") local proto,host,sPort,path = parseURL(url) local proxy = os.getenv(proto:upper().."_PROXY") if not proxy and fs.exists("/boot/cfg/"..proto.."_proxy") then @@ -76,7 +75,7 @@ function dl.protos.http(host, optPort, path, dest, url) -- string string string f:close() end if not proxy then error("No internet card or HTTP(S) proxy available") end - print("Proxy found: "..proxy) + print("Internet card unavailable, falling back to proxy "..proxy) if optPort then host=string.format("%s:%i",host,optPort) end return dl.wget(string.format("%s/%s%s",proxy,host,path),dest) end @@ -88,7 +87,11 @@ function dl.protos.http(host, optPort, path, dest, url) -- string string string repeat coroutine.yield() until R.finishConnect() - local code, message, headers = R.response() + local code, messsage, headers + repeat + coroutine.yield() + code, message, headers = R.response() + until code or message if code > 299 or code < 200 then return false, code, message end @@ -97,7 +100,7 @@ function dl.protos.http(host, optPort, path, dest, url) -- string string string io.write(string.format("Saving %s to %s...\n", url, dest)) repeat coroutine.yield() - ns = R.read(2048) + ns = R.read() f:write(ns or "") until not ns f:close()