static PHP_HTTP_STRLIST(php_http_env_response_status) =
PHP_HTTP_STRLIST_ITEM("Continue")
PHP_HTTP_STRLIST_ITEM("Switching Protocols")
+ PHP_HTTP_STRLIST_ITEM("Processing")
PHP_HTTP_STRLIST_NEXT
PHP_HTTP_STRLIST_ITEM("OK")
PHP_HTTP_STRLIST_ITEM("Created")
PHP_HTTP_STRLIST_ITEM("No Content")
PHP_HTTP_STRLIST_ITEM("Reset Content")
PHP_HTTP_STRLIST_ITEM("Partial Content")
+ PHP_HTTP_STRLIST_ITEM("Multi-Status")
+ PHP_HTTP_STRLIST_ITEM("Already Reported")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("IM Used")
PHP_HTTP_STRLIST_NEXT
PHP_HTTP_STRLIST_ITEM("Multiple Choices")
PHP_HTTP_STRLIST_ITEM("Moved Permanently")
PHP_HTTP_STRLIST_ITEM("Use Proxy")
PHP_HTTP_STRLIST_ITEM("(Unused)")
PHP_HTTP_STRLIST_ITEM("Temporary Redirect")
+ PHP_HTTP_STRLIST_ITEM("Permanent Redirect")
PHP_HTTP_STRLIST_NEXT
PHP_HTTP_STRLIST_ITEM("Bad Request")
PHP_HTTP_STRLIST_ITEM("Unauthorized")
PHP_HTTP_STRLIST_ITEM("Unsupported Media Type")
PHP_HTTP_STRLIST_ITEM("Requested Range Not Satisfiable")
PHP_HTTP_STRLIST_ITEM("Expectation Failed")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("Unprocessible Entity")
+ PHP_HTTP_STRLIST_ITEM("Locked")
+ PHP_HTTP_STRLIST_ITEM("Failed Dependency")
+ PHP_HTTP_STRLIST_ITEM("(Reserved)")
+ PHP_HTTP_STRLIST_ITEM("Upgrade Required")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("Precondition Required")
+ PHP_HTTP_STRLIST_ITEM("Too Many Requests")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("Request Header Fields Too Large")
PHP_HTTP_STRLIST_NEXT
PHP_HTTP_STRLIST_ITEM("Internal Server Error")
PHP_HTTP_STRLIST_ITEM("Not Implemented")
PHP_HTTP_STRLIST_ITEM("Service Unavailable")
PHP_HTTP_STRLIST_ITEM("Gateway Timeout")
PHP_HTTP_STRLIST_ITEM("HTTP Version Not Supported")
+ PHP_HTTP_STRLIST_ITEM("Variant Also Negotiates")
+ PHP_HTTP_STRLIST_ITEM("Insufficient Storage")
+ PHP_HTTP_STRLIST_ITEM("Loop Detected")
+ PHP_HTTP_STRLIST_ITEM("(Unused)")
+ PHP_HTTP_STRLIST_ITEM("Not Extended")
+ PHP_HTTP_STRLIST_ITEM("Network Authentication Required")
PHP_HTTP_STRLIST_STOP
;
}
}
+#ifdef PHP_HTTP_HAVE_JSON
+#include "ext/json/php_json.h"
+
+static SAPI_POST_HANDLER_FUNC(php_http_json_post_handler)
+{
+ if (SG(request_info).raw_post_data) {
+ php_json_decode_ex(arg, SG(request_info).raw_post_data, SG(request_info).raw_post_data_length, PHP_JSON_OBJECT_AS_ARRAY, PG(max_input_nesting_level) TSRMLS_CC);
+ }
+}
+
+#endif
+
PHP_MINIT_FUNCTION(http_env)
{
+#ifdef PHP_HTTP_HAVE_JSON
+ sapi_post_entry entry = {NULL, 0, NULL, NULL};
+
+ entry.post_reader = sapi_read_standard_form_data;
+ entry.post_handler = php_http_json_post_handler;
+
+ entry.content_type = "text/json";
+ entry.content_type_len = lenof("text/json");
+ sapi_register_post_entry(&entry TSRMLS_CC);
+
+ entry.content_type = "application/json";
+ entry.content_type_len = lenof("application/json");
+ sapi_register_post_entry(&entry TSRMLS_CC);
+#endif
+
PHP_HTTP_REGISTER_CLASS(http, Env, http_env, NULL, 0);
return SUCCESS;