From 22bda56af3db00d9b4fdd1e43907bfcafa81f73c Mon Sep 17 00:00:00 2001 From: Evan Typanski Date: Mon, 28 Oct 2024 16:31:49 -0400 Subject: [PATCH] spicy-redis: Add some script logic for logging Also "rebrands" from RESP to Redis. --- scripts/base/protocols/redis/main.zeek | 179 ++++++++++++------ src/analyzer/protocol/redis/CMakeLists.txt | 4 +- src/analyzer/protocol/redis/redis.spicy | 2 + src/analyzer/protocol/redis/resp.spicy | 4 - src/analyzer/protocol/redis/zeek_redis.spicy | 1 - .../redis.log | 16 ++ .../redis.log | 18 ++ .../redis.log | 17 ++ .../{resp.log => redis.log} | 2 +- .../{resp.log => redis.log} | 2 +- .../redis.log | 33 ++++ .../weird.log | 11 ++ .../{resp.log => redis.log} | 2 +- .../{resp.log => redis.log} | 2 +- .../{resp.log => redis.log} | 2 +- .../{resp.log => redis.log} | 2 +- .../{resp.log => redis.log} | 2 +- .../{resp.log => redis.log} | 2 +- .../Traces/redis/client-skip-while-off.trace | Bin 0 -> 11967 bytes .../Traces/redis/excessive-pipelining.trace | Bin 0 -> 7545 bytes .../Traces/redis/reply-off-on-2conn.trace | Bin 0 -> 8842 bytes testing/btest/Traces/redis/reply-off-on.trace | Bin 0 -> 1874 bytes .../redis/client-reply-off-2conn.zeek | 5 + .../protocols/redis/client-reply-off.zeek | 5 + .../redis/client-skip-while-off.zeek | 5 + .../base/protocols/redis/django-cloud.zeek | 2 +- .../scripts/base/protocols/redis/django.zeek | 2 +- .../protocols/redis/excessive-pipelining.zeek | 8 + .../protocols/redis/pipeline-with-quotes.zeek | 2 +- .../redis/pipelined-with-commands.zeek | 2 +- .../base/protocols/redis/pipelined.zeek | 2 +- .../scripts/base/protocols/redis/pubsub.zeek | 2 +- .../base/protocols/redis/standalone.spicy | 10 +- .../scripts/base/protocols/redis/stream.zeek | 2 +- .../scripts/base/protocols/redis/tls.zeek | 2 +- .../scripts/base/protocols/redis/trace.zeek | 2 +- 36 files changed, 266 insertions(+), 86 deletions(-) create mode 100644 testing/btest/Baseline/scripts.base.protocols.redis.client-reply-off-2conn/redis.log create mode 100644 testing/btest/Baseline/scripts.base.protocols.redis.client-reply-off/redis.log create mode 100644 testing/btest/Baseline/scripts.base.protocols.redis.client-skip-while-off/redis.log rename testing/btest/Baseline/scripts.base.protocols.redis.django-cloud/{resp.log => redis.log} (99%) rename testing/btest/Baseline/scripts.base.protocols.redis.django/{resp.log => redis.log} (99%) create mode 100644 testing/btest/Baseline/scripts.base.protocols.redis.excessive-pipelining/redis.log create mode 100644 testing/btest/Baseline/scripts.base.protocols.redis.excessive-pipelining/weird.log rename testing/btest/Baseline/scripts.base.protocols.redis.pipeline-with-quotes/{resp.log => redis.log} (99%) rename testing/btest/Baseline/scripts.base.protocols.redis.pipelined-with-commands/{resp.log => redis.log} (98%) rename testing/btest/Baseline/scripts.base.protocols.redis.pipelined/{resp.log => redis.log} (98%) rename testing/btest/Baseline/scripts.base.protocols.redis.pubsub/{resp.log => redis.log} (98%) rename testing/btest/Baseline/scripts.base.protocols.redis.stream/{resp.log => redis.log} (98%) rename testing/btest/Baseline/scripts.base.protocols.redis.trace/{resp.log => redis.log} (98%) create mode 100644 testing/btest/Traces/redis/client-skip-while-off.trace create mode 100644 testing/btest/Traces/redis/excessive-pipelining.trace create mode 100644 testing/btest/Traces/redis/reply-off-on-2conn.trace create mode 100644 testing/btest/Traces/redis/reply-off-on.trace create mode 100644 testing/btest/scripts/base/protocols/redis/client-reply-off-2conn.zeek create mode 100644 testing/btest/scripts/base/protocols/redis/client-reply-off.zeek create mode 100644 testing/btest/scripts/base/protocols/redis/client-skip-while-off.zeek create mode 100644 testing/btest/scripts/base/protocols/redis/excessive-pipelining.zeek diff --git a/scripts/base/protocols/redis/main.zeek b/scripts/base/protocols/redis/main.zeek index e43b4ce322..4d11aede9f 100644 --- a/scripts/base/protocols/redis/main.zeek +++ b/scripts/base/protocols/redis/main.zeek @@ -76,36 +76,30 @@ export { current_request: count &default=0; ## Current response in the pending queue. current_response: count &default=0; + ## Ranges where we do not expect a response + ## Each range is one or two elements, one meaning it's unbounded, two meaning + ## it begins at one and ends at the second. + no_response_ranges: vector of vector of count; }; + # Redis specifically mentions 10k commands as a good pipelining threshold, so + # we'll piggyback on that. + option max_pending_requests = 10000; } redef record connection += { - # TODO: Rename - redis_resp: Info &optional; + redis: Info &optional; redis_state: State &optional; }; redef likely_server_ports += { ports }; -# TODO: If you're going to send file data into the file analysis framework, you -# need to provide a file handle function. This is a simple example that's -# sufficient if the protocol only transfers a single, complete file at a time. -# -# function get_file_handle(c: connection, is_orig: bool): string -# { -# return cat(Analyzer::ANALYZER_SPICY_REDIS, c$start_time, c$id, is_orig); -# } - event zeek_init() &priority=5 { - Log::create_stream(Redis::LOG, [ $columns=Info, $ev=log_resp, $path="resp", + Log::create_stream(Redis::LOG, [ $columns=Info, $ev=log_resp, $path="redis", $policy=log_policy ]); Analyzer::register_for_ports(Analyzer::ANALYZER_SPICY_REDIS, ports); - - # TODO: To activate the file handle function above, uncomment this. - # Files::register_protocol(Analyzer::ANALYZER_SPICY_REDIS, [$get_file_handle=Redis::get_file_handle ]); } function new_redis_session(c: connection): Info @@ -113,66 +107,140 @@ function new_redis_session(c: connection): Info return Info($ts=network_time(), $uid=c$uid, $id=c$id); } +function make_new_state(c: connection) + { + local s: State; + c$redis_state = s; + Conn::register_removal_hook(c, finalize_redis); + } + function set_state(c: connection, is_orig: bool) { - if ( ! c?$redis_state ) - { - local s: State; - c$redis_state = s; - Conn::register_removal_hook(c, finalize_redis); - } + if ( ! c?$redis_state ) make_new_state(c); - if ( is_orig ) - { - if ( c$redis_state$current_request !in c$redis_state$pending ) - c$redis_state$pending[c$redis_state$current_request] = new_redis_session(c); + local current: count; + if ( is_orig ) current = c$redis_state$current_request; + else current = c$redis_state$current_response; - c$redis_resp = c$redis_state$pending[c$redis_state$current_request]; - } - else - { - if ( c$redis_state$current_response !in c$redis_state$pending ) - c$redis_state$pending[c$redis_state$current_response] = new_redis_session(c); + if ( current !in c$redis_state$pending ) + c$redis_state$pending[current] = new_redis_session(c); - c$redis_resp = c$redis_state$pending[c$redis_state$current_response]; - } + c$redis = c$redis_state$pending[current]; + } + +# Returns true if the last interval exists and is closed +function is_last_interval_closed(c: connection): bool + { + return |c$redis_state$no_response_ranges| == 0 || |c$redis_state$no_response_ranges[|c$redis_state$no_response_ranges| - 1]| != 1; } event Redis::command(c: connection, is_orig: bool, command: Command) { - #hook set_session(c, command); + if ( ! c?$redis_state ) make_new_state(c); - # TODO: We need to care about whether the reply was suppressed with - # CLIENT REPLY [OFF|SKIP] - #local info = c$redis_resp; - #emit_log(c); - # TODO refactor this since it's used a couple times - if ( ! c?$redis_state ) + if ( max_pending_requests > 0 && |c$redis_state$pending| > max_pending_requests ) { - local s: State; - c$redis_state = s; - Conn::register_removal_hook(c, finalize_redis); + Reporter::conn_weird("Redis_excessive_pipelining", c); + + # Just spit out what we have + while ( c$redis_state$current_response < c$redis_state$current_request ) + { + local cr = c$redis_state$current_response; + if ( cr in c$redis_state$pending ) + { + Log::write(Redis::LOG, c$redis_state$pending[cr]); + delete c$redis_state$pending[cr]; + } + ++c$redis_state$current_response; + } } + ++c$redis_state$current_request; + if ( command?$known && command$known == KnownCommand_CLIENT ) + { + # All 3 CLIENT commands we care about have 3 elements + if ( |command$raw| == 3 ) + { + if ( to_lower(command$raw[2]) == "on" ) + { + # If the last range is open, close it here. Otherwise, noop + if ( |c$redis_state$no_response_ranges| > 0 ) + { + local range = c$redis_state$no_response_ranges[|c$redis_state$no_response_ranges| - 1]; + if ( |range| == 1 ) + { + range += c$redis_state$current_request; + } + } + } + if ( to_lower(command$raw[2]) == "off" ) + { + # Only add a new interval if the last one is closed + if ( is_last_interval_closed(c) ) + { + c$redis_state$no_response_ranges += vector(c$redis_state$current_request); + } + } + if ( to_lower(command$raw[2]) == "skip" ) + { + if ( is_last_interval_closed(c) ) + # It skips this one and the next one + c$redis_state$no_response_ranges += vector(c$redis_state$current_request, c$redis_state$current_request + 2); + } + } + } set_state(c, T); - c$redis_resp$cmd = command; + c$redis$cmd = command; + } + +## Gets the next response number based on a connection. This is necessary since +## some responses may have been skipped. +function response_num(c: connection): count + { + local resp_num = c$redis_state$current_response + 1; + for ( i in c$redis_state$no_response_ranges ) + { + local range = c$redis_state$no_response_ranges[i]; + assert |range| >= 1; + if ( |range| == 1 && resp_num > range[0] ) + {} # TODO: This is necessary if not using pipelining + if ( |range| == 2 && resp_num >= range[0] && resp_num < range[1] ) + return range[1]; + } + + # Default: no disable/enable shenanigans + return resp_num; } event Redis::server_data(c: connection, is_orig: bool, data: ServerData) { - if ( ! c?$redis_state ) - { - local s: State; - c$redis_state = s; - Conn::register_removal_hook(c, finalize_redis); - } - ++c$redis_state$current_response; + if ( ! c?$redis_state ) make_new_state(c); + + local previous_response_num = c$redis_state$current_response; + c$redis_state$current_response = response_num(c); set_state(c, F); - c$redis_resp$response = data; - # TODO: Do stuff with pending so that finalize_redis and pipelining work - Log::write(Redis::LOG, c$redis_resp); + c$redis$response = data; + # Log each of the pending responses to this point - we will not go + # back. + while ( previous_response_num < c$redis_state$current_response ) + { + if ( previous_response_num == 0 ) + { + ++previous_response_num; + next; + } + + if ( previous_response_num in c$redis_state$pending ) + { + Log::write(Redis::LOG, c$redis_state$pending[previous_response_num]); + delete c$redis_state$pending[previous_response_num]; + } + previous_response_num += 1; + } + # Log this one + Log::write(Redis::LOG, c$redis); delete c$redis_state$pending[c$redis_state$current_response]; } @@ -185,10 +253,7 @@ hook finalize_redis(c: connection) { # We don't use pending elements at index 0. if ( r == 0 ) next; - #Log::write(HTTP::LOG, info); Log::write(Redis::LOG, info); - #delete c$redis_resp; } } } - diff --git a/src/analyzer/protocol/redis/CMakeLists.txt b/src/analyzer/protocol/redis/CMakeLists.txt index 0cff4d5709..6f28f11baf 100644 --- a/src/analyzer/protocol/redis/CMakeLists.txt +++ b/src/analyzer/protocol/redis/CMakeLists.txt @@ -1,6 +1,6 @@ spicy_add_analyzer( - NAME RESP - PACKAGE_NAME spicy-resp + NAME Redis + PACKAGE_NAME spicy-redis SOURCES resp.spicy resp.evt redis.spicy zeek_redis.spicy SCRIPTS __load__.zeek main.zeek ) diff --git a/src/analyzer/protocol/redis/redis.spicy b/src/analyzer/protocol/redis/redis.spicy index 66b99b773c..b782380cd1 100644 --- a/src/analyzer/protocol/redis/redis.spicy +++ b/src/analyzer/protocol/redis/redis.spicy @@ -14,6 +14,7 @@ public type KnownCommand = enum { BLMPOP, BLPOP, BRPOP, + CLIENT, COPY, DECR, DECRBY, @@ -241,6 +242,7 @@ function command_from(cmd_bytes: bytes): optional { case b"blmpop": cmd = KnownCommand::BLMPOP; case b"blpop": cmd = KnownCommand::BLPOP; case b"brpop": cmd = KnownCommand::BRPOP; + case b"client": cmd = KnownCommand::CLIENT; case b"copy": cmd = KnownCommand::COPY; case b"decr": cmd = KnownCommand::DECR; case b"decrby": cmd = KnownCommand::DECRBY; diff --git a/src/analyzer/protocol/redis/resp.spicy b/src/analyzer/protocol/redis/resp.spicy index 4588393a3e..7302f4103f 100644 --- a/src/analyzer/protocol/redis/resp.spicy +++ b/src/analyzer/protocol/redis/resp.spicy @@ -8,10 +8,6 @@ import spicy; # exhausting main memory. const MAX_SIZE = 1024 * 1024; -public type Messages = unit { - : (Data &synchronize)[]; -}; - public type ClientMessages = unit { : (ClientData &synchronize)[]; }; diff --git a/src/analyzer/protocol/redis/zeek_redis.spicy b/src/analyzer/protocol/redis/zeek_redis.spicy index a2288c5f1c..5b30717525 100644 --- a/src/analyzer/protocol/redis/zeek_redis.spicy +++ b/src/analyzer/protocol/redis/zeek_redis.spicy @@ -11,7 +11,6 @@ public type ZeekServerData = struct { public function make_server_data(data: RESP::ServerData): ZeekServerData { local res: ZeekServerData = [$err = False, $data = Null]; - # TODO: Redo this so it's not ugly and supports more. maybe if (data.data?.simple_error) { res.err = True; res.data = data.data.simple_error.content; diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.client-reply-off-2conn/redis.log b/testing/btest/Baseline/scripts.base.protocols.redis.client-reply-off-2conn/redis.log new file mode 100644 index 0000000000..859d98f6ad --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.redis.client-reply-off-2conn/redis.log @@ -0,0 +1,16 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +#separator \x09 +#set_separator , +#empty_field (empty) +#unset_field - +#path redis +#open XXXX-XX-XX-XX-XX-XX +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p cmd.command cmd.key cmd.value response.err response.data +#types time string addr port addr port string string string bool string +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 61211 ::1 6379 PING - - F PONG +XXXXXXXXXX.XXXXXX CtPZjS20MLrsMUOJi2 ::1 61212 ::1 6379 PING - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 61211 ::1 6379 CLIENT - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 61211 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX CtPZjS20MLrsMUOJi2 ::1 61212 ::1 6379 CLIENT - - - - +XXXXXXXXXX.XXXXXX CtPZjS20MLrsMUOJi2 ::1 61212 ::1 6379 PING - - - - +#close XXXX-XX-XX-XX-XX-XX diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.client-reply-off/redis.log b/testing/btest/Baseline/scripts.base.protocols.redis.client-reply-off/redis.log new file mode 100644 index 0000000000..23edcacbc1 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.redis.client-reply-off/redis.log @@ -0,0 +1,18 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +#separator \x09 +#set_separator , +#empty_field (empty) +#unset_field - +#path redis +#open XXXX-XX-XX-XX-XX-XX +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p cmd.command cmd.key cmd.value response.err response.data +#types time string addr port addr port string string string bool string +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 60761 ::1 6379 PING - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 60761 ::1 6379 CLIENT - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 60761 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 60761 ::1 6379 CLIENT - - F OK +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 60761 ::1 6379 PING - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 60761 ::1 6379 CLIENT - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 60761 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 60761 ::1 6379 PING - - F PONG +#close XXXX-XX-XX-XX-XX-XX diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.client-skip-while-off/redis.log b/testing/btest/Baseline/scripts.base.protocols.redis.client-skip-while-off/redis.log new file mode 100644 index 0000000000..248e739b85 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.redis.client-skip-while-off/redis.log @@ -0,0 +1,17 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +#separator \x09 +#set_separator , +#empty_field (empty) +#unset_field - +#path redis +#open XXXX-XX-XX-XX-XX-XX +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p cmd.command cmd.key cmd.value response.err response.data +#types time string addr port addr port string string string bool string +XXXXXXXXXX.XXXXXX C4J4Th3PJpwUYZZ6gc ::1 56348 ::1 6379 PING - - F PONG +XXXXXXXXXX.XXXXXX C4J4Th3PJpwUYZZ6gc ::1 56348 ::1 6379 CLIENT - - - - +XXXXXXXXXX.XXXXXX C4J4Th3PJpwUYZZ6gc ::1 56348 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX C4J4Th3PJpwUYZZ6gc ::1 56348 ::1 6379 CLIENT - - - - +XXXXXXXXXX.XXXXXX C4J4Th3PJpwUYZZ6gc ::1 56348 ::1 6379 CLIENT - - F OK +XXXXXXXXXX.XXXXXX C4J4Th3PJpwUYZZ6gc ::1 56348 ::1 6379 PING - - F PONG +XXXXXXXXXX.XXXXXX C4J4Th3PJpwUYZZ6gc ::1 56348 ::1 6379 PING - - F PONG +#close XXXX-XX-XX-XX-XX-XX diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.django-cloud/resp.log b/testing/btest/Baseline/scripts.base.protocols.redis.django-cloud/redis.log similarity index 99% rename from testing/btest/Baseline/scripts.base.protocols.redis.django-cloud/resp.log rename to testing/btest/Baseline/scripts.base.protocols.redis.django-cloud/redis.log index 9a79080e56..d6bfebaf43 100644 --- a/testing/btest/Baseline/scripts.base.protocols.redis.django-cloud/resp.log +++ b/testing/btest/Baseline/scripts.base.protocols.redis.django-cloud/redis.log @@ -3,7 +3,7 @@ #set_separator , #empty_field (empty) #unset_field - -#path resp +#path redis #open XXXX-XX-XX-XX-XX-XX #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p cmd.command cmd.key cmd.value response.err response.data #types time string addr port addr port string string string bool string diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.django/resp.log b/testing/btest/Baseline/scripts.base.protocols.redis.django/redis.log similarity index 99% rename from testing/btest/Baseline/scripts.base.protocols.redis.django/resp.log rename to testing/btest/Baseline/scripts.base.protocols.redis.django/redis.log index 7d82bff464..a05f819818 100644 --- a/testing/btest/Baseline/scripts.base.protocols.redis.django/resp.log +++ b/testing/btest/Baseline/scripts.base.protocols.redis.django/redis.log @@ -3,7 +3,7 @@ #set_separator , #empty_field (empty) #unset_field - -#path resp +#path redis #open XXXX-XX-XX-XX-XX-XX #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p cmd.command cmd.key cmd.value response.err response.data #types time string addr port addr port string string string bool string diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.excessive-pipelining/redis.log b/testing/btest/Baseline/scripts.base.protocols.redis.excessive-pipelining/redis.log new file mode 100644 index 0000000000..e5c9e70dbb --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.redis.excessive-pipelining/redis.log @@ -0,0 +1,33 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +#separator \x09 +#set_separator , +#empty_field (empty) +#unset_field - +#path redis +#open XXXX-XX-XX-XX-XX-XX +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p cmd.command cmd.key cmd.value response.err response.data +#types time string addr port addr port string string string bool string +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 PING - - - - +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 PING - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 - - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 - - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 - - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 - - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 - - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 - - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 - - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 - - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 - - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 - - - F PONG +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 - - - F PONG +#close XXXX-XX-XX-XX-XX-XX diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.excessive-pipelining/weird.log b/testing/btest/Baseline/scripts.base.protocols.redis.excessive-pipelining/weird.log new file mode 100644 index 0000000000..df63cb7b93 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.redis.excessive-pipelining/weird.log @@ -0,0 +1,11 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +#separator \x09 +#set_separator , +#empty_field (empty) +#unset_field - +#path weird +#open XXXX-XX-XX-XX-XX-XX +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p name addl notice peer source +#types time string addr port addr port string string bool string string +XXXXXXXXXX.XXXXXX ClEkJM2Vm5giqnMf4h ::1 57156 ::1 6379 Redis_excessive_pipelining - F zeek - +#close XXXX-XX-XX-XX-XX-XX diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.pipeline-with-quotes/resp.log b/testing/btest/Baseline/scripts.base.protocols.redis.pipeline-with-quotes/redis.log similarity index 99% rename from testing/btest/Baseline/scripts.base.protocols.redis.pipeline-with-quotes/resp.log rename to testing/btest/Baseline/scripts.base.protocols.redis.pipeline-with-quotes/redis.log index a600907625..46356a134d 100644 --- a/testing/btest/Baseline/scripts.base.protocols.redis.pipeline-with-quotes/resp.log +++ b/testing/btest/Baseline/scripts.base.protocols.redis.pipeline-with-quotes/redis.log @@ -3,7 +3,7 @@ #set_separator , #empty_field (empty) #unset_field - -#path resp +#path redis #open XXXX-XX-XX-XX-XX-XX #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p cmd.command cmd.key cmd.value response.err response.data #types time string addr port addr port string string string bool string diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.pipelined-with-commands/resp.log b/testing/btest/Baseline/scripts.base.protocols.redis.pipelined-with-commands/redis.log similarity index 98% rename from testing/btest/Baseline/scripts.base.protocols.redis.pipelined-with-commands/resp.log rename to testing/btest/Baseline/scripts.base.protocols.redis.pipelined-with-commands/redis.log index 31f207bf96..4228f180da 100644 --- a/testing/btest/Baseline/scripts.base.protocols.redis.pipelined-with-commands/resp.log +++ b/testing/btest/Baseline/scripts.base.protocols.redis.pipelined-with-commands/redis.log @@ -3,7 +3,7 @@ #set_separator , #empty_field (empty) #unset_field - -#path resp +#path redis #open XXXX-XX-XX-XX-XX-XX #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p cmd.command cmd.key cmd.value response.err response.data #types time string addr port addr port string string string bool string diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.pipelined/resp.log b/testing/btest/Baseline/scripts.base.protocols.redis.pipelined/redis.log similarity index 98% rename from testing/btest/Baseline/scripts.base.protocols.redis.pipelined/resp.log rename to testing/btest/Baseline/scripts.base.protocols.redis.pipelined/redis.log index 59744f461b..311117484f 100644 --- a/testing/btest/Baseline/scripts.base.protocols.redis.pipelined/resp.log +++ b/testing/btest/Baseline/scripts.base.protocols.redis.pipelined/redis.log @@ -3,7 +3,7 @@ #set_separator , #empty_field (empty) #unset_field - -#path resp +#path redis #open XXXX-XX-XX-XX-XX-XX #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p cmd.command cmd.key cmd.value response.err response.data #types time string addr port addr port string string string bool string diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.pubsub/resp.log b/testing/btest/Baseline/scripts.base.protocols.redis.pubsub/redis.log similarity index 98% rename from testing/btest/Baseline/scripts.base.protocols.redis.pubsub/resp.log rename to testing/btest/Baseline/scripts.base.protocols.redis.pubsub/redis.log index b242952a83..80ca87d962 100644 --- a/testing/btest/Baseline/scripts.base.protocols.redis.pubsub/resp.log +++ b/testing/btest/Baseline/scripts.base.protocols.redis.pubsub/redis.log @@ -3,7 +3,7 @@ #set_separator , #empty_field (empty) #unset_field - -#path resp +#path redis #open XXXX-XX-XX-XX-XX-XX #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p cmd.command cmd.key cmd.value response.err response.data #types time string addr port addr port string string string bool string diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.stream/resp.log b/testing/btest/Baseline/scripts.base.protocols.redis.stream/redis.log similarity index 98% rename from testing/btest/Baseline/scripts.base.protocols.redis.stream/resp.log rename to testing/btest/Baseline/scripts.base.protocols.redis.stream/redis.log index 2afa293a3b..3b47ddf394 100644 --- a/testing/btest/Baseline/scripts.base.protocols.redis.stream/resp.log +++ b/testing/btest/Baseline/scripts.base.protocols.redis.stream/redis.log @@ -3,7 +3,7 @@ #set_separator , #empty_field (empty) #unset_field - -#path resp +#path redis #open XXXX-XX-XX-XX-XX-XX #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p cmd.command cmd.key cmd.value response.err response.data #types time string addr port addr port string string string bool string diff --git a/testing/btest/Baseline/scripts.base.protocols.redis.trace/resp.log b/testing/btest/Baseline/scripts.base.protocols.redis.trace/redis.log similarity index 98% rename from testing/btest/Baseline/scripts.base.protocols.redis.trace/resp.log rename to testing/btest/Baseline/scripts.base.protocols.redis.trace/redis.log index 14300550eb..4c929cacd2 100644 --- a/testing/btest/Baseline/scripts.base.protocols.redis.trace/resp.log +++ b/testing/btest/Baseline/scripts.base.protocols.redis.trace/redis.log @@ -3,7 +3,7 @@ #set_separator , #empty_field (empty) #unset_field - -#path resp +#path redis #open XXXX-XX-XX-XX-XX-XX #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p cmd.command cmd.key cmd.value response.err response.data #types time string addr port addr port string string string bool string diff --git a/testing/btest/Traces/redis/client-skip-while-off.trace b/testing/btest/Traces/redis/client-skip-while-off.trace new file mode 100644 index 0000000000000000000000000000000000000000..ef40431fef4b9bd54fd0d1e0a4c7dd8677425a4d GIT binary patch literal 11967 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 literal 0 HcmV?d00001 diff --git a/testing/btest/Traces/redis/excessive-pipelining.trace b/testing/btest/Traces/redis/excessive-pipelining.trace new file mode 100644 index 0000000000000000000000000000000000000000..04fcfd76af701eb0824003f7249e4fb4368c191a GIT binary patch literal 7545 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 EAHF;JX#fBK literal 0 HcmV?d00001 diff --git a/testing/btest/Traces/redis/reply-off-on-2conn.trace b/testing/btest/Traces/redis/reply-off-on-2conn.trace new file mode 100644 index 0000000000000000000000000000000000000000..0703e5f1c50ac3e40bd40f24955962ab8ac388b0 GIT binary patch literal 8842 zcmeHMeQX=$8GoI)v2pAsrfCvL1i@0j?bdc2$I0-Tq;Vipl16PQLyFD5lWAV0F zJSO$A5p8m7f=;AXbc<|M(!O-DiB4M3-a>KM3=8)-wzLc;SXkwDI_^ymy9W9@Vmo00 zOyi(6w51ysd6c(q7Q}|ld-pmWEh7J*#BSs7+0vnbx6sTEHXZ>1+gr7{RuNFP_R%8p zLIw6(Y!EJA;6ybx#b zn-PRVJ~dTYd@KN&2cOER>8eMhkBWiU(8SH(=5xMpEseZ1KJ~z-1Nb7P^r^{PpCRC7 z9WJf>kf^poY~+DDG-qR@4tZd!I#^K$J+>x0Vs`@ek3nXnl-xg@quiAscbnp4P44dY zuDfiOO&#r_u5C42Lfswr)ogBSvssjRD?vnH6#Jgjc#{Tf$ z%Fj`d`$3TJs;<*zr6VW=2onN@{;XA3`?;l0qcDhbH&p5TI^N{|Z+AQ{iIsY>w7-=EVnUUv<;im36>tJXgot{r<`0$O}6j@-e(&%j|flPd)`u(PtcZ zIrRyN*vJF1mt|w44tZd!Iyg}WJ+>x0VwVGUM#n?B^XYhcxpf^+ll%G|4>_;Aaji~Y zORHYM&ggh(vHUt7dL1oxTHoVzC#UIQTe{K#x4Qy)l;%kOG4%iQ^Fp){<(MU=K zHYA~+l39C)8;|E75HeGCvFxH@oc=uqJ6SIOk^(Mlq9Sq0B}I(XKtx!=@eIuoVkHJM zMaM*e7ZXM*!3fD}oHJ2kgp0*@B;EK{Owmz+-^q&jU7j&gQh!(*icxh~MA4C$q;4vr z1|)`#D~n1fA;P&Lbb^)=B1`uxvt~*VWAOwlDz7GGhors51Ytl*aS;+K?1^Eolb`Pr4vgeX=M&q87G1w!UH=-mKD#?V)`J=T$QsCSV=BYP zkFm0w7pwNXui9JJT)#V4A29AHdFRYCIn#Ok39JB%r?3TZ3bU-ezMqG_?3}%NA#yUe zpZjlG^z*_vZ9jj>Og2DkMp92<>;Cc_*64@JGj327^a?_LhHk}W#u6&?4j|u_bk`_C z?4zWrGPIM9|6}-oRMSZ_Ej+)Yrd#A|RtMH3t=IfyrQn7VV^~)#9_8Ww1=j)@%wg;2 zBP0pbFO@?y z{gd%6`?3N1HmLi|Fg7+3V#dqL@W0Ju6W}AIPB#_l(~SzB`?6B;yL%T+igA)*(pxT@ z$x$#Tk{XdmehJ6GS^L1MjC;YpV{JO~70t_tOnOPF8aF-VqR`SDY-n!u`5S%BjUi8? zx3;m>Zx@B;)?k$NG4;ME?T`2wt0=T_LH91N8y@(4cULgVc;GT!%Xpc9*CYxM;X$`W z6t;`Ox`2DVFK6JV0$mGc?Wp~VIh_<}Q4sPDEx0jYKY8dCGt6lLe-n(C5Hd`fV52r^ zhH)wj-UgTb7TkrD%7T6AEYKL|Y!>@k=tVcq3pf7jKV|}dm&l}MUP;BHn0e$G{dt|t z96hdcS>e3Qy!=u^JFY@aPxT2@^;-4*r5Q6>1tvn$BAv{nBVEJG73pN=%bM@0*(&~P kCKX^Zq?FmF(q_BfX_8DmzFB9sf(0CHnwr_s1vS_FKcArcJpcdz literal 0 HcmV?d00001 diff --git a/testing/btest/Traces/redis/reply-off-on.trace b/testing/btest/Traces/redis/reply-off-on.trace new file mode 100644 index 0000000000000000000000000000000000000000..befddf9dbc1418484c7ad39483cb14b6c260b6e6 GIT binary patch literal 1874 zcmca|c+)~A1{MYc-~co4pOjB;TEoCl0px)&6A-&HFqAMbI50S{F)-9KFff9!z~r}q z^Gdufs%R_DY><%H@Gk=>$jHIP7cKGs`II*=#F?2HtidKSFfczXO#OWMQ<#Iyl#ENx zp?ggi%cU+g{Qt%xthq$`Q|3xtbl4n# zOk@BQL;;L%BPCuluej933T}{PfH`x6HiE;*8W3m|$>8VhLPDKv8O1F-*oUwZu2E z0LF9818N2;tX2wgsw_zbsxr_~3P&*gN^^ZO%YX`i!XSo=Yfu1Cks*W^kP37*P;+gq zj*?SRetB_fNPcLL56p0<#N_PMycD1VJzZd8E=537f-@3}Kz4yVP|L;31q#dbqdWvl zzHf_output +# @TEST-EXEC: btest-diff redis.log + diff --git a/testing/btest/scripts/base/protocols/redis/client-reply-off.zeek b/testing/btest/scripts/base/protocols/redis/client-reply-off.zeek new file mode 100644 index 0000000000..d977272279 --- /dev/null +++ b/testing/btest/scripts/base/protocols/redis/client-reply-off.zeek @@ -0,0 +1,5 @@ +# @TEST-DOC: Test CLIENT REPLY OFF then ON again and a SKIP +# +# @TEST-EXEC: zeek -Cr $TRACES/redis/reply-off-on.trace base/protocols/redis %INPUT >output +# @TEST-EXEC: btest-diff redis.log + diff --git a/testing/btest/scripts/base/protocols/redis/client-skip-while-off.zeek b/testing/btest/scripts/base/protocols/redis/client-skip-while-off.zeek new file mode 100644 index 0000000000..eeed61422b --- /dev/null +++ b/testing/btest/scripts/base/protocols/redis/client-skip-while-off.zeek @@ -0,0 +1,5 @@ +# @TEST-DOC: Test CLIENT REPLY OFF then ON again and a SKIP +# +# @TEST-EXEC: zeek -Cr $TRACES/redis/client-skip-while-off.trace base/protocols/redis %INPUT >output +# @TEST-EXEC: btest-diff redis.log + diff --git a/testing/btest/scripts/base/protocols/redis/django-cloud.zeek b/testing/btest/scripts/base/protocols/redis/django-cloud.zeek index f4c1983aca..2aef19e4e8 100644 --- a/testing/btest/scripts/base/protocols/redis/django-cloud.zeek +++ b/testing/btest/scripts/base/protocols/redis/django-cloud.zeek @@ -2,7 +2,7 @@ # # @TEST-EXEC: zeek -Cr $TRACES/redis/django-cloud.trace base/protocols/redis %INPUT >output # @TEST-EXEC: btest-diff output -# @TEST-EXEC: btest-diff resp.log +# @TEST-EXEC: btest-diff redis.log redef Redis::ports += { 10625/tcp, diff --git a/testing/btest/scripts/base/protocols/redis/django.zeek b/testing/btest/scripts/base/protocols/redis/django.zeek index fecdde13cc..0831e8e3a3 100644 --- a/testing/btest/scripts/base/protocols/redis/django.zeek +++ b/testing/btest/scripts/base/protocols/redis/django.zeek @@ -2,7 +2,7 @@ # # @TEST-EXEC: zeek -Cr $TRACES/redis/django-cache.trace base/protocols/redis %INPUT >output # @TEST-EXEC: btest-diff output -# @TEST-EXEC: btest-diff resp.log +# @TEST-EXEC: btest-diff redis.log event Redis::set_command(c: connection, is_orig: bool, command: Redis::SetCommand) { diff --git a/testing/btest/scripts/base/protocols/redis/excessive-pipelining.zeek b/testing/btest/scripts/base/protocols/redis/excessive-pipelining.zeek new file mode 100644 index 0000000000..7f3ff9ce2b --- /dev/null +++ b/testing/btest/scripts/base/protocols/redis/excessive-pipelining.zeek @@ -0,0 +1,8 @@ +# @TEST-DOC: Test Zeek parsing "pipelined" data responses +# +# @TEST-EXEC: zeek -Cr $TRACES/redis/excessive-pipelining.trace base/protocols/redis %INPUT >output +# @TEST-EXEC: btest-diff redis.log +# @TEST-EXEC: btest-diff weird.log + +# Make sure we get a weird if we go over the pipelining threshold (intentionally limited) +redef Redis::max_pending_requests = 5; diff --git a/testing/btest/scripts/base/protocols/redis/pipeline-with-quotes.zeek b/testing/btest/scripts/base/protocols/redis/pipeline-with-quotes.zeek index 972e1385c4..e57069c02d 100644 --- a/testing/btest/scripts/base/protocols/redis/pipeline-with-quotes.zeek +++ b/testing/btest/scripts/base/protocols/redis/pipeline-with-quotes.zeek @@ -2,7 +2,7 @@ # # @TEST-EXEC: zeek -Cr $TRACES/redis/pipeline-quotes.trace base/protocols/redis %INPUT >output # @TEST-EXEC: btest-diff output -# @TEST-EXEC: btest-diff resp.log +# @TEST-EXEC: btest-diff redis.log # TODO: Make it so weird.log exists again with `zeek::weird` for inline commands # btest-diff weird.log diff --git a/testing/btest/scripts/base/protocols/redis/pipelined-with-commands.zeek b/testing/btest/scripts/base/protocols/redis/pipelined-with-commands.zeek index a2a1862bf2..23559e93b1 100644 --- a/testing/btest/scripts/base/protocols/redis/pipelined-with-commands.zeek +++ b/testing/btest/scripts/base/protocols/redis/pipelined-with-commands.zeek @@ -2,7 +2,7 @@ # # @TEST-EXEC: zeek -Cr $TRACES/redis/pipeline-with-commands.trace base/protocols/redis %INPUT >output # @TEST-EXEC: btest-diff output -# @TEST-EXEC: btest-diff resp.log +# @TEST-EXEC: btest-diff redis.log # Sometimes commands aren't serialized, like when pipelining. This still works! So we # should handle this. This particular example has a few commands, amongst them a SET and diff --git a/testing/btest/scripts/base/protocols/redis/pipelined.zeek b/testing/btest/scripts/base/protocols/redis/pipelined.zeek index c6b113c95d..f91e4bec4e 100644 --- a/testing/btest/scripts/base/protocols/redis/pipelined.zeek +++ b/testing/btest/scripts/base/protocols/redis/pipelined.zeek @@ -2,7 +2,7 @@ # # @TEST-EXEC: zeek -Cr $TRACES/redis/pipelining-example.trace base/protocols/redis %INPUT >output # @TEST-EXEC: btest-diff output -# @TEST-EXEC: btest-diff resp.log +# @TEST-EXEC: btest-diff redis.log # Testing the example of "pipelining" in REDIS docs: # https://redis.io/docs/latest/develop/use/pipelining/ diff --git a/testing/btest/scripts/base/protocols/redis/pubsub.zeek b/testing/btest/scripts/base/protocols/redis/pubsub.zeek index febd515135..711cb33059 100644 --- a/testing/btest/scripts/base/protocols/redis/pubsub.zeek +++ b/testing/btest/scripts/base/protocols/redis/pubsub.zeek @@ -2,7 +2,7 @@ # # @TEST-EXEC: zeek -Cr $TRACES/redis/pubsub.trace base/protocols/redis %INPUT >output # @TEST-EXEC: btest-diff output -# @TEST-EXEC: btest-diff resp.log +# @TEST-EXEC: btest-diff redis.log # Testing the example of pub sub in REDIS docs: # https://redis.io/docs/latest/develop/interact/pubsub/ diff --git a/testing/btest/scripts/base/protocols/redis/standalone.spicy b/testing/btest/scripts/base/protocols/redis/standalone.spicy index 8512b325d7..17bd61ed15 100644 --- a/testing/btest/scripts/base/protocols/redis/standalone.spicy +++ b/testing/btest/scripts/base/protocols/redis/standalone.spicy @@ -1,11 +1,11 @@ # @TEST-DOC: Test parsing behavior of RESP. # -# @TEST-EXEC: spicyc ${DIST}/analyzer/resp.spicy ${DIST}/analyzer/redis.spicy -j -d -o resp.hlto +# @TEST-EXEC: spicyc ${DIST}/analyzer/resp.spicy ${DIST}/analyzer/redis.spicy -j -d -o redis.hlto # # TODO: A lot of tests are possible from the docs and having them would be nice. # But, a lot of characters ($, -, etc.) cause problems with TEST_EXEC. ugh. -# @TEST-EXEC: printf "+OK\x0d\x0a" | spicy-dump -p RESP::Data resp.hlto >>output 2>&1 -# @TEST-EXEC: printf ":1000\x0d\x0a" | spicy-dump -p RESP::Data resp.hlto >>output 2>&1 -# @TEST-EXEC: printf ":-1000\x0d\x0a" | spicy-dump -p RESP::Data resp.hlto >>output 2>&1 -# @TEST-EXEC: printf ":+1000\x0d\x0a" | spicy-dump -p RESP::Data resp.hlto >>output 2>&1 +# @TEST-EXEC: printf "+OK\x0d\x0a" | spicy-dump -p RESP::Data redis.hlto >>output 2>&1 +# @TEST-EXEC: printf ":1000\x0d\x0a" | spicy-dump -p RESP::Data redis.hlto >>output 2>&1 +# @TEST-EXEC: printf ":-1000\x0d\x0a" | spicy-dump -p RESP::Data redis.hlto >>output 2>&1 +# @TEST-EXEC: printf ":+1000\x0d\x0a" | spicy-dump -p RESP::Data redis.hlto >>output 2>&1 # @TEST-EXEC: TEST_DIFF_CANONIFIER= btest-diff output diff --git a/testing/btest/scripts/base/protocols/redis/stream.zeek b/testing/btest/scripts/base/protocols/redis/stream.zeek index 773602804a..98c9e3bf02 100644 --- a/testing/btest/scripts/base/protocols/redis/stream.zeek +++ b/testing/btest/scripts/base/protocols/redis/stream.zeek @@ -1,7 +1,7 @@ # @TEST-DOC: Test Zeek parsing pubsub commands # # @TEST-EXEC: zeek -Cr $TRACES/redis/stream.trace base/protocols/redis %INPUT >output -# @TEST-EXEC: btest-diff resp.log +# @TEST-EXEC: btest-diff redis.log # Streams like with XRANGE return arrays of bulk strings. We shouldn't count the # response as commands. diff --git a/testing/btest/scripts/base/protocols/redis/tls.zeek b/testing/btest/scripts/base/protocols/redis/tls.zeek index d9369aeae7..b81ab435f8 100644 --- a/testing/btest/scripts/base/protocols/redis/tls.zeek +++ b/testing/btest/scripts/base/protocols/redis/tls.zeek @@ -1,6 +1,6 @@ # @TEST-DOC: Test Zeek with RESP over TLS so it doesn't get gibberish # # @TEST-EXEC: zeek -Cr $TRACES/redis/tls.trace base/protocols/redis %INPUT >output -# @TEST-EXEC-FAIL: test -f resp.log +# @TEST-EXEC-FAIL: test -f redis.log # The logs should probably be empty since it's all encrypted diff --git a/testing/btest/scripts/base/protocols/redis/trace.zeek b/testing/btest/scripts/base/protocols/redis/trace.zeek index d22707b71c..1daf90ce16 100644 --- a/testing/btest/scripts/base/protocols/redis/trace.zeek +++ b/testing/btest/scripts/base/protocols/redis/trace.zeek @@ -2,7 +2,7 @@ # # @TEST-EXEC: zeek -Cr $TRACES/redis/loop-redis.trace base/protocols/redis %INPUT >output # @TEST-EXEC: btest-diff output -# @TEST-EXEC: btest-diff resp.log +# @TEST-EXEC: btest-diff redis.log event Redis::set_command(c: connection, is_orig: bool, command: Redis::SetCommand) {