260 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			260 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\" **************************************************************************
 | 
						|
.\" *                                  _   _ ____  _
 | 
						|
.\" *  Project                     ___| | | |  _ \| |
 | 
						|
.\" *                             / __| | | | |_) | |
 | 
						|
.\" *                            | (__| |_| |  _ <| |___
 | 
						|
.\" *                             \___|\___/|_| \_\_____|
 | 
						|
.\" *
 | 
						|
.\" * Copyright (C) 1998 - 2008, 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 http://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.
 | 
						|
.\" *
 | 
						|
.\" * $Id: libcurl-errors.3,v 1.34 2008-06-08 21:04:47 bagder Exp $
 | 
						|
.\" **************************************************************************
 | 
						|
.\"
 | 
						|
.TH libcurl-errors 3 "8 Jun 2008" "libcurl 7.19.0" "libcurl errors"
 | 
						|
.SH NAME
 | 
						|
libcurl-errors \- 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 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.
 | 
						|
 | 
						|
CURLcode is one of the following:
 | 
						|
.IP "CURLE_OK (0)"
 | 
						|
All fine. Proceed as usual.
 | 
						|
.IP "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.
 | 
						|
.IP "CURLE_FAILED_INIT (2)"
 | 
						|
Very early initialization code failed. This is likely to be an internal error
 | 
						|
or problem.
 | 
						|
.IP "CURLE_URL_MALFORMAT (3)"
 | 
						|
The URL was not properly formatted.
 | 
						|
.IP "CURLE_COULDNT_RESOLVE_PROXY (5)"
 | 
						|
Couldn't resolve proxy. The given proxy host could not be resolved.
 | 
						|
.IP "CURLE_COULDNT_RESOLVE_HOST (6)"
 | 
						|
Couldn't resolve host. The given remote host was not resolved.
 | 
						|
.IP "CURLE_COULDNT_CONNECT (7)"
 | 
						|
Failed to connect() to host or proxy.
 | 
						|
.IP "CURLE_FTP_WEIRD_SERVER_REPLY (8)"
 | 
						|
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.
 | 
						|
.IP "CURLE_REMOTE_ACCESS_DENIED (9)"
 | 
						|
We were denied access to the resource given in the URL.  For FTP, this occurs
 | 
						|
while trying to change to the remote directory.
 | 
						|
.IP "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.
 | 
						|
.IP "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.
 | 
						|
.IP "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.
 | 
						|
.IP "CURLE_FTP_CANT_GET_HOST (15)"
 | 
						|
An internal failure to lookup the host used for the new connection.
 | 
						|
.IP "CURLE_FTP_COULDNT_SET_TYPE (17)"
 | 
						|
Received an error when trying to set the transfer mode to binary or ascii.
 | 
						|
.IP "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.
 | 
						|
.IP "CURLE_FTP_COULDNT_RETR_FILE (19)"
 | 
						|
This was either a weird reply to a 'RETR' command or a zero byte transfer
 | 
						|
complete.
 | 
						|
.IP "CURLE_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 (for FTP) or otherwise
 | 
						|
indicated unsuccessful completion of the command.
 | 
						|
.IP "CURLE_HTTP_RETURNED_ERROR (22)"
 | 
						|
This is returned if CURLOPT_FAILONERROR is set TRUE and the HTTP server
 | 
						|
returns an error code that is >= 400. (This error code was formerly known as
 | 
						|
CURLE_HTTP_NOT_FOUND.)
 | 
						|
.IP "CURLE_WRITE_ERROR (23)"
 | 
						|
An error occurred when writing received data to a local file, or an error was
 | 
						|
returned to libcurl from a write callback.
 | 
						|
.IP "CURLE_UPLOAD_FAILED (25)"
 | 
						|
Failed starting the upload. For FTP, the server typically denied the STOR
 | 
						|
command. The error buffer usually contains the server's explanation to this.
 | 
						|
(This error code was formerly known as CURLE_FTP_COULDNT_STOR_FILE.)
 | 
						|
.IP "CURLE_READ_ERROR (26)"
 | 
						|
There was a problem reading a local file or an error returned by the read
 | 
						|
callback.
 | 
						|
