Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства является частью версии 5.0 Инструментов XCode

Получить эти инструменты:

Если Вы выполняете версию Инструментов XCode кроме 5,0, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.



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_callback 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  CURLMOPT_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 callback
              pointer with CURLMOPT_SOCKETFUNCTION.

       CURLMOPT_PIPELINING
              Pass a long set to 1 to enable or 0 to disable. Enabling pipelining 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_callback   prototype:   int
              curl_multi_timer_callback(CURLM  *multi /* multi handle */, long timeout_ms /* timeout in mil-liseconds milliseconds
              liseconds */, void *userp /* TIMERDATA */).  This function will then be called when the  time-out timeout
              out 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 actu-ally actually
              ally changes. See also CURLMOPT_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  connec-tions connections
              tions  that libcurl may cache. Default is 10, and 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.

              (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 connec-tions connections
              tions 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 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 compati-bility, compatibility,
              bility, setting it to 0 when CURLMOPT_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 con-nection. connection.
              nection. 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_HOST_CONNECTIONS
              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_CONTENT_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 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
              inactive.

              (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 blacklist.

              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  black-list, blacklist,
              list,  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 blacklist.

              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  connec-tions connections
              tions  in  total. For each new session, 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 pipe-line pipeline
              line if the host is capable of it.

              The default value is 0, which means that there is no limit.  However, for  backwards  compati-bility, compatibility,
              bility,  setting  it  to  0  when  CURLMOPT_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)

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации со ссылками на отзыв ниже.
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API через Генератор отчетов Ошибки.
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.