@@ -2749,6 +2749,81 @@ static PHP_METHOD(Memcached, setSaslAuthData)
27492749 RETURN_TRUE ;
27502750}
27512751/* }}} */
2752+
2753+ /* {{{ Memcached::setSaslData(string user, string pass)
2754+ Sets sasl credentials (the same as Memcached::setSaslAuthData, for backward compatibility only) */
2755+ static PHP_METHOD (Memcached , setSaslData )
2756+ {
2757+ zend_error (E_DEPRECATED , "setSaslData is deprecated, use setSaslAuthData instead" );
2758+
2759+ MEMC_METHOD_INIT_VARS ;
2760+ memcached_return status ;
2761+
2762+ char * user , * pass ;
2763+ int user_len , pass_len ;
2764+
2765+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "ss" , & user , & user_len , & pass , & pass_len ) == FAILURE ) {
2766+ return ;
2767+ }
2768+
2769+ if (!MEMC_G (use_sasl )) {
2770+ php_error_docref (NULL TSRMLS_CC , E_WARNING , "SASL support (memcached.use_sasl) isn't enabled in php.ini" );
2771+ RETURN_FALSE ;
2772+ }
2773+
2774+ MEMC_METHOD_FETCH_OBJECT ;
2775+
2776+ if (!memcached_behavior_get (m_obj -> memc , MEMCACHED_BEHAVIOR_BINARY_PROTOCOL )) {
2777+ php_error_docref (NULL TSRMLS_CC , E_WARNING , "SASL is only supported with binary protocol" );
2778+ RETURN_FALSE ;
2779+ }
2780+ m_obj -> has_sasl_data = 1 ;
2781+ status = memcached_set_sasl_auth_data (m_obj -> memc , user , pass );
2782+
2783+ if (php_memc_handle_error (i_obj , status TSRMLS_CC ) < 0 ) {
2784+ RETURN_FALSE ;
2785+ }
2786+ RETURN_TRUE ;
2787+ }
2788+ /* }}} */
2789+
2790+ /* {{{ Memcached::configureSasl(string user, string pass)
2791+ Sets sasl credentials and changes the behavior to binary protocol */
2792+ static PHP_METHOD (Memcached , configureSasl )
2793+ {
2794+ zend_error (E_DEPRECATED , "configureSasl is deprecated, use setSaslAuthData instead and set binary protocol" );
2795+
2796+ MEMC_METHOD_INIT_VARS ;
2797+ memcached_return status ;
2798+
2799+ char * user , * pass ;
2800+ int user_len , pass_len ;
2801+
2802+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "ss" , & user , & user_len , & pass , & pass_len ) == FAILURE ) {
2803+ return ;
2804+ }
2805+
2806+ if (!MEMC_G (use_sasl )) {
2807+ php_error_docref (NULL TSRMLS_CC , E_WARNING , "SASL support (memcached.use_sasl) isn't enabled in php.ini" );
2808+ RETURN_FALSE ;
2809+ }
2810+
2811+ MEMC_METHOD_FETCH_OBJECT ;
2812+
2813+ if (memcached_behavior_set (m_obj -> memc , MEMCACHED_BEHAVIOR_BINARY_PROTOCOL , 1 ) != MEMCACHED_SUCCESS ) {
2814+ php_error_docref (NULL TSRMLS_CC , E_WARNING , "Unable to set SASL binary protocol" );
2815+ RETURN_FALSE ;
2816+ }
2817+ m_obj -> has_sasl_data = 1 ;
2818+ status = memcached_set_sasl_auth_data (m_obj -> memc , user , pass );
2819+
2820+ if (php_memc_handle_error (i_obj , status TSRMLS_CC ) < 0 ) {
2821+ RETURN_FALSE ;
2822+ }
2823+ RETURN_TRUE ;
2824+ }
2825+ /* }}} */
2826+
27522827#endif /* HAVE_MEMCACHED_SASL */
27532828
27542829/* {{{ Memcached::getResultCode()
@@ -4040,6 +4115,16 @@ ZEND_BEGIN_ARG_INFO(arginfo_setSaslAuthData, 0)
40404115 ZEND_ARG_INFO (0 , password )
40414116ZEND_END_ARG_INFO ()
40424117
4118+ ZEND_BEGIN_ARG_INFO (arginfo_setSaslData , 0 )
4119+ ZEND_ARG_INFO (0 , username )
4120+ ZEND_ARG_INFO (0 , password )
4121+ ZEND_END_ARG_INFO ()
4122+
4123+ ZEND_BEGIN_ARG_INFO (arginfo_configureSasl , 0 )
4124+ ZEND_ARG_INFO (0 , username )
4125+ ZEND_ARG_INFO (0 , password )
4126+ ZEND_END_ARG_INFO ()
4127+
40434128ZEND_BEGIN_ARG_INFO (arginfo_setOption , 0 )
40444129 ZEND_ARG_INFO (0 , option )
40454130 ZEND_ARG_INFO (0 , value )
@@ -4143,7 +4228,9 @@ static zend_function_entry memcached_class_methods[] = {
41434228 MEMC_ME (setOptions , arginfo_setOptions )
41444229 MEMC_ME (setBucket , arginfo_setBucket )
41454230#ifdef HAVE_MEMCACHED_SASL
4146- MEMC_ME (setSaslAuthData , arginfo_setSaslAuthData )
4231+ MEMC_ME (setSaslAuthData , arginfo_setSaslAuthData )
4232+ MEMC_ME (setSaslData , arginfo_setSaslData )
4233+ MEMC_ME (configureSasl , arginfo_configureSasl )
41474234#endif
41484235 MEMC_ME (isPersistent , arginfo_isPersistent )
41494236 MEMC_ME (isPristine , arginfo_isPristine )
0 commit comments