+/* {{{ php_stream *_http_get_request_body_stream(void) */
+PHP_HTTP_API php_stream *_http_get_request_body_stream(TSRMLS_D)
+{
+ php_stream *s = NULL;
+
+ if (SG(request_info).raw_post_data) {
+ s = php_stream_open_wrapper("php://input", "rb", 0, NULL);
+ } else if (sapi_module.read_post && !HTTP_G(read_post_data)) {
+ HTTP_G(read_post_data) = 1;
+
+ if ((s = php_stream_temp_new())) {
+ char buf[4096];
+ int len;
+
+ while (0 < (len = sapi_module.read_post(buf, sizeof(buf) TSRMLS_CC))) {
+ php_stream_write(s, buf, len);
+ }
+
+ if (len < 0) {
+ php_stream_close(s);
+ s = NULL;
+ } else {
+ php_stream_rewind(s);
+ }
+ }
+ }
+
+ return s;
+}
+/* }}} */