X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_request_object.c;h=3b40bd27caf36cf0f43eaf0ecfbf3a9c0647a422;hb=d886588e9d3193d182ee5ed82741aba45f028d52;hp=8e0b7ce8bb8726c34add518cdb54f16ab29d45d5;hpb=3952cccee20bf827c2c68ab121d2f5670a036660;p=m6w6%2Fext-http diff --git a/http_request_object.c b/http_request_object.c index 8e0b7ce..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); @@ -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);