BUG/MINOR: lua/filters: Return right code when txn:done() is called

txn functions can now be called from an action or a filter context. Thus the
return code must be adapted depending on this context. From an action, act.ABORT
is returned. From a filter, -1 is returned. It is the filter error code.

This bug only affects 2.5-dev. No backport needed.
This commit is contained in:
Christopher Faulet 2021-08-13 14:11:17 +02:00
parent 26eb5ea352
commit e48d1dc2d9
1 changed files with 4 additions and 1 deletions

View File

@ -7482,7 +7482,10 @@ __LJMP static int hlua_txn_done(lua_State *L)
if (!(s->flags & SF_FINST_MASK))
s->flags |= finst;
lua_pushinteger(L, ACT_RET_ABRT);
if ((htxn->flags & HLUA_TXN_CTX_MASK) == HLUA_TXN_FLT_CTX)
lua_pushinteger(L, -1);
else
lua_pushinteger(L, ACT_RET_ABRT);
WILL_LJMP(hlua_done(L));
return 0;
}