- add own zlib layer
[m6w6/ext-http] / http_request_api.c
index 8b195f80a644647d6e3f0048f0a538208628a385..2e3118114f9e282944613788493e41012d634346 100644 (file)
@@ -275,12 +275,14 @@ PHP_HTTP_API STATUS _http_request_body_fill(http_request_body *body, HashTable *
 
                /* file data */
                FOREACH_HASH_VAL(files, data) {
-                       CURLcode err;
                        zval **file, **type, **name;
-                       if (    SUCCESS == zend_hash_find(Z_ARRVAL_PP(data), "name", sizeof("name"), (void **) &name) &&
-                                       SUCCESS == zend_hash_find(Z_ARRVAL_PP(data), "type", sizeof("type"), (void **) &type) &&
-                                       SUCCESS == zend_hash_find(Z_ARRVAL_PP(data), "file", sizeof("file"), (void **) &file)) {
-                               err = curl_formadd(&http_post_data[0], &http_post_data[1],
+                       
+                       if (    SUCCESS != zend_hash_find(Z_ARRVAL_PP(data), "name", sizeof("name"), (void **) &name) ||
+                                       SUCCESS != zend_hash_find(Z_ARRVAL_PP(data), "type", sizeof("type"), (void **) &type) ||
+                                       SUCCESS != zend_hash_find(Z_ARRVAL_PP(data), "file", sizeof("file"), (void **) &file)) {
+                               http_error(HE_NOTICE, HTTP_E_INVALID_PARAM, "Post file array entry misses either 'name', 'type' or 'file' entry");
+                       } else {
+                               CURLcode err = curl_formadd(&http_post_data[0], &http_post_data[1],
                                        CURLFORM_COPYNAME,              Z_STRVAL_PP(name),
                                        CURLFORM_FILE,                  Z_STRVAL_PP(file),
                                        CURLFORM_CONTENTTYPE,   Z_STRVAL_PP(type),
@@ -291,8 +293,6 @@ PHP_HTTP_API STATUS _http_request_body_fill(http_request_body *body, HashTable *
                                        curl_formfree(http_post_data[0]);
                                        return FAILURE;
                                }
-                       } else {
-                               http_error(HE_NOTICE, HTTP_E_INVALID_PARAM, "Post file array entry misses either 'name', 'type' or 'file' entry");
                        }
                }
 
@@ -739,14 +739,9 @@ PHP_HTTP_API void _http_request_info(CURL *ch, HashTable *info TSRMLS_DC)
 PHP_HTTP_API STATUS _http_request_ex(CURL *ch, http_request_method meth, char *url, http_request_body *body, HashTable *options, HashTable *info, phpstr *response TSRMLS_DC)
 {
        STATUS status;
-       zend_bool clean_curl;
+       zend_bool clean_curl = !ch;
 
-       if ((clean_curl = (!ch))) {
-               if (!(ch = curl_easy_init())) {
-                       http_error(HE_WARNING, HTTP_E_REQUEST, "Could not initialize curl.");
-                       return FAILURE;
-               }
-       }
+       HTTP_CHECK_CURL_INIT(ch, curl_easy_init(), return FAILURE);
 
        status =        ((SUCCESS == http_request_init(ch, meth, url, body, options)) &&
                                (SUCCESS == http_request_exec(ch, info, response, NULL))) ? SUCCESS : FAILURE;