658 lines
17 KiB
Plaintext
658 lines
17 KiB
Plaintext
---
|
|
-- @module lcurl
|
|
do
|
|
|
|
--- Create HTTP multipart/formdata object.
|
|
--
|
|
-- @treturn[1] httpform new curl HTTP Post object context
|
|
function form() end
|
|
|
|
--- Create Easy object
|
|
--
|
|
-- @tparam[opt] table options
|
|
-- @treturn[1] easy new curl easy object
|
|
--
|
|
-- @usage
|
|
-- c = curl.easy{
|
|
-- url = 'http://example.com',
|
|
-- [curl.OPT_VERBOSE] = true,
|
|
-- }
|
|
--
|
|
function easy() end
|
|
|
|
--- Create Multi object
|
|
--
|
|
-- @tparam[opt] table options
|
|
-- @treturn[1] multi new curl multi object
|
|
--
|
|
-- @usage
|
|
-- m = curl.multi{
|
|
-- socketfunction = handle_socket;
|
|
-- timerfunction = start_timeout;
|
|
-- }
|
|
--
|
|
function multi() end
|
|
|
|
--- Create Share object
|
|
--
|
|
-- @tparam[opt] table options
|
|
-- @treturn[1] share new curl share object
|
|
function share() end
|
|
|
|
--- Returns libcurl version as human readable string
|
|
--
|
|
function version() end
|
|
|
|
--- Returns libcurl version as table
|
|
--
|
|
-- @tparam[opt] string param specific version info
|
|
-- @treturn[1] table full version into if `param` was not specify
|
|
-- @return[2] specific info parameter
|
|
--
|
|
-- @usage
|
|
-- proto = curl.version_info('protocols')
|
|
-- if proto.HTTP then ... -- libcurl support http protocol
|
|
function version_info() end
|
|
|
|
--- File description table.
|
|
--
|
|
-- Representation for `struct curl_fileinfo`
|
|
--
|
|
-- @table curl_fileinfo
|
|
--
|
|
-- @tfield string filename
|
|
-- @tfield integer filetype
|
|
-- @tfield integer time
|
|
-- @tfield integer perm
|
|
-- @tfield integer uid
|
|
-- @tfield integer gid
|
|
-- @tfield integer size
|
|
-- @tfield integer hardlinks
|
|
-- @tfield integer flags
|
|
-- @tfield table strings can have this string fields: `time`, `perm` , `user` , `group`, `target`
|
|
|
|
end
|
|
|
|
--- HTTP multipart/formdata object
|
|
-- @type httpform
|
|
--
|
|
do
|
|
|
|
--- Add new part to form.
|
|
--
|
|
-- @tparam string name provide the name of this part
|
|
-- @tparam string content actual data to send
|
|
-- @tparam[opt] string type provides the content-type for this part
|
|
-- @tparam[opt] table headers specifies extra headers for the form POST section
|
|
-- @return[1] self
|
|
function add_content() end
|
|
|
|
--- Add new part to form.
|
|
--
|
|
-- @tparam string name provide the name of this part
|
|
-- @tparam string filename provides the filename field in the content header
|
|
-- @tparam string content actual data to send
|
|
-- @tparam[opt] string type provides the content-type for this part
|
|
-- @tparam[opt] table headers specifies extra headers for the form POST section
|
|
-- @return[1] self
|
|
function add_buffer() end
|
|
|
|
--- Add new part to form.
|
|
--
|
|
-- @tparam string name provide the name of this part
|
|
-- @tparam string path path to file that contain actual data to send
|
|
-- @tparam[opt] string type provides the content-type for this part
|
|
-- @tparam[opt] string filename provides the filename field in the content header.
|
|
-- By default it is basename of path.
|
|
-- @tparam[opt] table headers specifies extra headers for the form POST section
|
|
-- @return[1] self
|
|
function add_file() end
|
|
|
|
--- Add new part to form.
|
|
--
|
|
-- @tparam string name provide the name of this part
|
|
-- @tparam[opt] string filename provides the filename field in the content header.
|
|
-- @tparam[opt] string type provides the content-type for this part
|
|
-- @tparam[opt] table headers specifies extra headers for the form POST section
|
|
-- @tparam number size stream size in bytes
|
|
-- @tparam function/object reader
|
|
-- @param[opt] context reader context
|
|
-- @return[1] self
|
|
--
|
|
-- @see easy:setopt_readfunction
|
|
function add_stream() end
|
|
|
|
--- Serialize multipart/formdata HTTP POST chain.
|
|
--
|
|
-- @return[1] string serialized data
|
|
--
|
|
-- @usage print(post:get())
|
|
--
|
|
function get() end
|
|
|
|
--- Serialize multipart/formdata HTTP POST chain.
|
|
--
|
|
-- Writer function can return true or number of written bytes.
|
|
-- Also if function does not return anything is considered as success.
|
|
--
|
|
-- @tparam function writer
|
|
-- @param[opt] context writer context
|
|
-- @return[1] self
|
|
--
|
|
-- @usage
|
|
-- t = {}
|
|
-- post:get(table.insert, t)
|
|
-- print(table.concat(t))
|
|
--
|
|
function get() end
|
|
|
|
--- Serialize multipart/formdata HTTP POST chain.
|
|
--
|
|
-- This call same as httpform:get(writer.write, writer)
|
|
--
|
|
-- @tparam object writer
|
|
-- @return[1] self
|
|
--
|
|
-- @usage
|
|
-- f = io.open(...)
|
|
-- post:get(f)
|
|
--
|
|
function get() end
|
|
|
|
--- Free multipart/formdata.
|
|
--
|
|
function free() end
|
|
|
|
end
|
|
|
|
--- Curl error object
|
|
-- @type error
|
|
--
|
|
do
|
|
|
|
--- Get the error category.
|
|
--
|
|
-- @treturn string string of error category (curl.ERROR_XXX constants)
|
|
--
|
|
-- @usage
|
|
-- if err:category() == curl.ERROR_EASY then
|
|
-- -- proceed easy error
|
|
-- end
|
|
function category ()end
|
|
|
|
--- Get the number value of error.
|
|
--
|
|
-- @treturn number number of error (curl.E_XXX constants)
|
|
function no ()end
|
|
|
|
--- Get the error name.
|
|
--
|
|
-- @treturn string error name (e.g. "UNSUPPORTED_PROTOCOL", "BAD_OPTION")
|
|
function name ()end
|
|
|
|
--- Get the error description.
|
|
--
|
|
-- @treturn string error description (e.g. "Login denied")
|
|
function msg ()end
|
|
|
|
--- Get the full error description.
|
|
--
|
|
-- @treturn string string that contain name, message and number of error
|
|
function __tostring ()end
|
|
|
|
end
|
|
|
|
--- Easy curl object
|
|
-- @type easy
|
|
--
|
|
do
|
|
|
|
--- Perform a file transfer
|
|
--
|
|
-- @return[1] self
|
|
function perfom() end
|
|
|
|
--- URL encodes the given string
|
|
--
|
|
-- @tparam string url
|
|
-- @return[1] encoded url
|
|
function escape() end
|
|
|
|
--- URL decodes the given string
|
|
--
|
|
-- @tparam string url
|
|
-- @return[1] decoded url
|
|
function unescape() end
|
|
|
|
--- Re-initializes all options previously set.
|
|
--
|
|
-- @treturn easy self
|
|
function reset() end
|
|
|
|
--- Pause and unpause a connection.
|
|
--
|
|
-- @tparam number mask set of bits that sets the new state of the connection (one of PAUSE_XXX constant)
|
|
-- @treturn easy self
|
|
function pause() end
|
|
|
|
--- End easy session
|
|
--
|
|
function close() end
|
|
|
|
--- Set options.
|
|
--
|
|
-- @tparam number|table opt one of `curl.OPT_XXX` constant or options table
|
|
-- @param ... value
|
|
-- @treturn easy self
|
|
--
|
|
-- @usage
|
|
-- c:setopt(curl.OPT_URL, "http://example.com")
|
|
-- c:setopt(curl.OPT_READFUNCTION,
|
|
-- function(t, n) return table.remove(t) end,
|
|
-- {"1111", "2222"}
|
|
-- )
|
|
--c:setopt{
|
|
-- url = 'http://example.com',
|
|
-- [curl.OPT_VERBOSE] = true,
|
|
-- }
|
|
function setopt() end
|
|
|
|
--- Reset option to default value.
|
|
--
|
|
-- @tparam number opt one of `curl.OPT_XXX` constant or options table
|
|
-- @treturn easy self
|
|
--
|
|
-- @usage
|
|
-- c:unsetopt(curl.OPT_URL)
|
|
-- c:unsetopt(curl.OPT_READFUNCTION)
|
|
function unsetopt() end
|
|
|
|
--- Get information.
|
|
--
|
|
-- @tparam number info one of `curl.INFO_XXX` constant
|
|
-- @return value
|
|
--
|
|
-- @usage
|
|
-- print(c:getinfo(curl.INFO_EFFECTIVE_URL))
|
|
-- print(c:getinfo(curl.INFO_TOTAL_TIME))
|
|
-- print(c:getinfo(curl.INFO_RESPONSE_CODE))
|
|
function getinfo() end
|
|
|
|
--- Set writer function.
|
|
--
|
|
-- A callback accepting one or two parameters.
|
|
-- The first is the writer context if any, and the second is a string with the data to be written.
|
|
-- Function must return `true` (any non number true value) or full data length or nothing to continue operation.
|
|
-- Otherwise the transfer will be aborted with an error.
|
|
--
|
|
-- @tparam function writer
|
|
-- @param[opt] context writer context
|
|
-- @return[1] self
|
|
--
|
|
function setopt_writefunction() end
|
|
|
|
--- Set writer function.
|
|
--
|
|
-- This call same as easy:setopt_writefunction(writer.write, writer)
|
|
--
|
|
-- @tparam object writer
|
|
-- @return[1] self
|
|
--
|
|
function setopt_writefunction() end
|
|
|
|
--- Set header function.
|
|
--
|
|
-- A callback accepting one or two parameters.
|
|
-- The first is the writer context if any, and the second is a string with the data to be written.
|
|
-- Function must return `true` (any non number true value) or full data length or nothing to continue operation.
|
|
-- Otherwise the transfer will be aborted with an error.
|
|
--
|
|
-- @tparam function writer
|
|
-- @param[opt] context writer context
|
|
-- @return[1] self
|
|
--
|
|
function setopt_headerfunction() end
|
|
|
|
--- Set header function.
|
|
--
|
|
-- This call same as easy:setopt_headerfunction(writer.header, writer)
|
|
--
|
|
-- @tparam object writer
|
|
-- @return[1] self
|
|
--
|
|
function setopt_headerfunction() end
|
|
|
|
--- Set reader function.
|
|
--
|
|
-- A callback accepting one or two parameters.
|
|
-- The first is the reader context if any, and the second is the maximum amount of data to be read.
|
|
-- You can ignore second argument and pass as mach data as you need. lcurl can split data.
|
|
-- Function must return data to continue operation. To stop operation it must return empty string or nil or nothing.
|
|
-- Otherwise the transfer will be aborted with an error.
|
|
--
|
|
--
|
|
-- @tparam function reader
|
|
-- @param[opt] context reader context
|
|
-- @return[1] self
|
|
--
|
|
-- @usage
|
|
-- local counter = 10
|
|
-- c:setopt_readfunction(function()
|
|
-- if counter > 0 then
|
|
-- counter = counter - 1
|
|
-- return 'a'
|
|
-- end
|
|
-- end)
|
|
function setopt_readfunction() end
|
|
|
|
--- Set reader function.
|
|
--
|
|
-- This call same as easy:setopt_readfunction(reader.read, reader)
|
|
--
|
|
-- @tparam object reader
|
|
-- @return[1] self
|
|
--
|
|
function setopt_readfunction() end
|
|
|
|
--- Set progress function.
|
|
--
|
|
-- A callback accepting four or five parameters.
|
|
-- The first is the reader context if any, the second is the total number
|
|
-- of bytes expected to be downloaded in this transfer,
|
|
-- the third is the number of bytes downloaded so far,
|
|
-- the fourth is the total number of bytes expected to be uploaded
|
|
-- in this transfer, and the fifth is the number of bytes uploaded so far.
|
|
-- Function must return `true` or `1` or nothing to continue operation.
|
|
-- Otherwise the transfer will be aborted with an error `ABORTED_BY_CALLBACK`.<br/>
|
|
--
|
|
-- !!! NOTE !!! This is differents form libcurl API. In libcurl returning a non-zero
|
|
-- value from this callback will cause libcurl to abort the transfer and return.
|
|
-- This done to be consisted with writefunction that should return `true` to continue.
|
|
--
|
|
-- @tparam function progress
|
|
-- @param[opt] context progress context
|
|
-- @return[1] self
|
|
--
|
|
function setopt_progressfunction() end
|
|
|
|
--- Set progress function.
|
|
--
|
|
-- This call same as easy:setopt_progressfunction(progress.progress, progress)
|
|
--
|
|
-- @tparam object progress
|
|
-- @return[1] self
|
|
--
|
|
function setopt_progressfunction() end
|
|
|
|
--- Set seek callback function.
|
|
--
|
|
-- A callback accepting two or three parameters.
|
|
-- The first is the seek context if any, the second is the `origin` value
|
|
-- same as in file.seek function from io library. Can be (`cur`, `set` and `end`).
|
|
-- The third parameter is offset or position in input stream.
|
|
-- If stream can not be seeking and need stop current transfer operation
|
|
-- function have to raise Lua error or returns `nil` and error message.
|
|
-- To indicate success function have to return any truthy value
|
|
-- In other case Function must return `true` or `1` or nothing to continue operation.
|
|
-- False value indicate that while the seek failed, libcurl is free to work
|
|
-- around the problem if possible.
|
|
--
|
|
-- !!! NOTE !!! This is differents form libcurl API by swapping parameters in callback.
|
|
-- It done to be compatiable with Lua io library.
|
|
--
|
|
-- @tparam function seek
|
|
-- @param[opt] context seek context
|
|
-- @return[1] self
|
|
--
|
|
function setopt_seekfunction() end
|
|
|
|
--- Set seek callback function.
|
|
--
|
|
-- This call same as easy:setopt_seekfunction(stream.seek, seek)
|
|
--
|
|
-- @tparam object stream
|
|
-- @return[1] self
|
|
--
|
|
function setopt_seekfunction() end
|
|
|
|
--- Set debug callback function.
|
|
--
|
|
-- A callback accepting two or three parameters.
|
|
-- The first is the debug context if any, the second is the `data_type` value
|
|
-- which represent what kinde of data is passed. This value can be one of
|
|
-- constant `INFO_TEXT`, `INFO_HEADER_IN`, `INFO_HEADER_OUT`, `INFO_DATA_IN`,
|
|
-- `INFO_DATA_OUT`, `INFO_SSL_DATA_IN`, `INFO_SSL_DATA_OUT`.
|
|
-- The third parameter is data itself.
|
|
-- Any errors and returning values from this callback are ignored.
|
|
--
|
|
-- @tparam function debug
|
|
-- @param[opt] context debug context
|
|
-- @return[1] self
|
|
--
|
|
function setopt_debugfunction() end
|
|
|
|
--- Set debug callback function.
|
|
--
|
|
-- This call same as easy:setopt_debugfunction(debug.debug, debug)
|
|
--
|
|
-- @tparam object debug
|
|
-- @return[1] self
|
|
--
|
|
function setopt_debugfunction() end
|
|
|
|
--- Set match callback function.
|
|
--
|
|
-- A callback accepting two or three parameters.
|
|
-- The first is the match context if any, the second is the pattern string,
|
|
-- the third is the string to match to pattern.
|
|
-- Function must return truthy value to indicate that string match to pattern.
|
|
-- If function raise error or return nil and error message then it indicate
|
|
-- that curl should interrupt current transfer operation.
|
|
-- False value indicate that strind does not match to pattern
|
|
--
|
|
-- @tparam function match
|
|
-- @param[opt] context match context
|
|
-- @return[1] self
|
|
--
|
|
function setopt_fnmatch_function() end
|
|
|
|
--- Set match callback function.
|
|
--
|
|
-- This call same as easy:setopt_fnmatch_function(match.match, match)
|
|
--
|
|
-- @tparam object match
|
|
-- @return[1] self
|
|
--
|
|
function setopt_fnmatch_function() end
|
|
|
|
|
|
--- Set chunk begin function.
|
|
--
|
|
-- A callback accepting two or three parameters.
|
|
-- The first is the chunk context if any, the second is the @{curl_fileinfo} table.
|
|
-- The third parameter contains number of chunks remaining per the transfer.
|
|
-- Function must return truthy value or nothing to indicate that transfer can begin.
|
|
-- If function raise error or return nil and error message then it indicate
|
|
-- that curl should interrupt current transfer operation.
|
|
-- False value indicate that curl should skip this chunk.
|
|
--
|
|
-- @tparam function chunk_bgn
|
|
-- @param[opt] context chunk context
|
|
-- @return[1] self
|
|
--
|
|
function setopt_chunk_bgn_function() end
|
|
|
|
--- Set chunk begin function.
|
|
--
|
|
-- This call same as easy:setopt_chunk_bgn_function(context.chunk_bgn, context)
|
|
--
|
|
-- @tparam object context
|
|
-- @return[1] self
|
|
--
|
|
function setopt_chunk_bgn_function() end
|
|
|
|
--- Set chunk end function.
|
|
--
|
|
-- A callback accepting zero or one parameter.
|
|
-- The only parameter is the chunk context if any.
|
|
-- Function must return truthy value or nothing to indicate that transfer can continue
|
|
-- otherwise it indicate that curl should interrupt current transfer operation.
|
|
--
|
|
-- @tparam function chunk_end
|
|
-- @param[opt] context chunk context
|
|
-- @return[1] self
|
|
--
|
|
function setopt_chunk_end_function() end
|
|
|
|
--- Set chunk begin function.
|
|
--
|
|
-- This call same as easy:setopt_chunk_end_function(context.chunk_end, context)
|
|
--
|
|
-- @tparam object context
|
|
-- @return[1] self
|
|
--
|
|
function setopt_chunk_end_function() end
|
|
|
|
--- Set HTTP multipart/formdata.
|
|
--
|
|
-- Caller does not have to save data.
|
|
--
|
|
-- @tparam httpform data
|
|
-- @return[1] self
|
|
function setopt_httppost() end
|
|
|
|
--- Set HTTP multipart/formdata.
|
|
--
|
|
-- @tparam string data
|
|
-- @tparam[opt=#data] number length
|
|
-- @return[1] self
|
|
function setopt_postfields() end
|
|
|
|
--- Set curl share object.
|
|
--
|
|
-- Caller does not have to save data.
|
|
--
|
|
-- @tparam share data
|
|
-- @return[1] self
|
|
function setopt_share() end
|
|
|
|
end
|
|
|
|
--- Muli curl object
|
|
-- @type multi
|
|
--
|
|
do
|
|
|
|
--- Add Easy object.
|
|
--
|
|
-- Caller must ensure that easy object is alive until end of operation.
|
|
--
|
|
-- @treturn multi self
|
|
-- @tparam easy handle
|
|
function add_handle() end
|
|
|
|
--- Remove Easy object.
|
|
--
|
|
-- @tparam easy handle
|
|
-- @treturn multi self
|
|
function remove_handle() end
|
|
|
|
--- reads/writes available data from each easy handle.
|
|
--
|
|
-- @treturn number handles number of active easy handles
|
|
function perfom() end
|
|
|
|
--- Read multi stack informationals.
|
|
--
|
|
-- Note. If curl_multi_remove_handle fail then there no error occure but handle jast stay in multi handle.
|
|
--
|
|
-- @tparam[opt] remove remove easy handle if it done.
|
|
-- @treturn[1] number 0 there no informationals
|
|
-- @treturn[2] easy handle
|
|
-- @treturn[2] boolean true
|
|
-- @treturn[3] easy handle
|
|
-- @treturn[3] nil
|
|
-- @treturn[3] error error code
|
|
function info_read() end
|
|
|
|
--- Set options.
|
|
--
|
|
-- @tparam number|table opt one of `curl.OPT_MULTI_XXX` constant
|
|
-- @param ... value
|
|
-- @treturn multi self
|
|
--
|
|
-- @usage
|
|
-- c:setopt(curl.OPT_MULTI_MAXCONNECTS, 10)
|
|
-- c:setopt{maxconnects = 10}
|
|
function setopt() end
|
|
|
|
--- Perform socket action.
|
|
--
|
|
-- @tparam[opt=curl.SOCKET_TIMEOUT] number socket
|
|
-- @tparam[opt=0] number mask
|
|
-- @treturn multi self
|
|
--
|
|
-- @usage
|
|
-- c:socket_action()
|
|
-- c:socket_action(sock_fd, curl.CSELECT_IN)
|
|
-- c:socket_action(sock_fd, curl.CSELECT_OUT)
|
|
function socket_action() end
|
|
|
|
--- Set timer callback.
|
|
--
|
|
-- @tparam function timer timer callback
|
|
-- @param[opt] context timer context
|
|
-- @treturn multi self
|
|
--
|
|
function setopt_timerfunction() end
|
|
|
|
--- Set timer callback.
|
|
--
|
|
-- This call same as easy:setopt_writefunction(timer.timer, timer)
|
|
--
|
|
-- @tparam userdata|table timer timer object
|
|
-- @treturn multi self
|
|
--
|
|
function setopt_timerfunction() end
|
|
|
|
--- Polls on all easy objects in a multi object.
|
|
--
|
|
-- @tparam[opt] number timeout milliseconds timeout. By default it is `multi:timeout()`.
|
|
-- @treturn number number of affected objects
|
|
--
|
|
function wait() end
|
|
|
|
--- How long to wait for action before proceeding.
|
|
--
|
|
-- @treturn number timeout milliseconds timeout
|
|
--
|
|
function timeout() end
|
|
|
|
--- End multi session.
|
|
--
|
|
function close() end
|
|
|
|
end
|
|
|
|
--- Share curl object
|
|
-- @type share
|
|
--
|
|
do
|
|
|
|
--- Set options.
|
|
--
|
|
-- @tparam number|table opt one of `curl.OPT_SHARE_XXX` constant
|
|
-- @param ... value
|
|
-- @treturn share self
|
|
--
|
|
-- @usage
|
|
-- c:setopt(curl.OPT_SHARE_SHARE, curl.LOCK_DATA_COOKIE)
|
|
-- c:setopt{share = curl.LOCK_DATA_COOKIE}
|
|
function setopt() end
|
|
|
|
--- End share session.
|
|
--
|
|
function close() end
|
|
|
|
end
|