summaryrefslogtreecommitdiff
path: root/src/cache.c
diff options
context:
space:
mode:
author/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>2007-07-09 19:11:53 +0000
committer/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>2007-07-09 19:11:53 +0000
commit96084e1a1f2e0a49c961bbddb9fffd2e03bfae3f (patch)
treec078d88b157faa7c5ce76bc4591205756f09742b /src/cache.c
parent4df0be6fbf6a47905e0edf11c13b49ea0eacee5b (diff)
downloadconntrack-tools-96084e1a1f2e0a49c961bbddb9fffd2e03bfae3f.tar.gz
conntrack-tools-96084e1a1f2e0a49c961bbddb9fffd2e03bfae3f.zip
- conntrack-tools requires libnetfilter_conntrack >= 0.0.81
- add len field to nethdr - implement buffered send/recv to batch messages - stop using netlink format for network messages: use similar TLV-based format - reduce synchronization messages size up to 60% - introduce periodic alive messages for sync-nack protocol - timeslice alarm implementation: remove alarm pthread, remove locking - simplify debugging functions: use nfct_snprintf instead - remove major use of libnfnetlink functions: use libnetfilter_conntrack API - deprecate conntrackd -F, use conntrack -F instead - major rework of the network infrastructure: much simple, less messy
Diffstat (limited to 'src/cache.c')
-rw-r--r--src/cache.c40
1 files changed, 2 insertions, 38 deletions
diff --git a/src/cache.c b/src/cache.c
index 3bf331c..1e20d95 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -193,9 +193,7 @@ struct cache *cache_create(char *name,
void cache_destroy(struct cache *c)
{
- lock();
hashtable_destroy(c->h);
- unlock();
free(c->features);
free(c->feature_offset);
free(c);
@@ -237,7 +235,7 @@ static struct us_conntrack *__add(struct cache *c, struct nf_conntrack *ct)
return NULL;
}
-struct us_conntrack *__cache_add(struct cache *c, struct nf_conntrack *ct)
+struct us_conntrack *cache_add(struct cache *c, struct nf_conntrack *ct)
{
struct us_conntrack *u;
@@ -252,17 +250,6 @@ struct us_conntrack *__cache_add(struct cache *c, struct nf_conntrack *ct)
return NULL;
}
-struct us_conntrack *cache_add(struct cache *c, struct nf_conntrack *ct)
-{
- struct us_conntrack *u;
-
- lock();
- u = __cache_add(c, ct);
- unlock();
-
- return u;
-}
-
static struct us_conntrack *__update(struct cache *c, struct nf_conntrack *ct)
{
size_t size = c->h->datasize;
@@ -317,9 +304,7 @@ struct us_conntrack *cache_update(struct cache *c, struct nf_conntrack *ct)
{
struct us_conntrack *u;
- lock();
u = __cache_update(c, ct);
- unlock();
return u;
}
@@ -329,19 +314,15 @@ struct us_conntrack *cache_update_force(struct cache *c,
{
struct us_conntrack *u;
- lock();
if ((u = __update(c, ct)) != NULL) {
c->upd_ok++;
- unlock();
return u;
}
if ((u = __add(c, ct)) != NULL) {
c->add_ok++;
- unlock();
return u;
}
c->add_fail++;
- unlock();
return NULL;
}
@@ -354,9 +335,7 @@ int cache_test(struct cache *c, struct nf_conntrack *ct)
u->ct = ct;
- lock();
ret = hashtable_test(c->h, u);
- unlock();
return ret != NULL;
}
@@ -390,7 +369,7 @@ static int __del(struct cache *c, struct nf_conntrack *ct)
return 0;
}
-int __cache_del(struct cache *c, struct nf_conntrack *ct)
+int cache_del(struct cache *c, struct nf_conntrack *ct)
{
if (__del(c, ct)) {
c->del_ok++;
@@ -401,17 +380,6 @@ int __cache_del(struct cache *c, struct nf_conntrack *ct)
return 0;
}
-int cache_del(struct cache *c, struct nf_conntrack *ct)
-{
- int ret;
-
- lock();
- ret = __cache_del(c, ct);
- unlock();
-
- return ret;
-}
-
struct us_conntrack *cache_get_conntrack(struct cache *c, void *data)
{
return data - c->extra_offset;
@@ -427,7 +395,6 @@ void cache_stats(struct cache *c, int fd)
char buf[512];
int size;
- lock();
size = sprintf(buf, "cache %s:\n"
"current active connections:\t%12u\n"
"connections created:\t\t%12u\tfailed:\t%12u\n"
@@ -441,7 +408,6 @@ void cache_stats(struct cache *c, int fd)
c->upd_fail,
c->del_ok,
c->del_fail);
- unlock();
send(fd, buf, size, 0);
}
@@ -449,7 +415,5 @@ void cache_iterate(struct cache *c,
void *data,
int (*iterate)(void *data1, void *data2))
{
- lock();
hashtable_iterate(c->h, data, iterate);
- unlock();
}