History log of /php-src/ext/session/php_session.h (Results 1 – 25 of 199)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# f6c38fc9 01-Mar-2024 Tim Düsterhus

session: Stop using php_combined_lcg()

The CombinedLCG is a terrible RNG with a questionable API and should ideally
not be used anymore. While in the case of ext/session it is only used

session: Stop using php_combined_lcg()

The CombinedLCG is a terrible RNG with a questionable API and should ideally
not be used anymore. While in the case of ext/session it is only used for
probabilistic garbage collection where the quality of the RNG is not of
particular importance, there are better choices.

Replace the RNG used for garbage collection by an ext/session specific instance
of PcgOneseq128XslRr64. Its 16 Byte state nicely fits into the memory freed up
by the previous reordering of the session globals struct, even allowing to the
storage of the php_random_algo_with_state struct, making using the RNG a little
nicer.

Instead multiplying the float returned by the CombinedLCG by the GC Divisor to
obtain an integer between 0 and the divisor we can just use `php_random_range`
to directly generate an appropriate integer, completely avoiding the floating
point maths, making it easier to verify the code for correctness.

show more ...


# 4df911ef 01-Mar-2024 Tim Düsterhus

session: Slightly reorder the members within the module globals

The previous ordering resulted in a needlessly large number of holes and split
several `zval`s across cache line boundarie

session: Slightly reorder the members within the module globals

The previous ordering resulted in a needlessly large number of holes and split
several `zval`s across cache line boundaries. Do the bare minimum of reordering
to keep related members grouped, but reducing the struct size by 32 bytes and
keeping `zval`s within a single cache line.

Before:

struct _php_session_rfc1867_progress {
size_t sname_len; /* 0 8 */
zval sid; /* 8 16 */
smart_str key; /* 24 16 */
zend_long update_step; /* 40 8 */
zend_long next_update; /* 48 8 */
double next_update_time; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
_Bool cancel_upload; /* 64 1 */
_Bool apply_trans_sid; /* 65 1 */

/* XXX 6 bytes hole, try to pack */

size_t content_length; /* 72 8 */
zval data; /* 80 16 */
zval * post_bytes_processed; /* 96 8 */
zval files; /* 104 16 */
zval current_file; /* 120 16 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
zval * current_file_bytes_processed; /* 136 8 */

/* size: 144, cachelines: 3, members: 14 */
/* sum members: 138, holes: 1, sum holes: 6 */
/* last cacheline: 16 bytes */
};
struct _php_ps_globals {
char * save_path; /* 0 8 */
char * session_name; /* 8 8 */
zend_string * id; /* 16 8 */
char * extern_referer_chk; /* 24 8 */
char * cache_limiter; /* 32 8 */
zend_long cookie_lifetime; /* 40 8 */
char * cookie_path; /* 48 8 */
char * cookie_domain; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
_Bool cookie_secure; /* 64 1 */
_Bool cookie_httponly; /* 65 1 */

/* XXX 6 bytes hole, try to pack */

char * cookie_samesite; /* 72 8 */
const ps_module * mod; /* 80 8 */
const ps_module * default_mod; /* 88 8 */
void * mod_data; /* 96 8 */
php_session_status session_status; /* 104 4 */

/* XXX 4 bytes hole, try to pack */

zend_string * session_started_filename; /* 112 8 */
uint32_t session_started_lineno; /* 120 4 */

/* XXX 4 bytes hole, try to pack */

/* --- cacheline 2 boundary (128 bytes) --- */
zend_long gc_probability; /* 128 8 */
zend_long gc_divisor; /* 136 8 */
zend_long gc_maxlifetime; /* 144 8 */
int module_number; /* 152 4 */

/* XXX 4 bytes hole, try to pack */

zend_long cache_expire; /* 160 8 */
struct {
zval ps_open; /* 168 16 */
zval ps_close; /* 184 16 */
/* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */
zval ps_read; /* 200 16 */
zval ps_write; /* 216 16 */
zval ps_destroy; /* 232 16 */
zval ps_gc; /* 248 16 */
/* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
zval ps_create_sid; /* 264 16 */
zval ps_validate_sid; /* 280 16 */
zval ps_update_timestamp; /* 296 16 */
} mod_user_names; /* 168 144 */
_Bool mod_user_implemented; /* 312 1 */
_Bool mod_user_is_open; /* 313 1 */

/* XXX 6 bytes hole, try to pack */

/* --- cacheline 5 boundary (320 bytes) --- */
zend_string * mod_user_class_name; /* 320 8 */
const struct ps_serializer_struct * serializer; /* 328 8 */
zval http_session_vars; /* 336 16 */
_Bool auto_start; /* 352 1 */
_Bool use_cookies; /* 353 1 */
_Bool use_only_cookies; /* 354 1 */
_Bool use_trans_sid; /* 355 1 */

/* XXX 4 bytes hole, try to pack */

zend_long sid_length; /* 360 8 */
zend_long sid_bits_per_character; /* 368 8 */
_Bool send_cookie; /* 376 1 */
_Bool define_sid; /* 377 1 */

/* XXX 6 bytes hole, try to pack */

/* --- cacheline 6 boundary (384 bytes) --- */
php_session_rfc1867_progress * rfc1867_progress; /* 384 8 */
_Bool rfc1867_enabled; /* 392 1 */
_Bool rfc1867_cleanup; /* 393 1 */

/* XXX 6 bytes hole, try to pack */

char * rfc1867_prefix; /* 400 8 */
char * rfc1867_name; /* 408 8 */
zend_long rfc1867_freq; /* 416 8 */
double rfc1867_min_freq; /* 424 8 */
_Bool use_strict_mode; /* 432 1 */
_Bool lazy_write; /* 433 1 */
_Bool in_save_handler; /* 434 1 */
_Bool set_handler; /* 435 1 */

/* XXX 4 bytes hole, try to pack */

zend_string * session_vars; /* 440 8 */

/* size: 448, cachelines: 7, members: 48 */
/* sum members: 404, holes: 9, sum holes: 44 */
};

