return code cleanup: build, init and run-time errors

Stop the abuse of CURLE_FAILED_INIT as return code for things not being
init related by introducing two new return codes:

CURLE_NOT_BUILT_IN and CURLE_UNKNOWN_OPTION

CURLE_NOT_BUILT_IN replaces return code 4 that has been obsoleted for
several years. It is used for returning error when something is
attempted to be used but the feature/option was not enabled or
explictitly disabled at build-time. Getting this error mostly means that
libcurl needs to be rebuilt.

CURLE_FAILED_INIT is now saved and used strictly for init
failures. Getting this problem means something went seriously wrong,
like a resource shortage or similar.

CURLE_UNKNOWN_OPTION is the option formerly known as
CURLE_UNKNOWN_TELNET_OPTION (and the old name is still present,
separately defined to be removed in a very distant future). This error
code is meant to be used to return when an option is given to libcurl
that isn't known. This problem would mostly indicate a problem in the
program that uses libcurl.
This commit is contained in:
Daniel Stenberg 2011-04-05 15:14:02 +02:00
Родитель 8321a367ee
Коммит 01f05d0c75
15 изменённых файлов: 58 добавлений и 41 удалений

Просмотреть файл

@ -5,7 +5,7 @@
.\" * | (__| |_| | _ <| |___ .\" * | (__| |_| | _ <| |___
.\" * \___|\___/|_| \_\_____| .\" * \___|\___/|_| \_\_____|
.\" * .\" *
.\" * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. .\" * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" * .\" *
.\" * This software is licensed as described in the file COPYING, which .\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms .\" * you should have received as part of this distribution. The terms
@ -44,9 +44,15 @@ can be a misspelled protocol string or just a protocol libcurl has no code
for. for.
.IP "CURLE_FAILED_INIT (2)" .IP "CURLE_FAILED_INIT (2)"
Very early initialization code failed. This is likely to be an internal error Very early initialization code failed. This is likely to be an internal error
or problem. or problem, or a resource problem where something fundamental couldn't get
done at init time.
.IP "CURLE_URL_MALFORMAT (3)" .IP "CURLE_URL_MALFORMAT (3)"
The URL was not properly formatted. The URL was not properly formatted.
.IP "CURLE_NOT_BUILT_IN (4)"
A requested feature, protocol or option was not found built-in in this libcurl
due to a build-time decision. This means that a feature or option was not
enabled or explicitly disabled when libcurl was built and in order to get it
to function you have to get a rebuilt libcurl.
.IP "CURLE_COULDNT_RESOLVE_PROXY (5)" .IP "CURLE_COULDNT_RESOLVE_PROXY (5)"
Couldn't resolve proxy. The given proxy host could not be resolved. Couldn't resolve proxy. The given proxy host could not be resolved.
.IP "CURLE_COULDNT_RESOLVE_HOST (6)" .IP "CURLE_COULDNT_RESOLVE_HOST (6)"
@ -145,9 +151,11 @@ CURLOPT_INTERFACE.
.IP "CURLE_TOO_MANY_REDIRECTS (47)" .IP "CURLE_TOO_MANY_REDIRECTS (47)"
Too many redirects. When following redirects, libcurl hit the maximum amount. Too many redirects. When following redirects, libcurl hit the maximum amount.
Set your limit with CURLOPT_MAXREDIRS. Set your limit with CURLOPT_MAXREDIRS.
.IP "CURLE_UNKNOWN_TELNET_OPTION (48)" .IP "CURLE_UNKNOWN_OPTION (48)"
An option set with CURLOPT_TELNETOPTIONS was not recognized/known. Refer to An option passed to libcurl is not recognized/known. Refer to the appropriate
the appropriate documentation. documentation. This is most likely a problem in the program that uses
libcurl. The error buffer might contain more specific information about which
exact option it concerns.
.IP "CURLE_TELNET_OPTION_SYNTAX (49)" .IP "CURLE_TELNET_OPTION_SYNTAX (49)"
A telnet option string was Illegally formatted. A telnet option string was Illegally formatted.
.IP "CURLE_PEER_FAILED_VERIFICATION (51)" .IP "CURLE_PEER_FAILED_VERIFICATION (51)"

