mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-05-04 12:41:00 +02:00
MEDIUM: lua: only allow actions to yield if not in a final call
Actions may yield but must not do it during the final call from a ruleset because it indicates there will be no more opportunity to complete or clean up. This is indicated by ACT_FLAG_FINAL in the action's flags, which must be passed to hlua_resume(). Thanks to this, an action called from a TCP ruleset is properly woken up and possibly finished when the client disconnects.
This commit is contained in:
parent
394586836f
commit
528192d310
@ -4549,7 +4549,7 @@ static enum act_return hlua_action(struct act_rule *rule, struct proxy *px,
|
||||
}
|
||||
|
||||
/* Execute the function. */
|
||||
switch (hlua_ctx_resume(&s->hlua, 1)) {
|
||||
switch (hlua_ctx_resume(&s->hlua, !(flags & ACT_FLAG_FINAL))) {
|
||||
/* finished. */
|
||||
case HLUA_E_OK:
|
||||
if (!hlua_check_proto(s, dir))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user