2002-04-10 21:24:45 +08:00
|
|
|
.\" You can view this file with:
|
|
|
|
.\" nroff -man [file]
|
|
|
|
.\" $Id$
|
|
|
|
.\"
|
2005-02-09 22:13:21 +08:00
|
|
|
.TH libcurl-errors 3 "9 Feb 2005" "libcurl 7.13.1" "libcurl errors"
|
2002-04-10 21:24:45 +08:00
|
|
|
.SH NAME
|
2003-12-10 15:16:20 +08:00
|
|
|
libcurl-errors \- error codes in libcurl
|
2002-04-10 21:24:45 +08:00
|
|
|
.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
|
2004-04-27 15:05:40 +08:00
|
|
|
what, using the \fIcurl_easy_setopt(3)\fP option \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 than just the error code
|
|
|
|
does. \fIcurl_easy_strerror(3)\fP can be called to get an error string from a
|
|
|
|
given CURLcode number.
|
2002-04-11 02:08:50 +08:00
|
|
|
|
|
|
|
CURLcode is one of the following:
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_OK (0)"
|
2002-04-10 21:24:45 +08:00
|
|
|
All fine. Proceed as usual.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_UNSUPPORTED_PROTOCOL (1)"
|
2002-04-10 21:24:45 +08:00
|
|
|
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.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FAILED_INIT (2)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Very early initialization code failed. This is likely to be an internal error
|
|
|
|
or problem.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_URL_MALFORMAT (3)"
|
2002-04-10 21:24:45 +08:00
|
|
|
The URL was not properly formatted.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_URL_MALFORMAT_USER (4)"
|
2006-04-10 06:41:22 +08:00
|
|
|
This is never returned by current libcurl.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_COULDNT_RESOLVE_PROXY (5)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Couldn't resolve proxy. The given proxy host could not be resolved.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_COULDNT_RESOLVE_HOST (6)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Couldn't resolve host. The given remote host was not resolved.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_COULDNT_CONNECT (7)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Failed to connect() to host or proxy.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_WEIRD_SERVER_REPLY (8)"
|
2006-01-28 05:23:04 +08:00
|
|
|
After connecting to an FTP server, libcurl expects to get a certain reply
|
|
|
|
back. This error code implies that it got a strange or bad reply. The given
|
|
|
|
remote server is probably not an OK FTP server.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_ACCESS_DENIED (9)"
|
2002-04-10 21:24:45 +08:00
|
|
|
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.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_USER_PASSWORD_INCORRECT (10)"
|
2006-04-10 06:41:22 +08:00
|
|
|
This is never returned by current libcurl.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_WEIRD_PASS_REPLY (11)"
|
2002-04-10 21:24:45 +08:00
|
|
|
After having sent the FTP password to the server, libcurl expects a proper
|
|
|
|
reply. This error code indicates that an unexpected code was returned.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_WEIRD_USER_REPLY (12)"
|
2002-04-10 21:24:45 +08:00
|
|
|
After having sent user name to the FTP server, libcurl expects a proper
|
|
|
|
reply. This error code indicates that an unexpected code was returned.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_WEIRD_PASV_REPLY (13)"
|
2002-04-10 21:24:45 +08:00
|
|
|
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.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_WEIRD_227_FORMAT (14)"
|
2002-04-10 21:24:45 +08:00
|
|
|
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.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_CANT_GET_HOST (15)"
|
2002-04-10 21:24:45 +08:00
|
|
|
An internal failure to lookup the host used for the new connection.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_CANT_RECONNECT (16)"
|
2002-04-10 21:24:45 +08:00
|
|
|
A bad return code on either PASV or EPSV was sent by the FTP server,
|
|
|
|
preventing libcurl from being able to continue.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_COULDNT_SET_BINARY (17)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Received an error when trying to set the transfer mode to binary.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_PARTIAL_FILE (18)"
|
2002-04-10 21:24:45 +08:00
|
|
|
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.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_COULDNT_RETR_FILE (19)"
|
2002-04-10 21:24:45 +08:00
|
|
|
This was either a weird reply to a 'RETR' command or a zero byte transfer
|
|
|
|
complete.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_WRITE_ERROR (20)"
|
2002-04-10 21:24:45 +08:00
|
|
|
After a completed file transfer, the FTP server did not respond a proper
|
|
|
|
\"transfer successful\" code.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_QUOTE_ERROR (21)"
|
2002-04-10 21:24:45 +08:00
|
|
|
When sending custom "QUOTE" commands to the remote server, one of the commands
|
|
|
|
returned an error code that was 400 or higher.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "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.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "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.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_MALFORMAT_USER (24)"
|
2006-04-10 06:41:22 +08:00
|
|
|
This is never returned by current libcurl.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_COULDNT_STOR_FILE (25)"
|
2002-04-10 21:24:45 +08:00
|
|
|
FTP couldn't STOR file. The server denied the STOR operation. The error buffer
|
|
|
|
usually contains the server's explanation to this.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "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.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_OUT_OF_MEMORY (27)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Out of memory. A memory allocation request failed. This is serious badness and
|
2004-03-25 05:40:45 +08:00
|
|
|
things are severely screwed up if this ever occur.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_OPERATION_TIMEOUTED (28)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Operation timeout. The specified time-out period was reached according to the
|
|
|
|
conditions.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_COULDNT_SET_ASCII (29)"
|
2002-04-10 21:24:45 +08:00
|
|
|
libcurl failed to set ASCII transfer type (TYPE A).
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_PORT_FAILED (30)"
|
2002-04-10 21:24:45 +08:00
|
|
|
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.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_COULDNT_USE_REST (31)"
|
2002-04-10 21:24:45 +08:00
|
|
|
The FTP REST command returned error. This should never happen if the server is
|
|
|
|
sane.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_COULDNT_GET_SIZE (32)"
|
2004-03-25 05:40:45 +08:00
|
|
|
The FTP SIZE command returned error. SIZE is not a kosher FTP command, it is
|
2002-04-10 21:24:45 +08:00
|
|
|
an extension and not all servers support it. This is not a surprising error.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_HTTP_RANGE_ERROR (33)"
|
2002-04-10 21:24:45 +08:00
|
|
|
The HTTP server does not support or accept range requests.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_HTTP_POST_ERROR (34)"
|
2002-04-10 21:24:45 +08:00
|
|
|
This is an odd error that mainly occurs due to internal confusion.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_SSL_CONNECT_ERROR (35)"
|
2004-03-25 05:40:45 +08:00
|
|
|
A problem occurred somewhere in the SSL/TLS handshake. You really want the
|
2002-04-10 21:24:45 +08:00
|
|
|
error buffer and read the message there as it pinpoints the problem slightly
|
|
|
|
more. Could be certificates (file formats, paths, permissions), passwords, and
|
|
|
|
others.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FTP_BAD_DOWNLOAD_RESUME (36)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Attempting FTP resume beyond file size.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FILE_COULDNT_READ_FILE (37)"
|
2002-04-10 21:24:45 +08:00
|
|
|
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?
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_LDAP_CANNOT_BIND (38)"
|
2002-04-10 21:24:45 +08:00
|
|
|
LDAP cannot bind. LDAP bind operation failed.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_LDAP_SEARCH_FAILED (39)"
|
2002-04-10 21:24:45 +08:00
|
|
|
LDAP search failed.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_LIBRARY_NOT_FOUND (40)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Library not found. The LDAP library was not found.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FUNCTION_NOT_FOUND (41)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Function not found. A required LDAP function was not found.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_ABORTED_BY_CALLBACK (42)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Aborted by callback. A callback returned "abort" to libcurl.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_BAD_FUNCTION_ARGUMENT (43)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Internal error. A function was called with a bad parameter.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_BAD_CALLING_ORDER (44)"
|
2006-04-10 06:41:22 +08:00
|
|
|
This is never returned by current libcurl.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_HTTP_PORT_FAILED (45)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Interface error. A specified outgoing interface could not be used. Set which
|
|
|
|
interface to use for outgoing connections' source IP address with
|
|
|
|
CURLOPT_INTERFACE.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_BAD_PASSWORD_ENTERED (46)"
|
2006-04-10 06:41:22 +08:00
|
|
|
This is never returned by current libcurl.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_TOO_MANY_REDIRECTS (47)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Too many redirects. When following redirects, libcurl hit the maximum amount.
|
|
|
|
Set your limit with CURLOPT_MAXREDIRS.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_UNKNOWN_TELNET_OPTION (48)"
|
2002-04-10 21:24:45 +08:00
|
|
|
An option set with CURLOPT_TELNETOPTIONS was not recognized/known. Refer to
|
|
|
|
the appropriate documentation.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_TELNET_OPTION_SYNTAX (49)"
|
2002-04-10 21:24:45 +08:00
|
|
|
A telnet option string was Illegally formatted.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_OBSOLETE (50)"
|
2002-04-10 21:24:45 +08:00
|
|
|
This is not an error. This used to be another error code in an old libcurl
|
|
|
|
version and is currently unused.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_SSL_PEER_CERTIFICATE (51)"
|
2002-04-10 21:24:45 +08:00
|
|
|
The remote server's SSL certificate was deemed not OK.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_GOT_NOTHING (52)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Nothing was returned from the server, and under the circumstances, getting
|
|
|
|
nothing is considered an error.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_SSL_ENGINE_NOTFOUND (53)"
|
2002-04-10 21:24:45 +08:00
|
|
|
The specified crypto engine wasn't found.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_SSL_ENGINE_SETFAILED (54)"
|
2002-04-10 21:24:45 +08:00
|
|
|
Failed setting the selected SSL crypto engine as default!
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_SEND_ERROR (55)"
|
2002-04-11 02:08:50 +08:00
|
|
|
Failed sending network data.
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_RECV_ERROR (56)"
|
2002-04-11 02:08:50 +08:00
|
|
|
Failure with receiving network data.
|
2004-04-26 17:28:02 +08:00
|
|
|
.IP "CURLE_SHARE_IN_USE (57)"
|
|
|
|
Share is in use
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_SSL_CERTPROBLEM (58)"
|
2004-09-03 05:05:56 +08:00
|
|
|
problem with the local client certificate
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_SSL_CIPHER (59)"
|
2003-10-18 19:53:42 +08:00
|
|
|
couldn't use specified cipher
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_SSL_CACERT (60)"
|
2003-10-18 19:53:42 +08:00
|
|
|
problem with the CA cert (path? access rights?)
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_BAD_CONTENT_ENCODING (61)"
|
2003-10-18 19:53:42 +08:00
|
|
|
Unrecognized transfer encoding
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_LDAP_INVALID_URL (62)"
|
2003-10-18 19:53:42 +08:00
|
|
|
Invalid LDAP URL
|
2003-11-04 21:03:45 +08:00
|
|
|
.IP "CURLE_FILESIZE_EXCEEDED (63)"
|
2003-10-18 19:53:42 +08:00
|
|
|
Maximum file size exceeded
|
2004-03-08 21:57:38 +08:00
|
|
|
.IP "CURLE_FTP_SSL_FAILED (64)"
|
|
|
|
Requested FTP SSL level failed
|
2005-02-09 22:13:21 +08:00
|
|
|
.IP "CURLE_SEND_FAIL_REWIND (65)"
|
|
|
|
When doing a send operation curl had to rewind the data to retransmit, but the
|
|
|
|
rewinding operation failed
|
|
|
|
.IP "CURLE_SSL_ENGINE_INITFAILED (66)"
|
|
|
|
Initiating the SSL Engine failed
|
|
|
|
.IP "CURLE_LOGIN_DENIED (67)"
|
|
|
|
The remote server denied curl to login (Added in 7.13.1)
|
2006-04-26 21:00:45 +08:00
|
|
|
.IP "CURLE_TFTP_NOTFOUND (68)"
|
|
|
|
File not found on TFTP server
|
|
|
|
.IP "CURLE_TFTP_PERM (69"
|
|
|
|
Permission problem on TFTP server
|
|
|
|
.IP "CURLE_TFTP_DISKFULL (70)"
|
|
|
|
Out of disk space on TFTP server
|
|
|
|
.IP "CURLE_TFTP_ILLEGAL (71)"
|
|
|
|
Illegal TFTP operation
|
|
|
|
.IP "CURLE_TFTP_UNKNOWNID (72)"
|
|
|
|
Unknown TFTP transfer ID
|
|
|
|
.IP "CURLE_TFTP_EXISTS (73)"
|
|
|
|
TFTP File already exists
|
|
|
|
.IP "CURLE_TFTP_NOSUCHUSER (74)"
|
|
|
|
No such TFTP user
|
|
|
|
.IP "CURLE_CONV_FAILED (75)"
|
|
|
|
Character conversion failed
|
|
|
|
.IP "CURLE_CONV_REQD (76)"
|
|
|
|
Caller must register conversion callbacks
|
2002-04-10 21:24:45 +08:00
|
|
|
.SH "CURLMcode"
|
|
|
|
This is the generic return code used by functions in the libcurl multi
|
2005-05-17 06:30:00 +08:00
|
|
|
interface. Also consider \fIcurl_multi_strerror(3)\fP.
|
2004-04-13 22:27:47 +08:00
|
|
|
.IP "CURLM_CALL_MULTI_PERFORM (-1)"
|
|
|
|
This is not really an error. It means you should call
|
|
|
|
\fIcurl_multi_perform(3)\fP again without doing select() or similar in between.
|
|
|
|
.IP "CURLM_OK (0)"
|
|
|
|
Things are fine.
|
|
|
|
.IP "CURLM_BAD_HANDLE (1)"
|
|
|
|
The passed-in handle is not a valid CURLM handle.
|
|
|
|
.IP "CURLM_BAD_EASY_HANDLE (2)"
|
2006-10-12 22:30:47 +08:00
|
|
|
An easy handle was not good/valid. It could mean that it isn't an easy handle
|
|
|
|
at all, or possibly that the handle already is in used by this or another
|
|
|
|
multi handle.
|
2004-04-13 22:27:47 +08:00
|
|
|
.IP "CURLM_OUT_OF_MEMORY (3)"
|
|
|
|
You are doomed.
|
|
|
|
.IP "CURLM_INTERNAL_ERROR (4)"
|
|
|
|
This can only be returned if libcurl bugs. Please report it to us!
|
2006-01-04 22:09:42 +08:00
|
|
|
.IP "CURLM_BAD_SOCKET (5)"
|
|
|
|
The passed-in socket is not a valid one that libcurl already knows about.
|
2006-06-25 05:49:40 +08:00
|
|
|
(Added in 7.15.4)
|
2004-02-09 17:07:26 +08:00
|
|
|
.SH "CURLSHcode"
|
2004-04-27 15:05:40 +08:00
|
|
|
The "share" interface will return a CURLSHcode to indicate when an error has
|
2005-05-17 06:30:00 +08:00
|
|
|
occurred. Also consider \fIcurl_share_strerror(3)\fP.
|
2004-02-09 17:07:26 +08:00
|
|
|
.IP "CURLSHE_OK (0)"
|
|
|
|
All fine. Proceed as usual.
|
|
|
|
.IP "CURLSHE_BAD_OPTION (1)"
|
|
|
|
An invalid option was passed to the function.
|
|
|
|
.IP "CURLSHE_IN_USE (2)"
|
|
|
|
The share object is currently in use.
|
|
|
|
.IP "CURLSHE_INVALID (3)"
|
|
|
|
An invalid share object was passed to the function.
|
|
|
|
|