.SH DESCRIPTION
This function must be the last function to call for an easy session. It is the
-opposite of the \fIcurl_easy_init\fP function and must be called with the same
-\fIhandle\fP as input that the curl_easy_init call returned.
+opposite of the \fIcurl_easy_init(3)\fP function and must be called with the
+same \fIhandle\fP as input that the curl_easy_init call returned.
This will effectively close all connections this handle has used and possibly
has kept open until now. Don't call this function if you intend to transfer
This function will return a new curl handle, a duplicate, using all the
options previously set in the input curl \fIhandle\fP. Both handles can
subsequently be used independently and they must both be freed with
-\fIcurl_easy_cleanup()\fP.
+\fIcurl_easy_cleanup(3)\fP.
All strings that the input handle has been told to point to (as opposed to
-copy) with previous calls to \fIcurl_easy_setopt\fP using char * inputs, will
-be pointed to by the new handle as well. You must therefore make sure to keep
-the data around until both handles have been cleaned up.
+copy) with previous calls to \fIcurl_easy_setopt(3)\fP using char * inputs,
+will be pointed to by the new handle as well. You must therefore make sure to
+keep the data around until both handles have been cleaned up.
The new handle will \fBnot\fP inherit any state information, no connections,
no SSL sessions and no cookies.
\fBNote\fP that even in multi-threaded programs, this function must be called
in a synchronous way, the input handle may not be in use when cloned.
-
-This function was added in libcurl 7.9.
.SH RETURN VALUE
If this function returns NULL, something went wrong and no valid handle was
returned.
.IP CURLINFO_SSL_VERIFYRESULT
Pass a pointer to a long to receive the result of the certification
verification that was requested (using the CURLOPT_SSL_VERIFYPEER option to
-curl_easy_setopt). (Added in 7.4.2)
+\fIcurl_easy_setopt(3)\fP).
.IP CURLINFO_CONTENT_LENGTH_DOWNLOAD
Pass a pointer to a double to receive the content-length of the download. This
-is the value read from the Content-Length: field. (Added in 7.6.1)
+is the value read from the Content-Length: field.
.IP CURLINFO_CONTENT_LENGTH_UPLOAD
Pass a pointer to a double to receive the specified size of the upload.
.IP CURLINFO_CONTENT_TYPE
Pass a pointer to a 'char *' to receive the content-type of the downloaded
object. This is the value read from the Content-Type: field. If you get NULL,
it means that the server didn't send a valid Content-Type header or that the
-protocol used doesn't support this. (Added in 7.9.4)
+protocol used doesn't support this.
.IP CURLINFO_PRIVATE
Pass a pointer to a 'char *' to receive the pointer to the private data
associated with the curl handle (set with the CURLOPT_PRIVATE option to
-curl_easy_setopt). (Added in 7.10.3)
+\fIcurl_easy_setopt(3)\fP). (Added in 7.10.3)
.IP CURLINFO_HTTPAUTH_AVAIL
Pass a pointer to a long to receive a bitmask indicating the authentication
method(s) available. The meaning of the bits is explained in the
-CURLOPT_HTTPAUTH option for curl_easy_setopt. (Added in 7.10.8)
+CURLOPT_HTTPAUTH option for \fIcurl_easy_setopt(3)\fP. (Added in 7.10.8)
.IP CURLINFO_PROXYAUTH_AVAIL
Pass a pointer to a long to receive a bitmask indicating the authentication
method(s) available for your proxy athentication. (Added in 7.10.8)
appropriate error code will be returned.
.SH "SEE ALSO"
.BR curl_easy_setopt "(3)"
-.SH BUGS
-Surely there are some, you tell me!
.SH DESCRIPTION
This function must be the first function to call, and it returns a CURL easy
handle that you must use as input to other easy-functions. curl_easy_init
-intializes curl and this call MUST have a corresponding call to
-\fIcurl_easy_cleanup\fP when the operation is complete.
+intializes curl and this call \fBMUST\fP have a corresponding call to
+\fIcurl_easy_cleanup(3)\fP when the operation is complete.
.SH RETURN VALUE
If this function returns NULL, something went wrong and you cannot use the
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
-.BI "CURLcode curl_easy_perform(CURL *" handle ");
+.BI "CURLcode curl_easy_perform(CURL *" handle ");"
.ad
.SH DESCRIPTION
-This function is called after the init and all the curl_easy_setopt() calls
-are made, and will perform the transfer as described in the options.
-It must be called with the same
+This function is called after the init and all the \fIcurl_easy_setopt(3)\fP
+calls are made, and will perform the transfer as described in the options. It
+must be called with the same
.I handle
as input as the curl_easy_init call returned.
-libcurl version 7.7 or later (for older versions see below): You can do any
-amount of calls to curl_easy_perform() while using the same handle. If you
-intend to transfer more than one file, you are even encouraged to do
-so. libcurl will then attempt to re-use the same connection for the following
-transfers, thus making the operations faster, less CPU intense and using less
-network resources. Just note that you will have to use
-.I curl_easy_setopt
-between the invokes to set options for the following curl_easy_perform.
+You can do any amount of calls to \fIcurl_easy_perform(3)\fP while using the
+same handle. If you intend to transfer more than one file, you are even
+encouraged to do so. libcurl will then attempt to re-use the same connection
+for the following transfers, thus making the operations faster, less CPU
+intense and using less network resources. Just note that you will have to use
+\fIcurl_easy_setopt(3)\fP between the invokes to set options for the following
+curl_easy_perform.
You must never call this function simultaneously from two places using the
same handle. Let the function return first before invoking it another time. If
you want parallel transfers, you must use several curl handles.
-
-Before libcurl version 7.7: You are only allowed to call this function once
-using the same handle. If you want to do repeated calls, you must call
-curl_easy_cleanup and curl_easy_init again first.
.SH RETURN VALUE
0 means everything was ok, non-zero means an error occurred as
.I <curl/curl.h>
returned.
.SH "SEE ALSO"
.BR curl_easy_init "(3), " curl_easy_setopt "(3), "
-.SH BUGS
-Surely there are some, you tell me!
+
\fBNOTE:\fP strings passed to libcurl as 'char *' arguments, will not be
copied by the library. Instead you should keep them available until libcurl no
longer needs them. Failing to do so will cause very odd behavior or even
-crashes. libcurl will need them until you call curl_easy_cleanup() or you set
-the same option again to use a different pointer.
+crashes. libcurl will need them until you call \fIcurl_easy_cleanup(3)\fP or
+you set the same option again to use a different pointer.
The \fIhandle\fP is the return code from a \fIcurl_easy_init(3)\fP or
\fIcurl_easy_duphandle(3)\fP call.
.IP CURLOPT_NETRC_FILE
Pass a char * as parameter, pointing to a zero terminated string containing
the full path name to the file you want libcurl to use as .netrc file. If this
-option is omitted, and CURLOPT_NETRC is set, libcurl will attempt to find the
-a .netrc file in the current user's home directory. (Added in 7.10.9)
+option is omitted, and \fICURLOPT_NETRC\fP is set, libcurl will attempt to
+find the a .netrc file in the current user's home directory. (Added in 7.10.9)
.IP CURLOPT_USERPWD
Pass a char * as parameter, which should be [user name]:[password] to use for
the connection. Use \fICURLOPT_HTTPAUTH\fP to decide authentication method.
matching cookies get sent accordingly.
\fBNOTE:\fP If the cookie jar file can't be created or written to (when the
-curl_easy_cleanup() is called), libcurl will not and cannot report an error
-for this. Using \fICURLOPT_VERBOSE\fP or \fICURLOPT_DEBUGFUNCTION\fP will get
-a warning to display, but that is the only visible feedback you get about this
-possibly lethal situation.
+\fIcurl_easy_cleanup(3)\fP is called), libcurl will not and cannot report an
+error for this. Using \fICURLOPT_VERBOSE\fP or \fICURLOPT_DEBUGFUNCTION\fP
+will get a warning to display, but that is the only visible feedback you get
+about this possibly lethal situation.
.IP CURLOPT_COOKIESESSION
Pass a long set to non-zero to mark this as a new cookie "session". It will
force libcurl to ignore all cookies it is about to load that are "session
.IP CURLOPT_PRIVATE
Pass a char * as parameter, pointing to data that should be associated with
this curl handle. The pointer can subsequently be retrieved using
-\fIcurl_easy_getinfo\fP with the CURLINFO_PRIVATE option. libcurl itself does
-nothing with this data. (Added in 7.10.3)
+\fIcurl_easy_getinfo(3)\fP with the CURLINFO_PRIVATE option. libcurl itself
+does nothing with this data. (Added in 7.10.3)
.IP CURLOPT_SHARE
Pass a share handle as a parameter. The share handle must have been created by
a previous call to \fIcurl_share_init(3)\fP. Setting this option, will make
standard for details.
.SH RETURN VALUE
CURLE_OK (zero) means that the option was set properly, non-zero means an
-error occurred as \fI<curl/curl.h>\fP defines. See the \fIlibcurl-errors.3\fP
+error occurred as \fI<curl/curl.h>\fP defines. See the \fIlibcurl-errors(3)\fP
man page for the full list with descriptions.
.SH "SEE ALSO"
.BR curl_easy_init "(3), " curl_easy_cleanup "(3), "
.SH RETURN VALUE\r
A pointer to a zero terminated string or NULL if it failed.\r
.SH "SEE ALSO"\r
-.BR curl_unescape(), curl_free(), RFC 2396\r
+.BR curl_unescape(3), curl_free(3), RFC 2396\r
.B CURLFORM_BUFFERPTR
followed by a pointer to a data area, tells libcurl the address of the buffer
containing data to upload (as indicated with \fICURLFORM_BUFFER\fP). The
-buffer containing this data must not be freed until after curl_easy_cleanup is
-called.
+buffer containing this data must not be freed until after
+\fIcurl_easy_cleanup(3)\fP is called.
.B CURLFORM_BUFFERLENGTH
followed by a long with the size of the \fICURLFORM_BUFFERPTR\fP data area,
the POST occurs, if you free it before the post completes you may experience
problems.
-When you've passed the HttpPost pointer to \fIcurl_easy_setopt\fP (using the
-\fICURLOPT_HTTPPOST\fP option), you must not free the list until after you've
-called \fIcurl_easy_cleanup\fP for the curl handle.
+When you've passed the HttpPost pointer to \fIcurl_easy_setopt(3)\fP (using
+the \fICURLOPT_HTTPPOST\fP option), you must not free the list until after
+you've called \fIcurl_easy_cleanup(3)\fP for the curl handle.
See example below.
.SH RETURN VALUE
.BR curl_easy_setopt "(3), "
.BR curl_formparse "(3) [deprecated], "
.BR curl_formfree "(3)"
-.SH BUGS
-Surely there are some, you tell me!
-
.ad
.SH DESCRIPTION
curl_formfree() is used to clean up data previously built/appended with
-curl_formadd()/curl_formparse(). This must be called when the data has
-been used, which typically means after the curl_easy_perform() has
-been called.
+\fIcurl_formadd(3)\fP. This must be called when the data has been used, which
+typically means after the \fIcurl_easy_perform(3)\fP has been called.
.SH RETURN VALUE
None
.SH "SEE ALSO"
-.BR curl_formparse "(3) [deprecated], "
.BR curl_formadd "(3) "
-.SH BUGS
-libcurl 7.7.1 and earlier versions does not allow a NULL pointer to be used as
-argument.
-
-
.BI "void curl_free( char *" ptr " );"
.ad
.SH DESCRIPTION
-curl_free reclaims memory that has been obtained through a libcurl call.
-Use curl_free() instead of free() to avoid anomalies that can result from differences in memory management between your application and libcurl.
+curl_free reclaims memory that has been obtained through a libcurl call. Use
+curl_free() instead of free() to avoid anomalies that can result from
+differences in memory management between your application and libcurl.
.SH "SEE ALSO"
-.I curl_unescape()
+.I curl_unescape(3)
University of North Carolina at Chapel Hill. Later tweaked by a couple of
people on Usenet. Completely overhauled by Rich $alz <rsalz@bbn.com> and Jim
Berets <jberets@bbn.com> in August, 1990.
+
+It has been modified extensively since imported to curl.
.SH "SEE ALSO"
-.BR
-.SH BUGS
-Surely there are some, you tell me!
+.BR GNU date(1)
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
-.BI "char *curl_getenv(const char *" name ");
+.BI "char *curl_getenv(const char *" name ");"
.ad
.SH DESCRIPTION
curl_getenv() is a portable wrapper for the getenv() function, meant to
If successful, curl_getenv() returns a pointer to the value of the specified
environment. The memory it refers to is malloc()ed why the application must
free() this when the data has completed to serve its purpose. When
-.I curl_getenv()
+.I curl_getenv(3)
fails to find the specified name, it returns a null pointer.
.SH NOTE
Under unix operating systems, there isn't any point in returning an allocated
systems.
.SH "SEE ALSO"
.BR getenv "(3C), "
-.SH BUGS
-Surely there are some, you tell me!
-
.\"
.TH curl_global_cleanup 3 "28 May 2001" "libcurl 7.8" "libcurl Manual"
.SH NAME
-curl_global_cleanup - Global libcurl cleanup
+curl_global_cleanup - global libcurl cleanup
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
sessions that'll be used) by every application that uses libcurl, after all
uses of libcurl is complete.
-This is the opposite of \fIcurl_global_init\fP.
+This is the opposite of \fIcurl_global_init(3)\fP.
Not calling this function may result in memory leaks.
-
-This function was added in libcurl 7.8.
.SH "SEE ALSO"
.BR curl_global_init "(3), "
-.SH BUGS
-None?
This function should only be called once (no matter how many threads or
libcurl sessions that'll be used) by every application that uses libcurl.
-If this function hasn't been invoked when \fIcurl_easy_init\fP is called, it
-will be done automatically by libcurl.
+If this function hasn't been invoked when \fIcurl_easy_init(3)\fP is called,
+it will be done automatically by libcurl.
The flags option is a bit pattern that tells libcurl exact what features to
init, as described below. Set the desired bits by ORing the values together.
-You must however \fBalways\fP use the \fIcurl_global_cleanup\fP function, as
-that cannot be called automatically for you by libcurl.
+You must however \fBalways\fP use the \fIcurl_global_cleanup(3)\fP function,
+as that cannot be called automatically for you by libcurl.
Calling this function more than once will cause unpredictable results.
-This function was added in libcurl 7.8.
.SH FLAGS
.TP 5
.B CURL_GLOBAL_ALL
Initialize SSL
.TP
.B CURL_GLOBAL_WIN32
-Initialize the Win32 socket libraries. (added in libcurl 7.8.1)
+Initialize the Win32 socket libraries.
.TP
.B CURL_GLOBAL_NOTHING
Initialise nothing extra. This sets no bit.
other curl functions.
.SH "SEE ALSO"
.BR curl_global_cleanup "(3), "
-.SH BUGS
-None.
+
been appended when this function returns. curl_slist_append() copies the
string.
-The list should be freed again (after usage) with \fBcurl_slist_free_all()\fP.
+The list should be freed again (after usage) with
+\fBcurl_slist_free_all(3)\fP.
.SH RETURN VALUE
A null pointer is returned if anything went wrong, otherwise the new list
pointer is returned.
curl_slist_free_all(slist); /* free the list again */
.SH "SEE ALSO"
.BR curl_slist_free_all "(3), "
-.SH BUGS
-None.
-
Nothing.
.SH "SEE ALSO"
.BR curl_slist_append "(3), "
-.SH BUGS
-Surely there are some, you tell me!
.SH RETURN VALUE\r
A pointer to a zero terminated string or NULL if it failed.\r
.SH "SEE ALSO"\r
-.I curl_escape(), curl_free(), RFC 2396\r
+.I curl_escape(3), curl_free(3), RFC 2396\r
\fIversion\fP is just an ascii string for the libcurl version.
-\fIversion_num\fP is a 6 digit hexadecimal number created like this: <2 digits
-major number> | <2 digits minor number> | <2 digits patch number>. Version
-7.9.8 is therefore returned as 0x070908.
+\fIversion_num\fP is a 24 bit number created like this: <8 bits major number>
+| <8 bits minor number> | <8 bits patch number>. Version 7.9.8 is therefore
+returned as 0x070908.
\fIhost\fP is an ascii string showing what host information that this libcurl
was built for. As discovered by a configure script or set by the build