X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_request_object.c;h=45625f0f777ab4dbf1fa0be4d5e229ed5818e591;hb=dd199f9961262ed43fa544240df15a9d6d7d0f08;hp=207ec6c3da02fd4923196b263cead20f22b3824b;hpb=5e06e2629f8cbe71bc2985bf7ca4f149bb08d482;p=m6w6%2Fext-http diff --git a/http_request_object.c b/http_request_object.c index 207ec6c..45625f0 100644 --- a/http_request_object.c +++ b/http_request_object.c @@ -72,6 +72,11 @@ HTTP_BEGIN_ARGS(addCookies, 1) HTTP_ARG_VAL(cookies, 0) HTTP_END_ARGS; +HTTP_EMPTY_ARGS(enableCookies); +#if HTTP_CURL_VERSION(7,14,1) +HTTP_EMPTY_ARGS(resetCookies); +#endif + HTTP_EMPTY_ARGS(getUrl); HTTP_BEGIN_ARGS(setUrl, 1) HTTP_ARG_VAL(url, 0) @@ -251,6 +256,11 @@ zend_function_entry http_request_object_fe[] = { HTTP_REQUEST_ME(getCookies, ZEND_ACC_PUBLIC) 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(setMethod, ZEND_ACC_PUBLIC) HTTP_REQUEST_ME(getMethod, ZEND_ACC_PUBLIC) @@ -524,7 +534,7 @@ STATUS _http_request_object_requesthandler(http_request_object *obj, zval *this_ { case HTTP_GET: case HTTP_HEAD: - break; + break; case HTTP_PUT: { @@ -544,8 +554,8 @@ STATUS _http_request_object_requesthandler(http_request_object *obj, zval *this_ status = FAILURE; } } + break; } - break; case HTTP_POST: default: @@ -571,8 +581,8 @@ STATUS _http_request_object_requesthandler(http_request_object *obj, zval *this_ } } } + break; } - break; } if (status == SUCCESS) { @@ -772,7 +782,7 @@ static inline void _http_request_get_options_subr(INTERNAL_FUNCTION_PARAMETERS, { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { zval *opts, **options; opts = GET_PROP(options); @@ -868,6 +878,11 @@ PHP_METHOD(HttpRequest, setOptions) zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "seturl", NULL, *opt); } else if (!strcmp(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, "resetcookies")) { + getObject(http_request_object, obj); + http_request_reset_cookies(obj->request); +#endif } else { ZVAL_ADDREF(*opt); add_assoc_zval(add_opts, key, *opt); @@ -900,7 +915,7 @@ PHP_METHOD(HttpRequest, getOptions) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(options); } } @@ -1030,6 +1045,35 @@ PHP_METHOD(HttpRequest, getCookies) } /* }}} */ +/* {{{ proto bool HttpRequest::enableCookies() + * + * Enable automatic sending of received cookies. + * Note that cuutomly set cookies will be sent anyway. + */ +PHP_METHOD(HttpRequest, enableCookies) +{ + NO_ARGS { + getObject(http_request_object, obj); + RETURN_SUCCESS(http_request_enable_cookies(obj->request)); + } + +} +/* }}} */ + +/* {{{ proto bool HttpRequest::resetCookies() + * + * Reset all automatically received/sent cookies. + * Note that customly set cookies are not affected. + */ +PHP_METHOD(HttpRequest, resetCookies) +{ + NO_ARGS { + getObject(http_request_object, obj); + RETURN_SUCCESS(http_request_reset_cookies(obj->request)); + } +} +/* }}} */ + /* {{{ proto bool HttpRequest::setUrl(string url) * * Set the request URL. @@ -1062,7 +1106,7 @@ PHP_METHOD(HttpRequest, getUrl) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(url); } } @@ -1100,7 +1144,7 @@ PHP_METHOD(HttpRequest, getMethod) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(method); } } @@ -1143,7 +1187,7 @@ PHP_METHOD(HttpRequest, getContentType) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(contentType); } } @@ -1202,7 +1246,7 @@ PHP_METHOD(HttpRequest, getQueryData) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(queryData); } } @@ -1314,7 +1358,7 @@ PHP_METHOD(HttpRequest, getPostFields) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(postFields); } } @@ -1394,7 +1438,7 @@ PHP_METHOD(HttpRequest, getRawPostData) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(rawPostData); } } @@ -1492,7 +1536,7 @@ PHP_METHOD(HttpRequest, getPostFiles) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(postFiles); } } @@ -1531,7 +1575,7 @@ PHP_METHOD(HttpRequest, getPutFile) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(putFile); } } @@ -1611,7 +1655,7 @@ PHP_METHOD(HttpRequest, getPutData) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(putData); } } @@ -1632,7 +1676,7 @@ PHP_METHOD(HttpRequest, getResponseData) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(responseData); } } @@ -1653,7 +1697,7 @@ PHP_METHOD(HttpRequest, getResponseData) */ PHP_METHOD(HttpRequest, getResponseHeader) { - IF_RETVAL_USED { + if (return_value_used) { zval *data, **headers, **header; char *header_name = NULL; int header_len = 0; @@ -1691,7 +1735,7 @@ PHP_METHOD(HttpRequest, getResponseHeader) */ PHP_METHOD(HttpRequest, getResponseCookies) { - IF_RETVAL_USED { + if (return_value_used) { long flags = 0; zval *allowed_extras_array = NULL, *data, **headers; @@ -1787,7 +1831,7 @@ PHP_METHOD(HttpRequest, getResponseBody) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { zval **body; zval *data = GET_PROP(responseData); @@ -1814,7 +1858,7 @@ PHP_METHOD(HttpRequest, getResponseCode) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(responseCode); } } @@ -1830,7 +1874,7 @@ PHP_METHOD(HttpRequest, getResponseStatus) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { RETURN_PROP(responseStatus); } } @@ -1854,7 +1898,7 @@ PHP_METHOD(HttpRequest, getResponseStatus) */ PHP_METHOD(HttpRequest, getResponseInfo) { - IF_RETVAL_USED { + if (return_value_used) { zval *info, **infop; char *info_name = NULL; int info_len = 0; @@ -1935,7 +1979,7 @@ PHP_METHOD(HttpRequest, getRequestMessage) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { http_message *msg; getObject(http_request_object, obj); @@ -1958,7 +2002,7 @@ PHP_METHOD(HttpRequest, getRawRequestMessage) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { getObject(http_request_object, obj); RETURN_PHPSTR_DUP(&obj->request->conv.request); @@ -1976,7 +2020,7 @@ PHP_METHOD(HttpRequest, getRawResponseMessage) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { getObject(http_request_object, obj); RETURN_PHPSTR_DUP(&obj->request->conv.response); @@ -2003,7 +2047,7 @@ PHP_METHOD(HttpRequest, getHistory) { NO_ARGS; - IF_RETVAL_USED { + if (return_value_used) { zval *hist; SET_EH_THROW_HTTP();