projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Don't forget to reset CUSTOMREQUEST on method change and defaults restore.
[m6w6/ext-http]
/
http_request_object.c
diff --git
a/http_request_object.c
b/http_request_object.c
index ad6e43202b1b421c88773427ad1dd2e06d89675d..ead0870361dd25e9e278f7a0d658548a3d13c5c7 100644
(file)
--- a/
http_request_object.c
+++ b/
http_request_object.c
@@
-337,8
+337,10
@@
zend_object_value _http_request_object_clone_obj(zval *this_ptr TSRMLS_DC)
getObject(http_request_object, old_obj);
old_zo = zend_objects_get_address(this_ptr TSRMLS_CC);
getObject(http_request_object, old_obj);
old_zo = zend_objects_get_address(this_ptr TSRMLS_CC);
- new_ov = http_request_object_new_ex(old_zo->ce, curl_easy_duphandle(old_obj->request->ch), &new_obj);
- http_curl_init_ex(new_obj->request->ch, new_obj->request, new_obj->request->_error);
+ new_ov = http_request_object_new_ex(old_zo->ce, NULL, &new_obj);
+ if (old_obj->request->ch) {
+ http_curl_init_ex(curl_easy_duphandle(old_obj->request->ch), new_obj->request);
+ }
zend_objects_clone_members(&new_obj->zo, new_ov, old_zo, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC);
phpstr_append(&new_obj->history, old_obj->history.data, old_obj->history.used);
zend_objects_clone_members(&new_obj->zo, new_ov, old_zo, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC);
phpstr_append(&new_obj->history, old_obj->history.data, old_obj->history.used);
@@
-627,8
+629,7
@@
STATUS _http_request_object_responsehandler(http_request_object *obj, zval *this
_http_request_object_set_options_subr(INTERNAL_FUNCTION_PARAM_PASSTHRU, (key), sizeof(key), (ow))
static inline void _http_request_object_set_options_subr(INTERNAL_FUNCTION_PARAMETERS, char *key, size_t len, int overwrite)
{
_http_request_object_set_options_subr(INTERNAL_FUNCTION_PARAM_PASSTHRU, (key), sizeof(key), (ow))
static inline void _http_request_object_set_options_subr(INTERNAL_FUNCTION_PARAMETERS, char *key, size_t len, int overwrite)
{
- zval *old_opts, *new_opts, *opts, **entry;
- getObject(http_request_object, obj);
+ zval *old_opts, *new_opts, *opts = NULL, **entry;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|a/!", &opts)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|a/!", &opts)) {
RETURN_FALSE;
@@
-670,10
+671,8
@@
static inline void _http_request_get_options_subr(INTERNAL_FUNCTION_PARAMETERS,
IF_RETVAL_USED {
zval *opts, **options;
IF_RETVAL_USED {
zval *opts, **options;
- getObject(http_request_object, obj);
opts = GET_PROP(options);
opts = GET_PROP(options);
-
array_init(return_value);
if ( (Z_TYPE_P(opts) == IS_ARRAY) &&
array_init(return_value);
if ( (Z_TYPE_P(opts) == IS_ARRAY) &&
@@
-704,7
+703,6
@@
PHP_METHOD(HttpRequest, __construct)
int URL_len;
long meth = -1;
zval *options = NULL;
int URL_len;
long meth = -1;
zval *options = NULL;
- getObject(http_request_object, obj);
SET_EH_THROW_HTTP();
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sla", &URL, &URL_len, &meth, &options)) {
SET_EH_THROW_HTTP();
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sla", &URL, &URL_len, &meth, &options)) {
@@
-738,7
+736,6
@@
PHP_METHOD(HttpRequest, setOptions)
ulong idx = 0;
HashPosition pos;
zval *opts = NULL, *old_opts, *new_opts, *add_opts, **opt;
ulong idx = 0;
HashPosition pos;
zval *opts = NULL, *old_opts, *new_opts, *add_opts, **opt;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|a!/", &opts)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|a!/", &opts)) {
RETURN_FALSE;
@@
-942,7
+939,6
@@
PHP_METHOD(HttpRequest, setUrl)
{
char *URL = NULL;
int URL_len;
{
char *URL = NULL;
int URL_len;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &URL, &URL_len)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &URL, &URL_len)) {
RETURN_FALSE;
@@
-981,12
+977,16
@@
PHP_METHOD(HttpRequest, getUrl)
PHP_METHOD(HttpRequest, setMethod)
{
long meth;
PHP_METHOD(HttpRequest, setMethod)
{
long meth;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &meth)) {
RETURN_FALSE;
}
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &meth)) {
RETURN_FALSE;
}
+ if (meth >= HTTP_GET && meth <= HTTP_PUT) {
+ getObject(http_request_object, obj);
+ curl_easy_setopt(obj->request->ch, CURLOPT_CUSTOMREQUEST, NULL);
+ }
+
UPD_PROP(long, method, meth);
RETURN_TRUE;
}
UPD_PROP(long, method, meth);
RETURN_TRUE;
}
@@
-1124,7
+1124,6
@@
PHP_METHOD(HttpRequest, addQueryData)
zval *qdata, *old_qdata;
char *query_data = NULL;
size_t query_data_len = 0;
zval *qdata, *old_qdata;
char *query_data = NULL;
size_t query_data_len = 0;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &qdata)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &qdata)) {
RETURN_FALSE;
@@
-1156,7
+1155,6
@@
PHP_METHOD(HttpRequest, addQueryData)
PHP_METHOD(HttpRequest, addPostFields)
{
zval *post_data, *old_post, *new_post;
PHP_METHOD(HttpRequest, addPostFields)
{
zval *post_data, *old_post, *new_post;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &post_data)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &post_data)) {
RETURN_FALSE;
@@
-1191,7
+1189,6
@@
PHP_METHOD(HttpRequest, addPostFields)
PHP_METHOD(HttpRequest, setPostFields)
{
zval *post, *post_data = NULL;
PHP_METHOD(HttpRequest, setPostFields)
{
zval *post, *post_data = NULL;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/!", &post_data)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/!", &post_data)) {
RETURN_FALSE;
@@
-1241,7
+1238,6
@@
PHP_METHOD(HttpRequest, setRawPostData)
{
char *raw_data = NULL;
int data_len = 0;
{
char *raw_data = NULL;
int data_len = 0;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &raw_data, &data_len)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &raw_data, &data_len)) {
RETURN_FALSE;
@@
-1269,7
+1265,6
@@
PHP_METHOD(HttpRequest, addRawPostData)
{
char *raw_data;
int data_len;
{
char *raw_data;
int data_len;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &raw_data, &data_len)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &raw_data, &data_len)) {
RETURN_FALSE;
@@
-1323,7
+1318,6
@@
PHP_METHOD(HttpRequest, addPostFile)
zval *entry, *old_post, *new_post;
char *name, *file, *type = NULL;
int name_len, file_len, type_len = 0;
zval *entry, *old_post, *new_post;
char *name, *file, *type = NULL;
int name_len, file_len, type_len = 0;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|s", &name, &name_len, &file, &file_len, &type, &type_len)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|s", &name, &name_len, &file, &file_len, &type, &type_len)) {
RETURN_FALSE;
@@
-1371,7
+1365,6
@@
PHP_METHOD(HttpRequest, addPostFile)
PHP_METHOD(HttpRequest, setPostFiles)
{
zval *files = NULL, *post;
PHP_METHOD(HttpRequest, setPostFiles)
{
zval *files = NULL, *post;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a!/", &files)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a!/", &files)) {
RETURN_FALSE;
@@
-1418,7
+1411,6
@@
PHP_METHOD(HttpRequest, setPutFile)
{
char *file = "";
int file_len = 0;
{
char *file = "";
int file_len = 0;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &file, &file_len)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &file, &file_len)) {
RETURN_FALSE;
@@
-1485,7
+1477,6
@@
PHP_METHOD(HttpRequest, getResponseHeader)
zval *data, **headers, **header;
char *header_name = NULL;
int header_len = 0;
zval *data, **headers, **header;
char *header_name = NULL;
int header_len = 0;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &header_name, &header_len)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &header_name, &header_len)) {
RETURN_FALSE;
@@
-1530,7
+1521,6
@@
PHP_METHOD(HttpRequest, getResponseCookie)
zval *data, **headers;
char *cookie_name = NULL;
int cookie_len = 0;
zval *data, **headers;
char *cookie_name = NULL;
int cookie_len = 0;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &cookie_name, &cookie_len)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &cookie_name, &cookie_len)) {
RETURN_FALSE;
@@
-1631,7
+1621,6
@@
PHP_METHOD(HttpRequest, getResponseBody)
IF_RETVAL_USED {
zval **body;
IF_RETVAL_USED {
zval **body;
- getObject(http_request_object, obj);
zval *data = GET_PROP(responseData);
if ( (Z_TYPE_P(data) == IS_ARRAY) &&
zval *data = GET_PROP(responseData);
if ( (Z_TYPE_P(data) == IS_ARRAY) &&
@@
-1685,7
+1674,6
@@
PHP_METHOD(HttpRequest, getResponseInfo)
zval *info, **infop;
char *info_name = NULL;
int info_len = 0;
zval *info, **infop;
char *info_name = NULL;
int info_len = 0;
- getObject(http_request_object, obj);
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &info_name, &info_len)) {
RETURN_FALSE;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &info_name, &info_len)) {
RETURN_FALSE;
@@
-1730,7
+1718,6
@@
PHP_METHOD(HttpRequest, getResponseMessage)
IF_RETVAL_USED {
zval *message;
IF_RETVAL_USED {
zval *message;
- getObject(http_request_object, obj);
SET_EH_THROW_HTTP();
message = GET_PROP(responseMessage);
SET_EH_THROW_HTTP();
message = GET_PROP(responseMessage);