- switch (Z_LVAL_P(meth))
- {
- case HTTP_GET:
- case HTTP_HEAD:
- status = http_request_ex(obj->ch, Z_LVAL_P(meth), request_uri, NULL, Z_ARRVAL_P(opts), Z_ARRVAL_P(info), &obj->response);
- break;
-
- case HTTP_PUT:
- {
- http_request_body body;
- php_stream *stream;
- php_stream_statbuf ssb;
- zval *file = GET_PROP(obj, putFile);
-
- if ( (stream = php_stream_open_wrapper(Z_STRVAL_P(file), , "rb", REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL)) &&
- !php_stream_stat(stream, &ssb)) {
- body.type = HTTP_REQUEST_BODY_UPLOADFILE;
- body.data = stream;
- body.size = ssb.sb.st_size;
-
- status = http_put_ex(obj->ch, request_uri, &body, Z_ARRVAL_P(opts), Z_ARRVAL_P(info), &obj->response);
- http_request_body_dtor(&body);
- } else {
- status = FAILURE;
- }
- }
- break;
-
- case HTTP_POST:
- {
- http_request_body body;
- zval *fields = GET_PROP(obj, postFields), *files = GET_PROP(obj, postFiles);
-
- if (SUCCESS == (status = http_request_body_fill(&body, Z_ARRVAL_P(fields), Z_ARRVAL_P(files)))) {
- status = http_post_ex(obj->ch, request_uri, &body, Z_ARRVAL_P(opts), Z_ARRVAL_P(info), &obj->response);
- http_request_body_dtor(&body);
- }
- }
- break;
-
- default:
- {
- http_request_body body;
- zval *post = GET_PROP(obj, postData);
-
- body.type = HTTP_REQUEST_BODY_CSTRING;
- body.data = Z_STRVAL_P(post);
- body.size = Z_STRLEN_P(post);
-
- status = http_request_ex(obj->ch, Z_LVAL_P(meth), request_uri, &body, Z_ARRVAL_P(opts), Z_ARRVAL_P(info), &obj->response);
- }
- break;