X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_env_response.c;h=83ebc6b64d7f7c893f118db997ba525ef505dfe5;hp=4d6ef037471fb9bb02faf0a32f2773e052a631e1;hb=b54d9ed0b0cd930f76754fe281e66f36a953085b;hpb=c8476df58018aecebc7720b784cf454b6eb6dbae diff --git a/php_http_env_response.c b/php_http_env_response.c index 4d6ef03..83ebc6b 100644 --- a/php_http_env_response.c +++ b/php_http_env_response.c @@ -147,7 +147,7 @@ php_http_cache_status_t php_http_env_is_response_cached_by_etag(zval *options, c efree(etag); } - STR_FREE(header); + PTR_FREE(header); return ret; } @@ -190,7 +190,7 @@ php_http_cache_status_t php_http_env_is_response_cached_by_last_modified(zval *o } } - STR_FREE(header); + PTR_FREE(header); return ret; } @@ -254,7 +254,7 @@ static STATUS php_http_env_response_send_data(php_http_env_response_t *r, const return SUCCESS; } chunks_sent = php_http_buffer_chunked_output(&r->buffer, enc_str, enc_len, buf ? chunk : 0, output, r TSRMLS_CC); - STR_FREE(enc_str); + PTR_FREE(enc_str); } else { chunks_sent = php_http_buffer_chunked_output(&r->buffer, buf, len, buf ? chunk : 0, output, r TSRMLS_CC); } @@ -303,8 +303,8 @@ void php_http_env_response_dtor(php_http_env_response_t *r) } php_http_buffer_free(&r->buffer); zval_ptr_dtor(&r->options); - STR_FREE(r->content.type); - STR_FREE(r->content.encoding); + PTR_FREE(r->content.type); + PTR_FREE(r->content.encoding); if (r->content.encoder) { php_http_encoding_stream_free(&r->content.encoder); } @@ -329,6 +329,17 @@ static STATUS php_http_env_response_send_head(php_http_env_response_t *r, php_ht return ret; } + if ((zoption = get_option(options, ZEND_STRL("headers") TSRMLS_CC))) { + if (Z_TYPE_P(zoption) == IS_ARRAY) { + php_http_header_to_callback(Z_ARRVAL_P(zoption), 0, (php_http_pass_format_callback_t) r->ops->set_header, r TSRMLS_CC); + } + zval_ptr_dtor(&zoption); + } + + if (ret != SUCCESS) { + return ret; + } + if ((zoption = get_option(options, ZEND_STRL("responseCode") TSRMLS_CC))) { zval *zoption_copy = php_http_ztyp(IS_LONG, zoption); @@ -359,17 +370,6 @@ static STATUS php_http_env_response_send_head(php_http_env_response_t *r, php_ht return ret; } - if ((zoption = get_option(options, ZEND_STRL("headers") TSRMLS_CC))) { - if (Z_TYPE_P(zoption) == IS_ARRAY) { - php_http_header_to_callback(Z_ARRVAL_P(zoption), 0, (php_http_pass_format_callback_t) r->ops->set_header, r TSRMLS_CC); - } - zval_ptr_dtor(&zoption); - } - - if (ret != SUCCESS) { - return ret; - } - if ((zoption = get_option(options, ZEND_STRL("contentType") TSRMLS_CC))) { zval *zoption_copy = php_http_ztyp(IS_STRING, zoption); @@ -1096,7 +1096,11 @@ static PHP_METHOD(HttpEnvResponse, __invoke) php_http_message_object_init_body_object(obj); php_http_message_body_append(obj->message->body, ob_str, ob_len); +#if PHP_VERSION_ID >= 50400 RETURN_TRUE; +#else + RETURN_EMPTY_STRING(); +#endif } }