diff options
author | Sterling Hughes <sterling@php.net> | 2000-08-13 19:32:09 +0000 |
---|---|---|
committer | Sterling Hughes <sterling@php.net> | 2000-08-13 19:32:09 +0000 |
commit | bba7086ac39416c312300f65766187b99fa047d7 (patch) | |
tree | 1f1f7ea092a4b93fd7425e3189ecb5aabb51c620 /ext/curl | |
parent | 6f8f6c521c6fc8a223fbacffc96eca42ce38f76e (diff) | |
download | php-git-bba7086ac39416c312300f65766187b99fa047d7.tar.gz |
- Fix spacing.
- Add error constants.
Diffstat (limited to 'ext/curl')
-rw-r--r-- | ext/curl/curl.c | 323 | ||||
-rw-r--r-- | ext/curl/php_curl.h | 60 |
2 files changed, 285 insertions, 98 deletions
diff --git a/ext/curl/curl.c b/ext/curl/curl.c index f5e8bf23e2..65a2ad4251 100644 --- a/ext/curl/curl.c +++ b/ext/curl/curl.c @@ -36,11 +36,11 @@ php_curl_globals curl_globals; #endif function_entry curl_functions[] = { - PHP_FE (curl_init, NULL) - PHP_FE (curl_version, NULL) - PHP_FE (curl_setopt, NULL) - PHP_FE (curl_exec, NULL) - PHP_FE (curl_close, NULL) + PHP_FE(curl_init, NULL) + PHP_FE(curl_version, NULL) + PHP_FE(curl_setopt, NULL) + PHP_FE(curl_exec, NULL) + PHP_FE(curl_close, NULL) {NULL, NULL, NULL} }; @@ -59,68 +59,117 @@ zend_module_entry curl_module_entry = { ZEND_GET_MODULE (curl) #endif -static void php_curl_close (CURL *cp); -static void php_curl_close (CURL *cp) +static void php_curl_close(CURL *cp); +static int php_curl_error_translator(CURLcode err); + +static void php_curl_close(CURL *cp) { - curl_easy_cleanup (cp); + curl_easy_cleanup(cp); } PHP_MINFO_FUNCTION(curl) { - php_info_print_table_start (); - php_info_print_table_row (2, "CURL support", "enabled"); - php_info_print_table_row (2, "CURL Information", curl_version()); - php_info_print_table_end (); + php_info_print_table_start(); + php_info_print_table_row(2, "CURL support", "enabled"); + php_info_print_table_row(2, "CURL Information", curl_version()); + php_info_print_table_end(); } PHP_MINIT_FUNCTION(curl) { CURLLS_FETCH(); - CURLG(le_curl) = register_list_destructors (php_curl_close, NULL); - REGISTER_LONG_CONSTANT ("CURLOPT_PORT", CURLOPT_PORT, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_FILE", CURLOPT_FILE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_INFILE", CURLOPT_INFILE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_INFILESIZE", CURLOPT_INFILESIZE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_URL", CURLOPT_URL, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_PROXY", CURLOPT_PROXY, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_VERBOSE", CURLOPT_VERBOSE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_HEADER", CURLOPT_HEADER, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_NOPROGRESS", CURLOPT_NOPROGRESS, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_NOBODY", CURLOPT_NOBODY, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_FAILONERROR", CURLOPT_FAILONERROR, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_UPLOAD", CURLOPT_UPLOAD, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_POST", CURLOPT_POST, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_FTPLISTONLY", CURLOPT_FTPLISTONLY, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_FTPAPPEND", CURLOPT_FTPAPPEND, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_NETRC", CURLOPT_NETRC, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_FOLLOWLOCATION", CURLOPT_FOLLOWLOCATION, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_FTPASCII", CURLOPT_FTPASCII, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_PUT", CURLOPT_PUT, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_MUTE", CURLOPT_MUTE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_USERPWD", CURLOPT_USERPWD, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_PROXYUSERPWD", CURLOPT_PROXYUSERPWD, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_RANGE", CURLOPT_RANGE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_TIMEOUT", CURLOPT_TIMEOUT, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_POSTFIELDS", CURLOPT_POSTFIELDS, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_REFERER", CURLOPT_REFERER, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_USERAGENT", CURLOPT_USERAGENT, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_FTPPORT", CURLOPT_FTPPORT, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_LOW_SPEED_LIMIT", CURLOPT_LOW_SPEED_LIMIT, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_LOW_SPEED_TIME", CURLOPT_LOW_SPEED_TIME, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_RESUME_FROM", CURLOPT_RESUME_FROM, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_COOKIE", CURLOPT_COOKIE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_SSLCERT", CURLOPT_SSLCERT, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_SSLCERTPASSWD", CURLOPT_SSLCERTPASSWD, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_WRITEHEADER", CURLOPT_WRITEHEADER, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_COOKIEFILE", CURLOPT_COOKIEFILE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_SSLVERSION", CURLOPT_SSLVERSION, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_TIMECONDITION", CURLOPT_TIMECONDITION, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_TIMEVALUE", CURLOPT_TIMEVALUE, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_CUSTOMREQUEST", CURLOPT_CUSTOMREQUEST, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_STDERR", CURLOPT_STDERR, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_WRITEINFO", CURLOPT_WRITEINFO, CONST_CS | CONST_PERSISTENT); - REGISTER_LONG_CONSTANT ("CURLOPT_TRANSFERTEXT", CURLOPT_TRANSFERTEXT, CONST_CS | CONST_PERSISTENT); + CURLG(le_curl) = register_list_destructors(php_curl_close, NULL); + REGISTER_LONG_CONSTANT("CURLOPT_PORT", CURLOPT_PORT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_FILE", CURLOPT_FILE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_INFILE", CURLOPT_INFILE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_INFILESIZE", CURLOPT_INFILESIZE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_URL", CURLOPT_URL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_PROXY", CURLOPT_PROXY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_VERBOSE", CURLOPT_VERBOSE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_HEADER", CURLOPT_HEADER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_NOPROGRESS", CURLOPT_NOPROGRESS, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_NOBODY", CURLOPT_NOBODY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_FAILONERROR", CURLOPT_FAILONERROR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_UPLOAD", CURLOPT_UPLOAD, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_POST", CURLOPT_POST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_FTPLISTONLY", CURLOPT_FTPLISTONLY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_FTPAPPEND", CURLOPT_FTPAPPEND, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_NETRC", CURLOPT_NETRC, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_FOLLOWLOCATION", CURLOPT_FOLLOWLOCATION, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_FTPASCII", CURLOPT_FTPASCII, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_PUT", CURLOPT_PUT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_MUTE", CURLOPT_MUTE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_USERPWD", CURLOPT_USERPWD, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_PROXYUSERPWD", CURLOPT_PROXYUSERPWD, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_RANGE", CURLOPT_RANGE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_TIMEOUT", CURLOPT_TIMEOUT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_POSTFIELDS", CURLOPT_POSTFIELDS, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_REFERER", CURLOPT_REFERER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_USERAGENT", CURLOPT_USERAGENT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_FTPPORT", CURLOPT_FTPPORT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_LOW_SPEED_LIMIT", CURLOPT_LOW_SPEED_LIMIT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_LOW_SPEED_TIME", CURLOPT_LOW_SPEED_TIME, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_RESUME_FROM", CURLOPT_RESUME_FROM, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_COOKIE", CURLOPT_COOKIE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_SSLCERT", CURLOPT_SSLCERT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_SSLCERTPASSWD", CURLOPT_SSLCERTPASSWD, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_WRITEHEADER", CURLOPT_WRITEHEADER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_COOKIEFILE", CURLOPT_COOKIEFILE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_SSLVERSION", CURLOPT_SSLVERSION, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_TIMECONDITION", CURLOPT_TIMECONDITION, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_TIMEVALUE", CURLOPT_TIMEVALUE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_CUSTOMREQUEST", CURLOPT_CUSTOMREQUEST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_STDERR", CURLOPT_STDERR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_WRITEINFO", CURLOPT_WRITEINFO, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLOPT_TRANSFERTEXT", CURLOPT_TRANSFERTEXT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_OK", CE_OK, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_UNSUPPORTED_PROTOCOL", CE_UNSUPPORTED_PROTOCOL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FAILED_INIT", CE_FAILED_INIT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_URL_MALFORMAT", CE_URL_MALFORMAT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_URL_MALFORMAT_USER", CE_URL_MALFORMAT_USER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_COULDNT_RESOLVE_PROXY", CE_COULDNT_RESOLVE_PROXY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_COULDNT_RESOLVE_HOST", CE_COULDNT_RESOLVE_HOST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_COULDNT_CONNECT", CE_COULDNT_CONNECT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_WEIRD_SERVER_REPLY", CE_FTP_WEIRD_SERVER_REPLY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_ACCESS_DENIED", CE_FTP_ACCESS_DENIED, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_USER_PASSWORD_INCORRECT", CE_FTP_USER_PASSWORD_INCORRECT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_WEIRD_PASS_REPLY", CE_FTP_WEIRD_PASS_REPLY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_WEIRD_USER_REPLY", CE_FTP_WEIRD_USER_REPLY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_WEIRD_PASV_REPLY", CE_FTP_WEIRD_PASV_REPLY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_WEIRD_227_FORMAT", CE_FTP_WEIRD_227_FORMAT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_CANT_GET_HOST", CE_FTP_CANT_GET_HOST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_CANT_RECONNECT", CE_FTP_CANT_RECONNECT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_COULDNT_SET_BINARY", CE_FTP_COULDNT_SET_BINARY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_PARTIAL_FILE", CE_PARTIAL_FILE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_COULDNT_RETR_FILE", CE_FTP_COULDNT_RETR_FILE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_WRITE_ERROR", CE_FTP_WRITE_ERROR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_QUOTE_ERROR", CE_FTP_QUOTE_ERROR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_HTTP_NOT_FOUND", CE_HTTP_NOT_FOUND, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_WRITE_ERROR", CE_WRITE_ERROR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_MALFORMAT_USER", CE_MALFORMAT_USER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_COULDNT_STOR_FILE", CE_FTP_COULDNT_STOR_FILE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_READ_ERROR", CE_READ_ERROR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_OUT_OF_MEMORY", CE_OUT_OF_MEMORY, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_OPERATION_TIMEOUTED", CE_OPERATION_TIMEOUTED, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_COULDNT_SET_ASCII", CE_FTP_COULDNT_SET_ASCII, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_PORT_FAILED", CE_FTP_PORT_FAILED, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_COULDNT_USE_REST", CE_FTP_COULDNT_USE_REST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_COULDNT_GET_SIZE", CE_FTP_COULDNT_GET_SIZE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_HTTP_RANGE_ERROR", CE_HTTP_RANGE_ERROR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_HTTP_POST_ERROR", CE_HTTP_POST_ERROR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_SSL_CONNECT_ERROR", CE_SSL_CONNECT_ERROR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FTP_BAD_DOWNLOAD_RESUME", CE_FTP_BAD_DOWNLOAD_RESUME, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FILE_COULDNT_READ_FILE", CE_FILE_COULDNT_READ_FILE, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_LDAP_CANNOT_BIND", CE_LDAP_CANNOT_BIND, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_LDAP_SEARCH_FAILED", CE_LDAP_SEARCH_FAILED, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_LIBRARY_NOT_FOUND", CE_LIBRARY_NOT_FOUND, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_FUNCTION_NOT_FOUND", CE_FUNCTION_NOT_FOUND, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_ABORTED_BY_CALLBACK", CE_ABORTED_BY_CALLBACK, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_BAD_FUNCTION_ARGUMENT", CE_BAD_FUNCTION_ARGUMENT, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURLE_BAD_CALLING_ORDER", CE_BAD_CALLING_ORDER, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("CURL_LAST", C_LAST, CONST_CS | CONST_PERSISTENT); + return SUCCESS; } @@ -134,40 +183,40 @@ PHP_FUNCTION (curl_version) /* {{{ proto int curl_init ([string url]) Initialize a CURL session */ -PHP_FUNCTION (curl_init) +PHP_FUNCTION(curl_init) { zval **uUrl; CURL *cp; - int numArgs = ZEND_NUM_ARGS(); + int argcount = ZEND_NUM_ARGS(); CURLLS_FETCH(); - if (numArgs < 0 || numArgs > 1 || - zend_get_parameters_ex (numArgs, &uUrl) == FAILURE) { + if (argcount < 0 || argcount > 1 || + zend_get_parameters_ex(argcount, &uUrl) == FAILURE) { WRONG_PARAM_COUNT; } - cp = curl_easy_init (); + cp = curl_easy_init(); if (!cp) { - php_error (E_ERROR, "Cannot initialize CURL Handle"); + php_error(E_ERROR, "Cannot initialize CURL Handle"); RETURN_FALSE; } - if (numArgs > 0) { - convert_to_string_ex (uUrl); - curl_easy_setopt (cp, CURLOPT_URL, Z_STRVAL_PP (uUrl)); + if (argcount > 0) { + convert_to_string_ex(uUrl); + curl_easy_setopt(cp, CURLOPT_URL, Z_STRVAL_PP(uUrl)); } curl_easy_setopt(cp, CURLOPT_NOPROGRESS, 1); curl_easy_setopt(cp, CURLOPT_VERBOSE, 0); - ZEND_REGISTER_RESOURCE (return_value, cp, CURLG(le_curl)); + ZEND_REGISTER_RESOURCE(return_value, cp, CURLG(le_curl)); } /* }}} */ /* {{{ proto bool curl_setopt (int ch, string option, mixed value) Set an option for a CURL transfer */ -PHP_FUNCTION (curl_setopt) +PHP_FUNCTION(curl_setopt) { zval **uCurlId, **uCurlOption, **uCurlValue; CURL *cp; @@ -176,14 +225,14 @@ PHP_FUNCTION (curl_setopt) CURLLS_FETCH(); if (ZEND_NUM_ARGS() != 3 || - zend_get_parameters_ex (3, &uCurlId, &uCurlOption, &uCurlValue) == FAILURE) { + zend_get_parameters_ex(3, &uCurlId, &uCurlOption, &uCurlValue) == FAILURE) { WRONG_PARAM_COUNT; } - ZEND_FETCH_RESOURCE (cp, CURL *, uCurlId, -1, "CURL Handle", CURLG(le_curl)); + ZEND_FETCH_RESOURCE(cp, CURL *, uCurlId, -1, "CURL Handle", CURLG(le_curl)); - convert_to_long_ex (uCurlOption); - option = Z_LVAL_PP (uCurlOption); + convert_to_long_ex(uCurlOption); + option = Z_LVAL_PP(uCurlOption); if (option == CURLOPT_INFILESIZE || option == CURLOPT_VERBOSE || option == CURLOPT_HEADER || option == CURLOPT_NOPROGRESS || @@ -197,8 +246,8 @@ PHP_FUNCTION (curl_setopt) option == CURLOPT_SSLVERSION || option == CURLOPT_TIMECONDITION || option == CURLOPT_TIMEVALUE || option == CURLOPT_TRANSFERTEXT) { - convert_to_long_ex (uCurlValue); - ret = curl_easy_setopt (cp, option, Z_LVAL_PP (uCurlValue)); + convert_to_long_ex(uCurlValue); + ret = curl_easy_setopt(cp, option, Z_LVAL_PP(uCurlValue)); } else if (option == CURLOPT_URL || option == CURLOPT_PROXY || option == CURLOPT_USERPWD || option == CURLOPT_PROXYUSERPWD || @@ -208,22 +257,18 @@ PHP_FUNCTION (curl_setopt) option == CURLOPT_SSLCERTPASSWD || option == CURLOPT_COOKIEFILE || option == CURLOPT_CUSTOMREQUEST) { - convert_to_string_ex (uCurlValue); - ret = curl_easy_setopt (cp, option, Z_STRVAL_PP (uCurlValue)); + convert_to_string_ex(uCurlValue); + ret = curl_easy_setopt(cp, option, Z_STRVAL_PP(uCurlValue)); } else if (option == CURLOPT_FILE || option == CURLOPT_INFILE || option == CURLOPT_WRITEHEADER || option == CURLOPT_STDERR) { FILE *fp; - ZEND_FETCH_RESOURCE (fp, FILE *, uCurlValue, -1, "File-handle", php_file_le_fopen ()); - ret = curl_easy_setopt (cp, option, fp); + ZEND_FETCH_RESOURCE(fp, FILE *, uCurlValue, -1, "File-handle", php_file_le_fopen()); + ret = curl_easy_setopt(cp, option, fp); } - if (ret == CURLE_OK) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } + RETURN_LONG(php_curl_error_translator(ret)); } /* }}} */ @@ -241,14 +286,10 @@ PHP_FUNCTION (curl_exec) WRONG_PARAM_COUNT; } - ZEND_FETCH_RESOURCE (cp, CURL *, uCurlId, -1, "CURL Handle", CURLG(le_curl)); + ZEND_FETCH_RESOURCE(cp, CURL *, uCurlId, -1, "CURL Handle", CURLG(le_curl)); ret = curl_easy_perform (cp); - - if (ret == CURLE_OK) { - RETURN_TRUE; - } else { - RETURN_FALSE; - } + + RETURN_LONG(php_curl_error_translator(ret)); } /* }}} */ @@ -265,9 +306,109 @@ PHP_FUNCTION (curl_close) WRONG_PARAM_COUNT; } - ZEND_FETCH_RESOURCE (cp, CURL *, uCurlId, -1, "CURL Handle", CURLG(le_curl)); - zend_list_delete (Z_LVAL_PP (uCurlId)); + ZEND_FETCH_RESOURCE(cp, CURL *, uCurlId, -1, "CURL Handle", CURLG(le_curl)); + zend_list_delete(Z_LVAL_PP (uCurlId)); } /* }}} */ + +static int php_curl_error_translator(CURLcode err) +{ + switch (err) + { + case CURLE_OK: + return(CE_OK); + case CURLE_UNSUPPORTED_PROTOCOL: + return(CE_UNSUPPORTED_PROTOCOL); + case CURLE_FAILED_INIT: + return(CE_FAILED_INIT); + case CURLE_URL_MALFORMAT: + return(CE_URL_MALFORMAT); + case CURLE_URL_MALFORMAT_USER: + return(CE_URL_MALFORMAT_USER); + case CURLE_COULDNT_RESOLVE_PROXY: + return(CE_COULDNT_RESOLVE_PROXY); + case CURLE_COULDNT_RESOLVE_HOST: + return(CE_COULDNT_RESOLVE_HOST); + case CURLE_COULDNT_CONNECT: + return(CE_COULDNT_CONNECT); + case CURLE_FTP_WEIRD_SERVER_REPLY: + return(CE_FTP_WEIRD_SERVER_REPLY); + case CURLE_FTP_ACCESS_DENIED: + return(CE_FTP_ACCESS_DENIED); + case CURLE_FTP_USER_PASSWORD_INCORRECT: + return(CE_FTP_USER_PASSWORD_INCORRECT); + case CURLE_FTP_WEIRD_PASS_REPLY: + return(CE_FTP_WEIRD_PASS_REPLY); + case CURLE_FTP_WEIRD_USER_REPLY: + return(CE_FTP_WEIRD_USER_REPLY); + case CURLE_FTP_WEIRD_PASV_REPLY: + return(CE_FTP_WEIRD_PASV_REPLY); + case CURLE_FTP_WEIRD_227_FORMAT: + return(CE_FTP_WEIRD_227_FORMAT); + case CURLE_FTP_CANT_GET_HOST: + return(CE_FTP_CANT_GET_HOST); + case CURLE_FTP_CANT_RECONNECT: + return(CE_FTP_CANT_RECONNECT); + case CURLE_FTP_COULDNT_SET_BINARY: + return(CE_FTP_COULDNT_SET_BINARY); + case CURLE_PARTIAL_FILE: + return(CE_PARTIAL_FILE); + case CURLE_FTP_COULDNT_RETR_FILE: + return(CE_FTP_COULDNT_RETR_FILE); + case CURLE_FTP_WRITE_ERROR: + return(CE_FTP_WRITE_ERROR); + case CURLE_FTP_QUOTE_ERROR: + return(CE_FTP_QUOTE_ERROR); + case CURLE_HTTP_NOT_FOUND: + return(CE_HTTP_NOT_FOUND); + case CURLE_WRITE_ERROR: + return(CE_WRITE_ERROR); + case CURLE_MALFORMAT_USER: + return(CE_MALFORMAT_USER); + case CURLE_FTP_COULDNT_STOR_FILE: + return(CE_FTP_COULDNT_STOR_FILE); + case CURLE_READ_ERROR: + return(CE_READ_ERROR); + case CURLE_OUT_OF_MEMORY: + return(CE_OUT_OF_MEMORY); + case CURLE_OPERATION_TIMEOUTED: + return(CE_OPERATION_TIMEOUTED); + case CURLE_FTP_COULDNT_SET_ASCII: + return(CE_FTP_COULDNT_SET_ASCII); + case CURLE_FTP_PORT_FAILED: + return(CE_FTP_PORT_FAILED); + case CURLE_FTP_COULDNT_USE_REST: + return(CE_FTP_COULDNT_USE_REST); + case CURLE_FTP_COULDNT_GET_SIZE: + return(CE_FTP_COULDNT_GET_SIZE); + case CURLE_HTTP_RANGE_ERROR: + return(CE_HTTP_RANGE_ERROR); + case CURLE_HTTP_POST_ERROR: + return(CE_HTTP_POST_ERROR); + case CURLE_SSL_CONNECT_ERROR: + return(CE_SSL_CONNECT_ERROR); + case CURLE_FTP_BAD_DOWNLOAD_RESUME: + return(CE_FTP_BAD_DOWNLOAD_RESUME); + case CURLE_FILE_COULDNT_READ_FILE: + return(CE_FILE_COULDNT_READ_FILE); + case CURLE_LDAP_CANNOT_BIND: + return(CE_LDAP_CANNOT_BIND); + case CURLE_LDAP_SEARCH_FAILED: + return(CE_LDAP_SEARCH_FAILED); + case CURLE_LIBRARY_NOT_FOUND: + return(CE_LIBRARY_NOT_FOUND); + case CURLE_FUNCTION_NOT_FOUND: + return(CE_FUNCTION_NOT_FOUND); + case CURLE_ABORTED_BY_CALLBACK: + return(CE_ABORTED_BY_CALLBACK); + case CURLE_BAD_FUNCTION_ARGUMENT: + return(CE_BAD_FUNCTION_ARGUMENT); + case CURLE_BAD_CALLING_ORDER: + return(CE_BAD_CALLING_ORDER); + case CURL_LAST: + return(C_LAST); + } +} + #endif diff --git a/ext/curl/php_curl.h b/ext/curl/php_curl.h index 0f82b27bc5..10248f9cb3 100644 --- a/ext/curl/php_curl.h +++ b/ext/curl/php_curl.h @@ -31,14 +31,60 @@ extern zend_module_entry curl_module_entry; #define curl_module_ptr &curl_module_entry -PHP_MINIT_FUNCTION (curl); -PHP_MINFO_FUNCTION (curl); -PHP_FUNCTION (curl_version); -PHP_FUNCTION (curl_init); -PHP_FUNCTION (curl_setopt); -PHP_FUNCTION (curl_exec); -PHP_FUNCTION (curl_close); +PHP_MINIT_FUNCTION(curl); +PHP_MINFO_FUNCTION(curl); +PHP_FUNCTION(curl_version); +PHP_FUNCTION(curl_init); +PHP_FUNCTION(curl_setopt); +PHP_FUNCTION(curl_exec); +PHP_FUNCTION(curl_close); +#define CE_OK 0 +#define CE_UNSUPPORTED_PROTOCOL 1 +#define CE_FAILED_INIT 2 +#define CE_URL_MALFORMAT 3 +#define CE_URL_MALFORMAT_USER 4 +#define CE_COULDNT_RESOLVE_PROXY 5 +#define CE_COULDNT_RESOLVE_HOST 6 +#define CE_COULDNT_CONNECT 7 +#define CE_FTP_WEIRD_SERVER_REPLY 8 +#define CE_FTP_ACCESS_DENIED 9 +#define CE_FTP_USER_PASSWORD_INCORRECT 10 +#define CE_FTP_WEIRD_PASS_REPLY 11 +#define CE_FTP_WEIRD_USER_REPLY 12 +#define CE_FTP_WEIRD_PASV_REPLY 13 +#define CE_FTP_WEIRD_227_FORMAT 14 +#define CE_FTP_CANT_GET_HOST 15 +#define CE_FTP_CANT_RECONNECT 16 +#define CE_FTP_COULDNT_SET_BINARY 17 +#define CE_PARTIAL_FILE 18 +#define CE_FTP_COULDNT_RETR_FILE 19 +#define CE_FTP_WRITE_ERROR 20 +#define CE_FTP_QUOTE_ERROR 21 +#define CE_HTTP_NOT_FOUND 22 +#define CE_WRITE_ERROR 23 +#define CE_MALFORMAT_USER 24 +#define CE_FTP_COULDNT_STOR_FILE 25 +#define CE_READ_ERROR 26 +#define CE_OUT_OF_MEMORY 27 +#define CE_OPERATION_TIMEOUTED 28 +#define CE_FTP_COULDNT_SET_ASCII 29 +#define CE_FTP_PORT_FAILED 30 +#define CE_FTP_COULDNT_USE_REST 31 +#define CE_FTP_COULDNT_GET_SIZE 32 +#define CE_HTTP_RANGE_ERROR 33 +#define CE_HTTP_POST_ERROR 34 +#define CE_SSL_CONNECT_ERROR 35 +#define CE_FTP_BAD_DOWNLOAD_RESUME 36 +#define CE_FILE_COULDNT_READ_FILE 37 +#define CE_LDAP_CANNOT_BIND 38 +#define CE_LDAP_SEARCH_FAILED 39 +#define CE_LIBRARY_NOT_FOUND 40 +#define CE_FUNCTION_NOT_FOUND 41 +#define CE_ABORTED_BY_CALLBACK 42 +#define CE_BAD_FUNCTION_ARGUMENT 43 +#define CE_BAD_CALLING_ORDER 44 +#define C_LAST 45 typedef struct { int le_curl; |