curl_multi_setopt man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

curl_multi_setopt(3)		libcurl Manual		  curl_multi_setopt(3)

NAME
       curl_multi_setopt - set options for a curl multi handle

SYNOPSIS
       #include <curl/curl.h>

       CURLMcode  curl_multi_setopt(CURLM  * multi_handle, CURLMoption option,
       param);

DESCRIPTION
       curl_multi_setopt() is used to tell  a  libcurl	multi  handle  how  to
       behave.	By  using the appropriate options to curl_multi_setopt(3), you
       can change libcurl's behaviour  when  using  that  multi	 handle.   All
       options	are  set with the option followed by the parameter param. That
       parameter can be a long, a function pointer, an	object	pointer	 or  a
       curl_off_t  type,  depending  on what the specific option expects. Read
       this manual carefully as bad input values may cause libcurl  to	behave
       badly!  You can only set one option in each function call.

OPTIONS
       CURLMOPT_SOCKETFUNCTION
	      Pass  a  pointer to a function matching the curl_socket_callback
	      prototype. The curl_multi_socket_action(3) function informs  the
	      application about updates in the socket (file descriptor) status
	      by doing none, one, or multiple calls to	the  curl_socket_call‐
	      back  given  in  the param argument. They update the status with
	      changes since the previous time a curl_multi_socket(3)  function
	      was  called.  If the given callback pointer is NULL, no callback
	      will be called. Set the callback's  userp	 argument  with	 CURL‐
	      MOPT_SOCKETDATA.	 See  curl_multi_socket(3)  for	 more callback
	      details.

       CURLMOPT_SOCKETDATA
	      Pass  a  pointer	to   whatever	you   want   passed   to   the
	      curl_socket_callback's  fourth argument, the userp pointer. This
	      is not used by libcurl but only passed-thru as-is. Set the call‐
	      back pointer with CURLMOPT_SOCKETFUNCTION.

       CURLMOPT_PIPELINING
	      Pass  a  long set to 1 to enable or 0 to disable. Enabling pipe‐
	      lining on a multi handle will make it attempt  to	 perform  HTTP
	      Pipelining  as  far as possible for transfers using this handle.
	      This means that if you add a second  request  that  can  use  an
	      already  existing connection, the second request will be "piped"
	      on the same connection rather than being executed	 in  parallel.
	      (Added in 7.16.0)

       CURLMOPT_TIMERFUNCTION
	      Pass a pointer to a function matching the curl_multi_timer_call‐
	      back prototype: int  curl_multi_timer_callback(CURLM  *multi  /*
	      multi  handle */, long timeout_ms /* timeout in milliseconds */,
	      void *userp /* TIMERDATA */).  This function will then be called
	      when  the	 timeout  value	 changes. The timeout value is at what
	      latest time the application should call one of the  "performing"
	      functions	 of  the  multi interface (curl_multi_socket_action(3)
	      and curl_multi_perform(3)) - to allow libcurl to	keep  timeouts
	      and  retries etc to work. A timeout value of -1 means that there
	      is no timeout at all, and 0 means that the  timeout  is  already
	      reached.	Libcurl	 attempts  to limit calling this only when the
	      fixed future timeout  time  actually  changes.  See  also	 CURL‐
	      MOPT_TIMERDATA.  The callback should return 0 on success, and -1
	      on error. This callback can be used instead of, or  in  addition
	      to, curl_multi_timeout(3). (Added in 7.16.0)

       CURLMOPT_TIMERDATA
	      Pass   a	 pointer   to	whatever   you	 want  passed  to  the
	      curl_multi_timer_callback's third argument, the  userp  pointer.
	      This  is not used by libcurl but only passed-thru as-is. Set the
	      callback pointer with CURLMOPT_TIMERFUNCTION. (Added in 7.16.0)

       CURLMOPT_MAXCONNECTS
	      Pass a long. The set number will be used as the  maximum	amount
	      of  simultaneously open connections that libcurl may keep in its
	      connection cache after completed use. By	default	 libcurl  will
	      enlarge  the  size  for  each added easy handle to make it fit 4
	      times the number of added easy handles.

	      By setting this option, you can  prevent	the  cache  size  from
	      growing beyond the limit set by you.

	      When  the cache is full, curl closes the oldest one in the cache
	      to prevent the number of open connections from increasing.

	      This option is for the multi handle's use only, when  using  the
	      easy  interface  you  should instead use the CURLOPT_MAXCONNECTS
	      option.

	      See CURLMOPT_MAX_TOTAL_CONNECTIONS for limiting  the  number  of
	      active connections.

	      (Added in 7.16.3)

       CURLMOPT_MAX_HOST_CONNECTIONS
	      Pass  a  long. The set number will be used as the maximum amount
	      of simultaneously open connections to a single  host.  For  each
	      new  session to a host, libcurl will open a new connection up to
	      the limit set by CURLMOPT_MAX_HOST_CONNECTIONS. When  the	 limit
	      is  reached, the sessions will be pending until there are avail‐
	      able connections. If CURLMOPT_PIPELINING is 1, libcurl will  try
	      to pipeline if the host is capable of it.

	      The  default  value  is  0,  which means that there is no limit.
	      However, for backwards compatibility, setting it to 0 when CURL‐
	      MOPT_PIPELINING  is  1 will not be treated as unlimited. Instead
	      it will open only 1 connection and try to pipeline on it.

	      (Added in 7.30.0)

       CURLMOPT_MAX_PIPELINE_LENGTH
	      Pass a long. The set number will be used as the  maximum	amount
	      of  requests  in	a  pipelined  connection.  When	 this limit is
	      reached, libcurl will use another connection to  the  same  host
	      (see CURLMOPT_MAX_HOST_CONNECTIONS), or queue the requests until
	      one of the pipelines to the host is ready to accept  a  request.
	      Thus,   the   total   number  of	requests  in-flight  is	 CURL‐
	      MOPT_MAX_HOST_CONNECTIONS *  CURLMOPT_MAX_PIPELINE_LENGTH.   The
	      default value is 5.

	      (Added in 7.30.0)

       CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE
	      Pass a long. If a pipelined connection is currently processing a
	      request  with  a	Content-Length	 larger	  than	 CURLMOPT_CON‐
	      TENT_LENGTH_PENALTY_SIZE, that connection will not be considered
	      for additional requests,	even  if  it  is  shorter  than	 CURL‐
	      MOPT_MAX_PIPELINE_LENGTH.	  The  default value is 0, which means
	      that the penalization is inactive.

	      (Added in 7.30.0)

       CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE
	      Pass a long. If a pipelined connection is currently processing a
	      chunked  (Transfer-encoding:  chunked)  request  with  a current
	      chunk  length  larger  than  CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE,
	      that  connection will not be considered for additional requests,
	      even if it is shorter  than  CURLMOPT_MAX_PIPELINE_LENGTH.   The
	      default  value  is 0, which means that the penalization is inac‐
	      tive.

	      (Added in 7.30.0)

       CURLMOPT_PIPELINING_SITE_BL
	      Pass an array of char *, ending with NULL. This  is  a  list  of
	      sites  that  are blacklisted from pipelining, i.e sites that are
	      known to not support HTTP pipelining. The	 array	is  copied  by
	      libcurl.

	      The  default  value is NULL, which means that there is no black‐
	      list.

	      Pass a NULL pointer to clear the blacklist.

	      Example:

		site_blacklist[] =
		{
		  "www.haxx.se",
		  "www.example.com:1234",
		  NULL
		};

		curl_multi_setopt(m, CURLMOPT_PIPELINE_SITE_BL, site_blacklist);

	      (Added in 7.30.0)

       CURLMOPT_PIPELINING_SERVER_BL
	      Pass an array of char *, ending with NULL. This  is  a  list  of
	      server  types  prefixes  (in  the	 Server: HTTP header) that are
	      blacklisted from pipelining, i.e server types that are known  to
	      not support HTTP pipelining. The array is copied by libcurl.

	      Note  that  the  comparison matches if the Server: header begins
	      with the string in the blacklist, i.e "Server: Ninja 1.2.3"  and
	      "Server:	Ninja 1.4.0" can both be blacklisted by having "Ninja"
	      in the backlist.

	      The default value is NULL, which means that there is  no	black‐
	      list.

	      Pass a NULL pointer to clear the blacklist.

	      Example:

		server_blacklist[] =
		{
		  "Microsoft-IIS/6.0",
		  "nginx/0.8.54",
		  NULL
		};

		curl_multi_setopt(m, CURLMOPT_PIPELINE_SERVER_BL, server_blacklist);

	      (Added in 7.30.0)

       CURLMOPT_MAX_TOTAL_CONNECTIONS
	      Pass  a  long. The set number will be used as the maximum amount
	      of simultaneously open connections in total. For each  new  ses‐
	      sion,  libcurl will open a new connection up to the limit set by
	      CURLMOPT_MAX_TOTAL_CONNECTIONS. When the limit is	 reached,  the
	      sessions	will be pending until there are available connections.
	      If CURLMOPT_PIPELINING is 1, libcurl will try to pipeline if the
	      host is capable of it.

	      The  default  value  is  0,  which means that there is no limit.
	      However, for backwards compatibility, setting it to 0 when CURL‐
	      MOPT_PIPELINING  is  1 will not be treated as unlimited. Instead
	      it will open only 1 connection and try to pipeline on it.

	      (Added in 7.30.0)

RETURNS
       The standard CURLMcode for multi interface error codes.	Note  that  it
       returns	a  CURLM_UNKNOWN_OPTION if you try setting an option that this
       version of libcurl doesn't know of.

AVAILABILITY
       This function was added in libcurl 7.15.4.

SEE ALSO
       curl_multi_cleanup(3),	 curl_multi_init(3),	 curl_multi_socket(3),
       curl_multi_info_read(3)

libcurl 7.16.0			  10 Oct 2006		  curl_multi_setopt(3)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net