2002-04-10 21:24:45 +08:00
|
|
|
.\" You can view this file with:
|
|
|
|
.\" nroff -man [file]
|
|
|
|
.\" $Id$
|
|
|
|
.\"
|
2003-10-18 19:53:42 +08:00
|
|
|
.TH libcurl-errors 3 "18 Oct 2003" "libcurl 7.10.8" "libcurl errors"
|
2002-04-10 21:24:45 +08:00
|
|
|
.SH NAME
|
|
|
|
error codes in libcurl
|
|
|
|
.SH DESCRIPTION
|
|
|
|
This man page includes most, if not all, available error codes in libcurl.
|
|
|
|
Why they occur and possibly what you can do to fix the problem.
|
|
|
|
.SH "CURLcode"
|
|
|
|
Almost all "easy" interface functions return a CURLcode error code. No matter
|
|
|
|
what, using \fICURLOPT_ERRORBUFFER\fP is a good idea as it will give you a
|
|
|
|
human readable error string that may offer more details about the error cause
|
2002-04-11 02:08:50 +08:00
|
|
|
than just the error code does.
|
|
|
|
|
|
|
|
This man page is meant to describe libcurl 7.9.6 and later. Earlier versions
|
|
|
|
might have had quirks not mentioned here.
|
|
|
|
|
|
|
|
CURLcode is one of the following:
|
2002-04-10 21:24:45 +08:00
|
|
|
.RS 1
|
|
|
|
.TP 5
|
|
|
|
.B CURLE_OK (0)
|
|
|
|
All fine. Proceed as usual.
|
|
|
|
.TP
|
|
|
|
.B CURLE_UNSUPPORTED_PROTOCOL (1)
|
|
|
|
The URL you passed to libcurl used a protocol that this libcurl does not
|
|
|
|
support. The support might be a compile-time option that you didn't use, it
|
|
|
|
can be a misspelled protocol string or just a protocol libcurl has no code
|
|
|
|
for.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FAILED_INIT (2)
|
|
|
|
Very early initialization code failed. This is likely to be an internal error
|
|
|
|
or problem.
|
|
|
|
.TP
|
|
|
|
.B CURLE_URL_MALFORMAT (3)
|
|
|
|
The URL was not properly formatted.
|
|
|
|
.TP
|
|
|
|
.B CURLE_URL_MALFORMAT_USER (4)
|
|
|
|
URL user malformatted. The user-part of the URL syntax was not correct.
|
|
|
|
.TP
|
|
|
|
.B CURLE_COULDNT_RESOLVE_PROXY (5)
|
|
|
|
Couldn't resolve proxy. The given proxy host could not be resolved.
|
|
|
|
.TP
|
|
|
|
.B CURLE_COULDNT_RESOLVE_HOST (6)
|
|
|
|
Couldn't resolve host. The given remote host was not resolved.
|
|
|
|
.TP
|
|
|
|
.B CURLE_COULDNT_CONNECT (7)
|
|
|
|
Failed to connect() to host or proxy.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_WEIRD_SERVER_REPLY (8)
|
|
|
|
After connecting to a FTP server, libcurl expects to get a certain reply back.
|
|
|
|
This error code implies that it god a strange or bad reply. The given remote
|
|
|
|
server is probably not an OK FTP server.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_ACCESS_DENIED (9)
|
|
|
|
We were denied access when trying to login to an FTP server or when trying to
|
|
|
|
change working directory to the one given in the URL.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_USER_PASSWORD_INCORRECT (10)
|
|
|
|
The username and/or the password were incorrect when trying to login to an FTP
|
|
|
|
server.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_WEIRD_PASS_REPLY (11)
|
|
|
|
After having sent the FTP password to the server, libcurl expects a proper
|
|
|
|
reply. This error code indicates that an unexpected code was returned.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_WEIRD_USER_REPLY (12)
|
|
|
|
After having sent user name to the FTP server, libcurl expects a proper
|
|
|
|
reply. This error code indicates that an unexpected code was returned.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_WEIRD_PASV_REPLY (13)
|
|
|
|
libcurl failed to get a sensible result back from the server as a response to
|
|
|
|
either a PASV or a EPSV command. The server is flawed.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_WEIRD_227_FORMAT (14)
|
|
|
|
FTP servers return a 227-line as a response to a PASV command. If libcurl
|
|
|
|
fails to parse that line, this return code is passed back.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_CANT_GET_HOST (15)
|
|
|
|
An internal failure to lookup the host used for the new connection.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_CANT_RECONNECT (16)
|
|
|
|
A bad return code on either PASV or EPSV was sent by the FTP server,
|
|
|
|
preventing libcurl from being able to continue.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_COULDNT_SET_BINARY (17)
|
|
|
|
Received an error when trying to set the transfer mode to binary.
|
|
|
|
.TP
|
|
|
|
.B CURLE_PARTIAL_FILE (18)
|
|
|
|
A file transfer was shorter or larger than expected. This happens when the
|
|
|
|
server first reports an expected transfer size, and then delivers data that
|
|
|
|
doesn't match the previously given size.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_COULDNT_RETR_FILE (19)
|
|
|
|
This was either a weird reply to a 'RETR' command or a zero byte transfer
|
|
|
|
complete.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_WRITE_ERROR (20)
|
|
|
|
After a completed file transfer, the FTP server did not respond a proper
|
|
|
|
\"transfer successful\" code.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_QUOTE_ERROR (21)
|
|
|
|
When sending custom "QUOTE" commands to the remote server, one of the commands
|
|
|
|
returned an error code that was 400 or higher.
|
|
|
|
.TP
|
2002-12-19 00:51:02 +08:00
|
|
|
.B CURLE_HTTP_RETURNED_ERROR (22)
|
2002-04-10 21:24:45 +08:00
|
|
|
This is returned if CURLOPT_FAILONERROR is set TRUE and the HTTP server
|
|
|
|
returns an error code that is >= 400.
|
|
|
|
.TP
|
|
|
|
.B CURLE_WRITE_ERROR (23)
|
2002-04-11 02:08:50 +08:00
|
|
|
An error occurred when writing received data to a local file, or an error was
|
|
|
|
returned to libcurl from a write callback.
|
2002-04-10 21:24:45 +08:00
|
|
|
.TP
|
|
|
|
.B CURLE_MALFORMAT_USER (24)
|
|
|
|
Malformat user. User name badly specified. *Not currently used*
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_COULDNT_STOR_FILE (25)
|
|
|
|
FTP couldn't STOR file. The server denied the STOR operation. The error buffer
|
|
|
|
usually contains the server's explanation to this.
|
|
|
|
.TP
|
|
|
|
.B CURLE_READ_ERROR (26)
|
2002-04-11 02:08:50 +08:00
|
|
|
There was a problem reading a local file or an error returned by the read
|
|
|
|
callback.
|
2002-04-10 21:24:45 +08:00
|
|
|
.TP
|
|
|
|
.B CURLE_OUT_OF_MEMORY (27)
|
|
|
|
Out of memory. A memory allocation request failed. This is serious badness and
|
|
|
|
things are severly screwed up if this ever occur.
|
|
|
|
.TP
|
|
|
|
.B CURLE_OPERATION_TIMEOUTED (28)
|
|
|
|
Operation timeout. The specified time-out period was reached according to the
|
|
|
|
conditions.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_COULDNT_SET_ASCII (29)
|
|
|
|
libcurl failed to set ASCII transfer type (TYPE A).
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_PORT_FAILED (30)
|
|
|
|
The FTP PORT command returned error. This mostly happen when you haven't
|
|
|
|
specified a good enough address for libcurl to use. See \fICURLOPT_FTPPORT\fP.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_COULDNT_USE_REST (31)
|
|
|
|
The FTP REST command returned error. This should never happen if the server is
|
|
|
|
sane.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_COULDNT_GET_SIZE (32)
|
|
|
|
The FTP SIZE command returned errror. SIZE is not a kosher FTP command, it is
|
|
|
|
an extension and not all servers support it. This is not a surprising error.
|
|
|
|
.TP
|
|
|
|
.B CURLE_HTTP_RANGE_ERROR (33)
|
|
|
|
The HTTP server does not support or accept range requests.
|
|
|
|
.TP
|
|
|
|
.B CURLE_HTTP_POST_ERROR (34)
|
|
|
|
This is an odd error that mainly occurs due to internal confusion.
|
|
|
|
.TP
|
|
|
|
.B CURLE_SSL_CONNECT_ERROR (35)
|
|
|
|
A problem occured somewhere in the SSL/TLS handshake. You really want the
|
|
|
|
error buffer and read the message there as it pinpoints the problem slightly
|
|
|
|
more. Could be certificates (file formats, paths, permissions), passwords, and
|
|
|
|
others.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FTP_BAD_DOWNLOAD_RESUME (36)
|
|
|
|
Attempting FTP resume beyond file size.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FILE_COULDNT_READ_FILE (37)
|
|
|
|
A file given with FILE:// couldn't be opened. Most likely because the file
|
|
|
|
path doesn't identify an existing file. Did you check file permissions?
|
|
|
|
.TP
|
|
|
|
.B CURLE_LDAP_CANNOT_BIND (38)
|
|
|
|
LDAP cannot bind. LDAP bind operation failed.
|
|
|
|
.TP
|
|
|
|
.B CURLE_LDAP_SEARCH_FAILED (39)
|
|
|
|
LDAP search failed.
|
|
|
|
.TP
|
|
|
|
.B CURLE_LIBRARY_NOT_FOUND (40)
|
|
|
|
Library not found. The LDAP library was not found.
|
|
|
|
.TP
|
|
|
|
.B CURLE_FUNCTION_NOT_FOUND (41)
|
|
|
|
Function not found. A required LDAP function was not found.
|
|
|
|
.TP
|
|
|
|
.B CURLE_ABORTED_BY_CALLBACK (42)
|
|
|
|
Aborted by callback. A callback returned "abort" to libcurl.
|
|
|
|
.TP
|
|
|
|
.B CURLE_BAD_FUNCTION_ARGUMENT (43)
|
|
|
|
Internal error. A function was called with a bad parameter.
|
|
|
|
.TP
|
|
|
|
.B CURLE_BAD_CALLING_ORDER (44)
|
|
|
|
Internal error. A function was called in a bad order.
|
|
|
|
.TP
|
|
|
|
.B CURLE_HTTP_PORT_FAILED (45)
|
|
|
|
Interface error. A specified outgoing interface could not be used. Set which
|
|
|
|
interface to use for outgoing connections' source IP address with
|
|
|
|
CURLOPT_INTERFACE.
|
|
|
|
.TP
|
|
|
|
.B CURLE_BAD_PASSWORD_ENTERED (46)
|
|
|
|
Bad password entered. An error was signaled when the password was
|
|
|
|
entered. This can also be the result of a "bad password" returned from a
|
|
|
|
specified password callback.
|
|
|
|
.TP
|
|
|
|
.B CURLE_TOO_MANY_REDIRECTS (47)
|
|
|
|
Too many redirects. When following redirects, libcurl hit the maximum amount.
|
|
|
|
Set your limit with CURLOPT_MAXREDIRS.
|
|
|
|
.TP
|
|
|
|
.B CURLE_UNKNOWN_TELNET_OPTION (48)
|
|
|
|
An option set with CURLOPT_TELNETOPTIONS was not recognized/known. Refer to
|
|
|
|
the appropriate documentation.
|
|
|
|
.TP
|
|
|
|
.B CURLE_TELNET_OPTION_SYNTAX (49)
|
|
|
|
A telnet option string was Illegally formatted.
|
|
|
|
.TP
|
|
|
|
.B CURLE_OBSOLETE (50)
|
|
|
|
This is not an error. This used to be another error code in an old libcurl
|
|
|
|
version and is currently unused.
|
|
|
|
.TP
|
|
|
|
.B CURLE_SSL_PEER_CERTIFICATE (51)
|
|
|
|
The remote server's SSL certificate was deemed not OK.
|
|
|
|
.TP
|
|
|
|
.B CURLE_GOT_NOTHING (52)
|
|
|
|
Nothing was returned from the server, and under the circumstances, getting
|
|
|
|
nothing is considered an error.
|
|
|
|
.TP
|
|
|
|
.B CURLE_SSL_ENGINE_NOTFOUND (53)
|
|
|
|
The specified crypto engine wasn't found.
|
|
|
|
.TP
|
|
|
|
.B CURLE_SSL_ENGINE_SETFAILED (54)
|
|
|
|
Failed setting the selected SSL crypto engine as default!
|
2002-04-11 02:08:50 +08:00
|
|
|
.TP
|
|
|
|
.B CURLE_SEND_ERROR (55)
|
|
|
|
Failed sending network data.
|
|
|
|
.TP
|
|
|
|
.B CURLE_RECV_ERROR (56)
|
|
|
|
Failure with receiving network data.
|
2002-04-10 21:24:45 +08:00
|
|
|
.TP
|
2003-10-18 19:53:42 +08:00
|
|
|
.B CURLE_RECV_ERROR (57)
|
|
|
|
Failure with receiving network data.
|
|
|
|
.TP
|
|
|
|
.B CURLE_SSL_CERTPROBLEM (58)
|
|
|
|
problem with the local certificate
|
|
|
|
.TP
|
|
|
|
.B CURLE_SSL_CIPHER (59)
|
|
|
|
couldn't use specified cipher
|
|
|
|
.TP
|
|
|
|
.B CURLE_SSL_CACERT (60)
|
|
|
|
problem with the CA cert (path? access rights?)
|
|
|
|
.TP
|
|
|
|
.B CURLE_BAD_CONTENT_ENCODING (61)
|
|
|
|
Unrecognized transfer encoding
|
|
|
|
.TP
|
|
|
|
.B CURLE_LDAP_INVALID_URL (62)
|
|
|
|
Invalid LDAP URL
|
|
|
|
.TP
|
|
|
|
.B CURLE_FILESIZE_EXCEEDED (63)
|
|
|
|
Maximum file size exceeded
|
|
|
|
.TP
|
2002-04-10 21:24:45 +08:00
|
|
|
.B CURL_LAST
|
|
|
|
This is not an error, but in the curl/curl.h file this can be used to know how
|
|
|
|
many existing error codes there are.
|
|
|
|
.RE
|
|
|
|
|
|
|
|
.SH "CURLMcode"
|
|
|
|
This is the generic return code used by functions in the libcurl multi
|
|
|
|
interface.
|