annotate framework/env/auth/openid/_curl.lua @ 386:e057f8d3f716
Callback of ui.list{...} receives index as second argument
 | author | jbe | 
 | date | Tue Dec 01 18:50:31 2015 +0100 (2015-12-01) | 
 | parents | a54cc7dcabf1 | 
 | children |  | 
 
 | 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@65 | 9   local stdout, errmsg, status = extos.pfilter(nil, "curl", table.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 |