aboutsummaryrefslogtreecommitdiffstats
path: root/src/libutil/map_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libutil/map_private.h')
-rw-r--r--src/libutil/map_private.h219
1 files changed, 0 insertions, 219 deletions
diff --git a/src/libutil/map_private.h b/src/libutil/map_private.h
deleted file mode 100644
index 347f63538..000000000
--- a/src/libutil/map_private.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/*-
- * Copyright 2016 Vsevolod Stakhov
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#ifndef SRC_LIBUTIL_MAP_PRIVATE_H_
-#define SRC_LIBUTIL_MAP_PRIVATE_H_
-
-#include "config.h"
-#include "mem_pool.h"
-#include "keypair.h"
-#include "unix-std.h"
-#include "map.h"
-#include "ref.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef void (*rspamd_map_tmp_dtor) (gpointer p);
-
-extern guint rspamd_map_log_id;
-#define msg_err_map(...) rspamd_default_log_function (G_LOG_LEVEL_CRITICAL, \
- "map", map->tag, \
- G_STRFUNC, \
- __VA_ARGS__)
-#define msg_warn_map(...) rspamd_default_log_function (G_LOG_LEVEL_WARNING, \
- "map", map->tag, \
- G_STRFUNC, \
- __VA_ARGS__)
-#define msg_info_map(...) rspamd_default_log_function (G_LOG_LEVEL_INFO, \
- "map", map->tag, \
- G_STRFUNC, \
- __VA_ARGS__)
-#define msg_debug_map(...) rspamd_conditional_debug_fast (NULL, NULL, \
- rspamd_map_log_id, "map", map->tag, \
- G_STRFUNC, \
- __VA_ARGS__)
-
-enum fetch_proto {
- MAP_PROTO_FILE,
- MAP_PROTO_HTTP,
- MAP_PROTO_HTTPS,
- MAP_PROTO_STATIC
-};
-
-/**
- * Data specific to file maps
- */
-struct file_map_data {
- gchar *filename;
- gboolean need_modify;
- ev_stat st_ev;
-};
-
-
-struct http_map_data;
-
-struct rspamd_http_map_cached_cbdata {
- ev_timer timeout;
- struct ev_loop *event_loop;
- struct rspamd_storage_shmem *shm;
- struct rspamd_map *map;
- struct http_map_data *data;
- guint64 gen;
- time_t last_checked;
-};
-
-struct rspamd_map_cachepoint {
- gint available;
- gsize len;
- time_t last_modified;
- gchar shmem_name[256];
-};
-
-/**
- * Data specific to HTTP maps
- */
-struct http_map_data {
- /* Shared cache data */
- struct rspamd_map_cachepoint *cache;
- /* Non-shared for cache owner, used to cleanup cache */
- struct rspamd_http_map_cached_cbdata *cur_cache_cbd;
- gchar *userinfo;
- gchar *path;
- gchar *host;
- gchar *rest;
- rspamd_fstring_t *etag;
- time_t last_modified;
- time_t last_checked;
- gboolean request_sent;
- guint64 gen;
- guint16 port;
-};
-
-struct static_map_data {
- guchar *data;
- gsize len;
- gboolean processed;
-};
-
-union rspamd_map_backend_data {
- struct file_map_data *fd;
- struct http_map_data *hd;
- struct static_map_data *sd;
-};
-
-struct rspamd_map_backend {
- enum fetch_proto protocol;
- gboolean is_signed;
- gboolean is_compressed;
- gboolean is_fallback;
- struct ev_loop *event_loop;
- guint32 id;
- struct rspamd_cryptobox_pubkey *trusted_pubkey;
- union rspamd_map_backend_data data;
- gchar *uri;
- ref_entry_t ref;
-};
-
-struct map_periodic_cbdata;
-
-struct rspamd_map {
- struct rspamd_dns_resolver *r;
- struct rspamd_config *cfg;
- GPtrArray *backends;
- struct rspamd_map_backend *fallback_backend;
- map_cb_t read_callback;
- map_fin_cb_t fin_callback;
- map_dtor_t dtor;
- void **user_data;
- struct ev_loop *event_loop;
- struct rspamd_worker *wrk;
- gchar *description;
- gchar *name;
- guint32 id;
- struct map_periodic_cbdata *scheduled_check;
- rspamd_map_tmp_dtor tmp_dtor;
- gpointer tmp_dtor_data;
- rspamd_map_traverse_function traverse_function;
- gpointer lua_map;
- gsize nelts;
- guint64 digest;
- /* Should we check HTTP or just load cached data */
- ev_tstamp timeout;
- gdouble poll_timeout;
- time_t next_check;
- gboolean active_http;
- gboolean non_trivial; /* E.g. has http backends in active mode */
- gboolean file_only; /* No HTTP backends found */
- gboolean static_only; /* No need to check */
- /* Shared lock for temporary disabling of map reading (e.g. when this map is written by UI) */
- gint *locked;
- gchar tag[MEMPOOL_UID_LEN];
-};
-
-enum rspamd_map_http_stage {
- http_map_resolve_host2 = 0, /* 2 requests sent */
- http_map_resolve_host1, /* 1 requests sent */
- http_map_http_conn, /* http connection */
- http_map_terminated /* terminated when doing resolving */
-};
-
-struct map_periodic_cbdata {
- struct rspamd_map *map;
- struct map_cb_data cbdata;
- ev_timer ev;
- gboolean need_modify;
- gboolean errored;
- gboolean locked;
- guint cur_backend;
- ref_entry_t ref;
-};
-
-static const gchar rspamd_http_file_magic[] =
- {'r', 'm', 'c', 'd', '2', '0', '0', '0'};
-
-struct rspamd_http_file_data {
- guchar magic[sizeof (rspamd_http_file_magic)];
- goffset data_off;
- gulong mtime;
- gulong next_check;
- gulong etag_len;
-};
-
-struct http_callback_data {
- struct ev_loop *event_loop;
- struct rspamd_http_connection *conn;
- GPtrArray *addrs;
- rspamd_inet_addr_t *addr;
- struct rspamd_map *map;
- struct rspamd_map_backend *bk;
- struct http_map_data *data;
- struct map_periodic_cbdata *periodic;
- struct rspamd_cryptobox_pubkey *pk;
- struct rspamd_storage_shmem *shmem_data;
- gsize data_len;
- gboolean check;
- enum rspamd_map_http_stage stage;
- ev_tstamp timeout;
-
- ref_entry_t ref;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SRC_LIBUTIL_MAP_PRIVATE_H_ */