fixed config.w32 for build with curl enabled
[m6w6/ext-http] / php_http_curl_client.c
index 640f3bbf5cdf5365aebb45d913eabcfc1116dbe3..c0930db8866aecd1f6a6233a145f5c61cb266fa8 100644 (file)
@@ -436,8 +436,8 @@ static STATUS php_http_curl_client_option_set_cookies(php_http_option_t *opt, zv
                        }
 
                        php_http_buffer_fix(&curl->options.cookies);
-                       if (PHP_HTTP_BUFFER_LEN(&curl->options.cookies)) {
-                               if (CURLE_OK != curl_easy_setopt(ch, CURLOPT_COOKIE, PHP_HTTP_BUFFER_VAL(&curl->options.cookies))) {
+                       if (curl->options.cookies.used) {
+                               if (CURLE_OK != curl_easy_setopt(ch, CURLOPT_COOKIE, curl->options.cookies.data)) {
                                        return FAILURE;
                                }
                        }
@@ -506,7 +506,7 @@ static STATUS php_http_curl_client_option_set_etag(php_http_option_t *opt, zval
        php_http_buffer_init(&header);
        php_http_buffer_appendf(&header, is_quoted?"%s: %s":"%s: \"%s\"", curl->options.range_request?"If-Match":"If-None-Match", Z_STRVAL_P(val));
        php_http_buffer_fix(&header);
-       curl->options.headers = curl_slist_append(curl->options.headers, PHP_HTTP_BUFFER_VAL(&header));
+       curl->options.headers = curl_slist_append(curl->options.headers, header.data);
        php_http_buffer_dtor(&header);
        return SUCCESS;
 }
@@ -543,14 +543,14 @@ static STATUS php_http_curl_client_option_set_range(php_http_option_t *opt, zval
                        }
                }
 
-               if (PHP_HTTP_BUFFER_LEN(&curl->options.ranges)) {
+               if (curl->options.ranges.used) {
                        curl->options.range_request = 1;
                        /* ditch last comma */
-                       PHP_HTTP_BUFFER_VAL(&curl->options.ranges)[PHP_HTTP_BUFFER_LEN(&curl->options.ranges)-- -1] = '\0';
+                       curl->options.ranges.data[curl->options.ranges.used - 1] = '\0';
                }
        }
 
-       if (CURLE_OK != curl_easy_setopt(ch, CURLOPT_RANGE, PHP_HTTP_BUFFER_VAL(&curl->options.ranges))) {
+       if (CURLE_OK != curl_easy_setopt(ch, CURLOPT_RANGE, curl->options.ranges.data)) {
                return FAILURE;
        }
        return SUCCESS;
@@ -642,6 +642,7 @@ static STATUS php_http_curl_client_option_set_portrange(php_http_option_t *opt,
        return SUCCESS;
 }
 
+#if PHP_HTTP_CURL_VERSION(7,21,3)
 static STATUS php_http_curl_client_option_set_resolve(php_http_option_t *opt, zval *val, void *userdata)
 {
        php_http_client_t *h = userdata;
@@ -670,6 +671,7 @@ static STATUS php_http_curl_client_option_set_resolve(php_http_option_t *opt, zv
        }
        return SUCCESS;
 }
+#endif
 
 static void php_http_curl_client_options_init(php_http_options_t *registry TSRMLS_DC)
 {
@@ -1198,7 +1200,7 @@ PHP_HTTP_API STATUS php_http_curl_client_prepare(php_http_client_t *h, php_http_
 
                                php_http_buffer_appendf(&header, "%s: %s", header_key.str, Z_STRVAL_P(header_cpy));
                                php_http_buffer_fix(&header);
-                               curl->options.headers = curl_slist_append(curl->options.headers, PHP_HTTP_BUFFER_VAL(&header));
+                               curl->options.headers = curl_slist_append(curl->options.headers, header.data);
                                php_http_buffer_reset(&header);
 
                                zval_ptr_dtor(&header_cpy);
@@ -1209,16 +1211,16 @@ PHP_HTTP_API STATUS php_http_curl_client_prepare(php_http_client_t *h, php_http_
        }
 
        /* attach request body */
-       if ((body_size = php_http_message_body_size(&msg->body))) {
+       if ((body_size = php_http_message_body_size(msg->body))) {
                /* RFC2616, section 4.3 (para. 4) states that »a message-body MUST NOT be included in a request if the
                 * specification of the request method (section 5.1.1) does not allow sending an entity-body in request.«
                 * Following the clause in section 5.1.1 (para. 2) that request methods »MUST be implemented with the
                 * same semantics as those specified in section 9« reveal that not any single defined HTTP/1.1 method
                 * does not allow a request body.
                 */
-               php_stream_rewind(php_http_message_body_stream(&msg->body));
-               curl_easy_setopt(curl->handle, CURLOPT_IOCTLDATA, &msg->body);
-               curl_easy_setopt(curl->handle, CURLOPT_READDATA, &msg->body);
+               php_stream_rewind(php_http_message_body_stream(msg->body));
+               curl_easy_setopt(curl->handle, CURLOPT_IOCTLDATA, msg->body);
+               curl_easy_setopt(curl->handle, CURLOPT_READDATA, msg->body);
                curl_easy_setopt(curl->handle, CURLOPT_INFILESIZE, body_size);
                curl_easy_setopt(curl->handle, CURLOPT_POSTFIELDSIZE, body_size);
        }