module Ethon::Curls::Infos

def double_ptr

Returns:
  • (::FFI::Pointer) - The double pointer.

Other tags:
    Example: Return a double pointer. -
def double_ptr
  @double_ptr ||= ::FFI::MemoryPointer.new(:double)
end

def get_info_double(option, handle)

Returns:
  • (Float) - The info.

Parameters:
  • handle (::FFI::Pointer) -- The easy handle.
  • option (Symbol) -- The option name.

Other tags:
    Example: Return info. -
def get_info_double(option, handle)
  if easy_getinfo(handle, option, double_ptr) == :ok
    double_ptr.read_double
  end
end

def get_info_long(option, handle)

Returns:
  • (Integer) - The info.

Parameters:
  • handle (::FFI::Pointer) -- The easy handle.
  • option (Symbol) -- The option name.

Other tags:
    Example: Return info. -
def get_info_long(option, handle)
  if easy_getinfo(handle, option, long_ptr) == :ok
    long_ptr.read_long
  end
end

def get_info_string(option, handle)

Returns:
  • (String) - The info.

Parameters:
  • handle (::FFI::Pointer) -- The easy handle.
  • option (Symbol) -- The option name.

Other tags:
    Example: Return info. -
def get_info_string(option, handle)
  if easy_getinfo(handle, option, string_ptr) == :ok
    string_ptr.read_pointer.read_string
  end
end

def info_types

Returns:
  • (Hash) - The info types.

Other tags:
    Example: Return info types. -
def info_types
  {
    :string =>0x100000,
    :long =>  0x200000,
    :double =>0x300000,
    :slist => 0x400000
  }
end

def infos

Returns:
  • (Hash) - The infos.

Other tags:
    Example: Return infos. -
def infos
  {
    :effective_url =>          info_types[:string] + 1,
    :response_code =>          info_types[:long]   + 2,
    :total_time =>             info_types[:double] + 3,
    :namelookup_time =>        info_types[:double] + 4,
    :connect_time =>           info_types[:double] + 5,
    :pretransfer_time =>       info_types[:double] + 6,
    :size_upload =>            info_types[:double] + 7,
    :size_download =>          info_types[:double] + 8,
    :speed_download =>         info_types[:double] + 9,
    :speed_upload =>           info_types[:double] + 10,
    :header_size =>            info_types[:long]   + 11,
    :request_size =>           info_types[:long]   + 12,
    :ssl_verifyresult =>       info_types[:long]   + 13,
    :filetime =>               info_types[:long]   + 14,
    :content_length_download =>info_types[:double] + 15,
    :content_length_upload =>  info_types[:double] + 16,
    :starttransfer_time =>     info_types[:double] + 17,
    :content_type =>           info_types[:string] + 18,
    :redirect_time =>          info_types[:double] + 19,
    :redirect_count =>         info_types[:long]   + 20,
    :private =>                info_types[:string] + 21,
    :http_connectcode =>       info_types[:long]   + 22,
    :httpauth_avail =>         info_types[:long]   + 23,
    :proxyauth_avail =>        info_types[:long]   + 24,
    :os_errno =>               info_types[:long]   + 25,
    :num_connects =>           info_types[:long]   + 26,
    :ssl_engines =>            info_types[:slist]  + 27,
    :cookielist =>             info_types[:slist]  + 28,
    :lastsocket =>             info_types[:long]   + 29,
    :ftp_entry_path =>         info_types[:string] + 30,
    :redirect_url =>           info_types[:string] + 31,
    :primary_ip =>             info_types[:string] + 32,
    :appconnect_time =>        info_types[:double] + 33,
    :certinfo =>               info_types[:slist]  + 34,
    :condition_unmet =>        info_types[:long]   + 35,
    :rtsp_session_id =>        info_types[:string] + 36,
    :rtsp_client_cseq =>       info_types[:long]   + 37,
    :rtsp_server_cseq =>       info_types[:long]   + 38,
    :rtsp_cseq_recv =>         info_types[:long]   + 39,
    :primary_port =>           info_types[:long]   + 40,
    :local_ip =>               info_types[:string] + 41,
    :local_port =>             info_types[:long]   + 42,
    :last =>42
  }
end

def long_ptr

Returns:
  • (::FFI::Pointer) - The long pointer.

Other tags:
    Example: Return a long pointer. -
def long_ptr
  @long_ptr ||= ::FFI::MemoryPointer.new(:long)
end

def string_ptr

Returns:
  • (::FFI::Pointer) - The string pointer.

Other tags:
    Example: Return a string pointer. -
def string_ptr
  @string_ptr ||= ::FFI::MemoryPointer.new(:pointer)
end