- ditch some warnings
[m6w6/ext-http] / http_response_object.c
index 2a0cbbd0aaad9db54ec57e4591e469abaf681171..e5b0d00da8c4366a72be0614973e4604879053d8 100644 (file)
@@ -900,7 +900,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 +959,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 +1018,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 +1081,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 +1138,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 +1240,8 @@ PHP_METHOD(HttpResponse, send)
 PHP_METHOD(HttpResponse, capture)
 {
        NO_ARGS;
+       
+       HTTP_CHECK_HEADERS_SENT(RETURN_FALSE);
 
        UPD_STATIC_PROP(long, catch, 1);