.IP "CURLE_OUT_OF_MEMORY (27)"
 | 
						|
A memory allocation request failed. This is serious badness and
 | 
						|
things are severely screwed up if this ever occur.
 | 
						|
.IP "CURLE_OPERATION_TIMEDOUT (28)"
 | 
						|
Operation timeout. The specified time-out period was reached according to the
 | 
						|
conditions.
 | 
						|
.IP "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.
 | 
						|
.IP "CURLE_FTP_COULDNT_USE_REST (31)"
 | 
						|
The FTP REST command returned error. This should never happen if the server is
 | 
						|
sane.
 | 
						|
.IP "CURLE_RANGE_ERROR (33)"
 | 
						|
The server does not support or accept range requests.
 | 
						|
.IP "CURLE_HTTP_POST_ERROR (34)"
 | 
						|
This is an odd error that mainly occurs due to internal confusion.
 | 
						|
.IP "CURLE_SSL_CONNECT_ERROR (35)"
 | 
						|
A problem occurred 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.
 | 
						|
.IP "CURLE_FTP_BAD_DOWNLOAD_RESUME (36)"
 | 
						|
Attempting FTP resume beyond file size.
 | 
						|
.IP "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?
 | 
						|
.IP "CURLE_LDAP_CANNOT_BIND (38)"
 | 
						|
LDAP cannot bind. LDAP bind operation failed.
 | 
						|
.IP "CURLE_LDAP_SEARCH_FAILED (39)"
 | 
						|
LDAP search failed.
 | 
						|
.IP "CURLE_FUNCTION_NOT_FOUND (41)"
 | 
						|
Function not found. A required zlib function was not found.
 | 
						|
.IP "CURLE_ABORTED_BY_CALLBACK (42)"
 | 
						|
Aborted by callback. A callback returned "abort" to libcurl.
 | 
						|
.IP "CURLE_BAD_FUNCTION_ARGUMENT (43)"
 | 
						|
Internal error. A function was called with a bad parameter.
 | 
						|
.IP "CURLE_INTERFACE_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. (This error code was formerly known as
 | 
						|
CURLE_HTTP_PORT_FAILED.)
 | 
						|
.IP "CURLE_TOO_MANY_REDIRECTS (47)"
 | 
						|
Too many redirects. When following redirects, libcurl hit the maximum amount.
 | 
						|
Set your limit with CURLOPT_MAXREDIRS.
 | 
						|
.IP "CURLE_UNKNOWN_TELNET_OPTION (48)"
 | 
						|
An option set with CURLOPT_TELNETOPTIONS was not recognized/known. Refer to
 | 
						|
the appropriate documentation.
 | 
						|
.IP "CURLE_TELNET_OPTION_SYNTAX (49)"
 | 
						|
A telnet option string was Illegally formatted.
 | 
						|
.IP "CURLE_PEER_FAILED_VERIFICATION (51)"
 | 
						|
The remote server's SSL certificate or SSH md5 fingerprint was deemed not OK.
 | 
						|
.IP "CURLE_GOT_NOTHING (52)"
 | 
						|
Nothing was returned from the server, and under the circumstances, getting
 | 
						|
nothing is considered an error.
 | 
						|
.IP "CURLE_SSL_ENGINE_NOTFOUND (53)"
 | 
						|
The specified crypto engine wasn't found.
 | 
						|
.IP "CURLE_SSL_ENGINE_SETFAILED (54)"
 | 
						|
Failed setting the selected SSL crypto engine as default!
 | 
						|
.IP "CURLE_SEND_ERROR (55)"
 | 
						|
Failed sending network data.
 | 
						|
.IP "CURLE_RECV_ERROR (56)"
 | 
						|
Failure with receiving network data.
 | 
						|
.IP "CURLE_SSL_CERTPROBLEM (58)"
 | 
						|
problem with the local client certificate
 | 
						|
.IP "CURLE_SSL_CIPHER (59)"
 | 
						|
Couldn't use specified cipher
 | 
						|
.IP "CURLE_SSL_CACERT (60)"
 | 
						|
Peer certificate cannot be authenticated with known CA certificates
 | 
						|
