- simplify http_send_header API
[m6w6/ext-http] / http_functions.c
index e9cd9f77e2ea51511b21d76d896608b6322a1ab7..ee8fba4e987df6ff8b0664a83dfa7095b3012a4f 100644 (file)
@@ -202,7 +202,7 @@ PHP_FUNCTION(http_send_status)
                RETURN_FALSE;
        }
        if (status < 100 || status > 510) {
-               http_error_ex(E_WARNING, HTTP_E_HEADER, "Invalid HTTP status code (100-510): %d", status);
+               http_error_ex(HE_WARNING, HTTP_E_HEADER, "Invalid HTTP status code (100-510): %d", status);
                RETURN_FALSE;
        }
 
@@ -474,7 +474,7 @@ PHP_FUNCTION(http_redirect)
                        array_init(params);
                }
                if (add_assoc_string(params, PS(session_name), PS(id), 1) != SUCCESS) {
-                       http_error(E_WARNING, HTTP_E_ENCODE, "Could not append session information");
+                       http_error(HE_WARNING, HTTP_E_RUNTIME, "Could not append session information");
                }
        }
 
@@ -497,8 +497,10 @@ PHP_FUNCTION(http_redirect)
        }
        efree(URI);
 
-       if ((SUCCESS == http_send_header(LOC)) && (SUCCESS == http_send_status((permanent ? 301 : 302)))) {
-               php_body_write(RED, strlen(RED) TSRMLS_CC);
+       if ((SUCCESS == http_send_header_string(LOC)) && (SUCCESS == http_send_status((permanent ? 301 : 302)))) {
+               if (SG(request_info).request_method && strcmp(SG(request_info).request_method, "HEAD")) {
+                       PHPWRITE(RED, strlen(RED));
+               }
                RETURN_TRUE;
        }
        RETURN_FALSE;
@@ -618,7 +620,6 @@ PHP_FUNCTION(http_split_response)
        array_init(zheaders);
 
        if (SUCCESS != http_split_response(response, response_len, Z_ARRVAL_P(zheaders), &body, &body_len)) {
-               http_error(E_WARNING, HTTP_E_PARSE, "Could not parse HTTP response");
                RETURN_FALSE;
        }
 
@@ -642,7 +643,6 @@ PHP_FUNCTION(http_parse_headers)
 
        array_init(return_value);
        if (SUCCESS != http_parse_headers(header, return_value)) {
-               http_error(E_WARNING, HTTP_E_PARSE, "Could not parse HTTP headers");
                zval_dtor(return_value);
                RETURN_FALSE;
        }
@@ -1227,7 +1227,7 @@ PHP_FUNCTION(http_build_query)
        }
 
        if (Z_TYPE_P(formdata) != IS_ARRAY && Z_TYPE_P(formdata) != IS_OBJECT) {
-               http_error(E_WARNING, HTTP_E_PARAM, "Parameter 1 expected to be Array or Object.  Incorrect value given.");
+               http_error(HE_WARNING, HTTP_E_INVALID_PARAM, "Parameter 1 expected to be Array or Object.  Incorrect value given.");
                RETURN_FALSE;
        }
 
@@ -1254,7 +1254,7 @@ PHP_FUNCTION(http_build_query)
 
 PHP_FUNCTION(http_test)
 {
-       RETURN_NULL();
+       RETURN_BOOL(HTTP_G(only_exceptions));
 }
 
 /*
@@ -1265,3 +1265,4 @@ PHP_FUNCTION(http_test)
  * vim600: noet sw=4 ts=4 fdm=marker
  * vim<600: noet sw=4 ts=4
  */
+