arpad                                    Mon, 29 Aug 2011 21:29:26 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=315745

Log:
Expose session status via new function, session_status (Req #52982)

Bug: https://bugs.php.net/52982 (Assigned) Expose php_session_active to 
userland via new function (patch included)
      
Changed paths:
    U   php/php-src/branches/PHP_5_4/NEWS
    U   php/php-src/branches/PHP_5_4/ext/session/session.c
    A   php/php-src/branches/PHP_5_4/ext/session/tests/session_status.phpt
    A   
php/php-src/branches/PHP_5_4/ext/session/tests/session_status_disabled.phpt
    U   php/php-src/trunk/ext/session/session.c
    A   php/php-src/trunk/ext/session/tests/session_status.phpt
    A   php/php-src/trunk/ext/session/tests/session_status_disabled.phpt

Modified: php/php-src/branches/PHP_5_4/NEWS
===================================================================
--- php/php-src/branches/PHP_5_4/NEWS   2011-08-29 21:20:41 UTC (rev 315744)
+++ php/php-src/branches/PHP_5_4/NEWS   2011-08-29 21:29:26 UTC (rev 315745)
@@ -296,6 +296,7 @@
   . Added support for storing upload progress feedback in session data. 
(Arnaud)
   . Changed session.entropy_file to default to /dev/urandom or /dev/arandom if
     either is present at compile time. (Rasmus)
+  . Expose session status via new function, session_status (Req #52982) (arpad)

 - Improved SPL extension:
   . Added RegexIterator::getRegex() method. (Joshua Thijssen)

Modified: php/php-src/branches/PHP_5_4/ext/session/session.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/session/session.c  2011-08-29 21:20:41 UTC 
(rev 315744)
+++ php/php-src/branches/PHP_5_4/ext/session/session.c  2011-08-29 21:29:26 UTC 
(rev 315745)
@@ -1830,6 +1830,18 @@
 }
 /* }}} */

+/* {{{ proto int session_status(void)
+   Returns the current session status */
+static PHP_FUNCTION(session_status)
+{
+       if (zend_parse_parameters_none() == FAILURE) {
+               return;
+       }
+
+       RETURN_LONG(PS(session_status));
+}
+/* }}} */
+
 /* {{{ arginfo */
 ZEND_BEGIN_ARG_INFO_EX(arginfo_session_name, 0, 0, 0)
        ZEND_ARG_INFO(0, name)
@@ -1903,6 +1915,7 @@
        PHP_FE(session_set_cookie_params, arginfo_session_set_cookie_params)
        PHP_FE(session_get_cookie_params, arginfo_session_void)
        PHP_FE(session_write_close,       arginfo_session_void)
+       PHP_FE(session_status,            arginfo_session_void)
        PHP_FALIAS(session_commit, session_write_close, arginfo_session_void)
        PHP_FE_END
 };
@@ -2004,6 +2017,11 @@
 #endif
        php_session_rfc1867_orig_callback = php_rfc1867_callback;
        php_rfc1867_callback = php_session_rfc1867_callback;
+
+       REGISTER_LONG_CONSTANT("PHP_SESSION_DISABLED", php_session_disabled, 
CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("PHP_SESSION_NONE", php_session_none, CONST_CS | 
CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("PHP_SESSION_ACTIVE", php_session_active, 
CONST_CS | CONST_PERSISTENT);
+
        return SUCCESS;
 }
 /* }}} */

Added: php/php-src/branches/PHP_5_4/ext/session/tests/session_status.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/ext/session/tests/session_status.phpt          
                (rev 0)
+++ php/php-src/branches/PHP_5_4/ext/session/tests/session_status.phpt  
2011-08-29 21:29:26 UTC (rev 315745)
@@ -0,0 +1,24 @@
+--TEST--
+Test session_status() function : active, none
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ob_start();
+
+echo "*** Testing session_status() : active, none\n";
+
+var_dump(PHP_SESSION_NONE != PHP_SESSION_ACTIVE);
+var_dump(session_status() == PHP_SESSION_NONE);
+
+session_start();
+
+var_dump(session_status() == PHP_SESSION_ACTIVE);
+
+?>
+--EXPECTF--
+*** Testing session_status() : active, none
+bool(true)
+bool(true)
+bool(true)

Added: 
php/php-src/branches/PHP_5_4/ext/session/tests/session_status_disabled.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/ext/session/tests/session_status_disabled.phpt 
                        (rev 0)
+++ php/php-src/branches/PHP_5_4/ext/session/tests/session_status_disabled.phpt 
2011-08-29 21:29:26 UTC (rev 315745)
@@ -0,0 +1,17 @@
+--TEST--
+Test session_status() function : disabled
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--INI--
+session.save_handler=non-existant
+--FILE--
+<?php
+
+echo "*** Testing session_status() : disabled\n";
+
+var_dump(session_status() == PHP_SESSION_DISABLED);
+
+?>
+--EXPECTF--
+*** Testing session_status() : disabled
+bool(true)

Modified: php/php-src/trunk/ext/session/session.c
===================================================================
--- php/php-src/trunk/ext/session/session.c     2011-08-29 21:20:41 UTC (rev 
315744)
+++ php/php-src/trunk/ext/session/session.c     2011-08-29 21:29:26 UTC (rev 
315745)
@@ -1830,6 +1830,18 @@
 }
 /* }}} */

