X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_request_object.c;h=4377dcc1e37f0888064b9d62a79a90f3b2185bac;hb=650dad8564d53bd3fb6c9867fa81e0abf17f6f7b;hp=bc7a0f854e1107fd361fd67fd7f501ca8bd14aa3;hpb=5b8614c1c854c6683af7bf2dca4a6c970d4bfc25;p=m6w6%2Fext-http diff --git a/http_request_object.c b/http_request_object.c index bc7a0f8..4377dcc 100644 --- a/http_request_object.c +++ b/http_request_object.c @@ -633,7 +633,7 @@ STATUS _http_request_object_responsehandler(http_request_object *obj, zval *this } UPD_PROP(long, responseCode, msg->http.info.response.code); - UPD_PROP(string, responseStatus, msg->http.info.response.status); + UPD_PROP(string, responseStatus, msg->http.info.response.status ? msg->http.info.response.status : ""); MAKE_STD_ZVAL(resp); array_init(resp); @@ -688,12 +688,14 @@ STATUS _http_request_object_responsehandler(http_request_object *obj, zval *this ret = FAILURE; } - if (zend_hash_exists(&Z_OBJCE_P(getThis())->function_table, "onfinish", sizeof("onfinish"))) { + if (!EG(exception) && zend_hash_exists(&Z_OBJCE_P(getThis())->function_table, "onfinish", sizeof("onfinish"))) { zval *param; MAKE_STD_ZVAL(param); ZVAL_BOOL(param, ret == SUCCESS); - zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "onfinish", NULL, param); + with_error_handling(EH_NORMAL, NULL) { + zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "onfinish", NULL, param); + } end_error_handling(); zval_ptr_dtor(¶m); }