| modification, are permitted provided that the conditions mentioned |
| in the accompanying LICENSE file are met. |
+--------------------------------------------------------------------+
- | Copyright (c) 2004-2006, Michael Wallner <mike@php.net> |
+ | Copyright (c) 2004-2007, Michael Wallner <mike@php.net> |
+--------------------------------------------------------------------+
*/
#define HTTP_EMPTY_ARGS(method) HTTP_EMPTY_ARGS_EX(HttpRequest, method, 0)
#define HTTP_REQUEST_ME(method, visibility) PHP_ME(HttpRequest, method, HTTP_ARGS(HttpRequest, method), visibility)
#define HTTP_REQUEST_ALIAS(method, func) HTTP_STATIC_ME_ALIAS(method, func, HTTP_ARGS(HttpRequest, method))
+#define HTTP_REQUEST_MALIAS(me, al, vis) ZEND_FENTRY(me, ZEND_MN(HttpRequest_##al), HTTP_ARGS(HttpRequest, al), vis)
HTTP_BEGIN_ARGS(__construct, 0)
HTTP_ARG_VAL(url, 0)
HTTP_END_ARGS;
HTTP_EMPTY_ARGS(enableCookies);
-#if HTTP_CURL_VERSION(7,14,1)
HTTP_BEGIN_ARGS(resetCookies, 0)
HTTP_ARG_VAL(session_only, 0)
HTTP_END_ARGS;
-#endif
+HTTP_EMPTY_ARGS(flushCookies);
HTTP_EMPTY_ARGS(getUrl);
HTTP_BEGIN_ARGS(setUrl, 1)
HTTP_ARG_VAL(content_type, 0)
HTTP_END_ARGS;
-HTTP_EMPTY_ARGS(getRawPostData);
-HTTP_BEGIN_ARGS(setRawPostData, 0)
- HTTP_ARG_VAL(raw_post_data, 0)
+HTTP_EMPTY_ARGS(getBody);
+HTTP_BEGIN_ARGS(setBody, 0)
+ HTTP_ARG_VAL(request_body_data, 0)
HTTP_END_ARGS;
-HTTP_BEGIN_ARGS(addRawPostData, 1)
- HTTP_ARG_VAL(raw_post_data, 0)
+HTTP_BEGIN_ARGS(addBody, 1)
+ HTTP_ARG_VAL(request_body_data, 0)
HTTP_END_ARGS;
HTTP_EMPTY_ARGS(getPutFile);
HTTP_ARG_VAL(method, 0)
HTTP_END_ARGS;
-#ifdef HAVE_CURL_GETFORMDATA
+#ifdef HAVE_CURL_FORMGET
HTTP_BEGIN_ARGS(encodeBody, 2)
HTTP_ARG_VAL(fields, 0)
HTTP_ARG_VAL(files, 0)
HTTP_END_ARGS;
#endif
-#define OBJ_PROP_CE http_request_object_ce
+#define THIS_CE http_request_object_ce
zend_class_entry *http_request_object_ce;
zend_function_entry http_request_object_fe[] = {
HTTP_REQUEST_ME(__construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR)
HTTP_REQUEST_ME(setCookies, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(enableCookies, ZEND_ACC_PUBLIC)
-#if HTTP_CURL_VERSION(7,14,1)
HTTP_REQUEST_ME(resetCookies, ZEND_ACC_PUBLIC)
-#endif
+ HTTP_REQUEST_ME(flushCookies, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(setMethod, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(getMethod, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(getPostFields, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(addPostFields, ZEND_ACC_PUBLIC)
- HTTP_REQUEST_ME(setRawPostData, ZEND_ACC_PUBLIC)
- HTTP_REQUEST_ME(getRawPostData, ZEND_ACC_PUBLIC)
- HTTP_REQUEST_ME(addRawPostData, ZEND_ACC_PUBLIC)
+ HTTP_REQUEST_ME(setBody, ZEND_ACC_PUBLIC)
+ HTTP_REQUEST_ME(getBody, ZEND_ACC_PUBLIC)
+ HTTP_REQUEST_ME(addBody, ZEND_ACC_PUBLIC)
+ HTTP_REQUEST_MALIAS(setRawPostData, setBody, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
+ HTTP_REQUEST_MALIAS(getRawPostData, getBody, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
+ HTTP_REQUEST_MALIAS(addRawPostData, addBody, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
HTTP_REQUEST_ME(setPostFiles, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ME(addPostFile, ZEND_ACC_PUBLIC)
HTTP_REQUEST_ALIAS(methodUnregister, http_request_method_unregister)
HTTP_REQUEST_ALIAS(methodName, http_request_method_name)
HTTP_REQUEST_ALIAS(methodExists, http_request_method_exists)
-#if defined(HAVE_CURL_GETFORMDATA) || defined(HAVE_CURL_FORMGET)
+#ifdef HAVE_CURL_FORMGET
HTTP_REQUEST_ALIAS(encodeBody, http_request_body_encode)
#endif
EMPTY_FUNCTION_ENTRY
HTTP_REGISTER_CLASS_EX(HttpRequest, http_request_object, NULL, 0);
http_request_object_handlers.clone_obj = _http_request_object_clone_obj;
- DCL_PROP_N(PRIVATE, options);
- DCL_PROP_N(PRIVATE, postFields);
- DCL_PROP_N(PRIVATE, postFiles);
- DCL_PROP_N(PRIVATE, responseInfo);
- DCL_PROP_N(PRIVATE, responseMessage);
- DCL_PROP(PRIVATE, long, responseCode, 0);
- DCL_PROP(PRIVATE, string, responseStatus, "");
- DCL_PROP(PRIVATE, long, method, HTTP_GET);
- DCL_PROP(PRIVATE, string, url, "");
- DCL_PROP(PRIVATE, string, contentType, "");
- DCL_PROP(PRIVATE, string, rawPostData, "");
- DCL_PROP(PRIVATE, string, queryData, "");
- DCL_PROP(PRIVATE, string, putFile, "");
- DCL_PROP(PRIVATE, string, putData, "");
- DCL_PROP_N(PRIVATE, history);
- DCL_PROP(PUBLIC, bool, recordHistory, 0);
+ zend_declare_property_null(THIS_CE, ZEND_STRS("options")-1, ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_null(THIS_CE, ZEND_STRS("postFields")-1, ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_null(THIS_CE, ZEND_STRS("postFiles")-1, ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_null(THIS_CE, ZEND_STRS("responseInfo")-1, ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_null(THIS_CE, ZEND_STRS("responseMessage")-1, ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_long(THIS_CE, ZEND_STRS("responseCode")-1, 0, ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_string(THIS_CE, ZEND_STRS("responseStatus")-1, "", ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_long(THIS_CE, ZEND_STRS("method")-1, HTTP_GET, ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_string(THIS_CE, ZEND_STRS("url")-1, "", ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_string(THIS_CE, ZEND_STRS("contentType")-1, "", ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_string(THIS_CE, ZEND_STRS("requestBody")-1, "", ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_string(THIS_CE, ZEND_STRS("queryData")-1, "", ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_string(THIS_CE, ZEND_STRS("putFile")-1, "", ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_string(THIS_CE, ZEND_STRS("putData")-1, "", ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_null(THIS_CE, ZEND_STRS("history")-1, ZEND_ACC_PRIVATE TSRMLS_CC);
+ zend_declare_property_bool(THIS_CE, ZEND_STRS("recordHistory")-1, 0, ZEND_ACC_PUBLIC TSRMLS_CC);
#ifndef WONKY
/*
* Request Method Constants
*/
/* HTTP/1.1 */
- DCL_CONST(long, "METH_GET", HTTP_GET);
- DCL_CONST(long, "METH_HEAD", HTTP_HEAD);
- DCL_CONST(long, "METH_POST", HTTP_POST);
- DCL_CONST(long, "METH_PUT", HTTP_PUT);
- DCL_CONST(long, "METH_DELETE", HTTP_DELETE);
- DCL_CONST(long, "METH_OPTIONS", HTTP_OPTIONS);
- DCL_CONST(long, "METH_TRACE", HTTP_TRACE);
- DCL_CONST(long, "METH_CONNECT", HTTP_CONNECT);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_GET")-1, HTTP_GET TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_HEAD")-1, HTTP_HEAD TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_POST")-1, HTTP_POST TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_PUT")-1, HTTP_PUT TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_DELETE")-1, HTTP_DELETE TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_OPTIONS")-1, HTTP_OPTIONS TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_TRACE")-1, HTTP_TRACE TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_CONNECT")-1, HTTP_CONNECT TSRMLS_CC);
/* WebDAV - RFC 2518 */
- DCL_CONST(long, "METH_PROPFIND", HTTP_PROPFIND);
- DCL_CONST(long, "METH_PROPPATCH", HTTP_PROPPATCH);
- DCL_CONST(long, "METH_MKCOL", HTTP_MKCOL);
- DCL_CONST(long, "METH_COPY", HTTP_COPY);
- DCL_CONST(long, "METH_MOVE", HTTP_MOVE);
- DCL_CONST(long, "METH_LOCK", HTTP_LOCK);
- DCL_CONST(long, "METH_UNLOCK", HTTP_UNLOCK);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_PROPFIND")-1, HTTP_PROPFIND TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_PROPPATCH")-1, HTTP_PROPPATCH TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_MKCOL")-1, HTTP_MKCOL TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_COPY")-1, HTTP_COPY TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_MOVE")-1, HTTP_MOVE TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_LOCK")-1, HTTP_LOCK TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_UNLOCK")-1, HTTP_UNLOCK TSRMLS_CC);
/* WebDAV Versioning - RFC 3253 */
- DCL_CONST(long, "METH_VERSION_CONTROL", HTTP_VERSION_CONTROL);
- DCL_CONST(long, "METH_REPORT", HTTP_REPORT);
- DCL_CONST(long, "METH_CHECKOUT", HTTP_CHECKOUT);
- DCL_CONST(long, "METH_CHECKIN", HTTP_CHECKIN);
- DCL_CONST(long, "METH_UNCHECKOUT", HTTP_UNCHECKOUT);
- DCL_CONST(long, "METH_MKWORKSPACE", HTTP_MKWORKSPACE);
- DCL_CONST(long, "METH_UPDATE", HTTP_UPDATE);
- DCL_CONST(long, "METH_LABEL", HTTP_LABEL);
- DCL_CONST(long, "METH_MERGE", HTTP_MERGE);
- DCL_CONST(long, "METH_BASELINE_CONTROL", HTTP_BASELINE_CONTROL);
- DCL_CONST(long, "METH_MKACTIVITY", HTTP_MKACTIVITY);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_VERSION_CONTROL")-1, HTTP_VERSION_CONTROL TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_REPORT")-1, HTTP_REPORT TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_CHECKOUT")-1, HTTP_CHECKOUT TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_CHECKIN")-1, HTTP_CHECKIN TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_UNCHECKOUT")-1, HTTP_UNCHECKOUT TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_MKWORKSPACE")-1, HTTP_MKWORKSPACE TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_UPDATE")-1, HTTP_UPDATE TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_LABEL")-1, HTTP_LABEL TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_MERGE")-1, HTTP_MERGE TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_BASELINE_CONTROL")-1, HTTP_BASELINE_CONTROL TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_MKACTIVITY")-1, HTTP_MKACTIVITY TSRMLS_CC);
/* WebDAV Access Control - RFC 3744 */
- DCL_CONST(long, "METH_ACL", HTTP_ACL);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("METH_ACL")-1, HTTP_ACL TSRMLS_CC);
/*
* HTTP Protocol Version Constants
*/
- DCL_CONST(long, "VERSION_1_0", CURL_HTTP_VERSION_1_0);
- DCL_CONST(long, "VERSION_1_1", CURL_HTTP_VERSION_1_1);
- DCL_CONST(long, "VERSION_NONE", CURL_HTTP_VERSION_NONE); /* to be removed */
- DCL_CONST(long, "VERSION_ANY", CURL_HTTP_VERSION_NONE);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("VERSION_1_0")-1, CURL_HTTP_VERSION_1_0 TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("VERSION_1_1")-1, CURL_HTTP_VERSION_1_1 TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("VERSION_NONE")-1, CURL_HTTP_VERSION_NONE TSRMLS_CC); /* to be removed */
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("VERSION_ANY")-1, CURL_HTTP_VERSION_NONE TSRMLS_CC);
/*
* SSL Version Constants
*/
- DCL_CONST(long, "SSL_VERSION_TLSv1", CURL_SSLVERSION_TLSv1);
- DCL_CONST(long, "SSL_VERSION_SSLv2", CURL_SSLVERSION_SSLv2);
- DCL_CONST(long, "SSL_VERSION_SSLv3", CURL_SSLVERSION_SSLv3);
- DCL_CONST(long, "SSL_VERSION_ANY", CURL_SSLVERSION_DEFAULT);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("SSL_VERSION_TLSv1")-1, CURL_SSLVERSION_TLSv1 TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("SSL_VERSION_SSLv2")-1, CURL_SSLVERSION_SSLv2 TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("SSL_VERSION_SSLv3")-1, CURL_SSLVERSION_SSLv3 TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("SSL_VERSION_ANY")-1, CURL_SSLVERSION_DEFAULT TSRMLS_CC);
/*
* DNS IPvX resolving
*/
- DCL_CONST(long, "IPRESOLVE_V4", CURL_IPRESOLVE_V4);
- DCL_CONST(long, "IPRESOLVE_V6", CURL_IPRESOLVE_V6);
- DCL_CONST(long, "IPRESOLVE_ANY", CURL_IPRESOLVE_WHATEVER);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("IPRESOLVE_V4")-1, CURL_IPRESOLVE_V4 TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("IPRESOLVE_V6")-1, CURL_IPRESOLVE_V6 TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("IPRESOLVE_ANY")-1, CURL_IPRESOLVE_WHATEVER TSRMLS_CC);
/*
* Auth Constants
*/
- DCL_CONST(long, "AUTH_BASIC", CURLAUTH_BASIC);
- DCL_CONST(long, "AUTH_DIGEST", CURLAUTH_DIGEST);
- DCL_CONST(long, "AUTH_NTLM", CURLAUTH_NTLM);
- DCL_CONST(long, "AUTH_GSSNEG", CURLAUTH_GSSNEGOTIATE);
- DCL_CONST(long, "AUTH_ANY", CURLAUTH_ANY);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("AUTH_BASIC")-1, CURLAUTH_BASIC TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("AUTH_DIGEST")-1, CURLAUTH_DIGEST TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("AUTH_NTLM")-1, CURLAUTH_NTLM TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("AUTH_GSSNEG")-1, CURLAUTH_GSSNEGOTIATE TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("AUTH_ANY")-1, CURLAUTH_ANY TSRMLS_CC);
/*
* Proxy Type Constants
*/
# if HTTP_CURL_VERSION(7,15,2)
- DCL_CONST(long, "PROXY_SOCKS4", CURLPROXY_SOCKS4);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("PROXY_SOCKS4")-1, CURLPROXY_SOCKS4 TSRMLS_CC);
# endif
- DCL_CONST(long, "PROXY_SOCKS5", CURLPROXY_SOCKS5);
- DCL_CONST(long, "PROXY_HTTP", CURLPROXY_HTTP);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("PROXY_SOCKS5")-1, CURLPROXY_SOCKS5 TSRMLS_CC);
+ zend_declare_class_constant_long(THIS_CE, ZEND_STRS("PROXY_HTTP")-1, CURLPROXY_HTTP TSRMLS_CC);
#endif /* WONKY */
return SUCCESS;
new_ov = http_request_object_new_ex(old_obj->zo.ce, NULL, &new_obj);
if (old_obj->request->ch) {
- http_curl_init_ex(curl_easy_duphandle(old_obj->request->ch), new_obj->request);
+ http_curl_init_ex(http_curl_copy(old_obj->request->ch), new_obj->request);
}
zend_objects_clone_members(&new_obj->zo, new_ov, &old_obj->zo, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC);
#define http_request_object_check_request_content_type(t) _http_request_object_check_request_content_type((t) TSRMLS_CC)
static inline void _http_request_object_check_request_content_type(zval *this_ptr TSRMLS_DC)
{
- zval *ctype = GET_PROP(contentType);
+ zval *ctype = zend_read_property(THIS_CE, getThis(), ZEND_STRS("contentType")-1, 0 TSRMLS_CC);
if (Z_STRLEN_P(ctype)) {
- zval **headers, *opts = GET_PROP(options);
+ zval **headers, *opts = zend_read_property(THIS_CE, getThis(), ZEND_STRS("options")-1, 0 TSRMLS_CC);
if ( (Z_TYPE_P(opts) == IS_ARRAY) &&
(SUCCESS == zend_hash_find(Z_ARRVAL_P(opts), "headers", sizeof("headers"), (void *) &headers)) &&
http_request_reset(obj->request);
HTTP_CHECK_CURL_INIT(obj->request->ch, http_curl_init(obj->request), return FAILURE);
- obj->request->url = http_absolute_url(Z_STRVAL_P(GET_PROP(url)));
+ obj->request->url = http_absolute_url(Z_STRVAL_P(zend_read_property(THIS_CE, getThis(), ZEND_STRS("url")-1, 0 TSRMLS_CC)));
- switch (obj->request->meth = Z_LVAL_P(GET_PROP(method)))
+ switch (obj->request->meth = Z_LVAL_P(zend_read_property(THIS_CE, getThis(), ZEND_STRS("method")-1, 0 TSRMLS_CC)))
{
case HTTP_GET:
case HTTP_HEAD:
case HTTP_PUT:
{
- zval *put_file = GET_PROP(putFile);
+ zval *put_file = zend_read_property(THIS_CE, getThis(), ZEND_STRS("putFile")-1, 0 TSRMLS_CC);
http_request_object_check_request_content_type(getThis());
status = FAILURE;
}
} else {
- zval *put_data = GET_PROP(putData);
+ zval *put_data = zend_read_property(THIS_CE, getThis(), ZEND_STRS("putData")-1, 0 TSRMLS_CC);
obj->request->body = http_request_body_init_ex(obj->request->body, HTTP_REQUEST_BODY_CSTRING,
estrndup(Z_STRVAL_P(put_data), Z_STRLEN_P(put_data)), Z_STRLEN_P(put_data), 1);
}
case HTTP_POST:
default:
{
- /* check for raw post data */
- zval *raw_data = GET_PROP(rawPostData);
+ /* check for raw request body */
+ zval *raw_data = zend_read_property(THIS_CE, getThis(), ZEND_STRS("requestBody")-1, 0 TSRMLS_CC);
if (Z_STRLEN_P(raw_data)) {
http_request_object_check_request_content_type(getThis());
obj->request->body = http_request_body_init_ex(obj->request->body, HTTP_REQUEST_BODY_CSTRING,
estrndup(Z_STRVAL_P(raw_data), Z_STRLEN_P(raw_data)), Z_STRLEN_P(raw_data), 1);
} else {
- zval *zfields = GET_PROP(postFields), *zfiles = GET_PROP(postFiles);
+ zval *zfields = zend_read_property(THIS_CE, getThis(), ZEND_STRS("postFields")-1, 0 TSRMLS_CC), *zfiles = zend_read_property(THIS_CE, getThis(), ZEND_STRS("postFiles")-1, 0 TSRMLS_CC);
HashTable *fields;
HashTable *files;
}
if (status == SUCCESS) {
- zval *qdata = GET_PROP(queryData);
- zval *options = GET_PROP(options);
+ zval *qdata = zend_read_property(THIS_CE, getThis(), ZEND_STRS("queryData")-1, 0 TSRMLS_CC);
+ zval *options = zend_read_property(THIS_CE, getThis(), ZEND_STRS("options")-1, 0 TSRMLS_CC);
if (Z_STRLEN_P(qdata)) {
if (!strchr(obj->request->url, '?')) {
if ( (Z_TYPE_P(options) != IS_ARRAY)
|| (SUCCESS != zend_hash_find(Z_ARRVAL_P(options), "onprogress", sizeof("onprogress"), (void *) &entry)
- || (!zval_is_true(*entry)))) {
+ || (!zend_is_callable(*entry, 0, NULL)))) {
MAKE_STD_ZVAL(pcb);
array_init(pcb);
ZVAL_ADDREF(getThis());
MAKE_STD_ZVAL(info);
array_init(info);
http_request_info(obj->request, Z_ARRVAL_P(info));
- SET_PROP(responseInfo, info);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("responseInfo")-1, info TSRMLS_CC);
zval_ptr_dtor(&info);
/* parse response message */
if ((msg = http_message_parse(PHPSTR_VAL(&obj->request->conv.response), PHPSTR_LEN(&obj->request->conv.response)))) {
zval *message;
- if (zval_is_true(GET_PROP(recordHistory))) {
- zval *hist, *history = GET_PROP(history);
+ if (i_zend_is_true(zend_read_property(THIS_CE, getThis(), ZEND_STRS("recordHistory")-1, 0 TSRMLS_CC))) {
+ zval *hist, *history = zend_read_property(THIS_CE, getThis(), ZEND_STRS("history")-1, 0 TSRMLS_CC);
http_message *response = http_message_parse(PHPSTR_VAL(&obj->request->conv.response), PHPSTR_LEN(&obj->request->conv.response));
http_message *request = http_message_parse(PHPSTR_VAL(&obj->request->conv.request), PHPSTR_LEN(&obj->request->conv.request));
if (Z_TYPE_P(history) == IS_OBJECT) {
http_message_object_prepend(hist, history);
}
- SET_PROP(history, hist);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("history")-1, hist TSRMLS_CC);
zval_ptr_dtor(&hist);
}
- UPD_PROP(long, responseCode, msg->http.info.response.code);
- UPD_PROP(string, responseStatus, STR_PTR(msg->http.info.response.status));
+ zend_update_property_long(THIS_CE, getThis(), ZEND_STRS("responseCode")-1, msg->http.info.response.code TSRMLS_CC);
+ zend_update_property_string(THIS_CE, getThis(), ZEND_STRS("responseStatus")-1, STR_PTR(msg->http.info.response.status) TSRMLS_CC);
MAKE_STD_ZVAL(message);
ZVAL_OBJVAL(message, http_message_object_new_ex(http_message_object_ce, msg, NULL), 0);
- SET_PROP(responseMessage, message);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("responseMessage")-1, message TSRMLS_CC);
zval_ptr_dtor(&message);
ret = SUCCESS;
MAKE_STD_ZVAL(znull);
ZVAL_NULL(znull);
- SET_PROP(responseMessage, znull);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("responseMessage")-1, znull TSRMLS_CC);
zval_ptr_dtor(&znull);
- UPD_PROP(long, responseCode, 0);
- UPD_PROP(string, responseStatus, "");
+ zend_update_property_long(THIS_CE, getThis(), ZEND_STRS("responseCode")-1, 0 TSRMLS_CC);
+ zend_update_property_string(THIS_CE, getThis(), ZEND_STRS("responseStatus")-1, "" TSRMLS_CC);
/* append request message to history */
- if (zval_is_true(GET_PROP(recordHistory))) {
+ if (i_zend_is_true(zend_read_property(THIS_CE, getThis(), ZEND_STRS("recordHistory")-1, 0 TSRMLS_CC))) {
http_message *request;
if ((request = http_message_parse(PHPSTR_VAL(&obj->request->conv.request), PHPSTR_LEN(&obj->request->conv.request)))) {
- zval *hist, *history = GET_PROP(history);
+ zval *hist, *history = zend_read_property(THIS_CE, getThis(), ZEND_STRS("history")-1, 0 TSRMLS_CC);
MAKE_STD_ZVAL(hist);
ZVAL_OBJVAL(hist, http_message_object_new_ex(http_message_object_ce, request, NULL), 0);
if (Z_TYPE_P(history) == IS_OBJECT) {
http_message_object_prepend(hist, history);
}
- SET_PROP(history, hist);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("history")-1, hist TSRMLS_CC);
zval_ptr_dtor(&hist);
}
}
ret = FAILURE;
}
+ http_request_set_progress_callback(obj->request, NULL);
+
if (!EG(exception) && zend_hash_exists(&Z_OBJCE_P(getThis())->function_table, "onfinish", sizeof("onfinish"))) {
zval *param;
zval_ptr_dtor(¶m);
}
- http_request_set_progress_callback(obj->request, NULL);
-
return ret;
}
static int apply_pretty_key(void *pDest, int num_args, va_list args, zend_hash_key *hash_key)
{
if (hash_key->nKeyLength > 1) {
- hash_key->h = zend_get_hash_value(pretty_key(hash_key->arKey, hash_key->nKeyLength - 1, 1, 0), hash_key->nKeyLength);
+ hash_key->h = zend_hash_func(pretty_key(hash_key->arKey, hash_key->nKeyLength - 1, 1, 0), hash_key->nKeyLength);
}
return ZEND_HASH_APPLY_KEEP;
}
MAKE_STD_ZVAL(new_opts);
array_init(new_opts);
- old_opts = GET_PROP(options);
+ old_opts = zend_read_property(THIS_CE, getThis(), ZEND_STRS("options")-1, 0 TSRMLS_CC);
if (Z_TYPE_P(old_opts) == IS_ARRAY) {
array_copy(Z_ARRVAL_P(old_opts), Z_ARRVAL_P(new_opts));
}
ZVAL_ADDREF(opts);
add_assoc_zval_ex(new_opts, key, len, opts);
}
- SET_PROP(options, new_opts);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("options")-1, new_opts TSRMLS_CC);
zval_ptr_dtor(&new_opts);
RETURN_TRUE;
if (return_value_used) {
zval *opts, **options;
- opts = GET_PROP(options);
+ opts = zend_read_property(THIS_CE, getThis(), ZEND_STRS("options")-1, 0 TSRMLS_CC);
array_init(return_value);
if ( (Z_TYPE_P(opts) == IS_ARRAY) &&
SET_EH_THROW_HTTP();
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sla!", &URL, &URL_len, &meth, &options)) {
if (URL) {
- UPD_STRL(url, URL, URL_len);
+ zend_update_property_stringl(THIS_CE, getThis(), ZEND_STRS("url")-1, URL, URL_len TSRMLS_CC);
}
if (meth > -1) {
- UPD_PROP(long, method, meth);
+ zend_update_property_long(THIS_CE, getThis(), ZEND_STRS("method")-1, meth TSRMLS_CC);
}
if (options) {
zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "setoptions", NULL, options);
RETVAL_OBJVAL(ov, 0);
getThis() = return_value;
if (URL) {
- UPD_STRL(url, URL, URL_len);
+ zend_update_property_stringl(THIS_CE, getThis(), ZEND_STRS("url")-1, URL, URL_len TSRMLS_CC);
}
if (meth > -1) {
- UPD_PROP(long, method, meth);
+ zend_update_property_long(THIS_CE, getThis(), ZEND_STRS("method")-1, meth TSRMLS_CC);
}
if (options) {
zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "setoptions", NULL, options);
array_init(new_opts);
if (!opts || !zend_hash_num_elements(Z_ARRVAL_P(opts))) {
- SET_PROP(options, new_opts);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("options")-1, new_opts TSRMLS_CC);
zval_ptr_dtor(&new_opts);
RETURN_TRUE;
}
/* some options need extra attention -- thus cannot use array_merge() directly */
FOREACH_KEYVAL(pos, opts, key, opt) {
if (key.type == HASH_KEY_IS_STRING) {
- if (!strcmp(key.str, "headers")) {
+#define KEYMATCH(k, s) ((sizeof(s)==k.len) && !strcasecmp(k.str, s))
+ if (KEYMATCH(key, "headers")) {
zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "addheaders", NULL, *opt);
- } else if (!strcmp(key.str, "cookies")) {
+ } else if (KEYMATCH(key, "cookies")) {
zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "addcookies", NULL, *opt);
- } else if (!strcmp(key.str, "ssl")) {
+ } else if (KEYMATCH(key, "ssl")) {
zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "addssloptions", NULL, *opt);
- } else if ((!strcasecmp(key.str, "url")) || (!strcasecmp(key.str, "uri"))) {
+ } else if (KEYMATCH(key, "url") || KEYMATCH(key, "uri")) {
zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "seturl", NULL, *opt);
- } else if (!strcmp(key.str, "method")) {
+ } else if (KEYMATCH(key, "method")) {
zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "setmethod", NULL, *opt);
-#if HTTP_CURL_VERSION(7,14,1)
- } else if (!strcmp(key.str, "resetcookies")) {
+ } else if (KEYMATCH(key, "flushcookies")) {
getObject(http_request_object, obj);
- http_request_reset_cookies(obj->request, 0);
-#endif
- } else if (!strcmp(key.str, "enablecookies")) {
+ if (i_zend_is_true(*opt)) {
+ http_request_flush_cookies(obj->request);
+ }
+ } else if (KEYMATCH(key, "resetcookies")) {
+ getObject(http_request_object, obj);
+ http_request_reset_cookies(obj->request, (zend_bool) i_zend_is_true(*opt));
+ } else if (KEYMATCH(key, "enablecookies")) {
getObject(http_request_object, obj);
http_request_enable_cookies(obj->request);
- } else if (!strcasecmp(key.str, "recordHistory")) {
- UPD_PROP(bool, recordHistory, 1);
+ } else if (KEYMATCH(key, "recordHistory")) {
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("recordHistory")-1, *opt TSRMLS_CC);
+ } else if (Z_TYPE_PP(opt) == IS_NULL) {
+ old_opts = zend_read_property(THIS_CE, getThis(), ZEND_STRS("options")-1, 0 TSRMLS_CC);
+ if (Z_TYPE_P(old_opts) == IS_ARRAY) {
+ zend_hash_del(Z_ARRVAL_P(old_opts), key.str, key.len);
+ }
} else {
ZVAL_ADDREF(*opt);
add_assoc_zval_ex(add_opts, key.str, key.len, *opt);
}
}
- old_opts = GET_PROP(options);
+ old_opts = zend_read_property(THIS_CE, getThis(), ZEND_STRS("options")-1, 0 TSRMLS_CC);
if (Z_TYPE_P(old_opts) == IS_ARRAY) {
array_copy(Z_ARRVAL_P(old_opts), Z_ARRVAL_P(new_opts));
}
array_join(Z_ARRVAL_P(add_opts), Z_ARRVAL_P(new_opts), 0, 0);
- SET_PROP(options, new_opts);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("options")-1, new_opts TSRMLS_CC);
zval_ptr_dtor(&new_opts);
zval_ptr_dtor(&add_opts);
}
/* }}} */
+/* {{{ proto bool HttpRequest::flushCookies()
+ Flush internal cookies to the cookiestore file */
+PHP_METHOD(HttpRequest, flushCookies)
+{
+ NO_ARGS {
+ getObject(http_request_object, obj);
+ RETURN_SUCCESS(http_request_flush_cookies(obj->request));
+ }
+}
+/* }}} */
+
/* {{{ proto bool HttpRequest::setUrl(string url)
Set the request URL. */
PHP_METHOD(HttpRequest, setUrl)
RETURN_FALSE;
}
- UPD_STRL(url, URL, URL_len);
+ zend_update_property_stringl(THIS_CE, getThis(), ZEND_STRS("url")-1, URL, URL_len TSRMLS_CC);
RETURN_TRUE;
}
/* }}} */
RETURN_FALSE;
}
- UPD_PROP(long, method, meth);
+ zend_update_property_long(THIS_CE, getThis(), ZEND_STRS("method")-1, meth TSRMLS_CC);
RETURN_TRUE;
}
/* }}} */
if (ct_len) {
HTTP_CHECK_CONTENT_TYPE(ctype, RETURN_FALSE);
}
- UPD_STRL(contentType, ctype, ct_len);
+ zend_update_property_stringl(THIS_CE, getThis(), ZEND_STRS("contentType")-1, ctype, ct_len TSRMLS_CC);
RETURN_TRUE;
}
/* }}} */
}
if ((!qdata) || Z_TYPE_P(qdata) == IS_NULL) {
- UPD_STRL(queryData, "", 0);
+ zend_update_property_stringl(THIS_CE, getThis(), ZEND_STRS("queryData")-1, "", 0 TSRMLS_CC);
} else if ((Z_TYPE_P(qdata) == IS_ARRAY) || (Z_TYPE_P(qdata) == IS_OBJECT)) {
char *query_data = NULL;
RETURN_FALSE;
}
- UPD_PROP(string, queryData, query_data);
+ zend_update_property_string(THIS_CE, getThis(), ZEND_STRS("queryData")-1, query_data TSRMLS_CC);
efree(query_data);
} else {
zval *orig = qdata;
convert_to_string_ex(&qdata);
- UPD_STRL(queryData, Z_STRVAL_P(qdata), Z_STRLEN_P(qdata));
+ zend_update_property_stringl(THIS_CE, getThis(), ZEND_STRS("queryData")-1, Z_STRVAL_P(qdata), Z_STRLEN_P(qdata) TSRMLS_CC);
if (orig != qdata) {
zval_ptr_dtor(&qdata);
}
RETURN_FALSE;
}
- old_qdata = GET_PROP(queryData);
+ old_qdata = zend_read_property(THIS_CE, getThis(), ZEND_STRS("queryData")-1, 0 TSRMLS_CC);
if (SUCCESS != http_urlencode_hash_ex(HASH_OF(qdata), 1, Z_STRVAL_P(old_qdata), Z_STRLEN_P(old_qdata), &query_data, &query_data_len)) {
RETURN_FALSE;
}
- UPD_STRL(queryData, query_data, query_data_len);
+ zend_update_property_stringl(THIS_CE, getThis(), ZEND_STRS("queryData")-1, query_data, query_data_len TSRMLS_CC);
efree(query_data);
RETURN_TRUE;
if (zend_hash_num_elements(Z_ARRVAL_P(post_data))) {
MAKE_STD_ZVAL(new_post);
array_init(new_post);
- old_post = GET_PROP(postFields);
+ old_post = zend_read_property(THIS_CE, getThis(), ZEND_STRS("postFields")-1, 0 TSRMLS_CC);
if (Z_TYPE_P(old_post) == IS_ARRAY) {
array_copy(Z_ARRVAL_P(old_post), Z_ARRVAL_P(new_post));
}
array_join(Z_ARRVAL_P(post_data), Z_ARRVAL_P(new_post), 0, 0);
- SET_PROP(postFields, new_post);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("postFields")-1, new_post TSRMLS_CC);
zval_ptr_dtor(&new_post);
}
if (post_data && zend_hash_num_elements(Z_ARRVAL_P(post_data))) {
array_copy(Z_ARRVAL_P(post_data), Z_ARRVAL_P(post));
}
- SET_PROP(postFields, post);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("postFields")-1, post TSRMLS_CC);
zval_ptr_dtor(&post);
RETURN_TRUE;
}
/* }}} */
-/* {{{ proto bool HttpRequest::setRawPostData([string raw_post_data])
- Set raw post data to send, overwriting previously set raw post data. Don't forget to specify a content type. */
-PHP_METHOD(HttpRequest, setRawPostData)
+/* {{{ proto bool HttpRequest::setBody([string request_body_data])
+ Set request body to send, overwriting previously set request body. Don't forget to specify a content type. */
+PHP_METHOD(HttpRequest, setBody)
{
char *raw_data = NULL;
int data_len = 0;
raw_data = "";
}
- UPD_STRL(rawPostData, raw_data, data_len);
+ zend_update_property_stringl(THIS_CE, getThis(), ZEND_STRS("requestBody")-1, raw_data, data_len TSRMLS_CC);
RETURN_TRUE;
}
/* }}} */
-/* {{{ proto bool HttpRequest::addRawPostData(string raw_post_data)
- Add raw post data, leaving previously set raw post data unchanged. */
-PHP_METHOD(HttpRequest, addRawPostData)
+/* {{{ proto bool HttpRequest::addBody(string request_body_data)
+ Add request body data, leaving previously set request body data unchanged. */
+PHP_METHOD(HttpRequest, addBody)
{
char *raw_data;
int data_len;
}
if (data_len) {
- zval *data = GET_PROP(rawPostData);
+ zval *data = zend_read_property(THIS_CE, getThis(), ZEND_STRS("rrequestBody")-1, 0 TSRMLS_CC);
if (Z_STRLEN_P(data)) {
Z_STRVAL_P(data) = erealloc(Z_STRVAL_P(data), (Z_STRLEN_P(data) += data_len) + 1);
Z_STRVAL_P(data)[Z_STRLEN_P(data)] = '\0';
memcpy(Z_STRVAL_P(data) + Z_STRLEN_P(data) - data_len, raw_data, data_len);
} else {
- UPD_STRL(putData, raw_data, data_len);
+ zend_update_property_stringl(THIS_CE, getThis(), ZEND_STRS("putData")-1, raw_data, data_len TSRMLS_CC);
}
}
}
/* }}} */
-/* {{{ proto string HttpRequest::getRawPostData()
- Get previously set raw post data. */
-PHP_METHOD(HttpRequest, getRawPostData)
+/* {{{ proto string HttpRequest::getBody()
+ Get previously set request body data. */
+PHP_METHOD(HttpRequest, getBody)
{
NO_ARGS;
if (return_value_used) {
- RETURN_PROP(rawPostData);
+ RETURN_PROP(requestBody);
}
}
/* }}} */
MAKE_STD_ZVAL(new_post);
array_init(new_post);
- old_post = GET_PROP(postFiles);
+ old_post = zend_read_property(THIS_CE, getThis(), ZEND_STRS("postFiles")-1, 0 TSRMLS_CC);
if (Z_TYPE_P(old_post) == IS_ARRAY) {
array_copy(Z_ARRVAL_P(old_post), Z_ARRVAL_P(new_post));
}
add_next_index_zval(new_post, entry);
- SET_PROP(postFiles, new_post);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("postFiles")-1, new_post TSRMLS_CC);
zval_ptr_dtor(&new_post);
RETURN_TRUE;
if (files && (Z_TYPE_P(files) == IS_ARRAY)) {
array_copy(Z_ARRVAL_P(files), Z_ARRVAL_P(post));
}
- SET_PROP(postFiles, post);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("postFiles")-1, post TSRMLS_CC);
zval_ptr_dtor(&post);
RETURN_TRUE;
RETURN_FALSE;
}
- UPD_STRL(putFile, file, file_len);
+ zend_update_property_stringl(THIS_CE, getThis(), ZEND_STRS("putFile")-1, file, file_len TSRMLS_CC);
RETURN_TRUE;
}
/* }}} */
put_data = "";
}
- UPD_STRL(putData, put_data, data_len);
+ zend_update_property_stringl(THIS_CE, getThis(), ZEND_STRS("putData")-1, put_data, data_len TSRMLS_CC);
RETURN_TRUE;
}
/* }}} */
}
if (data_len) {
- zval *data = GET_PROP(putData);
+ zval *data = zend_read_property(THIS_CE, getThis(), ZEND_STRS("putData")-1, 0 TSRMLS_CC);
if (Z_STRLEN_P(data)) {
Z_STRVAL_P(data) = erealloc(Z_STRVAL_P(data), (Z_STRLEN_P(data) += data_len) + 1);
Z_STRVAL_P(data)[Z_STRLEN_P(data)] = '\0';
memcpy(Z_STRVAL_P(data) + Z_STRLEN_P(data) - data_len, put_data, data_len);
} else {
- UPD_STRL(putData, put_data, data_len);
+ zend_update_property_stringl(THIS_CE, getThis(), ZEND_STRS("putData")-1, put_data, data_len TSRMLS_CC);
}
}
if (return_value_used) {
char *body;
size_t body_len;
- zval *headers, *message = GET_PROP(responseMessage);
+ zval *headers, *message = zend_read_property(THIS_CE, getThis(), ZEND_STRS("responseMessage")-1, 0 TSRMLS_CC);
if (Z_TYPE_P(message) == IS_OBJECT) {
getObjectEx(http_message_object, msg, message);
int header_len = 0;
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &header_name, &header_len)) {
- zval *message = GET_PROP(responseMessage);
+ zval *message = zend_read_property(THIS_CE, getThis(), ZEND_STRS("responseMessage")-1, 0 TSRMLS_CC);
if (Z_TYPE_P(message) == IS_OBJECT) {
getObjectEx(http_message_object, msg, message);
int i = 0;
HashKey key = initHashKey(0);
char **allowed_extras = NULL;
- zval **header = NULL, **entry = NULL, *message = GET_PROP(responseMessage);
+ zval **header = NULL, **entry = NULL, *message = zend_read_property(THIS_CE, getThis(), ZEND_STRS("responseMessage")-1, 0 TSRMLS_CC);
HashPosition pos, pos1, pos2;
if (Z_TYPE_P(message) == IS_OBJECT) {
NO_ARGS;
if (return_value_used) {
- zval *message = GET_PROP(responseMessage);
+ zval *message = zend_read_property(THIS_CE, getThis(), ZEND_STRS("responseMessage")-1, 0 TSRMLS_CC);
if (Z_TYPE_P(message) == IS_OBJECT) {
getObjectEx(http_message_object, msg, message);
RETURN_FALSE;
}
- info = GET_PROP(responseInfo);
+ info = zend_read_property(THIS_CE, getThis(), ZEND_STRS("responseInfo")-1, 0 TSRMLS_CC);
if (Z_TYPE_P(info) != IS_ARRAY) {
RETURN_FALSE;
zval *message;
SET_EH_THROW_HTTP();
- message = GET_PROP(responseMessage);
+ message = zend_read_property(THIS_CE, getThis(), ZEND_STRS("responseMessage")-1, 0 TSRMLS_CC);
if (Z_TYPE_P(message) == IS_OBJECT) {
RETVAL_OBJECT(message, 1);
} else {
zval *hist;
SET_EH_THROW_HTTP();
- hist = GET_PROP(history);
+ hist = zend_read_property(THIS_CE, getThis(), ZEND_STRS("history")-1, 0 TSRMLS_CC);
if (Z_TYPE_P(hist) == IS_OBJECT) {
RETVAL_OBJECT(hist, 1);
} else {
MAKE_STD_ZVAL(hist);
ZVAL_NULL(hist);
- SET_PROP(history, hist);
+ zend_update_property(THIS_CE, getThis(), ZEND_STRS("history")-1, hist TSRMLS_CC);
zval_ptr_dtor(&hist);
}
}
} else if (SUCCESS == http_request_object_requesthandler(obj, getThis())) {
http_request_exec(obj->request);
if (SUCCESS == http_request_object_responsehandler(obj, getThis())) {
- RETVAL_OBJECT(GET_PROP(responseMessage), 1);
+ RETVAL_OBJECT(zend_read_property(THIS_CE, getThis(), ZEND_STRS("responseMessage")-1, 0 TSRMLS_CC), 1);
}
}