- typos
[m6w6/ext-http] / http_response_object.c
index 2a0cbbd0aaad9db54ec57e4591e469abaf681171..0d6cfa7cd59d2c150e7ab86a2c238c947fe0029e 100644 (file)
@@ -35,9 +35,6 @@
 #include "php_http_cache_api.h"
 #include "php_http_headers_api.h"
 
-#ifdef HTTP_HAVE_MHASH
-#      include <mhash.h>
-#endif
 #ifdef HTTP_HAVE_MAGIC
 #      include <magic.h>
 #endif
@@ -243,26 +240,6 @@ static inline void _http_response_object_declare_default_properties(TSRMLS_D)
        DCL_CONST(long, "REDIRECT_PERM", HTTP_REDIRECT_PERM);
        DCL_CONST(long, "REDIRECT_POST", HTTP_REDIRECT_POST);
        DCL_CONST(long, "REDIRECT_TEMP", HTTP_REDIRECT_TEMP);
-       
-       DCL_CONST(long, "ETAG_MD5", HTTP_ETAG_MD5);
-       DCL_CONST(long, "ETAG_SHA1", HTTP_ETAG_SHA1);
-       DCL_CONST(long, "ETAG_CRC32", HTTP_ETAG_CRC32);
-       
-#      ifdef HTTP_HAVE_MHASH
-       {
-               int l, i, c = mhash_count();
-               
-               for (i = 0; i <= c; ++i) {
-                       char const_name[256] = {0};
-                       const char *hash_name = mhash_get_hash_name_static(i);
-                       
-                       if (hash_name) {
-                               l = snprintf(const_name, 255, "ETAG_MHASH_%s", hash_name);
-                               zend_declare_class_constant_long(ce, const_name, l, i TSRMLS_CC);
-                       }
-               }
-       }
-#      endif /* HTTP_HAVE_MHASH */
 #endif /* WONKY */
 }
 
@@ -900,7 +877,7 @@ PHP_METHOD(HttpResponse, setData)
        }
        
        UPD_STATIC_PROP(long, lastModified, http_last_modified(the_data, SEND_DATA));
-       if (etag = http_etag(Z_STRVAL_P(the_data), Z_STRLEN_P(the_data), SEND_DATA)) {
+       if ((etag = http_etag(Z_STRVAL_P(the_data), Z_STRLEN_P(the_data), SEND_DATA))) {
                UPD_STATIC_PROP(string, eTag, etag);
                efree(etag);
        }
@@ -959,7 +936,7 @@ PHP_METHOD(HttpResponse, setStream)
        zend_list_addref(Z_LVAL_P(the_stream));
        
        UPD_STATIC_PROP(long, lastModified, http_last_modified(the_real_stream, SEND_RSRC));
-       if (etag = http_etag(the_real_stream, 0, SEND_RSRC)) {
+       if ((etag = http_etag(the_real_stream, 0, SEND_RSRC))) {
                UPD_STATIC_PROP(string, eTag, etag);
                efree(etag);
        }
@@ -1018,7 +995,7 @@ PHP_METHOD(HttpResponse, setFile)
        }
 
        UPD_STATIC_PROP(long, lastModified, http_last_modified(the_file, -1));
-       if (etag = http_etag(the_file, 0, -1)) {
+       if ((etag = http_etag(the_file, 0, -1))) {
                UPD_STATIC_PROP(string, eTag, etag);
                efree(etag);
        }
@@ -1081,13 +1058,11 @@ PHP_METHOD(HttpResponse, send)
        if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &clean_ob)) {
                RETURN_FALSE;
        }
-       if (SG(headers_sent)) {
-               http_error(HE_WARNING, HTTP_E_RESPONSE, "Cannot send HttpResponse, headers have already been sent");
-               RETURN_FALSE;
-       }
+       
+       HTTP_CHECK_HEADERS_SENT(RETURN_FALSE);
 
        sent = GET_STATIC_PROP(sent);
-       if (zval_is_true(sent)) {
+       if (Z_LVAL_P(sent)) {
                http_error(HE_WARNING, HTTP_E_RESPONSE, "Cannot send HttpResponse, response has already been sent");
                RETURN_FALSE;
        } else {
@@ -1140,6 +1115,10 @@ PHP_METHOD(HttpResponse, send)
                if (etag_p) zval_ptr_dtor(&etag_p);
                if (lmod_p) zval_ptr_dtor(&lmod_p);
                if (cctl_p) zval_ptr_dtor(&cctl_p);
+       
+               if (php_ob_handler_used("blackhole" TSRMLS_CC)) {
+                       RETURN_TRUE;
+               }
        }
 
        /* content type */
@@ -1238,6 +1217,8 @@ PHP_METHOD(HttpResponse, send)
 PHP_METHOD(HttpResponse, capture)
 {
        NO_ARGS;
+       
+       HTTP_CHECK_HEADERS_SENT(RETURN_FALSE);
 
        UPD_STATIC_PROP(long, catch, 1);