summaryrefslogtreecommitdiffstats
path: root/sys/contrib/ipfilter/netinet
diff options
context:
space:
mode:
authorcy <cy@FreeBSD.org>2016-06-19 00:39:23 +0000
committercy <cy@FreeBSD.org>2016-06-19 00:39:23 +0000
commit0ebe946eca5e08e20bcc604d3a7875db2aed94ca (patch)
tree72d3e5cb104b6c365050eaea358e3f265d981381 /sys/contrib/ipfilter/netinet
parentff13a7445b53c23b231f817fe9ccf9c848d13ed2 (diff)
downloadFreeBSD-src-0ebe946eca5e08e20bcc604d3a7875db2aed94ca.zip
FreeBSD-src-0ebe946eca5e08e20bcc604d3a7875db2aed94ca.tar.gz
MFC r300259:
Enable the two ip_frag tuneables. The code is there but the two ip_frag tuneables aren't registered in the ipf_tuners linked list. This commmit enables the two existing ip_frag tuneables by registering them. MFC r300260: Remove extraneous blank line.
Diffstat (limited to 'sys/contrib/ipfilter/netinet')
-rw-r--r--sys/contrib/ipfilter/netinet/ip_frag.c20
-rw-r--r--sys/contrib/ipfilter/netinet/ip_frag.h1
2 files changed, 20 insertions, 1 deletions
diff --git a/sys/contrib/ipfilter/netinet/ip_frag.c b/sys/contrib/ipfilter/netinet/ip_frag.c
index 7e3457a..b460f20 100644
--- a/sys/contrib/ipfilter/netinet/ip_frag.c
+++ b/sys/contrib/ipfilter/netinet/ip_frag.c
@@ -112,7 +112,7 @@ static void ipf_frag_free __P((ipf_frag_softc_t *, ipfr_t *));
static frentry_t ipfr_block;
-const ipftuneable_t ipf_tuneables[] = {
+static ipftuneable_t ipf_frag_tuneables[] = {
{ { (void *)offsetof(ipf_frag_softc_t, ipfr_size) },
"frag_size", 1, 0x7fffffff,
stsizeof(ipf_frag_softc_t, ipfr_size),
@@ -189,6 +189,18 @@ ipf_frag_soft_create(softc)
RWLOCK_INIT(&softf->ipfr_frag, "ipf fragment rwlock");
RWLOCK_INIT(&softf->ipfr_natfrag, "ipf NAT fragment rwlock");
+ softf->ipf_frag_tune = ipf_tune_array_copy(softf,
+ sizeof(ipf_frag_tuneables),
+ ipf_frag_tuneables);
+ if (softf->ipf_frag_tune == NULL) {
+ ipf_frag_soft_destroy(softc, softf);
+ return NULL;
+ }
+ if (ipf_tune_array_link(softc, softf->ipf_frag_tune) == -1) {
+ ipf_frag_soft_destroy(softc, softf);
+ return NULL;
+ }
+
softf->ipfr_size = IPFT_SIZE;
softf->ipfr_ttl = IPF_TTLVAL(60);
softf->ipfr_lock = 1;
@@ -219,6 +231,12 @@ ipf_frag_soft_destroy(softc, arg)
RW_DESTROY(&softf->ipfr_frag);
RW_DESTROY(&softf->ipfr_natfrag);
+ if (softf->ipf_frag_tune != NULL) {
+ ipf_tune_array_unlink(softc, softf->ipf_frag_tune);
+ KFREES(softf->ipf_frag_tune, sizeof(ipf_frag_tuneables));
+ softf->ipf_frag_tune = NULL;
+ }
+
KFREE(softf);
}
diff --git a/sys/contrib/ipfilter/netinet/ip_frag.h b/sys/contrib/ipfilter/netinet/ip_frag.h
index baa767d..08f45ff 100644
--- a/sys/contrib/ipfilter/netinet/ip_frag.h
+++ b/sys/contrib/ipfilter/netinet/ip_frag.h
@@ -78,6 +78,7 @@ typedef struct ipf_frag_softc_s {
int ipfr_ttl;
int ipfr_lock;
int ipfr_inited;
+ ipftuneable_t *ipf_frag_tune;
ipfr_t *ipfr_list;
ipfr_t **ipfr_tail;
ipfr_t *ipfr_natlist;
OpenPOWER on IntegriCloud