X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/a5dce40726757a6679b534a5f8456120ff974483..eda827f8b71b81a1170f5524c52bea7db249eb58:/src/redis.c?ds=sidebyside diff --git a/src/redis.c b/src/redis.c index 96786df9..5ddbb177 100644 --- a/src/redis.c +++ b/src/redis.c @@ -1096,13 +1096,15 @@ int processCommand(redisClient *c) { addReplyError(c,"The cluster is down. Check with CLUSTER INFO for more information"); return REDIS_OK; } else { - clusterNode *n = getNodeByQuery(c,cmd,c->argv,c->argc,&hashslot); + int ask; + clusterNode *n = getNodeByQuery(c,cmd,c->argv,c->argc,&hashslot,&ask); if (n == NULL) { - addReplyError(c,"Invalid cross-node request"); + addReplyError(c,"Multi keys request invalid in cluster"); return REDIS_OK; } else if (n != server.cluster.myself) { addReplySds(c,sdscatprintf(sdsempty(), - "-MOVED %d %s:%d\r\n",hashslot,n->ip,n->port)); + "-%s %d %s:%d\r\n", ask ? "ASK" : "MOVED", + hashslot,n->ip,n->port)); return REDIS_OK; } }