After:

struct _php_session_rfc1867_progress {
size_t sname_len; /* 0 8 */
zval sid; /* 8 16 */
smart_str key; /* 24 16 */
zend_long update_step; /* 40 8 */
zend_long next_update; /* 48 8 */
double next_update_time; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
_Bool cancel_upload; /* 64 1 */
_Bool apply_trans_sid; /* 65 1 */

/* XXX 6 bytes hole, try to pack */

size_t content_length; /* 72 8 */
zval data; /* 80 16 */
zval files; /* 96 16 */
zval * post_bytes_processed; /* 112 8 */
zval * current_file_bytes_processed; /* 120 8 */
/* --- cacheline 2 boundary (128 bytes) --- */
zval current_file; /* 128 16 */

/* size: 144, cachelines: 3, members: 14 */
/* sum members: 138, holes: 1, sum holes: 6 */
/* last cacheline: 16 bytes */
};
struct _php_ps_globals {
char * save_path; /* 0 8 */
char * session_name; /* 8 8 */
zend_string * id; /* 16 8 */
char * extern_referer_chk; /* 24 8 */
char * cache_limiter; /* 32 8 */
zend_long cookie_lifetime; /* 40 8 */
char * cookie_path; /* 48 8 */
char * cookie_domain; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
char * cookie_samesite; /* 64 8 */
_Bool cookie_secure; /* 72 1 */
_Bool cookie_httponly; /* 73 1 */

/* XXX 6 bytes hole, try to pack */

const ps_module * mod; /* 80 8 */
const ps_module * default_mod; /* 88 8 */
void * mod_data; /* 96 8 */
php_session_status session_status; /* 104 4 */

/* XXX 4 bytes hole, try to pack */

zend_string * session_started_filename; /* 112 8 */
uint32_t session_started_lineno; /* 120 4 */
int module_number; /* 124 4 */
/* --- cacheline 2 boundary (128 bytes) --- */
zend_long gc_probability; /* 128 8 */
zend_long gc_divisor; /* 136 8 */
zend_long gc_maxlifetime; /* 144 8 */
zend_long cache_expire; /* 152 8 */
struct {
zval ps_open; /* 160 16 */
zval ps_close; /* 176 16 */
/* --- cacheline 3 boundary (192 bytes) --- */
zval ps_read; /* 192 16 */
zval ps_write; /* 208 16 */
zval ps_destroy; /* 224 16 */
zval ps_gc; /* 240 16 */
/* --- cacheline 4 boundary (256 bytes) --- */
zval ps_create_sid; /* 256 16 */
zval ps_validate_sid; /* 272 16 */
zval ps_update_timestamp; /* 288 16 */
} mod_user_names; /* 160 144 */
zend_string * mod_user_class_name; /* 304 8 */
_Bool mod_user_implemented; /* 312 1 */
_Bool mod_user_is_open; /* 313 1 */
_Bool auto_start; /* 314 1 */
_Bool use_cookies; /* 315 1 */
_Bool use_only_cookies; /* 316 1 */
_Bool use_trans_sid; /* 317 1 */
_Bool send_cookie; /* 318 1 */
_Bool define_sid; /* 319 1 */
/* --- cacheline 5 boundary (320 bytes) --- */
const struct ps_serializer_struct * serializer; /* 320 8 */
zval http_session_vars; /* 328 16 */
zend_long sid_length; /* 344 8 */
zend_long sid_bits_per_character; /* 352 8 */
php_session_rfc1867_progress * rfc1867_progress; /* 360 8 */
char * rfc1867_prefix; /* 368 8 */
char * rfc1867_name; /* 376 8 */
/* --- cacheline 6 boundary (384 bytes) --- */
zend_long rfc1867_freq; /* 384 8 */
double rfc1867_min_freq; /* 392 8 */
_Bool rfc1867_enabled; /* 400 1 */
_Bool rfc1867_cleanup; /* 401 1 */
_Bool use_strict_mode; /* 402 1 */
_Bool lazy_write; /* 403 1 */
_Bool in_save_handler; /* 404 1 */
_Bool set_handler; /* 405 1 */

/* XXX 2 bytes hole, try to pack */

zend_string * session_vars; /* 408 8 */

/* size: 416, cachelines: 7, members: 48 */
/* sum members: 404, holes: 3, sum holes: 12 */
/* last cacheline: 32 bytes */
};

