diff options
Diffstat (limited to 'docs/libcurl/gnurl_easy_send.3')
-rw-r--r-- | docs/libcurl/gnurl_easy_send.3 | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/docs/libcurl/gnurl_easy_send.3 b/docs/libcurl/gnurl_easy_send.3 new file mode 100644 index 000000000..08c0671b0 --- /dev/null +++ b/docs/libcurl/gnurl_easy_send.3 @@ -0,0 +1,75 @@ +.\" ************************************************************************** +.\" * _ _ ____ _ +.\" * Project ___| | | | _ \| | +.\" * / __| | | | |_) | | +.\" * | (__| |_| | _ <| |___ +.\" * \___|\___/|_| \_\_____| +.\" * +.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. +.\" * +.\" * This software is licensed as described in the file COPYING, which +.\" * you should have received as part of this distribution. The terms +.\" * are also available at https://curl.haxx.se/docs/copyright.html. +.\" * +.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell +.\" * copies of the Software, and permit persons to whom the Software is +.\" * furnished to do so, under the terms of the COPYING file. +.\" * +.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +.\" * KIND, either express or implied. +.\" * +.\" ************************************************************************** +.\" +.TH gnurl_easy_send 3 "29 April 2008" "libcurl 7.18.2" "libgnurl Manual" +.SH NAME +curl_easy_send - sends raw data over an "easy" connection +.SH SYNOPSIS +.B #include <gnurl/easy.h> +.sp +.BI "CURLcode curl_easy_send( CURL *" curl ", const void *" buffer "," +.BI " size_t " buflen ", size_t *" n ");" +.ad +.SH DESCRIPTION +This function sends arbitrary data over the established connection. You may +use it together with \fIcurl_easy_recv(3)\fP 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. + +\fBbuffer\fP is a pointer to the data of length \fBbuflen\fP that you want sent. +The variable \fBn\fP points to will receive the number of sent bytes. + +To establish the connection, set \fICURLOPT_CONNECT_ONLY(3)\fP option before +calling \fIcurl_easy_perform(3)\fP or \fIcurl_multi_perform(3)\fP. Note that +\fIcurl_easy_send(3)\fP will not work on connections that were created without +this option. + +The call will return \fBCURLE_AGAIN\fP if it's not possible to send data right +now - the socket is used in non-blocking mode internally. When +\fBCURLE_AGAIN\fP is returned, use your operating system facilities like +\fIselect(2)\fP to wait until the socket is writable. The socket may be +obtained using \fIcurl_easy_getinfo(3)\fP with \fICURLINFO_ACTIVESOCKET(3)\fP. + +Furthermore if you wait on the socket and it tells you it's writable, +\fIcurl_easy_send(3)\fP may return \fBCURLE_AGAIN\fP if the only data that was +sent was for internal SSL processing, and no other data could be sent. + +.SH AVAILABILITY +Added in 7.18.2. +.SH RETURN VALUE +On success, returns \fBCURLE_OK\fP and stores the number of bytes actually +sent into \fB*n\fP. 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 \fBCURLE_AGAIN\fP. In this case, use your operating +system facilities to wait until the socket is writable, and retry. + +If there's no socket available to use from the previous transfer, this function +returns \fBCURLE_UNSUPPORTED_PROTOCOL\fP. +.SH EXAMPLE +See \fBsendrecv.c\fP in \fBdocs/examples\fP directory for usage example. +.SH "SEE ALSO" +.BR curl_easy_setopt "(3), " curl_easy_perform "(3), " curl_easy_getinfo "(3), " +.BR curl_easy_recv "(3) " |