Commit: 6809c388b5d8bb03515f7b4ba391724f9a8df8e0 Author: Leigh <lei...@gmail.com> Tue, 26 Jun 2012 14:57:10 +0100 Parents: 59cf3a2404dc5d678ee16249764b7effd6ecd485 Branches: PHP-5.5
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=6809c388b5d8bb03515f7b4ba391724f9a8df8e0 Log: Tests, fixes and optimisations * Amended existing tests to cater for new functionality. * Implemented fixes and optimisations recommended by NikiC * Added create_sid to the registered interface. This was breaking tests. It also now breaks BC for people implementing the interface directly instead of extending the class. Changed paths: M ext/session/mod_user.h M ext/session/mod_user_class.c M ext/session/session.c M ext/session/tests/session_set_save_handler_class_002.phpt M ext/session/tests/session_set_save_handler_iface_001.phpt Diff: diff --git a/ext/session/mod_user.h b/ext/session/mod_user.h index ea1980a..a25fa6d 100644 --- a/ext/session/mod_user.h +++ b/ext/session/mod_user.h @@ -24,6 +24,6 @@ extern ps_module ps_mod_user; #define ps_user_ptr &ps_mod_user -PS_FUNCS(user); +PS_FUNCS_SID(user); #endif diff --git a/ext/session/mod_user_class.c b/ext/session/mod_user_class.c index a996902..4387bdd 100644 --- a/ext/session/mod_user_class.c +++ b/ext/session/mod_user_class.c @@ -149,12 +149,12 @@ PHP_METHOD(SessionHandler, create_sid) { char *id; - zend_parse_parameters_none(); + if (zend_parse_parameters_none() == FAILURE) { + return; + } id = PS(default_mod)->s_create_sid(&PS(mod_data), NULL TSRMLS_CC); - RETVAL_STRING(id, 1); - efree(id); - return; + RETURN_STRING(id, 0); } /* }}} */ diff --git a/ext/session/session.c b/ext/session/session.c index 9026b10..d6ae64f 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -2079,6 +2079,7 @@ static const zend_function_entry php_session_iface_functions[] = { PHP_ABSTRACT_ME(SessionHandlerInterface, write, arginfo_session_class_write) PHP_ABSTRACT_ME(SessionHandlerInterface, destroy, arginfo_session_class_destroy) PHP_ABSTRACT_ME(SessionHandlerInterface, gc, arginfo_session_class_gc) + PHP_ABSTRACT_ME(SessionHandlerInterface, create_sid, arginfo_session_class_create_sid) { NULL, NULL, NULL } }; /* }}} */ @@ -2092,7 +2093,6 @@ static const zend_function_entry php_session_class_functions[] = { PHP_ME(SessionHandler, write, arginfo_session_class_write, ZEND_ACC_PUBLIC) PHP_ME(SessionHandler, destroy, arginfo_session_class_destroy, ZEND_ACC_PUBLIC) PHP_ME(SessionHandler, gc, arginfo_session_class_gc, ZEND_ACC_PUBLIC) -/* Added to the class but not the interface, to maintain backwards compatibility */ PHP_ME(SessionHandler, create_sid, arginfo_session_class_create_sid, ZEND_ACC_PUBLIC) { NULL, NULL, NULL } }; diff --git a/ext/session/tests/session_set_save_handler_class_002.phpt b/ext/session/tests/session_set_save_handler_class_002.phpt index 6fb831f..4195a16 100644 --- a/ext/session/tests/session_set_save_handler_class_002.phpt +++ b/ext/session/tests/session_set_save_handler_class_002.phpt @@ -53,6 +53,10 @@ class MySession2 extends SessionHandler { } return true; } + + public function create_sid() { + return parent::create_sid(); + } } $handler = new MySession2; diff --git a/ext/session/tests/session_set_save_handler_iface_001.phpt b/ext/session/tests/session_set_save_handler_iface_001.phpt index 39a4b99..0576341 100644 --- a/ext/session/tests/session_set_save_handler_iface_001.phpt +++ b/ext/session/tests/session_set_save_handler_iface_001.phpt @@ -53,6 +53,10 @@ class MySession2 implements SessionHandlerInterface { } return true; } + + public function create_sid() { + return md5(mt_rand()); + } } $handler = new MySession2; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php