summaryrefslogtreecommitdiffstats
path: root/src/cache_wt.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2009-05-23 20:58:55 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2009-05-23 20:58:55 +0200
commit95c587ae01373ded13d696b155c7f277030a03d3 (patch)
tree072c8c7ebfe75096c979525c1c5ad8e68920ef75 /src/cache_wt.c
parent6f5666a29cb7cbff08ce926ee1edb84a311ff6ee (diff)
conntrackd: remove the cache write-through policy
This patch removes the cache write-through clause. This feature remained undocumented although some has found it looking at the source code. This feature has remained in the tree for quite some time although it has several limitations. Moreover, it is specifically broken and dangerous for Linux kernels >= 2.6.29 since it generates loops in the synchronization. We do this removal first to prepare the introduction of a feature to bypass the external cache. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/cache_wt.c')
-rw-r--r--src/cache_wt.c79
1 files changed, 0 insertions, 79 deletions
diff --git a/src/cache_wt.c b/src/cache_wt.c
deleted file mode 100644
index 34fe82e..0000000
--- a/src/cache_wt.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * (C) 2007 by Pablo Neira Ayuso <pablo@netfilter.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "conntrackd.h"
-#include "cache.h"
-#include "netlink.h"
-#include "log.h"
-
-#include <string.h>
-#include <errno.h>
-
-static void add_wt(struct cache_object *obj)
-{
- int ret;
-
- ret = nl_get_conntrack(STATE(request), obj->ct);
- switch (ret) {
- case -1:
- dlog(LOG_ERR, "cache_wt problem: %s", strerror(errno));
- dlog_ct(STATE(log), obj->ct, NFCT_O_PLAIN);
- break;
- case 0:
- if (nl_create_conntrack(STATE(dump), obj->ct, 0) == -1) {
- dlog(LOG_ERR, "cache_wt create: %s", strerror(errno));
- dlog_ct(STATE(log), obj->ct, NFCT_O_PLAIN);
- }
- break;
- case 1:
- if (nl_update_conntrack(STATE(dump), obj->ct, 0) == -1) {
- dlog(LOG_ERR, "cache_wt crt-upd: %s", strerror(errno));
- dlog_ct(STATE(log), obj->ct, NFCT_O_PLAIN);
- }
- break;
- }
-}
-
-static void upd_wt(struct cache_object *obj)
-{
- if (nl_update_conntrack(STATE(dump), obj->ct, 0) == -1) {
- dlog(LOG_ERR, "cache_wt update:%s", strerror(errno));
- dlog_ct(STATE(log), obj->ct, NFCT_O_PLAIN);
- }
-}
-
-static void writethrough_add(struct cache_object *obj, void *data)
-{
- add_wt(obj);
-}
-
-static void writethrough_update(struct cache_object *obj, void *data)
-{
- upd_wt(obj);
-}
-
-static void writethrough_destroy(struct cache_object *obj, void *data)
-{
- nl_destroy_conntrack(STATE(dump), obj->ct);
-}
-
-struct cache_feature writethrough_feature = {
- .add = writethrough_add,
- .update = writethrough_update,
- .destroy = writethrough_destroy,
-};