Просмотреть файл

@ -82,6 +82,7 @@ CURLE_LDAP_SEARCH_FAILED 7.1
CURLE_LIBRARY_NOT_FOUND 7.1 7.17.0 CURLE_LIBRARY_NOT_FOUND 7.1 7.17.0
CURLE_LOGIN_DENIED 7.13.1 CURLE_LOGIN_DENIED 7.13.1
CURLE_MALFORMAT_USER 7.1 7.17.0 CURLE_MALFORMAT_USER 7.1 7.17.0
CURLE_NOT_BUILT_IN 7.21.5
CURLE_OK 7.1 CURLE_OK 7.1
CURLE_OPERATION_TIMEDOUT 7.10.2 CURLE_OPERATION_TIMEDOUT 7.10.2
CURLE_OPERATION_TIMEOUTED 7.1 7.17.0 CURLE_OPERATION_TIMEOUTED 7.1 7.17.0
@ -123,6 +124,7 @@ CURLE_TFTP_NOTFOUND 7.15.0
CURLE_TFTP_PERM 7.15.0 CURLE_TFTP_PERM 7.15.0
CURLE_TFTP_UNKNOWNID 7.15.0 CURLE_TFTP_UNKNOWNID 7.15.0
CURLE_TOO_MANY_REDIRECTS 7.5 CURLE_TOO_MANY_REDIRECTS 7.5
CURLE_UNKNOWN_OPTION 7.21.5
CURLE_UNKNOWN_TELNET_OPTION 7.7 CURLE_UNKNOWN_TELNET_OPTION 7.7
CURLE_UNSUPPORTED_PROTOCOL 7.1 CURLE_UNSUPPORTED_PROTOCOL 7.1
CURLE_UPLOAD_FAILED 7.16.3 CURLE_UPLOAD_FAILED 7.16.3

Просмотреть файл

