* attempt to fix snap-build
[m6w6/ext-http] / http_api.c
index 210b9301a339b57d477371c445ef25a5e3ed39ab..064386e25f5fa11cc4bca54d75acea04d48ed92e 100644 (file)
 
 /* $Id$ */
 
+#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
+#include <ctype.h>
+
 #include "php.h"
 #include "php_version.h"
 #include "php_streams.h"
 #include "php_http.h"
 #include "php_http_api.h"
 
-#include <ctype.h>
-#if defined(HAVE_CURL) && HAVE_CURL
+#ifdef HTTP_HAVE_CURL
+
+#ifdef PHP_WIN32
+#include <winsock2.h>
+#include <sys/types.h>
+#endif
+
 #include <curl/curl.h>
 #include <curl/easy.h>
 #endif
 
+
 ZEND_DECLARE_MODULE_GLOBALS(http)
 
 /* {{{ day/month names */
@@ -135,7 +145,7 @@ static int check_month(char *month);
 static int check_tzone(char *tzone);
 
 /* {{{ HAVE_CURL */
-#if defined(HAVE_CURL) && HAVE_CURL
+#ifdef HTTP_HAVE_CURL
 #define http_curl_initbuf(m) _http_curl_initbuf((m) TSRMLS_CC)
 static inline void _http_curl_initbuf(http_curlbuf_member member TSRMLS_DC);
 #define http_curl_freebuf(m) _http_curl_freebuf((m) TSRMLS_CC)
