]> granicus.if.org Git - php/commitdiff
- Fix spacing.
authorSterling Hughes <sterling@php.net>
Sun, 13 Aug 2000 19:32:09 +0000 (19:32 +0000)
committerSterling Hughes <sterling@php.net>
Sun, 13 Aug 2000 19:32:09 +0000 (19:32 +0000)
- Add error constants.

ext/curl/curl.c
ext/curl/php_curl.h

index f5e8bf23e2a0c65b9eaf5f65035446fa657b2c73..65a2ad42519fdb6deb8828f24476876fb6625016 100644 (file)
@@ -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
index 0f82b27bc58ff9f411a16753eff871ff816b45e2..10248f9cb3ef384865cb439f51a9f9a073a670f0 100644 (file)
 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;