show more ...


# 180f7854 28-Mar-2023 Calvin Buckley

Note where a session was already started (#10736)

* Note where a session was already started

Duplicated session starts can be annoying to debug. The error that
occurs when a ses

Note where a session was already started (#10736)

* Note where a session was already started

Duplicated session starts can be annoying to debug. The error that
occurs when a session is already active doesn't tell you where it
was initialized, so figuring out the callsite involves manual
debugging to find it out.

This keeps track of the call site of session_start as a request
global, and frees at the end of the request. It should make it
easier to find these instances for PHP users.

The resulting message can look like:
Notice: session_start(): Ignoring session_start() because a session is already active (started from /home/calvin/src/php-src/inc.php on line 4) in /home/calvin/src/php-src/index.php on line 9

Fixes GH-10721

* Convert to using zend_string for session start location

* Fix leak with session start callsite filename

If this was already initialized, we'd forget it. Have shared free
between session_start and RSHUTDOWN.

* For sessions that are automatically started, note that

Easy to forget that you have this set, in which case, session start
is done at RINIT outside of user code. Because this config option
can't change at runtime, we can check for it and make the error
more specific if that's the case.

show more ...


# 51888425 04-Oct-2022 George Peter Banyard

Drop struct union as access is now always named


Revision tags: php-8.2.0RC1, php-8.1.10, php-8.0.23, php-8.0.23RC1, php-8.1.10RC1, php-8.2.0beta3
# e8e01577 12-Aug-2022 George Peter Banyard

Use bool instead of int in session struct

Revision tags: php-8.2.0beta2, php-8.1.9, php-8.0.22, php-8.1.9RC1, php-8.2.0beta1, php-8.0.22RC1, php-8.0.21, php-8.1.8, php-8.2.0alpha3, php-8.1.8RC1, php-8.2.0alpha2, php-8.0.21RC1, php-8.0.20, php-8.1.7, php-8.2.0alpha1, php-7.4.30
# 4a5699ae 27-May-2022 George Peter Banyard

Session: use more appropriate types

Revision tags: php-8.1.7RC1, php-8.0.20RC1, php-8.1.6, php-8.0.19, php-8.1.6RC1, php-8.0.19RC1, php-8.0.18, php-8.1.5, php-7.4.29, php-8.1.5RC1, php-8.0.18RC1, php-8.1.4, php-8.0.17
# 0db03c41 10-Mar-2022 Ilija Tovilo

Improve sesson write failure message for user error handlers

Closes GH-7787
Closes GH-8186

Revision tags: php-8.1.4RC1, php-8.0.17RC1, php-8.1.3, php-8.0.16, php-7.4.28, php-8.1.3RC1, php-8.0.16RC1, php-8.1.2, php-8.0.15, php-8.1.2RC1, php-8.0.15RC1, php-8.0.14, php-8.1.1, php-7.4.27, php-8.1.1RC1, php-8.0.14RC1, php-7.4.27RC1, php-8.1.0, php-8.0.13, php-7.4.26, php-7.3.33, php-8.1.0RC6, php-7.4.26RC1, php-8.0.13RC1, php-8.1.0RC5, php-7.3.32, php-7.4.25, php-8.0.12, php-8.1.0RC4, php-8.0.12RC1, php-7.4.25RC1, php-8.1.0RC3, php-8.0.11, php-7.4.24, php-7.3.31, php-8.1.0RC2, php-7.4.24RC1, php-8.0.11RC1, php-8.1.0RC1, php-7.4.23, php-8.0.10, php-7.3.30, php-8.1.0beta3, php-8.0.10RC1, php-7.4.23RC1, php-8.1.0beta2, php-8.0.9, php-7.4.22, php-8.1.0beta1, php-7.4.22RC1, php-8.0.9RC1, php-8.1.0alpha3, php-7.4.21, php-7.3.29, php-8.0.8, php-8.1.0alpha2, php-7.4.21RC1, php-8.0.8RC1, php-8.1.0alpha1, php-8.0.7, php-7.4.20, php-8.0.7RC1, php-7.4.20RC1
# 01b3fc03 06-May-2021 KsaR

Update http->https in license (#6945)

1. Update: http://www.php.net/license/3_01.txt to https, as there is anyway server header "Location:" to https.
2. Update few license 3.0 to 3.01 as

Update http->https in license (#6945)

1. Update: http://www.php.net/license/3_01.txt to https, as there is anyway server header "Location:" to https.
2. Update few license 3.0 to 3.01 as 3.0 states "php 5.1.1, 4.1.1, and earlier".
3. In some license comments is "at through the world-wide-web" while most is without "at", so deleted.
4. fixed indentation in some files before |

show more ...

Revision tags: php-8.0.6, php-7.4.19, php-7.4.18, php-7.3.28, php-8.0.5, php-8.0.5RC1, php-7.4.18RC1, php-8.0.4RC1, php-7.4.17RC1, php-8.0.3, php-7.4.16, php-8.0.3RC1, php-7.4.16RC1
# 5b5bfd6b 14-Feb-2021 Máté Kocsis

Generate class entries from stubs for phar, posix, pspell, readline, reflection, session, shmop

Closes GH-6692

Revision tags: php-8.0.2, php-7.4.15, php-7.3.27, php-8.0.2RC1, php-7.4.15RC2, php-7.4.15RC1
# 3e01f5af 15-Jan-2021 Nikita Popov

Replace zend_bool uses with bool

We're starting to see a mix between uses of zend_bool and bool.
Replace all usages with the standard bool type everywhere.

Of course, zend_bool

Replace zend_bool uses with bool

We're starting to see a mix between uses of zend_bool and bool.
Replace all usages with the standard bool type everywhere.

Of course, zend_bool is retained as an alias.

show more ...

Revision tags: php-8.0.1, php-7.4.14, php-7.3.26, php-7.4.14RC1, php-8.0.1RC1, php-7.3.26RC1, php-8.0.0, php-7.3.25, php-7.4.13, php-8.0.0RC5, php-7.4.13RC1, php-8.0.0RC4, php-7.3.25RC1, php-7.4.12, php-8.0.0RC3, php-7.3.24, php-8.0.0RC2, php-7.4.12RC1, php-7.3.24RC1, php-7.2.34, php-8.0.0rc1, php-7.4.11, php-7.3.23, php-8.0.0beta4, php-7.4.11RC1, php-7.3.23RC1
# f293e6b9 10-Sep-2020 Máté Kocsis

Clean up ext/session errors

Closes GH-6111

Revision tags: php-8.0.0beta3, php-7.4.10, php-7.3.22, php-8.0.0beta2, php-7.3.22RC1, php-7.4.10RC1, php-8.0.0beta1, php-7.4.9, php-7.2.33, php-7.3.21, php-8.0.0alpha3, php-7.4.9RC1, php-7.3.21RC1, php-7.4.8, php-7.2.32, php-8.0.0alpha2, php-7.3.20, php-8.0.0alpha1, php-7.4.8RC1, php-7.3.20RC1, php-7.4.7, php-7.3.19
# 88355dd3 07-Jun-2020 twosee

Constify char * arguments of APIs

Closes GH-5676.

Revision tags: php-7.4.7RC1, php-7.3.19RC1, php-7.4.6, php-7.2.31, php-7.4.6RC1, php-7.3.18RC1
# af67b069 27-Apr-2020 Alex Dowad

SessionUpdateTimestampHandler class was never implemented

It seems that in 2015, work was being done so that users could add their own custom
session handlers. The implementer intended t

SessionUpdateTimestampHandler class was never implemented

It seems that in 2015, work was being done so that users could add their own custom
session handlers. The implementer intended to add a class called
SessionUpdateTimestampHandler, but never did so. The variable which was intended to point
to its class entry is never initialized.

The implementer also coded two methods for this class. Strangely, the method bodies
are declared with PHP_METHOD(SessionHandler, ...) rather than
PHP(SessionUpdateTimestampHandler, ...). However, these method implementations are not
added to the method table of any class or interface. They are just dead code.

show more ...

Revision tags: php-7.2.30, php-7.4.5, php-7.3.17, php-7.4.5RC1, php-7.3.17RC1, php-7.3.18, php-7.4.4, php-7.2.29, php-7.3.16, php-7.4.4RC1, php-7.3.16RC1, php-7.4.3, php-7.2.28, php-7.3.15RC1, php-7.4.3RC1, php-7.3.15, php-7.2.27, php-7.4.2, php-7.3.14, php-7.3.14RC1, php-7.4.2RC1, php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1, php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3
# 5d6e923d 24-Sep-2019 Gabriel Caruso

Remove mention of PHP major version in Copyright headers

Closes GH-4732.

Revision tags: php-7.2.23, php-7.3.10, php-7.4.0RC2, php-7.2.23RC1, php-7.3.10RC1, php-7.4.0RC1, php-7.1.32, php-7.2.22, php-7.3.9, php-7.4.0beta4, php-7.2.22RC1, php-7.3.9RC1, php-7.4.0beta2, php-7.1.31, php-7.2.21, php-7.3.8, php-7.4.0beta1, php-7.2.21RC1, php-7.3.8RC1, php-7.4.0alpha3, php-7.3.7, php-7.2.20, php-7.4.0alpha2, php-7.3.7RC3, php-7.3.7RC2, php-7.2.20RC2, php-7.4.0alpha1, php-7.3.7RC1, php-7.2.20RC1, php-7.2.19, php-7.3.6, php-7.1.30, php-7.2.19RC1, php-7.3.6RC1, php-7.1.29, php-7.2.18, php-7.3.5, php-7.2.18RC1, php-7.3.5RC1, php-7.2.17, php-7.3.4, php-7.1.28
# e632537c 20-Mar-2019 Kalle Sommer Nielsen

Remove usage of HAVE_HASH_EXT and COMPILE_DL_HASH as ext/hash is always available (master only)

Revision tags: php-7.3.4RC1, php-7.2.17RC1, php-7.1.27, php-7.3.3, php-7.2.16, php-7.3.3RC1, php-7.2.16RC1, php-7.2.15, php-7.3.2
# 38c337f2 30-Jan-2019 Zeev Suraski

Remove year range from copyright notice

Revision tags: php-7.2.15RC1, php-7.3.2RC1, php-5.6.40, php-7.1.26, php-7.3.1, php-7.2.14, php-7.2.14RC1, php-7.3.1RC1, php-5.6.39, php-7.1.25, php-7.2.13, php-7.0.33, php-7.3.0, php-7.1.25RC1, php-7.2.13RC1, php-7.3.0RC6, php-7.1.24, php-7.2.12, php-7.3.0RC5, php-7.1.24RC1, php-7.2.12RC1, php-7.3.0RC4, php-7.1.23, php-7.2.11, php-7.3.0RC3, php-7.1.23RC1, php-7.2.11RC1, php-7.3.0RC2, php-5.6.38, php-7.1.22, php-7.3.0RC1, php-7.2.10, php-7.0.32, php-7.1.22RC1, php-7.3.0beta3, php-7.2.10RC1, php-7.1.21, php-7.2.9, php-7.3.0beta2, php-7.1.21RC1, php-7.3.0beta1, php-7.2.9RC1, php-5.6.37, php-7.1.20, php-7.3.0alpha4, php-7.0.31, php-7.2.8, php-7.1.20RC1, php-7.2.8RC1, php-7.3.0alpha3, php-7.3.0alpha2, php-7.1.19, php-7.2.7, php-7.1.19RC1, php-7.3.0alpha1, php-7.2.7RC1, php-7.1.18, php-7.2.6, php-7.2.6RC1, php-7.1.18RC1, php-5.6.36, php-7.2.5, php-7.1.17, php-7.0.30, php-7.1.17RC1, php-7.2.5RC1, php-5.6.35, php-7.0.29, php-7.2.4, php-7.1.16, php-7.1.16RC1, php-7.2.4RC1, php-7.1.15, php-5.6.34, php-7.2.3, php-7.0.28, php-7.2.3RC1, php-7.1.15RC1, php-7.1.14, php-7.2.2, php-7.1.14RC1, php-7.2.2RC1, php-7.1.13, php-5.6.33, php-7.2.1, php-7.0.27, php-7.2.1RC1, php-7.1.13RC1, php-7.0.27RC1, php-7.2.0, php-7.1.12, l, php-7.1.12RC1, php-7.2.0RC6, php-7.0.26RC1, php-7.1.11, php-5.6.32, php-7.2.0RC5, php-7.0.25, php-7.1.11RC1, php-7.2.0RC4, php-7.0.25RC1, php-7.1.10, php-7.2.0RC3, php-7.0.24, php-7.2.0RC2, php-7.1.10RC1, php-7.0.24RC1, php-7.1.9, php-7.2.0RC1, php-7.0.23, php-7.1.9RC1, php-7.2.0beta3, php-7.0.23RC1, php-7.1.8, php-7.2.0beta2, php-7.0.22, php-7.1.8RC1, php-7.2.0beta1, php-7.0.22RC1
# 08b9310e 07-Jul-2017 Frederik Bosch

implement same site cookie see https://bugs.php.net/bug.php?id=72230 see https://tools.ietf.org/html/draft-west-first-party-cookies-07 see https://scotthelme.co.uk/csrf-is-dead/

# 8d3f8ca1 03-Jul-2018 Peter Kokot

Remove unused Git attributes ident

The $Id$ keywords were used in Subversion where they can be substituted
with filename, last revision number change, last changed date, and last
use

Remove unused Git attributes ident

The $Id$ keywords were used in Subversion where they can be substituted
with filename, last revision number change, last changed date, and last
user who changed it.

In Git this functionality is different and can be done with Git attribute
ident. These need to be defined manually for each file in the
.gitattributes file and are afterwards replaced with 40-character
hexadecimal blob object name which is based only on the particular file
contents.

This patch simplifies handling of $Id$ keywords by removing them since
they are not used anymore.

show more ...

# a6519d05 02-Jan-2018 Xinchen Hui

year++

# 83e495e0 14-Dec-2017 Dmitry Stogov

Move constants into read-only data segment

Revision tags: php-5.6.31, php-7.0.21, php-7.1.7, php-7.2.0alpha3, php-7.1.7RC1, php-7.0.21RC1, php-7.2.0alpha2, php-7.1.6, php-7.2.0alpha1, php-7.0.20, php-7.1.6RC1, php-7.0.20RC1, php-7.1.5, php-7.0.19, php-7.0.19RC1, php-7.1.5RC1, php-7.1.4, php-7.0.18, php-7.1.4RC1, php-7.0.18RC1, php-7.1.3, php-7.0.17, php-7.1.3RC1, php-7.0.17RC1, php-7.1.2, php-7.0.16, php-7.0.16RC1, php-7.1.2RC1, php-5.6.30, php-7.0.15, php-5.6.30RC1, php-7.1.1RC1, php-7.0.15RC1
# 9e29f841 02-Jan-2017 Sammy Kaye Powers

Update copyright headers to 2017

# 15b80f10 01-Jan-2017 Joe Watkins

Merge branch 'pull-request/2261'

* pull-request/2261:
Add PHPAPI php_session_flush and php_session_destroy


# e10425fe 31-Dec-2016 dreamszhu

Add PHPAPI php_session_flush and php_session_destroy

# f7f32ba4 31-Dec-2016 dreamszhu

Add PHPAPI for session class entry

# a93a51c3 22-Dec-2016 Yasuo Ohgaki

Fix bug #73100 - Improve bug fix. Forbid to set 'user' save handler other than set_save_handler().

12345678