@@ -290,7 +300,7 @@ static STATUS _http_send_chunk(const void *data, const size_t begin,
 /* }}} */
 
 /* {{{ HAVE_CURL */
-#if defined(HAVE_CURL) && HAVE_CURL
+#ifdef HTTP_HAVE_CURL
 
 /* {{{ static inline void http_curl_initbuf(http_curlbuf_member) */
 static inline void _http_curl_initbuf(http_curlbuf_member member TSRMLS_DC)
@@ -1046,16 +1056,16 @@ PHP_HTTP_API void _http_ob_etaghandler(char *output, uint output_len,
 
        if (mode & PHP_OUTPUT_HANDLER_END) {
                PHP_MD5Final(digest, &HTTP_G(etag_md5));
-               
+
                /* just do that if desired */
                if (HTTP_G(etag_started)) {
-            make_digest(etag, digest);
+                       make_digest(etag, digest);
 
-            if (http_etag_match("HTTP_IF_NONE_MATCH", etag)) {
-                http_send_status(304);
-            } else {
-                http_send_etag(etag, 32);
-            }
+                       if (http_etag_match("HTTP_IF_NONE_MATCH", etag)) {
+                               http_send_status(304);
+                       } else {
+                               http_send_etag(etag, 32);
+                       }
                }
        }
 
@@ -1079,9 +1089,9 @@ PHP_HTTP_API int _http_modified_match(const char *entry, const time_t t TSRMLS_D
        }
        retval = (t <= http_parse_date(modified));
 #if defined(PHP_DEBUG)
-       fprintf(stderr, 
-               "\nComparing Last-Modified %s(%s)==%d:\n\t%d\n\t%d\n\n", 
-               get_active_function_name(TSRMLS_C), entry, retval, t, 
+       fprintf(stderr,
+               "\nComparing Last-Modified %s(%s)==%d:\n\t%d\n\t%d\n\n",
+               get_active_function_name(TSRMLS_C), entry, retval, t,
                http_parse_date(modified));
 #endif
        efree(modified);
@@ -1111,9 +1121,9 @@ PHP_HTTP_API int _http_etag_match(const char *entry, const char *etag TSRMLS_DC)
                result = (NULL != strstr(Z_STRVAL_P(zetag), quoted_etag));
        }
 #if defined(PHP_DEBUG)
-       fprintf(stderr, 
-               "\nComparing E-Tag %s(%s)==%d:\n\t<%s>\n\t<%s>\n\n", 
-               get_active_function_name(TSRMLS_C), entry, result, 
+       fprintf(stderr,
+               "\nComparing E-Tag %s(%s)==%d:\n\t<%s>\n\t<%s>\n\n",
+               get_active_function_name(TSRMLS_C), entry, result,
                Z_STRVAL_P(zetag), quoted_etag);
 #endif
        efree(quoted_etag);
@@ -1128,10 +1138,10 @@ PHP_HTTP_API STATUS _http_send_last_modified(const time_t t TSRMLS_DC)
        date = http_date(t);
        strcat(modified, date);
        efree(date);
-       
+
        /* remember */
        HTTP_G(lmod) = t;
-       
+
        return http_send_header(modified);
 }
 /* }}} */
@@ -1149,13 +1159,13 @@ PHP_HTTP_API STATUS _http_send_etag(const char *etag,
        snprintf(etag_header, header_len, "ETag: \"%s\"", etag);
        ret = http_send_header(etag_header);
        efree(etag_header);
-       
+
        /* remember */
        if (HTTP_G(etag)) {
                efree(HTTP_G(etag));
        }
        HTTP_G(etag) = estrdup(etag);
-       
+
        return ret;
 }
 /* }}} */
@@ -1259,7 +1269,7 @@ PHP_HTTP_API char *_http_negotiate_q(const char *entry, const zval *supported,
                if (NULL != (q_ptr = strrchr(Z_STRVAL_PP(zentry), ';'))) {
                        qual = strtod(q_ptr + 3, NULL);
                } else {
-                       qual = 1000.0 - 1;
+                       qual = 1000.0 - i;
                }
 
                /* walk through the supported array */
@@ -1297,7 +1307,7 @@ PHP_HTTP_API char *_http_negotiate_q(const char *entry, const zval *supported,
 PHP_HTTP_API http_range_status _http_get_request_ranges(zval *zranges,
        const size_t length TSRMLS_DC)
 {
-       zval *zrange, *zentry, **zentries;
+       zval *zrange;
        char *range, c;
        long begin = -1, end = -1, *ptr;
 
@@ -1348,7 +1358,7 @@ PHP_HTTP_API http_range_status _http_get_request_ranges(zval *zranges,
                        case ' ':
                                /* IE - ignore for now */
                        break;
-                       
+
                        case 0:
                        case ',':
 
@@ -1397,17 +1407,18 @@ PHP_HTTP_API http_range_status _http_get_request_ranges(zval *zranges,
                                                break;
                                        }
                                }
-
-                               zentry = (zval *) zentries++;
-                               MAKE_STD_ZVAL(zentry);
-                               array_init(zentry);
-                               add_index_long(zentry, 0, begin);
-                               add_index_long(zentry, 1, end);
-                               add_next_index_zval(zranges, zentry);
-
-                               begin = -1;
-                               end = -1;
-                               ptr = &begin;
+                               {
+                                       zval *zentry;
+                                       MAKE_STD_ZVAL(zentry);
+                                       array_init(zentry);
+                                       add_index_long(zentry, 0, begin);
+                                       add_index_long(zentry, 1, end);
+                                       add_next_index_zval(zranges, zentry);
+
+                                       begin = -1;
+                                       end = -1;
+                                       ptr = &begin;
+                               }
                        break;
 
                        default:
@@ -1486,7 +1497,7 @@ PHP_HTTP_API STATUS _http_send(const void *data_ptr, const size_t data_size,
 {
        char *new_etag = NULL;
        int is_range_request = http_is_range_request();
-       
+
        if (!data_ptr) {
                return FAILURE;
        }
@@ -1494,7 +1505,7 @@ PHP_HTTP_API STATUS _http_send(const void *data_ptr, const size_t data_size,
        /* etag handling */
        if (HTTP_G(etag_started)) {
                new_etag = (char *) emalloc(33);
-               
+
                /* never ever use the output to compute the ETag if http_send() is used */
                HTTP_G(etag_started) = 0;
                php_end_ob_buffer(0, 0 TSRMLS_CC);
@@ -1512,7 +1523,7 @@ PHP_HTTP_API STATUS _http_send(const void *data_ptr, const size_t data_size,
                http_send_etag(new_etag, 32);
                efree(new_etag);
        }
-       
+
        /* send 304 Not Modified if last-modified matches*/
     if ((!is_range_request) && http_modified_match("HTTP_IF_MODIFIED_SINCE", HTTP_G(lmod))) {
         return http_send_status(304);
@@ -1528,7 +1539,7 @@ PHP_HTTP_API STATUS _http_send(const void *data_ptr, const size_t data_size,
                        ((!zend_hash_exists(HTTP_SERVER_VARS, "HTTP_IF_UNMODIFIED_SINCE", 25)) ||
                        http_modified_match("HTTP_IF_UNMODIFIED_SINCE", HTTP_G(lmod)))
                ) {
-                       
+
                        STATUS result = FAILURE;
                        zval *zranges = NULL;
                        MAKE_STD_ZVAL(zranges);
@@ -1738,7 +1749,7 @@ PHP_HTTP_API void _http_split_response(const zval *zresponse, zval *zheaders,
 /* }}} */
 
 /* {{{ HAVE_CURL */
-#if defined(HAVE_CURL) && HAVE_CURL
+#ifdef HTTP_HAVE_CURL
 
 /* {{{ STATUS http_get(char *, HashTable *, HashTable *, char **, size_t *) */
 PHP_HTTP_API STATUS _http_get(const char *URL, HashTable *options,