ac, is_fatal);
}
- if (event_get_base (&session->timeout)) {
+ if (rspamd_event_pending (&session->timeout, EV_TIMEOUT)) {
event_del (&session->timeout);
}
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);
}
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);
}
{
g_assert (m != NULL);
- if (event_get_base (&m->periodic)) {
+ if (rspamd_event_pending (&m->periodic, EV_TIMEOUT)) {
event_del (&m->periodic);
}
}
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);
}
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);
}
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);
}
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);
}
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]);
}
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);
}
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);
}
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);
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);
}
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);
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);
}
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);
}
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);
}
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);
}
}
if (ret == 0) {
- if (event_pending (&priv->ev, EV_READ, NULL)) {
+ if (rspamd_event_pending (&priv->ev, EV_READ)) {
event_del (&priv->ev);
}
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);
}
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);
}
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);
}
return FALSE;
}
- if (event_get_base (ev)) {
+ if (rspamd_event_pending (ev, EV_TIMEOUT|EV_WRITE|EV_READ)) {
event_del (ev);
}
/* 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);
}
#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)
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