Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.36 KB | None | 0 0
  1.     local function setupConnection(addr)
  2.       local url = string.gsub(addr,"https?://","",1)
  3.       local domain = string.gsub(url,"/.*","",1)
  4.       local path = string.gsub(url,".-/","/",1)
  5.       local file
  6.       local header = ""
  7.    
  8.       file = internet.open(domain, 80)
  9.       file:setTimeout(10)
  10.      
  11.       file:write("GET "..path.." HTTP/1.1\r\nHost: "..domain.."\r\nConnection: close\r\n\r\n")
  12.      
  13.       repeat
  14.         local hBlock = file:read(block)
  15.         if not hBlock or #hBlock <= 0 then
  16.           error("no valid HTTP response")
  17.         end
  18.         header = header .. hBlock
  19.       until string.find(header,"\r\n\r\n")
  20.       if string.match(header, "\r\n\r\n(.-)\r\n") then
  21.         local status = string.match(header, "\r\n\r\n(.-)\r\n")
  22.         local location = string.match(header, "[Ll]ocation: (.-)\r\n")
  23.         if string.match(status, "^3%d%d") then
  24.           if location ~= addr then
  25.             file:close()
  26.             print("Status: "..status)
  27.             print("Redirecting to "..location)
  28.             return setupConnection(location)
  29.           end
  30.         end
  31.         if string.match(status, "^2%d%d") then
  32.           print("Status: "..status)
  33.           print("Domain: "..domain)
  34.           print("Path: "..path)
  35.           return file, header
  36.         end
  37.         error(string.match(header, "\r\n\r\n(.*)"))
  38.       end
  39.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement