Kaynağa Gözat

[Feature] Ppopagate monitored errors from rbl module

tags/3.0
Vsevolod Stakhov 3 yıl önce
ebeveyn
işleme
e4f459ef31

+ 1
- 1
src/libserver/monitored.c Dosyayı Görüntüle



INIT_LOG_MODULE(monitored) INIT_LOG_MODULE(monitored)


static inline void
inline void
rspamd_monitored_propagate_error (struct rspamd_monitored *m, rspamd_monitored_propagate_error (struct rspamd_monitored *m,
const gchar *error) const gchar *error)
{ {

+ 8
- 0
src/libserver/monitored.h Dosyayı Görüntüle

*/ */
void rspamd_monitored_start (struct rspamd_monitored *m); void rspamd_monitored_start (struct rspamd_monitored *m);


/**
* Propagate external monitored error
* @param m
* @param error
*/
void rspamd_monitored_propagate_error (struct rspamd_monitored *m,
const gchar *error);

/** /**
* Destroy monitored context and all monitored objects inside * Destroy monitored context and all monitored objects inside
* @param ctx * @param ctx

+ 19
- 0
src/lua/lua_config.c Dosyayı Görüntüle

LUA_FUNCTION_DEF (monitored, latency); LUA_FUNCTION_DEF (monitored, latency);
LUA_FUNCTION_DEF (monitored, offline); LUA_FUNCTION_DEF (monitored, offline);
LUA_FUNCTION_DEF (monitored, total_offline); LUA_FUNCTION_DEF (monitored, total_offline);
LUA_FUNCTION_DEF (monitored, propagate_error);


static const struct luaL_reg monitoredlib_m[] = { static const struct luaL_reg monitoredlib_m[] = {
LUA_INTERFACE_DEF (monitored, alive), LUA_INTERFACE_DEF (monitored, alive),
LUA_INTERFACE_DEF (monitored, latency), LUA_INTERFACE_DEF (monitored, latency),
LUA_INTERFACE_DEF (monitored, offline), LUA_INTERFACE_DEF (monitored, offline),
LUA_INTERFACE_DEF (monitored, total_offline), LUA_INTERFACE_DEF (monitored, total_offline),
LUA_INTERFACE_DEF (monitored, propagate_error),
{"__tostring", rspamd_lua_class_tostring}, {"__tostring", rspamd_lua_class_tostring},
{NULL, NULL} {NULL, NULL}
}; };
return 1; return 1;
} }


static gint
lua_monitored_propagate_error (lua_State *L)
{
LUA_TRACE_POINT;
struct rspamd_monitored *m = lua_check_monitored (L, 1);
const gchar *what = luaL_checkstring (L, 2);

if (m && what) {
rspamd_monitored_propagate_error (m, what);
}
else {
return luaL_error (L, "invalid arguments");
}

return 0;
}

void void
luaopen_config (lua_State * L) luaopen_config (lua_State * L)
{ {

+ 3
- 0
src/plugins/lua/rbl.lua Dosyayı Görüntüle

rspamd_logger.infox(task, 'error looking up %s: %s', to_resolve, err) rspamd_logger.infox(task, 'error looking up %s: %s', to_resolve, err)
task:insert_result(rbl.symbol .. '_FAIL', 1, string.format('%s:%s', task:insert_result(rbl.symbol .. '_FAIL', 1, string.format('%s:%s',
resolve_table_elt.orig, err)) resolve_table_elt.orig, err))
if rbl.monitored then
rbl.monitored:propagate_error(err)
end
return return
end end



Loading…
İptal
Kaydet