#define PATH_GRAPH "/graph"
#define PATH_PIE_CHART "/pie"
#define PATH_HISTORY "/history"
+#define PATH_HISTORY_RESET "/historyreset"
#define PATH_LEARN_SPAM "/learnspam"
#define PATH_LEARN_HAM "/learnham"
#define PATH_SAVE_ACTIONS "/saveactions"
return 0;
}
+static int
+rspamd_controller_handle_history_reset (struct rspamd_http_connection_entry *conn_ent,
+ struct rspamd_http_message *msg)
+{
+ struct rspamd_controller_session *session = conn_ent->ud;
+ struct rspamd_controller_worker_ctx *ctx;
+
+ ctx = session->ctx;
+
+ if (!rspamd_controller_check_password (conn_ent, session, msg, TRUE)) {
+ return 0;
+ }
+
+ rspamd_mempool_lock_mutex (ctx->srv->history->mtx);
+ ctx->srv->history->need_lock = TRUE;
+ /* Copy locked */
+ memset (ctx->srv->history->rows, 0, sizeof (ctx->srv->history->rows));
+ ctx->srv->history->cur_row = 0;
+ rspamd_mempool_unlock_mutex (ctx->srv->history->mtx);
+
+ /* Successful learn */
+ msg_info_session ("<%s> reseted history",
+ rspamd_inet_address_to_string (session->from_addr));
+ rspamd_controller_send_string (conn_ent, "{\"success\":true}");
+
+ return 0;
+}
+
static gboolean
rspamd_controller_learn_fin_task (void *ud)
{
return TRUE;
}
+
/* Successful learn */
msg_info_session ("<%s> learned message as %s: %s",
rspamd_inet_address_to_string (session->from_addr),
rspamd_http_router_add_path (ctx->http,
PATH_HISTORY,
rspamd_controller_handle_history);
+ rspamd_http_router_add_path (ctx->http,
+ PATH_HISTORY_RESET,
+ rspamd_controller_handle_history_reset);
rspamd_http_router_add_path (ctx->http,
PATH_LEARN_SPAM,
rspamd_controller_handle_learnspam);