diff --git a/php_memcached_session.c b/php_memcached_session.c index a4e89aed..48133e1c 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)) { /*