- add preliminary ext/hash support (currently only for Win32)
[m6w6/ext-http] / http_functions.c
index 469dd946d6227d886625c455220796982d3fa24a..9156ccc393187ce2a6fa5912059f75133efc6b83 100644 (file)
@@ -108,7 +108,7 @@ PHP_FUNCTION(http_build_uri)
 #define HTTP_DO_NEGOTIATE(type, supported, rs_array) \
 { \
        HashTable *result; \
-       if (result = http_negotiate_ ##type(supported)) { \
+       if ((result = http_negotiate_ ##type(supported))) { \
                char *key; \
                uint key_len; \
                ulong idx; \
@@ -137,9 +137,10 @@ PHP_FUNCTION(http_build_uri)
                } \
                \
                if (rs_array) { \
+                       HashPosition pos; \
                        zval **value; \
                         \
-                       FOREACH_VAL(supported, value) { \
+                       FOREACH_VAL(pos, supported, value) { \
                                convert_to_string_ex(value); \
                                add_assoc_double(rs_array, Z_STRVAL_PP(value), 1.0); \
                        } \
@@ -438,13 +439,15 @@ PHP_FUNCTION(http_cache_last_modified)
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &last_modified) != SUCCESS) {
                RETURN_FALSE;
        }
+       
+       HTTP_CHECK_HEADERS_SENT(RETURN_FALSE);
 
        t = (long) time(NULL);
 
        /* 0 or omitted */
        if (!last_modified) {
                /* does the client have? (att: caching "forever") */
-               if (zlm = http_get_server_var("HTTP_IF_MODIFIED_SINCE")) {
+               if ((zlm = http_get_server_var("HTTP_IF_MODIFIED_SINCE"))) {
                        last_modified = send_modified = http_parse_date(Z_STRVAL_P(zlm));
                /* send current time */
                } else {
@@ -485,6 +488,8 @@ PHP_FUNCTION(http_cache_etag)
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &etag, &etag_len) != SUCCESS) {
                RETURN_FALSE;
        }
+       
+       HTTP_CHECK_HEADERS_SENT(RETURN_FALSE);
 
        RETURN_SUCCESS(http_cache_etag(etag, etag_len, HTTP_DEFAULT_CACHECONTROL, lenof(HTTP_DEFAULT_CACHECONTROL)));
 }
@@ -812,7 +817,7 @@ PHP_FUNCTION(http_parse_message)
                RETURN_NULL();
        }
        
-       if (msg = http_message_parse(message, message_len)) {
+       if ((msg = http_message_parse(message, message_len))) {
                object_init(return_value);
                http_message_tostruct_recursive(msg, return_value);
                http_message_free(&msg);
@@ -1264,7 +1269,7 @@ PHP_FUNCTION(http_request_method_register)
        if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &method, &method_len)) {
                RETURN_FALSE;
        }
-       if (existing = http_request_method_exists(1, 0, method)) {
+       if ((existing = http_request_method_exists(1, 0, method))) {
                RETURN_LONG((long) existing);
        }