@@ -110,8 +110,8 @@ zend_function_entry redis_array_functions[] = {
110110 PHP_ME (RedisArray , del , arginfo_del , ZEND_ACC_PUBLIC )
111111 PHP_ME (RedisArray , discard , arginfo_void , ZEND_ACC_PUBLIC )
112112 PHP_ME (RedisArray , exec , arginfo_void , ZEND_ACC_PUBLIC )
113- PHP_ME (RedisArray , flushall , arginfo_void , ZEND_ACC_PUBLIC )
114- PHP_ME (RedisArray , flushdb , arginfo_void , ZEND_ACC_PUBLIC )
113+ PHP_ME (RedisArray , flushall , arginfo_flush , ZEND_ACC_PUBLIC )
114+ PHP_ME (RedisArray , flushdb , arginfo_flush , ZEND_ACC_PUBLIC )
115115 PHP_ME (RedisArray , getOption , arginfo_getopt , ZEND_ACC_PUBLIC )
116116 PHP_ME (RedisArray , info , arginfo_void , ZEND_ACC_PUBLIC )
117117 PHP_ME (RedisArray , keys , arginfo_keys , ZEND_ACC_PUBLIC )
@@ -646,10 +646,10 @@ multihost_distribute_call(RedisArray *ra, zval *return_value, zval *z_fun, int a
646646 }
647647}
648648
649- static void multihost_distribute (INTERNAL_FUNCTION_PARAMETERS , const char * method_name )
649+ static void
650+ multihost_distribute (INTERNAL_FUNCTION_PARAMETERS , const char * method_name )
650651{
651652 zval * object , z_fun ;
652- int i ;
653653 RedisArray * ra ;
654654
655655 if (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "O" ,
@@ -669,6 +669,31 @@ static void multihost_distribute(INTERNAL_FUNCTION_PARAMETERS, const char *metho
669669 zval_dtor (& z_fun );
670670}
671671
672+ static void
673+ multihost_distribute_flush (INTERNAL_FUNCTION_PARAMETERS , const char * method_name )
674+ {
675+ zval * object , z_fun , z_args [1 ];
676+ zend_bool async = 0 ;
677+ RedisArray * ra ;
678+
679+ if (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "O|b" ,
680+ & object , redis_array_ce , & async ) == FAILURE ) {
681+ RETURN_FALSE ;
682+ }
683+
684+ if ((ra = redis_array_get (object TSRMLS_CC )) == NULL ) {
685+ RETURN_FALSE ;
686+ }
687+
688+ /* prepare call */
689+ ZVAL_STRING (& z_fun , method_name );
690+ ZVAL_BOOL (& z_args [0 ], async );
691+
692+ multihost_distribute_call (ra , return_value , & z_fun , 1 , z_args TSRMLS_CC );
693+
694+ zval_dtor (& z_fun );
695+ }
696+
672697PHP_METHOD (RedisArray , info )
673698{
674699 multihost_distribute (INTERNAL_FUNCTION_PARAM_PASSTHRU , "INFO" );
@@ -681,12 +706,12 @@ PHP_METHOD(RedisArray, ping)
681706
682707PHP_METHOD (RedisArray , flushdb )
683708{
684- multihost_distribute (INTERNAL_FUNCTION_PARAM_PASSTHRU , "FLUSHDB" );
709+ multihost_distribute_flush (INTERNAL_FUNCTION_PARAM_PASSTHRU , "FLUSHDB" );
685710}
686711
687712PHP_METHOD (RedisArray , flushall )
688713{
689- multihost_distribute (INTERNAL_FUNCTION_PARAM_PASSTHRU , "FLUSHALL" );
714+ multihost_distribute_flush (INTERNAL_FUNCTION_PARAM_PASSTHRU , "FLUSHALL" );
690715}
691716
692717PHP_METHOD (RedisArray , save )
@@ -702,7 +727,7 @@ PHP_METHOD(RedisArray, bgsave)
702727
703728PHP_METHOD (RedisArray , keys )
704729{
705- zval * object , z_args [1 ], z_fun ;
730+ zval * object , z_fun , z_args [1 ];
706731 RedisArray * ra ;
707732 char * pattern ;
708733 strlen_t pattern_len ;
0 commit comments