@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -401,7 +401,8 @@ typedef enum {
CURLE_UNSUPPORTED_PROTOCOL, /* 1 */ CURLE_UNSUPPORTED_PROTOCOL, /* 1 */
CURLE_FAILED_INIT, /* 2 */ CURLE_FAILED_INIT, /* 2 */
CURLE_URL_MALFORMAT, /* 3 */ CURLE_URL_MALFORMAT, /* 3 */
CURLE_OBSOLETE4, /* 4 - NOT USED */ CURLE_NOT_BUILT_IN, /* 4 - [was obsoleted in August 2007 for
7.17.0, reused in April 2011 for 7.21.5] */
CURLE_COULDNT_RESOLVE_PROXY, /* 5 */ CURLE_COULDNT_RESOLVE_PROXY, /* 5 */
CURLE_COULDNT_RESOLVE_HOST, /* 6 */ CURLE_COULDNT_RESOLVE_HOST, /* 6 */
CURLE_COULDNT_CONNECT, /* 7 */ CURLE_COULDNT_CONNECT, /* 7 */
@ -451,7 +452,7 @@ typedef enum {
CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */ CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */
CURLE_OBSOLETE46, /* 46 - NOT USED */ CURLE_OBSOLETE46, /* 46 - NOT USED */
CURLE_TOO_MANY_REDIRECTS , /* 47 - catch endless re-direct loops */ CURLE_TOO_MANY_REDIRECTS , /* 47 - catch endless re-direct loops */
CURLE_UNKNOWN_TELNET_OPTION, /* 48 - User specified an unknown option */ CURLE_UNKNOWN_OPTION, /* 48 - User specified an unknown option */
CURLE_TELNET_OPTION_SYNTAX , /* 49 - Malformed telnet option */ CURLE_TELNET_OPTION_SYNTAX , /* 49 - Malformed telnet option */
CURLE_OBSOLETE50, /* 50 - NOT USED */ CURLE_OBSOLETE50, /* 50 - NOT USED */
CURLE_PEER_FAILED_VERIFICATION, /* 51 - peer's certificate or fingerprint CURLE_PEER_FAILED_VERIFICATION, /* 51 - peer's certificate or fingerprint
@ -518,6 +519,9 @@ typedef enum {
/* Backwards compatibility with older names */ /* Backwards compatibility with older names */
/* The following were added in 7.21.5, April 2011 */
#define CURLE_UNKNOWN_TELNET_OPTION CURLE_UNKNOWN_OPTION
/* The following were added in 7.17.1 */ /* The following were added in 7.17.1 */
/* These are scheduled to disappear by 2009 */ /* These are scheduled to disappear by 2009 */
#define CURLE_SSL_PEER_CERTIFICATE CURLE_PEER_FAILED_VERIFICATION #define CURLE_SSL_PEER_CERTIFICATE CURLE_PEER_FAILED_VERIFICATION

Просмотреть файл

@ -51,8 +51,8 @@ int Curl_axtls_check_cxn(struct connectdata *conn);
#define curlssl_close_all Curl_axtls_close_all #define curlssl_close_all Curl_axtls_close_all
#define curlssl_close Curl_axtls_close #define curlssl_close Curl_axtls_close
#define curlssl_shutdown(x,y) Curl_axtls_shutdown(x,y) #define curlssl_shutdown(x,y) Curl_axtls_shutdown(x,y)
#define curlssl_set_engine(x,y) (x=x, y=y, CURLE_FAILED_INIT) #define curlssl_set_engine(x,y) (x=x, y=y, CURLE_NOT_BUILT_IN)
#define curlssl_set_engine_default(x) (x=x, CURLE_FAILED_INIT) #define curlssl_set_engine_default(x) (x=x, CURLE_NOT_BUILT_IN)
#define curlssl_engines_list(x) (x=x, (struct curl_slist *)NULL) #define curlssl_engines_list(x) (x=x, (struct curl_slist *)NULL)
#define curlssl_version Curl_axtls_version #define curlssl_version Curl_axtls_version
#define curlssl_check_cxn(x) Curl_axtls_check_cxn(x) #define curlssl_check_cxn(x) Curl_axtls_check_cxn(x)

Просмотреть файл

@ -52,8 +52,8 @@ CURLcode Curl_cyassl_connect_nonblocking(struct connectdata *conn,
#define curlssl_close_all Curl_cyassl_close_all #define curlssl_close_all Curl_cyassl_close_all
#define curlssl_close Curl_cyassl_close #define curlssl_close Curl_cyassl_close
#define curlssl_shutdown(x,y) Curl_cyassl_shutdown(x,y) #define curlssl_shutdown(x,y) Curl_cyassl_shutdown(x,y)
#define curlssl_set_engine(x,y) (x=x, y=y, CURLE_FAILED_INIT) #define curlssl_set_engine(x,y) (x=x, y=y, CURLE_NOT_BUILT_IN)
#define curlssl_set_engine_default(x) (x=x, CURLE_FAILED_INIT) #define curlssl_set_engine_default(x) (x=x, CURLE_NOT_BUILT_IN)
#define curlssl_engines_list(x) (x=x, (struct curl_slist *)NULL) #define curlssl_engines_list(x) (x=x, (struct curl_slist *)NULL)
#define curlssl_version Curl_cyassl_version #define curlssl_version Curl_cyassl_version
#define curlssl_check_cxn(x) (x=x, -1) #define curlssl_check_cxn(x) (x=x, -1)

Просмотреть файл

@ -2456,7 +2456,7 @@ static CURLcode ftp_statemach_act(struct connectdata *conn)
default: default:
failf(data, "unsupported parameter to CURLOPT_FTPSSLAUTH: %d", failf(data, "unsupported parameter to CURLOPT_FTPSSLAUTH: %d",
(int)data->set.ftpsslauth); (int)data->set.ftpsslauth);
return CURLE_FAILED_INIT; /* we don't know what to do */ return CURLE_UNKNOWN_OPTION; /* we don't know what to do */
} }
PPSENDF(&ftpc->pp, "AUTH %s", ftpauth[ftpc->count1]); PPSENDF(&ftpc->pp, "AUTH %s", ftpauth[ftpc->count1]);
state(conn, FTP_AUTH); state(conn, FTP_AUTH);

Просмотреть файл

@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -52,8 +52,8 @@ int Curl_gtls_seed(struct SessionHandle *data);
#define curlssl_close_all Curl_gtls_close_all #define curlssl_close_all Curl_gtls_close_all
#define curlssl_close Curl_gtls_close #define curlssl_close Curl_gtls_close
#define curlssl_shutdown(x,y) Curl_gtls_shutdown(x,y) #define curlssl_shutdown(x,y) Curl_gtls_shutdown(x,y)
#define curlssl_set_engine(x,y) (x=x, y=y, CURLE_FAILED_INIT) #define curlssl_set_engine(x,y) (x=x, y=y, CURLE_NOT_BUILT_IN)
#define curlssl_set_engine_default(x) (x=x, CURLE_FAILED_INIT) #define curlssl_set_engine_default(x) (x=x, CURLE_NOT_BUILT_IN)
#define curlssl_engines_list(x) (x=x, (struct curl_slist *)NULL) #define curlssl_engines_list(x) (x=x, (struct curl_slist *)NULL)
#define curlssl_version Curl_gtls_version #define curlssl_version Curl_gtls_version
#define curlssl_check_cxn(x) (x=x, -1) #define curlssl_check_cxn(x) (x=x, -1)

Просмотреть файл

@ -29,5 +29,5 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
#define PROXY_TIMEOUT (3600*1000) #define PROXY_TIMEOUT (3600*1000)
#else #else
#define Curl_proxyCONNECT(x,y,x,w) CURLE_FAILED_INIT #define Curl_proxyCONNECT(x,y,x,w) CURLE_NOT_BUILT_IN
#endif #endif

Просмотреть файл

@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -60,8 +60,8 @@ CURLcode Curl_nss_force_init(struct SessionHandle *data);
#define curlssl_close Curl_nss_close #define curlssl_close Curl_nss_close
/* NSS has no shutdown function provided and thus always fail */ /* NSS has no shutdown function provided and thus always fail */
#define curlssl_shutdown(x,y) (x=x, y=y, 1) #define curlssl_shutdown(x,y) (x=x, y=y, 1)
#define curlssl_set_engine(x,y) (x=x, y=y, CURLE_FAILED_INIT) #define curlssl_set_engine(x,y) (x=x, y=y, CURLE_NOT_BUILT_IN)
#define curlssl_set_engine_default(x) (x=x, CURLE_FAILED_INIT) #define curlssl_set_engine_default(x) (x=x, CURLE_NOT_BUILT_IN)
#define curlssl_engines_list(x) (x=x, (struct curl_slist *)NULL) #define curlssl_engines_list(x) (x=x, (struct curl_slist *)NULL)
#define curlssl_version Curl_nss_version #define curlssl_version Curl_nss_version
#define curlssl_check_cxn(x) Curl_nss_check_cxn(x) #define curlssl_check_cxn(x) Curl_nss_check_cxn(x)

Просмотреть файл

@ -46,8 +46,8 @@ int Curl_polarssl_shutdown(struct connectdata *conn, int sockindex);
#define curlssl_close_all Curl_polarssl_close_all #define curlssl_close_all Curl_polarssl_close_all
#define curlssl_close Curl_polarssl_close #define curlssl_close Curl_polarssl_close
#define curlssl_shutdown(x,y) 0 #define curlssl_shutdown(x,y) 0
#define curlssl_set_engine(x,y) (x=x, y=y, CURLE_FAILED_INIT) #define curlssl_set_engine(x,y) (x=x, y=y, CURLE_NOT_BUILT_IN)
#define curlssl_set_engine_default(x) (x=x, CURLE_FAILED_INIT) #define curlssl_set_engine_default(x) (x=x, CURLE_NOT_BUILT_IN)
#define curlssl_engines_list(x) (x=x, (struct curl_slist *)NULL) #define curlssl_engines_list(x) (x=x, (struct curl_slist *)NULL)
#define curlssl_version Curl_polarssl_version #define curlssl_version Curl_polarssl_version
#define curlssl_check_cxn(x) (x=x, -1) #define curlssl_check_cxn(x) (x=x, -1)

Просмотреть файл

@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -49,8 +49,8 @@ int Curl_qsossl_check_cxn(struct connectdata * cxn);
#define curlssl_close_all Curl_qsossl_close_all #define curlssl_close_all Curl_qsossl_close_all
#define curlssl_close Curl_qsossl_close #define curlssl_close Curl_qsossl_close
#define curlssl_shutdown(x,y) Curl_qsossl_shutdown(x,y) #define curlssl_shutdown(x,y) Curl_qsossl_shutdown(x,y)
#define curlssl_set_engine(x,y) CURLE_FAILED_INIT #define curlssl_set_engine(x,y) CURLE_NOT_BUILT_IN
#define curlssl_set_engine_default(x) CURLE_FAILED_INIT #define curlssl_set_engine_default(x) CURLE_NOT_BUILT_IN
#define curlssl_engines_list(x) NULL #define curlssl_engines_list(x) NULL
#define curlssl_version Curl_qsossl_version #define curlssl_version Curl_qsossl_version
#define curlssl_check_cxn(x) Curl_qsossl_check_cxn(x) #define curlssl_check_cxn(x) Curl_qsossl_check_cxn(x)

Просмотреть файл

@ -25,8 +25,8 @@
#include "setup.h" #include "setup.h"
#ifdef CURL_DISABLE_PROXY #ifdef CURL_DISABLE_PROXY
#define Curl_SOCKS4(a,b,c,d,e,f) CURLE_FAILED_INIT #define Curl_SOCKS4(a,b,c,d,e,f) CURLE_NOT_BUILT_IN
#define Curl_SOCKS5(a,b,c,d,e,f) CURLE_FAILED_INIT #define Curl_SOCKS5(a,b,c,d,e,f) CURLE_NOT_BUILT_IN
#else #else
/* /*
* Helper read-from-socket functions. Does the same as Curl_read() but it * Helper read-from-socket functions. Does the same as Curl_read() but it

Просмотреть файл

@ -72,12 +72,12 @@ void Curl_ssl_delsessionid(struct connectdata *conn, void *ssl_sessionid);
/* When SSL support is not present, just define away these function calls */ /* When SSL support is not present, just define away these function calls */
#define Curl_ssl_init() 1 #define Curl_ssl_init() 1
#define Curl_ssl_cleanup() do { } while (0) #define Curl_ssl_cleanup() do { } while (0)
#define Curl_ssl_connect(x,y) CURLE_FAILED_INIT #define Curl_ssl_connect(x,y) CURLE_NOT_BUILT_IN
#define Curl_ssl_close_all(x) #define Curl_ssl_close_all(x)
#define Curl_ssl_close(x,y) #define Curl_ssl_close(x,y)
#define Curl_ssl_shutdown(x,y) CURLE_FAILED_INIT #define Curl_ssl_shutdown(x,y) CURLE_NOT_BUILT_IN
#define Curl_ssl_set_engine(x,y) CURLE_FAILED_INIT #define Curl_ssl_set_engine(x,y) CURLE_NOT_BUILT_IN
#define Curl_ssl_set_engine_default(x) CURLE_FAILED_INIT #define Curl_ssl_set_engine_default(x) CURLE_NOT_BUILT_IN
#define Curl_ssl_engines_list(x) NULL #define Curl_ssl_engines_list(x) NULL
#define Curl_ssl_send(a,b,c,d,e) -1 #define Curl_ssl_send(a,b,c,d,e) -1
#define Curl_ssl_recv(a,b,c,d,e) -1 #define Curl_ssl_recv(a,b,c,d,e) -1
@ -86,7 +86,7 @@ void Curl_ssl_delsessionid(struct connectdata *conn, void *ssl_sessionid);
#define Curl_ssl_data_pending(x,y) 0 #define Curl_ssl_data_pending(x,y) 0
#define Curl_ssl_check_cxn(x) 0 #define Curl_ssl_check_cxn(x) 0
#define Curl_ssl_free_certinfo(x) #define Curl_ssl_free_certinfo(x)
#define Curl_ssl_connect_nonblocking(x,y,z) CURLE_FAILED_INIT #define Curl_ssl_connect_nonblocking(x,y,z) CURLE_NOT_BUILT_IN
#endif #endif
#endif /* USE_SSL */ #endif /* USE_SSL */

Просмотреть файл

@ -65,6 +65,10 @@ curl_easy_strerror(CURLcode error)
case CURLE_URL_MALFORMAT: case CURLE_URL_MALFORMAT:
return "URL using bad/illegal format or missing URL"; return "URL using bad/illegal format or missing URL";
case CURLE_NOT_BUILT_IN:
return "A requested feature, protocol or option was not found built-in in"
" this libcurl due to a build-time decision.";
case CURLE_COULDNT_RESOLVE_PROXY: case CURLE_COULDNT_RESOLVE_PROXY:
return "Couldn't resolve proxy name"; return "Couldn't resolve proxy name";
@ -167,8 +171,8 @@ curl_easy_strerror(CURLcode error)
case CURLE_TOO_MANY_REDIRECTS : case CURLE_TOO_MANY_REDIRECTS :
return "Number of redirects hit maximum amount"; return "Number of redirects hit maximum amount";
case CURLE_UNKNOWN_TELNET_OPTION: case CURLE_UNKNOWN_OPTION:
return "User specified an unknown telnet option"; return "An unknown option was passed in to libcurl";
case CURLE_TELNET_OPTION_SYNTAX : case CURLE_TELNET_OPTION_SYNTAX :
return "Malformed telnet option"; return "Malformed telnet option";
@ -282,7 +286,6 @@ curl_easy_strerror(CURLcode error)
return "Chunk callback failed"; return "Chunk callback failed";
/* error codes not used by current libcurl */ /* error codes not used by current libcurl */
case CURLE_OBSOLETE4:
case CURLE_OBSOLETE10: case CURLE_OBSOLETE10:
case CURLE_OBSOLETE12: case CURLE_OBSOLETE12:
case CURLE_OBSOLETE16: case CURLE_OBSOLETE16:

Просмотреть файл

@ -988,7 +988,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
break; break;
default: default:
/* reserve other values for future use */ /* reserve other values for future use */
result = CURLE_FAILED_INIT; result = CURLE_UNKNOWN_OPTION;
break; break;
} }
break; break;
@ -1428,7 +1428,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
auth &= ~CURLAUTH_GSSNEGOTIATE; /* no GSS-Negotiate without GSSAPI or WINDOWS_SSPI */ auth &= ~CURLAUTH_GSSNEGOTIATE; /* no GSS-Negotiate without GSSAPI or WINDOWS_SSPI */
#endif #endif
if(!auth) if(!auth)
return CURLE_FAILED_INIT; /* no supported types left! */ return CURLE_NOT_BUILT_IN; /* no supported types left! */
data->set.httpauth = auth; data->set.httpauth = auth;
} }
@ -1488,7 +1488,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
auth &= ~CURLAUTH_GSSNEGOTIATE; /* no GSS-Negotiate without GSSAPI or WINDOWS_SSPI */ auth &= ~CURLAUTH_GSSNEGOTIATE; /* no GSS-Negotiate without GSSAPI or WINDOWS_SSPI */
#endif #endif
if(!auth) if(!auth)
return CURLE_FAILED_INIT; /* no supported types left! */ return CURLE_NOT_BUILT_IN; /* no supported types left! */
data->set.proxyauth = auth; data->set.proxyauth = auth;
} }
@ -1528,7 +1528,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
break; break;
default: default:
/* reserve other values for future use */ /* reserve other values for future use */
result = CURLE_FAILED_INIT; result = CURLE_UNKNOWN_OPTION;
break; break;
} }
break; break;
@ -2518,7 +2518,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
#endif #endif
default: default:
/* unknown tag and its companion, just ignore: */ /* unknown tag and its companion, just ignore: */
result = CURLE_FAILED_INIT; /* correct this */ result = CURLE_UNKNOWN_OPTION;
break; break;
} }