From 89f828f0532aa718998e948e1b3b2277d986d967 Mon Sep 17 00:00:00 2001 From: Israel Lot Date: Tue, 12 Mar 2019 18:27:10 -0500 Subject: [PATCH] rewrite BRPOPLPUSH as RPOPLPUSH to propagate --- src/server.c | 1 + src/server.h | 2 +- src/t_list.c | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server.c b/src/server.c index 0b913c1b..503e04fb 100644 --- a/src/server.c +++ b/src/server.c @@ -1376,6 +1376,7 @@ void createSharedObjects(void) { shared.rpop = createStringObject("RPOP", 4); shared.lpop = createStringObject("LPOP", 4); shared.lpush = createStringObject("LPUSH", 5); + shared.rpoplpush = createStringObject("RPOPLPUSH",9); for (j = 0; j < OBJ_SHARED_INTEGERS; j++) { shared.integers[j] = makeObjectShared(createObject(OBJ_STRING, (void*) (PORT_LONG) j)); diff --git a/src/server.h b/src/server.h index 1a68a460..ba069556 100644 --- a/src/server.h +++ b/src/server.h @@ -764,7 +764,7 @@ struct sharedObjectsStruct { *masterdownerr, *roslaveerr, *execaborterr, *noautherr, *noreplicaserr, *busykeyerr, *oomerr, *plus, *messagebulk, *pmessagebulk, *subscribebulk, *unsubscribebulk, *psubscribebulk, *punsubscribebulk, *del, *unlink, - *rpop, *lpop, *lpush, *emptyscan, + *rpop, *lpop, *lpush, *rpoplpush, *emptyscan, *select[PROTO_SHARED_SELECT_CMDS], *integers[OBJ_SHARED_INTEGERS], *mbulkhdr[OBJ_SHARED_BULKHDR_LEN], /* "*\r\n" */ diff --git a/src/t_list.c b/src/t_list.c index 1b281949..ca809550 100644 --- a/src/t_list.c +++ b/src/t_list.c @@ -596,6 +596,9 @@ void rpoplpushCommand(client *c) { signalModifiedKey(c->db,touchedkey); decrRefCount(touchedkey); server.dirty++; + if (c->cmd->proc == brpoplpushCommand) { + rewriteClientCommandVector(c,3,shared.rpoplpush,c->argv[1],c->argv[2]); + } } }