diff options
author | peter <peter@FreeBSD.org> | 1998-03-21 10:11:54 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1998-03-21 10:11:54 +0000 |
commit | d0b95c10ffade38cb989a2c35ca72541ee4b6fe1 (patch) | |
tree | 8540ef497b99da387a9bb33dde9177723e0699c6 /sys/contrib/ipfilter/netinet/ip_proxy.c | |
parent | 4b965aa581b2a4cb949aa434cf85157f8d3322c1 (diff) | |
download | FreeBSD-src-d0b95c10ffade38cb989a2c35ca72541ee4b6fe1.zip FreeBSD-src-d0b95c10ffade38cb989a2c35ca72541ee4b6fe1.tar.gz |
Import kernel parts of ipfilter v3.2.3
Diffstat (limited to 'sys/contrib/ipfilter/netinet/ip_proxy.c')
-rw-r--r-- | sys/contrib/ipfilter/netinet/ip_proxy.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/sys/contrib/ipfilter/netinet/ip_proxy.c b/sys/contrib/ipfilter/netinet/ip_proxy.c index cea27f6..cc3b9a0 100644 --- a/sys/contrib/ipfilter/netinet/ip_proxy.c +++ b/sys/contrib/ipfilter/netinet/ip_proxy.c @@ -6,7 +6,7 @@ * to the original author and the contributors. */ #if !defined(lint) -static const char rcsid[] = "@(#)$Id: ip_proxy.c,v 2.0.2.11.2.2 1997/11/12 10:54:11 darrenr Exp $"; +static const char rcsid[] = "@(#)$Id: ip_proxy.c,v 2.0.2.11.2.6 1997/11/28 00:41:25 darrenr Exp $"; #endif #if defined(__FreeBSD__) && defined(KERNEL) && !defined(_KERNEL) @@ -226,7 +226,7 @@ nat_t *nat; * don't do anything with this packet. */ if (tcp->th_sum != fr_tcpsum(*(mb_t **)fin->fin_mp, - ip, tcp)) { + ip, tcp, ip->ip_len)) { frstats[fin->fin_out].fr_tcpbad++; return -1; } @@ -246,7 +246,8 @@ nat_t *nat; aps, nat); } if (err == 2) { - tcp->th_sum = fr_tcpsum(*(mb_t **)fin->fin_mp, ip, tcp); + tcp->th_sum = fr_tcpsum(*(mb_t **)fin->fin_mp, ip, + tcp, ip->ip_len); err = 0; } return err; @@ -298,3 +299,21 @@ void ap_unload() aps_free(aps); } } + + +void ap_expire() +{ + ap_session_t *aps, **apsp; + int i; + + for (i = 0; i < AP_SESS_SIZE; i++) + for (apsp = &ap_sess_tab[i]; (aps = *apsp); ) { + aps->aps_tout--; + if (!aps->aps_tout) { + ap_sess_tab[i] = aps->aps_next; + aps_free(aps); + *apsp = aps->aps_next; + } else + apsp = &aps->aps_next; + } +} |