- fix http_get_request_body()
[m6w6/ext-http] / http_functions.c
index 69f03e17a4d75ff0b7582800ec18fc015e3fc8c5..4ece6965114f435e7312445828109f59fef155e0 100644 (file)
@@ -1020,7 +1020,10 @@ PHP_FUNCTION(http_get_request_headers)
  *
  * Get the raw request body (e.g. POST or PUT data).
  * 
- * Returns NULL when using the CLI SAPI.
+ * This function can not be used after http_get_request_body_stream() 
+ * if the request method was another than POST.
+ * 
+ * Returns the raw request body as string on success or NULL on failure.
  */
 PHP_FUNCTION(http_get_request_body)
 {
@@ -1037,6 +1040,29 @@ PHP_FUNCTION(http_get_request_body)
 }
 /* }}} */
 
+/* {{{ proto resource http_get_request_body_stream(void)
+ *
+ * Create a stream to read the raw request body (e.g. POST or PUT data).
+ * 
+ * This function can only be used once if the request method was another than POST.
+ * 
+ * Returns the raw request body as stream on success or NULL on failure.
+ */
+PHP_FUNCTION(http_get_request_body_stream)
+{
+       php_stream *s;
+       
+       NO_ARGS;
+       
+       if ((s = http_get_request_body_stream())) {
+               php_stream_to_zval(s, return_value);
+       } else {
+               http_error(HE_WARNING, HTTP_E_RUNTIME, "Failed to create request body stream");
+               RETURN_NULL();
+       }
+}
+/* }}} */
+
 /* {{{ proto bool http_match_request_header(string header, string value[, bool match_case = false])
  *
  * Match an incoming HTTP header.