webmcp
annotate framework/env/auth/openid/_curl.lua @ 33:fc98e5c6bfab
add missing debug_table
trace.debug_table prints a table into the log.
trace.debug_table prints a table into the log.
author | Daniel Poelzleithner <poelzi@poelzi.org> |
---|---|
date | Tue Oct 05 05:19:47 2010 +0200 (2010-10-05) |
parents | 47ddf0f86009 |
children | 3d43a5cf17c1 |
rev | line source |
---|---|
jbe/bsw@20 | 1 function auth.openid._curl(url, curl_options) |
jbe/bsw@20 | 2 -- NOTE: Don't accept URLs starting with file:// or other nasty protocols |
jbe/bsw@20 | 3 if not string.find(url, "^[Hh][Tt][Tt][Pp][Ss]?://") then |
jbe/bsw@20 | 4 return nil |
jbe/bsw@20 | 5 end |
jbe/bsw@20 | 6 local options = table.new(curl_options) |
jbe/bsw@20 | 7 options[#options+1] = "-i" |
jbe/bsw@20 | 8 options[#options+1] = url |
jbe/bsw@20 | 9 local stdout, errmsg, status = os.pfilter(nil, "curl", unpack(options)) |
jbe/bsw@20 | 10 if not stdout then |
jbe/bsw@20 | 11 error("Error while executing curl: " .. errmsg) |
jbe/bsw@20 | 12 end |
jbe/bsw@20 | 13 if status ~= 0 then |
jbe/bsw@20 | 14 return nil |
jbe/bsw@20 | 15 end |
jbe/bsw@20 | 16 local status = tonumber(string.match(stdout, "^[^ ]+ *([0-9]*)")) |
jbe/bsw@20 | 17 local headers = string.match(stdout, "(\r?\n.-\r?\n)\r?\n") |
jbe/bsw@20 | 18 local body = string.match(stdout, "\r?\n\r?\n(.*)") |
jbe/bsw@20 | 19 return status, headers, body |
jbe/bsw@20 | 20 end |