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

Reply via email to