X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_env_request.c;h=d9d33ef8a99b338c7647974937d3f1f12af6b6da;hp=4da183ec6fa144ac77be4cf3569d207d37fbce82;hb=8df0e5b02cd04b43f19045c0f4f69c4076840d27;hpb=0ba01182029d13dfd02e90875f3b0da16eb3331c diff --git a/php_http_env_request.c b/php_http_env_request.c index 4da183e..d9d33ef 100644 --- a/php_http_env_request.c +++ b/php_http_env_request.c @@ -144,11 +144,19 @@ static int grab_files(void *zpp TSRMLS_DC, int argc, va_list argv, zend_hash_key return ZEND_HASH_APPLY_KEEP; } +#define PHP_HTTP_ENV_REQUEST_OBJECT_INIT(obj) \ + do { \ + if (!obj->message) { \ + obj->message = php_http_message_init_env(NULL, PHP_HTTP_REQUEST TSRMLS_CC); \ + } \ + } while(0) + PHP_METHOD(HttpEnvRequest, __construct) { with_error_handling(EH_THROW, php_http_exception_get_class_entry()) { + php_http_message_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC); + if (SUCCESS == zend_parse_parameters_none()) { - php_http_message_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC); zval *zsg, *zqs; obj->message = php_http_message_init_env(obj->message, PHP_HTTP_REQUEST TSRMLS_CC); @@ -179,6 +187,7 @@ PHP_METHOD(HttpEnvRequest, __construct) zend_update_property(php_http_env_request_class_entry, getThis(), ZEND_STRL("files"), zqs TSRMLS_CC); zval_ptr_dtor(&zqs); } + PHP_HTTP_ENV_REQUEST_OBJECT_INIT(obj); } end_error_handling(); }