kalle Tue, 12 Jul 2011 03:56:32 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=313156
Log:
Changed http_response_code() to be able to set a response code
Changed paths:
U php/php-src/branches/PHP_5_4/NEWS
U php/php-src/branches/PHP_5_4/ext/standard/basic_functions.c
U php/php-src/branches/PHP_5_4/ext/standard/head.c
U php/php-src/trunk/ext/standard/basic_functions.c
U php/php-src/trunk/ext/standard/head.c
Modified: php/php-src/branches/PHP_5_4/NEWS
===================================================================
--- php/php-src/branches/PHP_5_4/NEWS 2011-07-12 01:40:32 UTC (rev 313155)
+++ php/php-src/branches/PHP_5_4/NEWS 2011-07-12 03:56:32 UTC (rev 313156)
@@ -1,4 +1,4 @@
-PHP NEWS
+PHP
NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2011, PHP 5.4.0 Alpha 2
- General improvements:
@@ -16,6 +16,7 @@
. Lowered default value for Process Manager. FR #54098. (fat)
- Improved core functions:
+ . Changed http_response_code() to be able to set a response code. (Kalle)
. Fixed crypt_blowfish handling of 8-bit characters. (Stas) (CVE-2011-2483)
. Fixed bug#55084 (Function registered by header_register_callback is
called only once per process). (Hannes)
Modified: php/php-src/branches/PHP_5_4/ext/standard/basic_functions.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/standard/basic_functions.c 2011-07-12
01:40:32 UTC (rev 313155)
+++ php/php-src/branches/PHP_5_4/ext/standard/basic_functions.c 2011-07-12
03:56:32 UTC (rev 313156)
@@ -1481,7 +1481,8 @@
ZEND_BEGIN_ARG_INFO(arginfo_headers_list, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO(arginfo_http_response_code, 0)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_http_response_code, 0, 0, 0)
+ ZEND_ARG_INFO(0, response_code)
ZEND_END_ARG_INFO()
/* }}} */
/* {{{ html.c */
Modified: php/php-src/branches/PHP_5_4/ext/standard/head.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/standard/head.c 2011-07-12 01:40:32 UTC
(rev 313155)
+++ php/php-src/branches/PHP_5_4/ext/standard/head.c 2011-07-12 03:56:32 UTC
(rev 313156)
@@ -280,14 +280,30 @@
}
/* }}} */
-/* {{{ proto long http_response_code()
- Returns the current HTTP response code */
+/* {{{ proto long http_response_code([int response_code])
+ Sets a response code, or returns the current HTTP response code */
PHP_FUNCTION(http_response_code)
{
- if (zend_parse_parameters_none() == FAILURE) {
+ long response_code = 0;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l",
&response_code) == FAILURE) {
return;
}
+ if (response_code)
+ {
+ long old_response_code;
+
+ old_response_code = SG(sapi_headers).http_response_code;
+ SG(sapi_headers).http_response_code = response_code;
+
+ if (old_response_code) {
+ RETURN_LONG(old_response_code);
+ }
+
+ RETURN_TRUE;
+ }
+
if (!SG(sapi_headers).http_response_code) {
RETURN_FALSE;
}
Modified: php/php-src/trunk/ext/standard/basic_functions.c
===================================================================
--- php/php-src/trunk/ext/standard/basic_functions.c 2011-07-12 01:40:32 UTC
(rev 313155)
+++ php/php-src/trunk/ext/standard/basic_functions.c 2011-07-12 03:56:32 UTC
(rev 313156)
@@ -1483,7 +1483,8 @@
ZEND_BEGIN_ARG_INFO(arginfo_headers_list, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_INFO(arginfo_http_response_code, 0)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_http_response_code, 0, 0, 0)
+ ZEND_ARG_INFO(0, response_code)
ZEND_END_ARG_INFO()
/* }}} */
/* {{{ html.c */
Modified: php/php-src/trunk/ext/standard/head.c
===================================================================
--- php/php-src/trunk/ext/standard/head.c 2011-07-12 01:40:32 UTC (rev
313155)
+++ php/php-src/trunk/ext/standard/head.c 2011-07-12 03:56:32 UTC (rev
313156)
@@ -280,14 +280,30 @@
}
/* }}} */
-/* {{{ proto long http_response_code()
- Returns the current HTTP response code */
+/* {{{ proto long http_response_code([int response_code])
+ Sets a response code, or returns the current HTTP response code */
PHP_FUNCTION(http_response_code)
{
- if (zend_parse_parameters_none() == FAILURE) {
+ long response_code = 0;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l",
&response_code) == FAILURE) {
return;
}
+ if (response_code)
+ {
+ long old_response_code;
+
+ old_response_code = SG(sapi_headers).http_response_code;
+ SG(sapi_headers).http_response_code = response_code;
+
+ if (old_response_code) {
+ RETURN_LONG(old_response_code);
+ }
+
+ RETURN_TRUE;
+ }
+
if (!SG(sapi_headers).http_response_code) {
RETURN_FALSE;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php