remove superfluous buffer macros
[m6w6/ext-http] / php_http_env.c
index 09ee36c96366689378fe9889f61086a2653ad796..74194c43a929c8dba1c014da1aa6f64ce3235520 100644 (file)
@@ -4,7 +4,7 @@
     +--------------------------------------------------------------------+
     | Redistribution and use in source and binary forms, with or without |
     | modification, are permitted provided that the conditions mentioned |
-    | in the accomp395anying LICENSE file are met.                          |
+    | in the accompanying LICENSE file are met.                          |
     +--------------------------------------------------------------------+
     | Copyright (c) 2004-2011, Michael Wallner <mike@php.net>            |
     +--------------------------------------------------------------------+
@@ -417,7 +417,7 @@ PHP_HTTP_API STATUS php_http_env_get_response_headers(HashTable *headers_ht TSRM
        zend_llist_apply_with_argument(&SG(sapi_headers).headers, grab_headers, &headers TSRMLS_CC);
        php_http_buffer_fix(&headers);
 
-       status = php_http_headers_parse(PHP_HTTP_BUFFER_VAL(&headers), PHP_HTTP_BUFFER_LEN(&headers), headers_ht, NULL, NULL TSRMLS_CC);
+       status = php_http_headers_parse(headers.data, headers.used, headers_ht, NULL, NULL TSRMLS_CC);
        php_http_buffer_dtor(&headers);
 
        return status;
@@ -553,6 +553,7 @@ PHP_HTTP_API STATUS php_http_env_set_response_header_value(long http_code, const
 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")
@@ -561,6 +562,26 @@ static PHP_HTTP_STRLIST(php_http_env_response_status) =
        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")
@@ -570,6 +591,7 @@ static PHP_HTTP_STRLIST(php_http_env_response_status) =
        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")
@@ -589,6 +611,20 @@ static PHP_HTTP_STRLIST(php_http_env_response_status) =
        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")
@@ -596,6 +632,12 @@ static PHP_HTTP_STRLIST(php_http_env_response_status) =
        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
 ;
 
@@ -621,6 +663,8 @@ PHP_HTTP_BEGIN_ARGS(getResponseStatusForCode, 1)
        PHP_HTTP_ARG_VAL(code, 0)
 PHP_HTTP_END_ARGS;
 
+PHP_HTTP_EMPTY_ARGS(getResponseStatusForAllCodes);
+
 PHP_HTTP_BEGIN_ARGS(getResponseHeader, 0)
        PHP_HTTP_ARG_VAL(header_name, 0)
 PHP_HTTP_END_ARGS;
@@ -684,6 +728,7 @@ static zend_function_entry php_http_env_method_entry[] = {
        PHP_HTTP_ENV_ME(getRequestBody)
 
        PHP_HTTP_ENV_ME(getResponseStatusForCode)
+       PHP_HTTP_ENV_ME(getResponseStatusForAllCodes)
 
        PHP_HTTP_ENV_ME(getResponseHeader)
        PHP_HTTP_ENV_ME(getResponseCode)
@@ -751,6 +796,25 @@ PHP_METHOD(HttpEnv, getResponseStatusForCode)
        RETURN_FALSE;
 }
 
+PHP_METHOD(HttpEnv, getResponseStatusForAllCodes)
+{
+       const char *s;
+       unsigned c;
+       php_http_strlist_iterator_t i;
+
+       if (SUCCESS != zend_parse_parameters_none()) {
+               RETURN_FALSE;
+       }
+
+       array_init(return_value);
+       for (   php_http_strlist_iterator_init(&i, php_http_env_response_status, 100);
+                       *(s = php_http_strlist_iterator_this(&i, &c));
+                       php_http_strlist_iterator_next(&i)
+       ) {
+               add_index_string(return_value, c, s, 1);
+       }
+}
+
 PHP_METHOD(HttpEnv, getResponseHeader)
 {
        char *header_name_str = NULL;
@@ -923,7 +987,7 @@ PHP_METHOD(HttpEnv, cleanPersistentHandles)
 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);
+               php_json_decode(arg, SG(request_info).raw_post_data, SG(request_info).raw_post_data_length, 1, PG(max_input_nesting_level) TSRMLS_CC);
        }
 }