X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_object.c;h=39e9116cbac20e9a95ba3df1d8ddaa33ff3b25ce;hp=5a1a2799b533357cf19ded1d1e20d282dc168bbc;hb=2e9ac0202f2c5f1cb94e0afd4b66c1c35c316284;hpb=d3485e3b28336153dca690e872ffe1ddc60fedd2 diff --git a/php_http_object.c b/php_http_object.c index 5a1a279..39e9116 100644 --- a/php_http_object.c +++ b/php_http_object.c @@ -6,14 +6,11 @@ | modification, are permitted provided that the conditions mentioned | | in the accompanying LICENSE file are met. | +--------------------------------------------------------------------+ - | Copyright (c) 2004-2010, Michael Wallner | + | Copyright (c) 2004-2011, Michael Wallner | +--------------------------------------------------------------------+ */ -/* $Id: http_api.c 300299 2010-06-09 06:23:16Z mike $ */ - - -#include "php_http.h" +#include "php_http_api.h" STATUS php_http_new(zend_object_value *ov, zend_class_entry *ce, php_http_new_t create, zend_class_entry *parent_ce, void *intern_ptr, void **obj_ptr TSRMLS_DC) { @@ -35,14 +32,14 @@ PHP_HTTP_API zend_error_handling_t php_http_object_get_error_handling(zval *obje zeh = zend_read_property(Z_OBJCE_P(object), object, ZEND_STRL("errorHandling"), 0 TSRMLS_CC); if (Z_TYPE_P(zeh) != IS_NULL) { - lzeh = php_http_zsep(IS_LONG, zeh); + lzeh = php_http_ztyp(IS_LONG, zeh); eh = Z_LVAL_P(lzeh); zval_ptr_dtor(&lzeh); return eh; } zeh = zend_read_static_property(php_http_object_class_entry, ZEND_STRL("defaultErrorHandling"), 0 TSRMLS_CC); if (Z_TYPE_P(zeh) != IS_NULL) { - lzeh = php_http_zsep(IS_LONG, zeh); + lzeh = php_http_ztyp(IS_LONG, zeh); eh = Z_LVAL_P(lzeh); zval_ptr_dtor(&lzeh); return eh; @@ -94,7 +91,7 @@ zend_object_value php_http_object_new_ex(zend_class_entry *ce, void *nothing, ph php_http_object_t *o; o = ecalloc(1, sizeof(php_http_object_t)); - zend_object_std_init((zend_object *)o, ce TSRMLS_CC); + zend_object_std_init((zend_object *) o, ce TSRMLS_CC); object_properties_init((zend_object *) o, ce); if (ptr) { @@ -115,7 +112,7 @@ PHP_METHOD(HttpObject, factory) zend_fcall_info fci; zend_fcall_info_cache fcc; - with_error_handling(EH_THROW, PHP_HTTP_EX_CE(runtime)) { + with_error_handling(EH_THROW, php_http_exception_class_entry) { if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "C|a/!", &class_entry, &ctor_args)) { object_init_ex(return_value, class_entry); @@ -142,26 +139,22 @@ PHP_METHOD(HttpObject, getErrorHandling) PHP_METHOD(HttpObject, setErrorHandling) { long eh; - zval *old; - if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &eh)) { - RETURN_FALSE; + if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &eh)) { + switch (eh) { + case EH_NORMAL: + case EH_SUPPRESS: + case EH_THROW: + zend_update_property_long(php_http_object_class_entry, getThis(), ZEND_STRL("errorHandling"), eh TSRMLS_CC); + break; + + default: + php_http_error(HE_WARNING, PHP_HTTP_E_RUNTIME, "unknown error handling code (%ld)", eh); + break; + } } - switch (eh) { - case EH_NORMAL: - case EH_SUPPRESS: - case EH_THROW: - break; - default: - php_http_error(HE_WARNING, PHP_HTTP_E_RUNTIME, "unknown error handling code (%ld)", eh); - RETURN_FALSE; - } - - old = zend_read_property(php_http_object_class_entry, getThis(), ZEND_STRL("errorHandling"), 0 TSRMLS_CC); - Z_ADDREF_P(old); - zend_update_property_long(php_http_object_class_entry, getThis(), ZEND_STRL("errorHandling"), eh TSRMLS_CC); - RETURN_ZVAL(old, 0, 0); + RETURN_ZVAL(getThis(), 1, 0); } PHP_METHOD(HttpObject, getDefaultErrorHandling) @@ -172,27 +165,22 @@ PHP_METHOD(HttpObject, getDefaultErrorHandling) PHP_METHOD(HttpObject, setDefaultErrorHandling) { long eh; - zval *old; - if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &eh)) { - RETURN_FALSE; - } - - switch (eh) { - case EH_NORMAL: - case EH_SUPPRESS: - case EH_THROW: - break; - default: - php_http_error(HE_WARNING, PHP_HTTP_E_RUNTIME, "unknown error handling code (%ld)", eh); - RETURN_FALSE; + if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &eh)) { + switch (eh) { + case EH_NORMAL: + case EH_SUPPRESS: + case EH_THROW: + zend_update_static_property_long(php_http_object_class_entry, ZEND_STRL("defaultErrorHandling"), eh TSRMLS_CC); + break; + + default: + php_http_error(HE_WARNING, PHP_HTTP_E_RUNTIME, "unknown error handling code (%ld)", eh); + break; + } } - - old = zend_read_static_property(php_http_object_class_entry, ZEND_STRL("defaultErrorHandling"), 0 TSRMLS_CC); - Z_ADDREF_P(old); - zend_update_static_property_long(php_http_object_class_entry, ZEND_STRL("defaultErrorHandling"), eh TSRMLS_CC); - RETURN_ZVAL(old, 0, 1); } + PHP_MINIT_FUNCTION(http_object) { PHP_HTTP_REGISTER_CLASS(http, Object, http_object, NULL, ZEND_ACC_ABSTRACT);