Skip to content
Snippets Groups Projects
urldata.h 46 KiB
Newer Older
  • Learn to ignore specific revisions
  •                         on this syntax. */
      long followlocation; /* as in HTTP Location: */
    
      long maxredirs;    /* maximum no. of http(s) redirects to follow, set to -1
                            for infinity */
    
      char *set_referer; /* custom string */
    
      bool free_referer; /* set TRUE if 'referer' points to a string we
                            allocated */
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      char *useragent;   /* User-Agent string */
    
      char *encoding;    /* Accept-Encoding string */
    
      char *postfields;  /* if POST, set the fields' values here */
    
      curl_off_t postfieldsize; /* if POST, this might have a size to use instead
                                   of strlen(), and then the data *may* be binary
                                   (contain zero bytes) */
    
      char *ftpport;     /* port to send with the FTP PORT command */
    
      char *device;      /* local network interface/address to use */
      unsigned short localport; /* local port number to bind to */
      int localportrange; /* number of additional port numbers to test in case the
                             'localport' one can't be bind()ed */
    
      curl_write_callback fwrite;        /* function that stores the output */
      curl_write_callback fwrite_header; /* function that stores headers */
      curl_read_callback fread;          /* function that reads the input */
      curl_progress_callback fprogress;  /* function for progress information */
    
      curl_debug_callback fdebug;      /* function that write informational data */
    
      curl_ioctl_callback ioctl;       /* function for I/O control */
    
    
      /* the 3 curl_conv_callback functions below are used on non-ASCII hosts */
      /* function to convert from the network encoding: */
      curl_conv_callback convfromnetwork;
      /* function to convert to the network encoding: */
      curl_conv_callback convtonetwork;
      /* function to convert from UTF-8 encoding: */
      curl_conv_callback convfromutf8;
    
    
      void *progress_client; /* pointer to pass to the progress callback */
    
      void *ioctl_client;   /* pointer to pass to the ioctl callback */
    
      long timeout;         /* in seconds, 0 means no timeout */
      long connecttimeout;  /* in seconds, 0 means no timeout */
    
      long ftp_response_timeout; /* in seconds, 0 means no timeout */
    
      curl_off_t infilesize;      /* size of file to upload, -1 means unknown */
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      long low_speed_limit; /* bytes/second */
      long low_speed_time;  /* number of seconds */
    
      curl_off_t set_resume_from;  /* continue [ftp] transfer from here */
    
      char *cookie;         /* HTTP cookie string to send */
    
      struct curl_slist *headers; /* linked list of extra headers */
    
      struct curl_httppost *httppost;  /* linked list of POST data */
    
      char *cert;           /* certificate */
      char *cert_type;      /* format for certificate (default: PEM) */
      char *key;            /* private key */
      char *key_type;       /* format for private key (default: PEM) */
      char *key_passwd;     /* plain text private key password */
    
      char *cookiejar;      /* dump all cookies to this file */
    
      bool cookiesession;   /* new cookie session? */
    
      bool crlf;            /* convert crlf on ftp upload(?) */
    
      char *ftp_account;    /* ftp account data */
    
      struct curl_slist *quote;     /* after connection is established */
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
      struct curl_slist *postquote; /* after the transfer */
    
      struct curl_slist *prequote; /* before the transfer, after type */
    
      struct curl_slist *source_quote;  /* 3rd party quote */
    
      struct curl_slist *source_prequote;  /* in 3rd party transfer mode - before
                                              the transfer on source host */
      struct curl_slist *source_postquote; /* in 3rd party transfer mode - after
                                              the transfer on source host */
    
      struct curl_slist *telnet_options; /* linked list of telnet options */
    
      curl_TimeCond timecondition; /* kind of time/date comparison */
    
      time_t timevalue;       /* what time to compare with */
    
      curl_closepolicy closepolicy; /* connection cache close concept */
      Curl_HttpReq httpreq;   /* what kind of HTTP request (if any) is this */
      char *customrequest;    /* HTTP/FTP request to use */
    
      long httpversion; /* when non-zero, a specific HTTP version requested to
                           be used in the library's request(s) */
    
      char *auth_host; /* if set, this is the allocated string to the host name
                        * to which to send the authorization data to, and no other
                        * host (which location-following otherwise could lead to)
                        */
    
      char *krb4_level; /* what security level */
    
      struct ssl_config_data ssl;  /* user defined SSL stuff */
    
      curl_proxytype proxytype; /* what kind of proxy that is in use */
    
    
      int dns_cache_timeout; /* DNS cache timeout */
    
      long buffer_size;      /* size of receive buffer to use */
    
      char *private_data; /* Private data */
    
      struct Curl_one_easy *one_easy; /* When adding an easy handle to a multi
                                         handle, an internal 'Curl_one_easy'
                                         struct is created and this is a pointer
                                         to the particular struct associated with
                                         this SessionHandle */
    
    
      struct curl_slist *http200aliases; /* linked list of aliases for http200 */
    
      curl_off_t max_filesize; /* Maximum file size to download */
    
      char *source_url;     /* for 3rd party transfer */
    
      char *source_userpwd;  /* for 3rd party transfer */
    
    
      curl_ftpfile ftp_filemethod; /* how to get to a file when FTP is used  */
    
    
    /* Here follows boolean settings that define how to behave during
       this session. They are STATIC, set by libcurl users or at least initially
       and they don't change during operations. */
    
    
      bool printhost;       /* printing host name in debug info */
    
      bool get_filetime;
      bool tunnel_thru_httpproxy;
      bool ftp_append;
      bool ftp_ascii;
      bool ftp_list_only;
    
      bool ftp_use_port;
      bool hide_progress;
      bool http_fail_on_error;
      bool http_follow_location;
    
      bool http_disable_hostname_check_before_authentication;
    
      bool include_header;   /* include received protocol headers in data output */
    
      bool http_set_referer;
      bool http_auto_referer; /* set "correct" referer when following location: */
    
      bool opt_no_body;      /* as set with CURLOPT_NO_BODY */
    
      enum CURL_NETRC_OPTION
           use_netrc;        /* defined in include/curl.h */
    
      char *netrc_file;      /* if not NULL, use this instead of trying to find
                                $HOME/.netrc */
    
      bool verbose;
      bool krb4;             /* kerberos4 connection requested */
      bool reuse_forbid;     /* forbidden to be reused, close after use */
      bool reuse_fresh;      /* do not re-use an existing connection  */
      bool expect100header;  /* TRUE if we added Expect: 100-continue */
    
      bool ftp_use_epsv;     /* if EPSV is to be attempted or not */
    
      bool ftp_use_eprt;     /* if EPRT is to be attempted or not */
    
      curl_ftpssl ftp_ssl;   /* if AUTH TLS is to be attempted etc */
    
      curl_ftpauth ftpsslauth; /* what AUTH XXX to be attempted */
    
      bool no_signal;        /* do not use any signal/alarm handler */
    
      bool global_dns_cache; /* subject for future removal */
      bool tcp_nodelay;      /* whether to enable TCP_NODELAY or not */
    
      bool ignorecl;         /* ignore content length */
    
      bool ftp_skip_ip;      /* skip the IP address the FTP server passes on to
                                us */
    
      bool connect_only;     /* make connection, let application use the socket */
    
    /*
     * In August 2001, this struct was redesigned and is since stricter than
     * before. The 'connectdata' struct MUST have all the connection oriented
     * stuff as we may now have several simultaneous connections and connection
     * structs in memory.
     *
     * From now on, the 'SessionHandle' must only contain data that is set once to
     * go for many (perhaps) independent connections. Values that are generated or
     * calculated internally for the "session handle" must be defined within the
    
      struct Curl_multi *multi;    /* if non-NULL, points to the multi handle
    
      struct Curl_share *share;    /* Share, handles global variable mutexing */
    
      struct UserDefined set;      /* values set by the libcurl user */
      struct DynamicStatic change; /* possibly modified userdefined data */
    
      struct CookieInfo *cookies;  /* the cookies, read from files and servers */
      struct Progress progress;    /* for all the progress meter data */
      struct UrlState state;       /* struct for fields used for state info and
                                      other dynamic purposes */
      struct PureInfo info;        /* stats, reports and info data */
    
      /* set by ftp_transfertype for use by Curl_client_write and others */
      bool ftp_in_ascii_mode;
    #if defined(CURL_DOES_CONVERSIONS) && defined(HAVE_ICONV)
      iconv_t outbound_cd;         /* for translating to the network encoding */
      iconv_t inbound_cd;          /* for translating from the network encoding */
      iconv_t utf8_cd;             /* for translating to UTF8 */
    #endif /* CURL_DOES_CONVERSIONS && HAVE_ICONV */
    
    Daniel Stenberg's avatar
    Daniel Stenberg committed
    };
    
    #define LIBCURL_NAME "libcurl"
    
    #endif