Browse Source

[Minor] Fix event pending checks

tags/1.8.1
Vsevolod Stakhov 5 years ago
parent
commit
915a460b6a

+ 1
- 1
src/libserver/fuzzy_backend_redis.c View File

@@ -126,7 +126,7 @@ rspamd_fuzzy_redis_session_dtor (struct rspamd_fuzzy_redis_session *session,
ac, is_fatal);
}

if (event_get_base (&session->timeout)) {
if (rspamd_event_pending (&session->timeout, EV_TIMEOUT)) {
event_del (&session->timeout);
}


+ 2
- 2
src/libserver/milter.c View File

@@ -185,7 +185,7 @@ rspamd_milter_session_dtor (struct rspamd_milter_session *session)
priv = session->priv;
msg_debug_milter ("destroying milter session");

if (event_get_base (&priv->ev)) {
if (rspamd_event_pending (&priv->ev, EV_TIMEOUT|EV_WRITE|EV_READ)) {
event_del (&priv->ev);
}

@@ -265,7 +265,7 @@ static inline void
rspamd_milter_plan_io (struct rspamd_milter_session *session,
struct rspamd_milter_private *priv, gshort what)
{
if (event_get_base (&priv->ev)) {
if (rspamd_event_pending (&priv->ev, EV_TIMEOUT|EV_WRITE|EV_READ)) {
event_del (&priv->ev);
}


+ 3
- 3
src/libserver/monitored.c View File

@@ -589,7 +589,7 @@ rspamd_monitored_stop (struct rspamd_monitored *m)
{
g_assert (m != NULL);

if (event_get_base (&m->periodic)) {
if (rspamd_event_pending (&m->periodic, EV_TIMEOUT)) {
event_del (&m->periodic);
}
}
@@ -606,7 +606,7 @@ rspamd_monitored_start (struct rspamd_monitored *m)
0.0);
double_to_tv (jittered, &tv);

if (event_get_base (&m->periodic)) {
if (rspamd_event_pending (&m->periodic, EV_TIMEOUT)) {
event_del (&m->periodic);
}

@@ -626,8 +626,8 @@ rspamd_monitored_ctx_destroy (struct rspamd_monitored_ctx *ctx)
for (i = 0; i < ctx->elts->len; i ++) {
m = g_ptr_array_index (ctx->elts, i);
rspamd_monitored_stop (m);
g_free (m->url);
m->proc.monitored_dtor (m, m->ctx, m->proc.ud);
g_free (m->url);
g_free (m);
}


+ 1
- 1
src/libserver/redis_pool.c View File

@@ -120,7 +120,7 @@ rspamd_redis_pool_conn_dtor (struct rspamd_redis_pool_connection *conn)
else {
msg_debug_rpool ("inactive connection removed");

if (event_get_base (&conn->timeout)) {
if (rspamd_event_pending (&conn->timeout, EV_TIMEOUT)) {
event_del (&conn->timeout);
}


+ 1
- 1
src/libserver/task.c View File

@@ -296,7 +296,7 @@ rspamd_task_free (struct rspamd_task *task)
g_error_free (task->err);
}

if (event_get_base (&task->timeout_ev) != NULL) {
if (rspamd_event_pending (&task->timeout_ev, EV_TIMEOUT)) {
event_del (&task->timeout_ev);
}


+ 2
- 2
src/libserver/worker_util.c View File

@@ -359,11 +359,11 @@ rspamd_worker_stop_accept (struct rspamd_worker *worker)
while (cur) {
events = cur->data;

if (event_get_base (&events[0])) {
if (rspamd_event_pending (&events[0], EV_TIMEOUT|EV_READ|EV_WRITE)) {
event_del (&events[0]);
}

if (event_get_base (&events[1])) {
if (rspamd_event_pending (&events[1], EV_TIMEOUT|EV_READ|EV_WRITE)) {
event_del (&events[1]);
}


+ 6
- 6
src/libstat/backends/redis_backend.c View File

@@ -994,7 +994,7 @@ rspamd_redis_fin (gpointer data)

rt->has_event = FALSE;
/* Stop timeout */
if (event_get_base (&rt->timeout_event)) {
if (rspamd_event_pending (&rt->timeout_event, EV_TIMEOUT)) {
event_del (&rt->timeout_event);
}

@@ -1014,7 +1014,7 @@ rspamd_redis_fin_learn (gpointer data)

rt->has_event = FALSE;
/* Stop timeout */
if (event_get_base (&rt->timeout_event)) {
if (rspamd_event_pending (&rt->timeout_event, EV_TIMEOUT)) {
event_del (&rt->timeout_event);
}

@@ -1597,7 +1597,7 @@ rspamd_redis_process_tokens (struct rspamd_task *task,
rspamd_session_add_event (task->s, NULL, rspamd_redis_fin, rt, rspamd_redis_stat_quark ());
rt->has_event = TRUE;

if (event_get_base (&rt->timeout_event)) {
if (rspamd_event_pending (&rt->timeout_event, EV_TIMEOUT)) {
event_del (&rt->timeout_event);
}
event_set (&rt->timeout_event, -1, EV_TIMEOUT, rspamd_redis_timeout, rt);
@@ -1634,7 +1634,7 @@ rspamd_redis_finalize_process (struct rspamd_task *task, gpointer runtime,
struct redis_stat_runtime *rt = REDIS_RUNTIME (runtime);
redisAsyncContext *redis;

if (event_get_base (&rt->timeout_event)) {
if (rspamd_event_pending (&rt->timeout_event, EV_TIMEOUT)) {
event_del (&rt->timeout_event);
}

@@ -1802,7 +1802,7 @@ rspamd_redis_learn_tokens (struct rspamd_task *task, GPtrArray *tokens,
rt->has_event = TRUE;

/* Set timeout */
if (event_get_base (&rt->timeout_event)) {
if (rspamd_event_pending (&rt->timeout_event, EV_TIMEOUT)) {
event_del (&rt->timeout_event);
}
event_set (&rt->timeout_event, -1, EV_TIMEOUT, rspamd_redis_timeout, rt);
@@ -1827,7 +1827,7 @@ rspamd_redis_finalize_learn (struct rspamd_task *task, gpointer runtime,
struct redis_stat_runtime *rt = REDIS_RUNTIME (runtime);
redisAsyncContext *redis;

if (event_get_base (&rt->timeout_event)) {
if (rspamd_event_pending (&rt->timeout_event, EV_TIMEOUT)) {
event_del (&rt->timeout_event);
}


+ 1
- 1
src/libstat/learn_cache/redis_cache.c View File

@@ -73,7 +73,7 @@ rspamd_redis_cache_fin (gpointer data)
redisAsyncContext *redis;

rt->has_event = FALSE;
if (event_get_base (&rt->timeout_event)) {
if (rspamd_event_pending (&rt->timeout_event, EV_TIMEOUT)) {
event_del (&rt->timeout_event);
}


+ 5
- 5
src/libutil/http.c View File

@@ -629,7 +629,7 @@ rspamd_http_on_headers_complete (http_parser * parser)

if (msg->method == HTTP_HEAD) {
/* We don't care about the rest */
if (event_pending (&priv->ev, EV_READ, NULL)) {
if (rspamd_event_pending (&priv->ev, EV_READ)) {
event_del (&priv->ev);
}

@@ -804,7 +804,7 @@ rspamd_http_on_headers_complete_decrypted (http_parser *parser)

if (msg->method == HTTP_HEAD) {
/* We don't care about the rest */
if (event_pending (&priv->ev, EV_READ, NULL)) {
if (rspamd_event_pending (&priv->ev, EV_READ)) {
event_del (&priv->ev);
}

@@ -949,7 +949,7 @@ rspamd_http_on_message_complete (http_parser * parser)
}

if (ret == 0) {
if (event_pending (&priv->ev, EV_READ, NULL)) {
if (rspamd_event_pending (&priv->ev, EV_READ)) {
event_del (&priv->ev);
}

@@ -1370,7 +1370,7 @@ rspamd_http_connection_reset (struct rspamd_http_connection *conn)

if (!(priv->flags & RSPAMD_HTTP_CONN_FLAG_RESETED)) {

if (event_get_base (&priv->ev)) {
if (rspamd_event_pending (&priv->ev, EV_READ|EV_WRITE|EV_TIMEOUT)) {
event_del (&priv->ev);
}

@@ -2296,7 +2296,7 @@ rspamd_http_connection_write_message_common (struct rspamd_http_connection *conn

priv->flags &= ~RSPAMD_HTTP_CONN_FLAG_RESETED;

if (base != NULL && event_get_base (&priv->ev) == base) {
if (rspamd_event_pending (&priv->ev, EV_TIMEOUT|EV_WRITE|EV_READ)) {
event_del (&priv->ev);
}


+ 2
- 2
src/libutil/ssl_util.c View File

@@ -534,7 +534,7 @@ rspamd_ssl_connect_fd (struct rspamd_ssl_connection *conn, gint fd,
if (ret == 1) {
conn->state = ssl_conn_connected;

if (event_get_base (ev)) {
if (rspamd_event_pending (ev, EV_TIMEOUT|EV_WRITE|EV_READ)) {
event_del (ev);
}

@@ -561,7 +561,7 @@ rspamd_ssl_connect_fd (struct rspamd_ssl_connection *conn, gint fd,
return FALSE;
}

if (event_get_base (ev)) {
if (rspamd_event_pending (ev, EV_TIMEOUT|EV_WRITE|EV_READ)) {
event_del (ev);
}


+ 1
- 1
src/libutil/upstream.c View File

@@ -837,7 +837,7 @@ rspamd_upstream_restore_cb (gpointer elt, gpointer ls)
/* Here the upstreams list is already locked */
RSPAMD_UPSTREAM_LOCK (up->lock);

if (event_get_base (&up->ev)) {
if (rspamd_event_pending (&up->ev, EV_TIMEOUT)) {
event_del (&up->ev);
}
g_ptr_array_add (ups->alive, up);

+ 10
- 0
src/libutil/util.c View File

@@ -2468,6 +2468,16 @@ event_get_base (struct event *ev)
}
#endif

int
rspamd_event_pending (struct event *ev, short what)
{
if (ev->ev_base == NULL) {
return 0;
}

return event_pending (ev, what, NULL);
}

int
rspamd_file_xopen (const char *fname, int oflags, guint mode,
gboolean allow_symlink)

+ 3
- 0
src/libutil/util.h View File

@@ -429,6 +429,9 @@ struct event_base * event_get_base (struct event *ev);
event_set((ev), (x), EV_SIGNAL|EV_PERSIST, (cb), (arg))
#endif

/* Avoid stupidity in libevent > 1.4 */
int rspamd_event_pending (struct event *ev, short what);

/**
* Open file without following symlinks or special stuff
* @param fname filename

Loading…
Cancel
Save