mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-23 08:38:27 -05:00
233abbbe03
* Make it clear that current_client is the root client that was called by external connection * add executing_client which is the client that runs the current command (can be a module or a script) * Remove script_caller that was used for commands that have CLIENT_SCRIPT to get the client that called the script. in most cases, that's the current_client, and in others (when being called from a module), it could be an intermediate client when we actually want the original one used by the external connection. bugfixes: * RM_Call with C flag should log ACL errors with the requested user rather than the one used by the original client, this also solves a crash when RM_Call is used with C flag from a detached thread safe context. * addACLLogEntry would have logged info about the script_caller, but in case the script was issued by a module command we actually want the current_client. the exception is when RM_Call is called from a timer event, in which case we don't have a current_client. behavior changes: * client side tracking for scripts now tracks the keys that are read by the script instead of the keys that are declared by the caller for EVAL other changes: * Log both current_client and executing_client in the crash log. * remove prepareLuaClient and resetLuaClient, being dead code that was forgotten. * remove scriptTimeSnapshot and snapshot_time and instead add cmd_time_snapshot that serves all commands and is reset only when execution nesting starts. * remove code to propagate CLIENT_FORCE_REPL from the executed command to the script caller since scripts aren't propagated anyway these days and anyway this flag wouldn't have had an effect since CLIENT_PREVENT_PROP is added by scriptResetRun. * fix a module GIL violation issue in afterSleep that was introduced in #10300 (unreleased) |
||
---|---|---|
.. | ||
aclcheck.c | ||
auth.c | ||
basics.c | ||
blockedclient.c | ||
blockonbackground.c | ||
blockonkeys.c | ||
cmdintrospection.c | ||
commandfilter.c | ||
datatype2.c | ||
datatype.c | ||
defragtest.c | ||
eventloop.c | ||
fork.c | ||
getchannels.c | ||
getkeys.c | ||
hash.c | ||
hooks.c | ||
infotest.c | ||
keyspace_events.c | ||
keyspecs.c | ||
list.c | ||
Makefile | ||
mallocsize.c | ||
misc.c | ||
moduleconfigs.c | ||
moduleconfigstwo.c | ||
postnotifications.c | ||
propagate.c | ||
publish.c | ||
reply.c | ||
scan.c | ||
stream.c | ||
subcommands.c | ||
test_lazyfree.c | ||
testrdb.c | ||
timer.c | ||
usercall.c | ||
zset.c |