From: Timo Sirainen Date: Mon, 25 Aug 2025 09:47:44 +0000 (+0300) Subject: lib-lua: Add dlua_push_timeval() X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d5ba9c3a8a6926ba6545d66b9bc4249c902aebb5;p=thirdparty%2Fdovecot%2Fcore.git lib-lua: Add dlua_push_timeval() --- diff --git a/src/lib-lua/dlua-dovecot.c b/src/lib-lua/dlua-dovecot.c index d3bc2457d6..4d0ea911da 100644 --- a/src/lib-lua/dlua-dovecot.c +++ b/src/lib-lua/dlua-dovecot.c @@ -286,6 +286,12 @@ void dlua_push_event(lua_State *L, struct event *event) lua_setfield(L, -2, "item"); } +void dlua_push_timeval(lua_State *L, const struct timeval *tv) +{ + lua_pushinteger(L, tv == NULL ? 0 : + tv->tv_sec * 1000000LL + tv->tv_usec); +} + static int dlua_event_append_log_prefix(lua_State *L) { DLUA_REQUIRE_ARGS(L, 2); diff --git a/src/lib-lua/dlua-script-private.h b/src/lib-lua/dlua-script-private.h index af5bc6c8fb..daccbb5aa0 100644 --- a/src/lib-lua/dlua-script-private.h +++ b/src/lib-lua/dlua-script-private.h @@ -116,6 +116,9 @@ struct event *dlua_check_event(lua_State *L, int arg); const char *dlua_push_vfstring(lua_State *L, const char *fmt, va_list argp) ATTR_FORMAT(2, 0); const char *dlua_push_fstring(lua_State *L, const char *fmt, ...) ATTR_FORMAT(2, 3); +/* push timeval as a microseconds integer to top of the stack */ +void dlua_push_timeval(lua_State *L, const struct timeval *tv); + /* improved luaL_error, can handle full C format support */ int dluaL_error(lua_State *L, const char *fmt, ...) ATTR_FORMAT(2, 3); #define luaL_error(...) dluaL_error(__VA_ARGS__)