Provided by: libcurl4-doc_7.47.0-1ubuntu2.19_all bug

NAME

       curl_easy_send - sends raw data over an "easy" connection

SYNOPSIS

       #include <curl/easy.h>

       CURLcode curl_easy_send( CURL *curl, const void *buffer,  size_t buflen, size_t *n);

DESCRIPTION

       This  function  sends  arbitrary  data  over  the  established  connection. You may use it
       together  with  curl_easy_recv(3)  to  implement  custom  protocols  using  libcurl.  This
       functionality can be particularly useful if you use proxies and/or SSL encryption: libcurl
       will take care of proxy negotiation and connection set-up.

       buffer is a pointer to the data of length buflen that  you  want  sent.   The  variable  n
       points to will receive the number of sent bytes.

       To   establish   the   connection,   set  CURLOPT_CONNECT_ONLY(3)  option  before  calling
       curl_easy_perform(3) or curl_multi_perform(). Note that curl_easy_send(3) will not work on
       connections that were created without this option.

       You  must  ensure  that the socket is writable before calling curl_easy_send(3), otherwise
       the call will return CURLE_AGAIN - the socket is used in non-blocking mode internally. Use
       curl_easy_getinfo(3)   with  CURLINFO_ACTIVESOCKET(3)  to  obtain  the  socket;  use  your
       operating system facilities like select(2) to check if it can be written to.

AVAILABILITY

       Added in 7.18.2.

RETURN VALUE

       On success, returns CURLE_OK and stores the number of bytes actually sent  into  *n.  Note
       that this may very well be less than the amount you wanted to send.

       On failure, returns the appropriate error code.

       If  there's  no  socket available to use from the previous transfer, this function returns
       CURLE_UNSUPPORTED_PROTOCOL.

EXAMPLE

       See sendrecv.c in docs/examples directory for usage example.

SEE ALSO

       curl_easy_setopt(3), curl_easy_perform(3), curl_easy_getinfo(3), curl_easy_recv(3)