DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

curl_easy_send(3)




curl_easy_send(3)        libcurl Manual         curl_easy_send(3)


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 con-
     nection.  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(3). Note that curl_easy_send(3) will  not
     work on connections that were created without this option.

     The call will return CURLE_AGAIN if  it's  not  possible  to
     send  data  right  now  - the socket is used in non-blocking
     mode internally. When  CURLE_AGAIN  is  returned,  use  your
     operating system facilities like select(2) to wait until the
     socket  is  writable.  The  socket  may  be  obtained  using
     curl_easy_getinfo(3) with CURLINFO_ACTIVESOCKET(3).

     Furthermore if you wait on the socket and it tells you  it's
     writable,  curl_easy_send(3)  may  return CURLE_AGAIN if the
     only data that was sent was for internal SSL processing, and
     no other data could be sent.


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.

     This function may return CURLE_AGAIN. In this case, use your
     operating  system  facilities  to  wait  until the socket is
     writable, and retry.

libcurl 7.58.0   Last change: December 18, 2016                 1

curl_easy_send(3)        libcurl Manual         curl_easy_send(3)

     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)

libcurl 7.58.0   Last change: December 18, 2016                 2


Man(1) output converted with man2html