# frozen_string_literal: truemoduleEthonclassEasy# This module contains the methods to return informations# from the easy handle. See http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html# for more information.moduleInformations# Holds available informations and their type, which is needed to# request the informations from libcurl.AVAILABLE_INFORMATIONS={# Return the available HTTP auth methods.:httpauth_avail=>:long,# Return the total time in seconds for the previous# transfer, including name resolution, TCP connection, etc.:total_time=>:double,# Return the time, in seconds, it took from the start# until the first byte was received by libcurl. This# includes pre-transfer time and also the time the# server needs to calculate the result.:starttransfer_time=>:double,# Return the time, in seconds, it took from the start# until the SSL/SSH connect/handshake to the remote# host was completed. This time is most often very near# to the pre-transfer time, except for cases such as HTTP# pipelining where the pre-transfer time can be delayed# due to waits in line for the pipeline and more.:appconnect_time=>:double,# Return the time, in seconds, it took from the start# until the file transfer was just about to begin. This# includes all pre-transfer commands and negotiations# that are specific to the particular protocol(s) involved.# It does not involve the sending of the protocol-# specific request that triggers a transfer.:pretransfer_time=>:double,# Return the time, in seconds, it took from the start# until the connect to the remote host (or proxy) was completed.:connect_time=>:double,# Return the time, in seconds, it took from the# start until the name resolution was completed.:namelookup_time=>:double,# Return the time, in seconds, it took for all redirection steps# include name lookup, connect, pretransfer and transfer before the# final transaction was started. time_redirect shows the complete# execution time for multiple redirections. (Added in 7.12.3):redirect_time=>:double,# Return the last used effective url.:effective_url=>:string,# Return the string holding the IP address of the most recent# connection done with this curl handle. This string# may be IPv6 if that's enabled.:primary_ip=>:string,# Return the last received HTTP, FTP or SMTP response code.# The value will be zero if no server response code has# been received. Note that a proxy's CONNECT response should# be read with http_connect_code and not this.:response_code=>:long,:request_size=>:long,# Return the total number of redirections that were# actually followed.:redirect_count=>:long,# URL a redirect would take you to, had you enabled redirects (Added in 7.18.2):redirect_url=>:string,# Return the bytes, the total amount of bytes that were uploaded:size_upload=>:double,# Return the bytes, the total amount of bytes that were downloaded.# The amount is only for the latest transfer and will be reset again# for each new transfer. This counts actual payload data, what's# also commonly called body. All meta and header data are excluded# and will not be counted in this number.:size_download=>:double,# Return the bytes/second, the average upload speed that curl# measured for the complete upload:speed_upload=>:double,# Return the bytes/second, the average download speed that curl# measured for the complete download:speed_download=>:double}AVAILABLE_INFORMATIONS.eachdo|name,type|eval%Q|def #{name}; Curl.send(:get_info_#{type}, :#{name}, handle); end|end# Returns true if this curl version supports zlib.## @example Return wether zlib is supported.# easy.supports_zlib?## @return [ Boolean ] True if supported, else false.# @deprecated Please use the static version insteaddefsupports_zlib?Kernel.warn("Ethon: Easy#supports_zlib? is deprecated and will be removed, please use Easy#.")Easy.supports_zlib?endendendend