.IP "CURLE_BAD_CONTENT_ENCODING (61)"
 | 
						|
Unrecognized transfer encoding
 | 
						|
.IP "CURLE_LDAP_INVALID_URL (62)"
 | 
						|
Invalid LDAP URL
 | 
						|
.IP "CURLE_FILESIZE_EXCEEDED (63)"
 | 
						|
Maximum file size exceeded
 | 
						|
.IP "CURLE_USE_SSL_FAILED (64)"
 | 
						|
Requested FTP SSL level failed
 | 
						|
.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)
 | 
						|
.IP "CURLE_TFTP_NOTFOUND (68)"
 | 
						|
File not found on TFTP server
 | 
						|
.IP "CURLE_TFTP_PERM (69)"
 | 
						|
Permission problem on TFTP server
 | 
						|
.IP "CURLE_REMOTE_DISK_FULL (70)"
 | 
						|
Out of disk space on the server
 | 
						|
.IP "CURLE_TFTP_ILLEGAL (71)"
 | 
						|
Illegal TFTP operation
 | 
						|
.IP "CURLE_TFTP_UNKNOWNID (72)"
 | 
						|
Unknown TFTP transfer ID
 | 
						|
.IP "CURLE_REMOTE_FILE_EXISTS (73)"
 | 
						|
File already exists and will not be overwritten
 | 
						|
.IP "CURLE_TFTP_NOSUCHUSER (74)"
 | 
						|
This error should never be returned by a properly functioning TFTP server
 | 
						|
.IP "CURLE_CONV_FAILED (75)"
 | 
						|
Character conversion failed
 | 
						|
.IP "CURLE_CONV_REQD (76)"
 | 
						|
Caller must register conversion callbacks
 | 
						|
.IP "CURLE_SSL_CACERT_BADFILE (77)"
 | 
						|
Problem with reading the SSL CA cert (path? access rights?)
 | 
						|
.IP "CURLE_REMOTE_FILE_NOT_FOUND (78)"
 | 
						|
The resource referenced in the URL does not exist
 | 
						|
.IP "CURLE_SSH (79)"
 | 
						|
An unspecified error occurred during the SSH session
 | 
						|
.IP "CURLE_SSL_SHUTDOWN_FAILED (80)"
 | 
						|
Failed to shut down the SSL connection
 | 
						|
.IP "CURLE_AGAIN (81)"
 | 
						|
Socket is not ready for send/recv wait till it's ready and try again. This
 | 
						|
return code is only returned from \fIcurl_easy_recv(3)\fP and
 | 
						|
\fIcurl_easy_send(3)\fP (Added in 7.18.2)
 | 
						|
.IP "CURLE_SSL_CRL_BADFILE (82)"
 | 
						|
Failed to load CRL file (Added in 7.19.0)
 | 
						|
.IP "CURLE_SSL_ISSUER_ERROR (83)"
 | 
						|
Issuer check failed (Added in 7.19.0)
 | 
						|
.IP "CURLE_OBSOLETE*"
 | 
						|
These error codes will never be returned. They used to be used in an old libcurl
 | 
						|
version and are currently unused.
 | 
						|
.SH "CURLMcode"
 | 
						|
This is the generic return code used by functions in the libcurl multi
 | 
						|
interface. Also consider \fIcurl_multi_strerror(3)\fP.
 | 
						|
.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)"
 | 
						|
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.
 | 
						|
.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!
 | 
						|
.IP "CURLM_BAD_SOCKET (5)"
 | 
						|
The passed-in socket is not a valid one that libcurl already knows about.
 | 
						|
(Added in 7.15.4)
 | 
						|
.IP "CURLM_UNKNOWN_OPTION (6)"
 | 
						|
curl_multi_setopt() with unsupported option
 | 
						|
(Added in 7.15.4)
 | 
						|
.SH "CURLSHcode"
 | 
						|
The "share" interface will return a CURLSHcode to indicate when an error has
 | 
						|
occurred.  Also consider \fIcurl_share_strerror(3)\fP.
 | 
						|
.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.
 | 
						|
.IP "CURLSHE_NOMEM (4)"
 | 
						|
Not enough memory was available.
 | 
						|
(Added in 7.12.0)
 |