From 5e4f78228eacc982d412b71c19b21bcbc8af4b93 Mon Sep 17 00:00:00 2001 From: bol-van Date: Mon, 9 Feb 2026 13:28:51 +0300 Subject: [PATCH] zapret-auto: per_instance_condition not execute if cond arg absent --- lua/zapret-auto.lua | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lua/zapret-auto.lua b/lua/zapret-auto.lua index 554792b..56b0c08 100644 --- a/lua/zapret-auto.lua +++ b/lua/zapret-auto.lua @@ -407,7 +407,7 @@ function cond_payload_str(desync) end -- true if dissect is tcp and timestamp tcp option is present function cond_tcp_has_ts(desync) - return desync.dis.tcp and find_tcp_option(desync.dis.tcp.options, TCP_KIND_TS+11) + return desync.dis.tcp and find_tcp_option(desync.dis.tcp.options, TCP_KIND_TS) end -- check iff function available. error if not @@ -449,13 +449,14 @@ function per_instance_condition(ctx, desync) if type(_G[instance.arg.cond])~="function" then error(name..": invalid 'iff' function '"..instance.arg.cond.."'") end - if not logical_xor(_G[instance.arg.cond](desync), instance.arg.cond_neg) then - DLOG("per_instance_condition: condition not satisfied. skipping "..instance.func_instance) - goto continue + if logical_xor(_G[instance.arg.cond](desync), instance.arg.cond_neg) then + verdict = plan_instance_execute(desync, verdict, instance) + else + DLOG("per_instance_condition: condition not satisfied. skipping '"..instance.func_instance.."'") end + else + DLOG("per_instance_condition: no 'cond' arg in '"..instance.func_instance.."'. skipping") end - verdict = plan_instance_execute(desync, verdict, instance) - ::continue:: end return verdict end