+/* {{{ proto int session_status(void)
+   Returns the current session status */
+static PHP_FUNCTION(session_status)
+{
+       if (zend_parse_parameters_none() == FAILURE) {
+               return;
+       }
+
+       RETURN_LONG(PS(session_status));
+}
+/* }}} */
+
 /* {{{ arginfo */
 ZEND_BEGIN_ARG_INFO_EX(arginfo_session_name, 0, 0, 0)
        ZEND_ARG_INFO(0, name)
@@ -1903,6 +1915,7 @@
        PHP_FE(session_set_cookie_params, arginfo_session_set_cookie_params)
        PHP_FE(session_get_cookie_params, arginfo_session_void)
        PHP_FE(session_write_close,       arginfo_session_void)
+       PHP_FE(session_status,            arginfo_session_void)
        PHP_FALIAS(session_commit, session_write_close, arginfo_session_void)
        PHP_FE_END
 };
@@ -2004,6 +2017,11 @@
 #endif
        php_session_rfc1867_orig_callback = php_rfc1867_callback;
        php_rfc1867_callback = php_session_rfc1867_callback;
+
+       REGISTER_LONG_CONSTANT("PHP_SESSION_DISABLED", php_session_disabled, 
CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("PHP_SESSION_NONE", php_session_none, CONST_CS | 
CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("PHP_SESSION_ACTIVE", php_session_active, 
CONST_CS | CONST_PERSISTENT);
+
        return SUCCESS;
 }
 /* }}} */

Added: php/php-src/trunk/ext/session/tests/session_status.phpt
===================================================================
--- php/php-src/trunk/ext/session/tests/session_status.phpt                     
        (rev 0)
+++ php/php-src/trunk/ext/session/tests/session_status.phpt     2011-08-29 
21:29:26 UTC (rev 315745)
@@ -0,0 +1,24 @@
+--TEST--
+Test session_status() function : active, none
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--FILE--
+<?php
+
+ob_start();
+
+echo "*** Testing session_status() : active, none\n";
+
+var_dump(PHP_SESSION_NONE != PHP_SESSION_ACTIVE);
+var_dump(session_status() == PHP_SESSION_NONE);
+
+session_start();
+
+var_dump(session_status() == PHP_SESSION_ACTIVE);
+
+?>
+--EXPECTF--
+*** Testing session_status() : active, none
+bool(true)
+bool(true)
+bool(true)

Added: php/php-src/trunk/ext/session/tests/session_status_disabled.phpt
===================================================================
--- php/php-src/trunk/ext/session/tests/session_status_disabled.phpt            
                (rev 0)
+++ php/php-src/trunk/ext/session/tests/session_status_disabled.phpt    
2011-08-29 21:29:26 UTC (rev 315745)
@@ -0,0 +1,17 @@
+--TEST--
+Test session_status() function : disabled
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--INI--
+session.save_handler=non-existant
+--FILE--
+<?php
+
+echo "*** Testing session_status() : disabled\n";
+
+var_dump(session_status() == PHP_SESSION_DISABLED);
+
+?>
+--EXPECTF--
+*** Testing session_status() : disabled
+bool(true)

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to