@@ -70,6 +70,7 @@ static zend_function_entry redis_functions[] = {
7070 PHP_ME (Redis , type , NULL , ZEND_ACC_PUBLIC )
7171 PHP_ME (Redis , append , NULL , ZEND_ACC_PUBLIC )
7272 PHP_ME (Redis , getRange , NULL , ZEND_ACC_PUBLIC )
73+ PHP_ME (Redis , setRange , NULL , ZEND_ACC_PUBLIC )
7374 PHP_ME (Redis , strlen , NULL , ZEND_ACC_PUBLIC )
7475 PHP_ME (Redis , getKeys , NULL , ZEND_ACC_PUBLIC )
7576 PHP_ME (Redis , sort , NULL , ZEND_ACC_PUBLIC )
@@ -1127,6 +1128,32 @@ PHP_METHOD(Redis, getRange)
11271128 REDIS_PROCESS_RESPONSE (redis_string_response );
11281129}
11291130
1131+ PHP_METHOD (Redis , setRange )
1132+ {
1133+ zval * object ;
1134+ RedisSock * redis_sock ;
1135+ char * key = NULL , * val , * cmd ;
1136+ int key_len , val_len , cmd_len ;
1137+ long offset ;
1138+
1139+ if (zend_parse_method_parameters (ZEND_NUM_ARGS () TSRMLS_CC , getThis (), "Osls" ,
1140+ & object , redis_ce , & key , & key_len ,
1141+ & offset , & val , & val_len ) == FAILURE ) {
1142+ RETURN_FALSE ;
1143+ }
1144+
1145+ if (redis_sock_get (object , & redis_sock TSRMLS_CC ) < 0 ) {
1146+ RETURN_FALSE ;
1147+ }
1148+
1149+ cmd_len = redis_cmd_format_static (& cmd , "SETRANGE" , "sds" , key , key_len , (int )offset , val , val_len );
1150+ REDIS_PROCESS_REQUEST (redis_sock , cmd , cmd_len );
1151+ IF_ATOMIC () {
1152+ redis_long_response (INTERNAL_FUNCTION_PARAM_PASSTHRU , redis_sock , NULL , NULL );
1153+ }
1154+ REDIS_PROCESS_RESPONSE (redis_long_response );
1155+ }
1156+
11301157PHP_METHOD (Redis , strlen )
11311158{
11321159 zval * object ;
0 commit comments