From 4d06c0355556ed9394ab81819d749d5ad10923d7 Mon Sep 17 00:00:00 2001 From: Denis Yeldandi Date: Wed, 18 Feb 2015 12:04:02 +0300 Subject: [PATCH 1/2] Added error reporting to session code --- php_memcached_session.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/php_memcached_session.c b/php_memcached_session.c index a3ef5678..f93b1fa5 100644 --- a/php_memcached_session.c +++ b/php_memcached_session.c @@ -321,7 +321,11 @@ PS_READ_FUNC(memcached) *vallen = payload_len; free(payload); return SUCCESS; - } else { + } else if (status == MEMCACHED_NOTFOUND) { + /* this is okey, session may not be in memcached yet */ + return FAILURE; + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "error getting session from memcached: %s", memcached_last_error_message(memc_sess->memc_sess)); return FAILURE; } } @@ -356,6 +360,7 @@ PS_WRITE_FUNC(memcached) if (status == MEMCACHED_SUCCESS) { return SUCCESS; } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "error saving session to memcached: %s", memcached_last_error_message(memc_sess->memc_sess)); write_try_attempts--; } } while (write_try_attempts > 0); From 117e2ec6dfc1f70720883ded752d11317459c3c6 Mon Sep 17 00:00:00 2001 From: Denis Yeldandi Date: Tue, 8 Nov 2016 14:41:23 +0300 Subject: [PATCH 2/2] Added memcached.sess_prefix for --SERVER= connection string --- php_memcached_session.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/php_memcached_session.c b/php_memcached_session.c index f93b1fa5..1f97a74c 100644 --- a/php_memcached_session.c +++ b/php_memcached_session.c @@ -154,16 +154,6 @@ PS_OPEN_FUNC(memcached) status = memcached_server_push(memc_sess->memc_sess, servers); memcached_server_list_free(servers); - if (MEMC_G(sess_prefix) && MEMC_G(sess_prefix)[0] != 0 && memcached_callback_set(memc_sess->memc_sess, MEMCACHED_CALLBACK_PREFIX_KEY, MEMC_G(sess_prefix)) != MEMCACHED_SUCCESS) { - PS_SET_MOD_DATA(NULL); - if (plist_key) { - efree(plist_key); - } - memcached_free(memc_sess->memc_sess); - php_error_docref(NULL TSRMLS_CC, E_WARNING, "bad memcached key prefix in memcached.sess_prefix"); - return FAILURE; - } - if (status == MEMCACHED_SUCCESS) { goto success; } @@ -211,6 +201,13 @@ PS_OPEN_FUNC(memcached) return FAILURE; } } + + if (MEMC_G(sess_prefix) && MEMC_G(sess_prefix)[0] != 0 ) { + if (memcached_callback_set(memc_sess->memc_sess, MEMCACHED_CALLBACK_PREFIX_KEY, MEMC_G(sess_prefix)) != MEMCACHED_SUCCESS) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "bad memcached key prefix in memcached.sess_prefix"); + return FAILURE; + } + } #ifdef HAVE_MEMCACHED_SASL if (MEMC_G(use_sasl)) { /* @@ -324,7 +321,7 @@ PS_READ_FUNC(memcached) } else if (status == MEMCACHED_NOTFOUND) { /* this is okey, session may not be in memcached yet */ return FAILURE; - } else { + } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, "error getting session from memcached: %s", memcached_last_error_message(memc_sess->memc_sess)); return FAILURE; }