com php-src: Tests, fixes and optimisations: ext/session/mod_ user.h ext/session/mod_user_class.c ext/session/ses sion.c
ext/session/tests/session_set_save_handler_c lass_002.phpt ext/session/tests/session_set_sav e_handler_iface_001.phpt
| From: | Arpad Ray | Date: | Tue, 26 Jun 2012 13:57:10 +0000 |
| Subject: | com php-src: Tests, fixes and optimisations: ext/session/mod_ user.h ext/session/mod_user_class.c ext/session/ses sion.c ext/session/tests/session_set_save_handler_c lass_002.phpt ext/session/tests/session_set_sav e_handler_iface_001.phpt |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-72526@lists.php.net to get a copy of this message | ||
Commit: 6809c388b5d8bb03515f7b4ba391724f9a8df8e0
Author: Leigh <leight@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;