summaryrefslogtreecommitdiff
path: root/src/scripting.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/scripting.c')
-rw-r--r--src/scripting.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/scripting.c b/src/scripting.c
index 3ae25152f..639fd1f62 100644
--- a/src/scripting.c
+++ b/src/scripting.c
@@ -1164,6 +1164,19 @@ void evalGenericCommand(client *c, int evalsha) {
lua_pop(lua,1); /* Remove the error handler. */
}
+ /* If we are using single commands replication, emit EXEC if there
+ * was at least a write. */
+ if (server.lua_replicate_commands) {
+ preventCommandPropagation(c);
+ if (server.lua_multi_emitted) {
+ robj *propargv[1];
+ propargv[0] = createStringObject("EXEC",4);
+ alsoPropagate(server.execCommand,c->db->id,propargv,1,
+ PROPAGATE_AOF|PROPAGATE_REPL);
+ decrRefCount(propargv[0]);
+ }
+ }
+
/* EVALSHA should be propagated to Slave and AOF file as full EVAL, unless
* we are sure that the script was already in the context of all the
* attached slaves *and* the current AOF file if enabled.
@@ -1186,22 +1199,10 @@ void evalGenericCommand(client *c, int evalsha) {
rewriteClientCommandArgument(c,0,
resetRefCount(createStringObject("EVAL",4)));
rewriteClientCommandArgument(c,1,script);
+ printf("forceCommandPropagation\n");
forceCommandPropagation(c,PROPAGATE_REPL|PROPAGATE_AOF);
}
}
-
- /* If we are using single commands replication, emit EXEC if there
- * was at least a write. */
- if (server.lua_replicate_commands) {
- preventCommandPropagation(c);
- if (server.lua_multi_emitted) {
- robj *propargv[1];
- propargv[0] = createStringObject("EXEC",4);
- alsoPropagate(server.execCommand,c->db->id,propargv,1,
- PROPAGATE_AOF|PROPAGATE_REPL);
- decrRefCount(propargv[0]);
- }
- }
}
void evalCommand(client *c) {