diff --git a/msvc/lcurl.vcproj b/msvc/lcurl.vcproj
index 80bcd0a..c82ac65 100644
--- a/msvc/lcurl.vcproj
+++ b/msvc/lcurl.vcproj
@@ -211,6 +211,22 @@
RelativePath="..\src\lceasy.h"
>
+
+
+
+
+
+
+
+
diff --git a/src/lcerr_easy.h b/src/lcerr_easy.h
new file mode 100644
index 0000000..2ddd56b
--- /dev/null
+++ b/src/lcerr_easy.h
@@ -0,0 +1,96 @@
+ERR_ENTRY ( OK )
+ERR_ENTRY ( UNSUPPORTED_PROTOCOL )
+ERR_ENTRY ( FAILED_INIT )
+ERR_ENTRY ( URL_MALFORMAT )
+ERR_ENTRY ( NOT_BUILT_IN )
+ERR_ENTRY ( COULDNT_RESOLVE_PROXY )
+ERR_ENTRY ( COULDNT_RESOLVE_HOST )
+ERR_ENTRY ( COULDNT_CONNECT )
+ERR_ENTRY ( FTP_WEIRD_SERVER_REPLY )
+ERR_ENTRY ( REMOTE_ACCESS_DENIED )
+#if LCURL_CURL_VER_GE(7,31,0)
+ERR_ENTRY ( FTP_ACCEPT_FAILED )
+#endif
+ERR_ENTRY ( FTP_WEIRD_PASS_REPLY )
+#if LCURL_CURL_VER_GE(7,24,0)
+ERR_ENTRY ( FTP_ACCEPT_TIMEOUT )
+#endif
+ERR_ENTRY ( FTP_WEIRD_PASV_REPLY )
+ERR_ENTRY ( FTP_WEIRD_227_FORMAT )
+ERR_ENTRY ( FTP_CANT_GET_HOST )
+ERR_ENTRY ( OBSOLETE16 )
+ERR_ENTRY ( FTP_COULDNT_SET_TYPE )
+ERR_ENTRY ( PARTIAL_FILE )
+ERR_ENTRY ( FTP_COULDNT_RETR_FILE )
+ERR_ENTRY ( OBSOLETE20 )
+ERR_ENTRY ( QUOTE_ERROR )
+ERR_ENTRY ( HTTP_RETURNED_ERROR )
+ERR_ENTRY ( WRITE_ERROR )
+ERR_ENTRY ( OBSOLETE24 )
+ERR_ENTRY ( UPLOAD_FAILED )
+ERR_ENTRY ( READ_ERROR )
+ERR_ENTRY ( OUT_OF_MEMORY )
+ERR_ENTRY ( OPERATION_TIMEDOUT )
+ERR_ENTRY ( OBSOLETE29 )
+ERR_ENTRY ( FTP_PORT_FAILED )
+ERR_ENTRY ( FTP_COULDNT_USE_REST )
+ERR_ENTRY ( OBSOLETE32 )
+ERR_ENTRY ( RANGE_ERROR )
+ERR_ENTRY ( HTTP_POST_ERROR )
+ERR_ENTRY ( SSL_CONNECT_ERROR )
+ERR_ENTRY ( BAD_DOWNLOAD_RESUME )
+ERR_ENTRY ( FILE_COULDNT_READ_FILE )
+ERR_ENTRY ( LDAP_CANNOT_BIND )
+ERR_ENTRY ( LDAP_SEARCH_FAILED )
+ERR_ENTRY ( OBSOLETE40 )
+ERR_ENTRY ( FUNCTION_NOT_FOUND )
+ERR_ENTRY ( ABORTED_BY_CALLBACK )
+ERR_ENTRY ( BAD_FUNCTION_ARGUMENT )
+ERR_ENTRY ( OBSOLETE44 )
+ERR_ENTRY ( INTERFACE_FAILED )
+ERR_ENTRY ( OBSOLETE46 )
+ERR_ENTRY ( TOO_MANY_REDIRECTS )
+ERR_ENTRY ( UNKNOWN_OPTION )
+ERR_ENTRY ( TELNET_OPTION_SYNTAX )
+ERR_ENTRY ( OBSOLETE50 )
+ERR_ENTRY ( PEER_FAILED_VERIFICATION )
+ERR_ENTRY ( GOT_NOTHING )
+ERR_ENTRY ( SSL_ENGINE_NOTFOUND )
+ERR_ENTRY ( SSL_ENGINE_SETFAILED )
+ERR_ENTRY ( SEND_ERROR )
+ERR_ENTRY ( RECV_ERROR )
+ERR_ENTRY ( OBSOLETE57 )
+ERR_ENTRY ( SSL_CERTPROBLEM )
+ERR_ENTRY ( SSL_CIPHER )
+ERR_ENTRY ( SSL_CACERT )
+ERR_ENTRY ( BAD_CONTENT_ENCODING )
+ERR_ENTRY ( LDAP_INVALID_URL )
+ERR_ENTRY ( FILESIZE_EXCEEDED )
+ERR_ENTRY ( USE_SSL_FAILED )
+ERR_ENTRY ( SEND_FAIL_REWIND )
+ERR_ENTRY ( SSL_ENGINE_INITFAILED )
+ERR_ENTRY ( LOGIN_DENIED )
+ERR_ENTRY ( TFTP_NOTFOUND )
+ERR_ENTRY ( TFTP_PERM )
+ERR_ENTRY ( REMOTE_DISK_FULL )
+ERR_ENTRY ( TFTP_ILLEGAL )
+ERR_ENTRY ( TFTP_UNKNOWNID )
+ERR_ENTRY ( REMOTE_FILE_EXISTS )
+ERR_ENTRY ( TFTP_NOSUCHUSER )
+ERR_ENTRY ( CONV_FAILED )
+ERR_ENTRY ( CONV_REQD )
+ERR_ENTRY ( SSL_CACERT_BADFILE )
+ERR_ENTRY ( REMOTE_FILE_NOT_FOUND )
+ERR_ENTRY ( SSH )
+ERR_ENTRY ( SSL_SHUTDOWN_FAILED )
+ERR_ENTRY ( AGAIN )
+ERR_ENTRY ( SSL_CRL_BADFILE )
+ERR_ENTRY ( SSL_ISSUER_ERROR )
+ERR_ENTRY ( FTP_PRET_FAILED )
+ERR_ENTRY ( RTSP_CSEQ_ERROR )
+ERR_ENTRY ( RTSP_SESSION_ERROR )
+ERR_ENTRY ( FTP_BAD_FILE_LIST )
+ERR_ENTRY ( CHUNK_FAILED )
+#if LCURL_CURL_VER_GE(7,30,0)
+ERR_ENTRY ( NO_CONNECTION_AVAILABLE )
+#endif
diff --git a/src/lcerr_form.h b/src/lcerr_form.h
new file mode 100644
index 0000000..60ca8ce
--- /dev/null
+++ b/src/lcerr_form.h
@@ -0,0 +1,8 @@
+ERR_ENTRY ( OK )
+ERR_ENTRY ( MEMORY )
+ERR_ENTRY ( OPTION_TWICE )
+ERR_ENTRY ( NULL )
+ERR_ENTRY ( UNKNOWN_OPTION )
+ERR_ENTRY ( INCOMPLETE )
+ERR_ENTRY ( ILLEGAL_ARRAY )
+ERR_ENTRY ( DISABLED )
diff --git a/src/lcerr_multi.h b/src/lcerr_multi.h
new file mode 100644
index 0000000..37d3b44
--- /dev/null
+++ b/src/lcerr_multi.h
@@ -0,0 +1,11 @@
+ERR_ENTRY ( OK )
+ERR_ENTRY ( CALL_MULTI_PERFORM )
+ERR_ENTRY ( BAD_HANDLE )
+ERR_ENTRY ( BAD_EASY_HANDLE )
+ERR_ENTRY ( OUT_OF_MEMORY )
+ERR_ENTRY ( INTERNAL_ERROR )
+ERR_ENTRY ( BAD_SOCKET )
+ERR_ENTRY ( UNKNOWN_OPTION )
+#if LCURL_CURL_VER_GE(7,32,1)
+ERR_ENTRY ( ADDED_ALREADY )
+#endif
diff --git a/src/lcerr_share.h b/src/lcerr_share.h
new file mode 100644
index 0000000..7027c2a
--- /dev/null
+++ b/src/lcerr_share.h
@@ -0,0 +1,8 @@
+ERR_ENTRY ( OK )
+ERR_ENTRY ( BAD_OPTION )
+ERR_ENTRY ( IN_USE )
+ERR_ENTRY ( INVALID )
+ERR_ENTRY ( NOMEM )
+#if LCURL_CURL_VER_GE(7,23,0)
+ERR_ENTRY ( NOT_BUILT_IN )
+#endif
diff --git a/src/lcerror.c b/src/lcerror.c
index 6b5593c..8c3d44a 100644
--- a/src/lcerror.c
+++ b/src/lcerror.c
@@ -11,6 +11,7 @@
#include "lcurl.h"
#include "lcerror.h"
#include
+#include "lcutils.h"
#define LCURL_ERROR_NAME LCURL_PREFIX" Error"
static const char *LCURL_ERROR = LCURL_ERROR_NAME;
@@ -23,162 +24,42 @@ typedef struct lcurl_error_tag{
//{
static const char* lcurl_err_easy_mnemo(int err){
-#define RETURN_IF(E) case CURLE_##E: return #E;
+#define ERR_ENTRY(E) case CURLE_##E: return #E;
switch (err){
- RETURN_IF ( OK )
- RETURN_IF ( UNSUPPORTED_PROTOCOL )
- RETURN_IF ( FAILED_INIT )
- RETURN_IF ( URL_MALFORMAT )
- RETURN_IF ( NOT_BUILT_IN )
- RETURN_IF ( COULDNT_RESOLVE_PROXY )
- RETURN_IF ( COULDNT_RESOLVE_HOST )
- RETURN_IF ( COULDNT_CONNECT )
- RETURN_IF ( FTP_WEIRD_SERVER_REPLY )
- RETURN_IF ( REMOTE_ACCESS_DENIED )
-#if LCURL_CURL_VER_GE(7,24,0)
- RETURN_IF ( FTP_ACCEPT_FAILED )
-#endif
- RETURN_IF ( FTP_WEIRD_PASS_REPLY )
-#if LCURL_CURL_VER_GE(7,24,0)
- RETURN_IF ( FTP_ACCEPT_TIMEOUT )
-#endif
- RETURN_IF ( FTP_WEIRD_PASV_REPLY )
- RETURN_IF ( FTP_WEIRD_227_FORMAT )
- RETURN_IF ( FTP_CANT_GET_HOST )
- RETURN_IF ( OBSOLETE16 )
- RETURN_IF ( FTP_COULDNT_SET_TYPE )
- RETURN_IF ( PARTIAL_FILE )
- RETURN_IF ( FTP_COULDNT_RETR_FILE )
- RETURN_IF ( OBSOLETE20 )
- RETURN_IF ( QUOTE_ERROR )
- RETURN_IF ( HTTP_RETURNED_ERROR )
- RETURN_IF ( WRITE_ERROR )
- RETURN_IF ( OBSOLETE24 )
- RETURN_IF ( UPLOAD_FAILED )
- RETURN_IF ( READ_ERROR )
- RETURN_IF ( OUT_OF_MEMORY )
- RETURN_IF ( OPERATION_TIMEDOUT )
- RETURN_IF ( OBSOLETE29 )
- RETURN_IF ( FTP_PORT_FAILED )
- RETURN_IF ( FTP_COULDNT_USE_REST )
- RETURN_IF ( OBSOLETE32 )
- RETURN_IF ( RANGE_ERROR )
- RETURN_IF ( HTTP_POST_ERROR )
- RETURN_IF ( SSL_CONNECT_ERROR )
- RETURN_IF ( BAD_DOWNLOAD_RESUME )
- RETURN_IF ( FILE_COULDNT_READ_FILE )
- RETURN_IF ( LDAP_CANNOT_BIND )
- RETURN_IF ( LDAP_SEARCH_FAILED )
- RETURN_IF ( OBSOLETE40 )
- RETURN_IF ( FUNCTION_NOT_FOUND )
- RETURN_IF ( ABORTED_BY_CALLBACK )
- RETURN_IF ( BAD_FUNCTION_ARGUMENT )
- RETURN_IF ( OBSOLETE44 )
- RETURN_IF ( INTERFACE_FAILED )
- RETURN_IF ( OBSOLETE46 )
- RETURN_IF ( TOO_MANY_REDIRECTS )
- RETURN_IF ( UNKNOWN_OPTION )
- RETURN_IF ( TELNET_OPTION_SYNTAX )
- RETURN_IF ( OBSOLETE50 )
- RETURN_IF ( PEER_FAILED_VERIFICATION )
- RETURN_IF ( GOT_NOTHING )
- RETURN_IF ( SSL_ENGINE_NOTFOUND )
- RETURN_IF ( SSL_ENGINE_SETFAILED )
- RETURN_IF ( SEND_ERROR )
- RETURN_IF ( RECV_ERROR )
- RETURN_IF ( OBSOLETE57 )
- RETURN_IF ( SSL_CERTPROBLEM )
- RETURN_IF ( SSL_CIPHER )
- RETURN_IF ( SSL_CACERT )
- RETURN_IF ( BAD_CONTENT_ENCODING )
- RETURN_IF ( LDAP_INVALID_URL )
- RETURN_IF ( FILESIZE_EXCEEDED )
- RETURN_IF ( USE_SSL_FAILED )
- RETURN_IF ( SEND_FAIL_REWIND )
- RETURN_IF ( SSL_ENGINE_INITFAILED )
- RETURN_IF ( LOGIN_DENIED )
- RETURN_IF ( TFTP_NOTFOUND )
- RETURN_IF ( TFTP_PERM )
- RETURN_IF ( REMOTE_DISK_FULL )
- RETURN_IF ( TFTP_ILLEGAL )
- RETURN_IF ( TFTP_UNKNOWNID )
- RETURN_IF ( REMOTE_FILE_EXISTS )
- RETURN_IF ( TFTP_NOSUCHUSER )
- RETURN_IF ( CONV_FAILED )
- RETURN_IF ( CONV_REQD )
- RETURN_IF ( SSL_CACERT_BADFILE )
- RETURN_IF ( REMOTE_FILE_NOT_FOUND )
- RETURN_IF ( SSH )
- RETURN_IF ( SSL_SHUTDOWN_FAILED )
- RETURN_IF ( AGAIN )
- RETURN_IF ( SSL_CRL_BADFILE )
- RETURN_IF ( SSL_ISSUER_ERROR )
- RETURN_IF ( FTP_PRET_FAILED )
- RETURN_IF ( RTSP_CSEQ_ERROR )
- RETURN_IF ( RTSP_SESSION_ERROR )
- RETURN_IF ( FTP_BAD_FILE_LIST )
- RETURN_IF ( CHUNK_FAILED )
-#if LCURL_CURL_VER_GE(7,30,0)
- RETURN_IF ( NO_CONNECTION_AVAILABLE )
-#endif
+ #include "lcerr_easy.h"
}
return "UNKNOWN";
-#undef RETURN_IF
+#undef ERR_ENTRY
}
static const char* lcurl_err_multi_mnemo(int err){
-#define RETURN_IF(E) case CURLM_##E: return #E;
+#define ERR_ENTRY(E) case CURLM_##E: return #E;
switch (err){
- RETURN_IF ( OK )
- RETURN_IF ( CALL_MULTI_PERFORM )
- RETURN_IF ( BAD_HANDLE )
- RETURN_IF ( BAD_EASY_HANDLE )
- RETURN_IF ( OUT_OF_MEMORY )
- RETURN_IF ( INTERNAL_ERROR )
- RETURN_IF ( BAD_SOCKET )
- RETURN_IF ( UNKNOWN_OPTION )
-#if LCURL_CURL_VER_GE(7,32,1)
- RETURN_IF ( ADDED_ALREADY )
-#endif
+ #include "lcerr_multi.h"
}
return "UNKNOWN";
-#undef RETURN_IF
+#undef ERR_ENTRY
}
static const char* lcurl_err_share_mnemo(int err){
-#define RETURN_IF(E) case CURLSHE_##E: return #E;
+#define ERR_ENTRY(E) case CURLSHE_##E: return #E;
switch (err){
- RETURN_IF ( OK )
- RETURN_IF ( BAD_OPTION )
- RETURN_IF ( IN_USE )
- RETURN_IF ( INVALID )
- RETURN_IF ( NOMEM )
-#if LCURL_CURL_VER_GE(7,23,0)
- RETURN_IF ( NOT_BUILT_IN )
-#endif
+ #include "lcerr_share.h"
}
return "UNKNOWN";
-#undef RETURN_IF
+#undef ERR_ENTRY
}
static const char* lcurl_err_form_mnemo(int err){
#define RETURN_IF(E) case CURL_FORMADD_##E: return #E;
switch (err){
- RETURN_IF ( OK )
- RETURN_IF ( MEMORY )
- RETURN_IF ( OPTION_TWICE )
- RETURN_IF ( NULL )
- RETURN_IF ( UNKNOWN_OPTION )
- RETURN_IF ( INCOMPLETE )
- RETURN_IF ( ILLEGAL_ARRAY )
- RETURN_IF ( DISABLED )
}
return "UNKNOWN";
diff --git a/src/lcutils.h b/src/lcutils.h
index 8c4902c..a16823f 100644
--- a/src/lcutils.h
+++ b/src/lcutils.h
@@ -3,8 +3,8 @@
#include "lcurl.h"
-#define LCURL_MAKE_VERSION(MIN, MAJ, PAT) (MIN<<16) + (MAJ<<8) + PAT
-#define LCURL_CURL_VER_GE(MIN, MAJ, PAT) LIBCURL_VERSION_NUM >= LCURL_MAKE_VERSION(MIN, MAJ, PAT)
+#define LCURL_MAKE_VERSION(MIN, MAJ, PAT) ((MIN<<16) + (MAJ<<8) + PAT)
+#define LCURL_CURL_VER_GE(MIN, MAJ, PAT) (LIBCURL_VERSION_NUM >= LCURL_MAKE_VERSION(MIN, MAJ, PAT))
typedef struct lcurl_const_tag{
const char *name;