Hello,
I tried to implement work with libcurl
the above code works in console
but not working when used with module ngx_lua
maybe someone knows the reason
thank you
[root@VKTR052 lua]# cat resty/curl.lua
local ffi = require "ffi"
local libcurl = ffi.load('libcurl')
local setmetatable = setmetatable
local error = error
local pairs = pairs
--local type = type
--local ngx = ngx
module(...)
_VERSION = '0.01'
local mt = { __index = _M }
ffi.cdef[[
	    	void *curl_easy_init();
        	int curl_easy_setopt(void *curl, int option, ...);
        	int curl_easy_perform(void *curl);
        	void curl_easy_cleanup(void *curl);
        	char *curl_easy_strerror(int code);
]]
function new(self)
  return setmetatable({}, mt)
end
function make(self,params_table)
	local respond
	local curl = libcurl.curl_easy_init()
	--[[ 
		#define CURLOPTTYPE_LONG          0
		#define CURLOPTTYPE_OBJECTPOINT   10000
		#define CURLOPTTYPE_FUNCTIONPOINT 20000
		#define CURLOPTTYPE_OFF_T         30000
	local CURLOPT_CAINFO 		= 10065
	local CURLOPT_CONNECTTIMEOUT 	= 78
	local CURLOPT_COOKIE 		= 10022
	local CURLOPT_FOLLOWLOCATION	= 52
	local CURLOPT_HEADER		= 42
	local CURLOPT_HTTPHEADER	= 10023
	local CURLOPT_INTERFACE		= 10062
	local CURLOPT_POST		= 47
	local CURLOPT_POSTFIELDS	= 10015
	local CURLOPT_REFERER		= 10016
	local CURLOPT_SSL_VERIFYPEER	= 64
	local CURLOPT_URL		= 10002
	local CURLOPT_USERAGENT		= 10018
	]]
	
	local keys 	= {"CAINFO","CONNECTTIMEOUT","COOKIE","FOLLOWLOCATION","HEADER","HTTPHEADER","INTERFACE","POST","POSTFIELDS","REFERER","SSL_VERIFYPEER","URL","USERAGENT","USE_SSL"}
	local values	= {10065,78,10022,52,42,10023,10062,47,10015,10016,64,10002,10018,119}
	if curl 
	then
		for k,v in pairs(params_table)
		do
			for i = 1, #keys
			do
				if k == keys[i]
				then
					local check = libcurl.curl_easy_setopt(curl, values[i], v)
					
--					if check == 0 then ngx.print(check,v) end
				end
			end
		end
		
	        local res = libcurl.curl_easy_perform(curl)
        	if res ~= 0
	        then
        		return(ffi.string(libcurl.curl_easy_strerror(res)))
	        end
        
        	libcurl.curl_easy_cleanup(curl)
        end
end
local class_mt = {
    -- to prevent use of casual module global variables
    __newindex = function (table, key, val)
        error('attempt to write to undeclared variable "' .. key .. '"')
    end
}
setmetatable(_M, class_mt)
[root@VKTR052 lua]# cat test_mcurl.lua
local mcurl = require "resty.curl"
local curl = mcurl:new()
local params = {}
params["URL"] = "https://www.google.com"
params["CONNECTTIMEOUT"] = 2
params["USE_SSL"] = 1
params["SSL_VERIFYPEER"] = 0
print (curl:make(params))
[root@VKTR052 lua]# luajit test_mcurl.lua
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="">here</A>.
</BODY></HTML>
[root@VKTR052 lua]# cat ../sites/nextstep/curl.lua
local mcurl = require "resty.curl"
local curl = mcurl:new()
local params = {}
params["URL"] = "https://www.google.com"
params["CONNECTTIMEOUT"] = 2
params["USE_SSL"] = 1
params["SSL_VERIFYPEER"] = 0
ngx.header.content_type = "text/html; charset=utf-8"
ngx.print (curl:make(params))
[root@VKTR052 lua]# 
[root@VKTR052 lua]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.4.3
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) 
configure arguments: --add-module=../ngx_devel_kit/ --add-module=../lua-nginx-module-ffi --with-http_geoip_module