X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_request_object.c;h=3b40bd27caf36cf0f43eaf0ecfbf3a9c0647a422;hb=a0b353aee79cf73b632d81d3426697c5413da280;hp=81c051e2d37f37f03fde588e708e6e1367a7900c;hpb=fe0761a31f82ea9807f9dcdc4bce3e9de9c766b4;p=m6w6%2Fext-http diff --git a/http_request_object.c b/http_request_object.c index 81c051e..3b40bd2 100644 --- a/http_request_object.c +++ b/http_request_object.c @@ -395,7 +395,23 @@ PHP_MINIT_FUNCTION(http_request_object) */ 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); + DCL_CONST(long, "VERSION_NONE", CURL_HTTP_VERSION_NONE); /* to be removed */ + DCL_CONST(long, "VERSION_ANY", CURL_HTTP_VERSION_NONE); + + /* + * 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); + + /* + * 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); /* * Auth Constants @@ -403,6 +419,7 @@ PHP_MINIT_FUNCTION(http_request_object) 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); /* @@ -535,21 +552,23 @@ STATUS _http_request_object_requesthandler(http_request_object *obj, zval *this_ case HTTP_PUT: { - zval *put_data = GET_PROP(putData); + zval *put_file = GET_PROP(putFile); http_request_object_check_request_content_type(getThis()); - if (Z_STRLEN_P(put_data)) { - 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); - } else { + + if (Z_STRLEN_P(put_file)) { php_stream_statbuf ssb; - php_stream *stream = php_stream_open_wrapper_ex(Z_STRVAL_P(GET_PROP(putFile)), "rb", REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL, HTTP_DEFAULT_STREAM_CONTEXT); + php_stream *stream = php_stream_open_wrapper_ex(Z_STRVAL_P(put_file), "rb", REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL, HTTP_DEFAULT_STREAM_CONTEXT); - if (stream && !php_stream_stat(stream, &ssb)) { + if (stream && SUCCESS == php_stream_stat(stream, &ssb)) { obj->request->body = http_request_body_init_ex(obj->request->body, HTTP_REQUEST_BODY_UPLOADFILE, stream, ssb.sb.st_size, 1); } else { status = FAILURE; } + } else { + zval *put_data = GET_PROP(putData); + 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); } break; } @@ -653,7 +672,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 ? msg->http.info.response.status : ""); + UPD_PROP(string, responseStatus, STR_PTR(msg->http.info.response.status)); MAKE_STD_ZVAL(message); ZVAL_OBJVAL(message, http_message_object_new_ex(http_message_object_ce, msg, NULL), 0); @@ -798,7 +817,7 @@ PHP_METHOD(HttpRequest, __construct) zval *options = NULL; SET_EH_THROW_HTTP(); - if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sla", &URL, &URL_len, &meth, &options)) { + if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sla!", &URL, &URL_len, &meth, &options)) { if (URL) { UPD_STRL(url, URL, URL_len); } @@ -1719,8 +1738,8 @@ PHP_METHOD(HttpRequest, getResponseHeader) getObjectEx(http_message_object, msg, message); if (header_len) { - if ((header = http_message_header_ex(msg->message, pretty_key(header_name, header_len, 1, 1), header_len + 1))) { - RETURN_ZVAL(header, 1, 0); + if ((header = http_message_header_ex(msg->message, pretty_key(header_name, header_len, 1, 1), header_len + 1, 0))) { + RETURN_ZVAL(header, 1, 1); } } else { array_init(return_value); @@ -1749,7 +1768,7 @@ PHP_METHOD(HttpRequest, getResponseCookies) long flags = 0; zval *allowed_extras_array = NULL; - if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|la", &flags, &allowed_extras_array)) { + if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|la!", &flags, &allowed_extras_array)) { int i = 0; ulong idx = 0; char *key = NULL, **allowed_extras = NULL;