Sat Apr 17 20:46:14 2010 UTC ()
Import IPFilter 4.1.34 into NetBSD

4.1.34 - Release 11 March 2010
2964907 uninitialised use compile error
2959506 ipfstat does not display rules with compat
2949139 FR_T_BUILTIN masked out incorrectly
2937422 packets filtered with pools should not be cached
2935529 use of rules with tags leads to deadlock
2917501 whitespace cleanup required
2881514 in/out object functions not wired for compatibility
2841771 ipf/ippool rule maintenace bugs: memory leak, ref-counter bug
2839698 H.323 proxy does not clear fin_state/fin_nat


Status:

Vendor Tag:	DARRENR
Release Tags:	v4-1-34


(darrenr)
diff -r0 -r0 src/dist/ipf/ipf.h
diff -r0 -r0 src/dist/ipf/ip_rpcb_pxy.c
diff -r0 -r0 src/dist/ipf/ip_scan.c
diff -r0 -r0 src/dist/ipf/mlo_ipl.c
diff -r0 -r0 src/dist/ipf/ipmon.h
diff -r0 -r0 src/dist/ipf/mls_rule.c
diff -r0 -r0 src/dist/ipf/mlf_rule.c
diff -r0 -r0 src/dist/ipf/ip_proxy.c
diff -r0 -r0 src/dist/ipf/WhatsNew40.txt
diff -r0 -r0 src/dist/ipf/ip_ipsec_pxy.c
diff -r0 -r0 src/dist/ipf/bpf-ipf.h
diff -r0 -r0 src/dist/ipf/pcap-ipf.h
diff -r0 -r0 src/dist/ipf/mln_ipl.c
diff -r0 -r0 src/dist/ipf/Y2K
diff -r0 -r0 src/dist/ipf/md5.h
diff -r0 -r0 src/dist/ipf/ip_frag.h
diff -r0 -r0 src/dist/ipf/QNX_OCL.txt
diff -r0 -r0 src/dist/ipf/ml_ipl.c
diff -r0 -r0 src/dist/ipf/BugReport
diff -r0 -r0 src/dist/ipf/radix_ipf.h
diff -r0 -r0 src/dist/ipf/ip_sync.c
diff -r0 -r0 src/dist/ipf/mlso_rule.c
diff -r0 -r0 src/dist/ipf/ip_h323_pxy.c
diff -r0 -r0 src/dist/ipf/mlo_rule.c
diff -r0 -r0 src/dist/ipf/ip_pptp_pxy.c
diff -r0 -r0 src/dist/ipf/IPFILTER.LICENCE
diff -r0 -r0 src/dist/ipf/snoop.h
diff -r0 -r0 src/dist/ipf/ip_htable.c
diff -r0 -r0 src/dist/ipf/ip_pool.h
diff -r0 -r0 src/dist/ipf/ip_auth.h
diff -r0 -r0 src/dist/ipf/mlfk_rule.c
diff -r0 -r0 src/dist/ipf/linux.h
diff -r0 -r0 src/dist/ipf/mls_ipl.c
diff -r0 -r0 src/dist/ipf/ip_irc_pxy.c
diff -r0 -r0 src/dist/ipf/md5.c
diff -r0 -r0 src/dist/ipf/ip_frag.c
diff -r0 -r0 src/dist/ipf/ip_proxy.h
diff -r0 -r0 src/dist/ipf/ip_rcmd_pxy.c
diff -r0 -r0 src/dist/ipf/ipt.h
diff -r0 -r0 src/dist/ipf/README
diff -r0 -r0 src/dist/ipf/ip_lookup.h
diff -r0 -r0 src/dist/ipf/mkfilters
diff -r0 -r0 src/dist/ipf/mlf_ipl.c
diff -r0 -r0 src/dist/ipf/STYLE.TXT
diff -r0 -r0 src/dist/ipf/ip_ftp_pxy.c
diff -r0 -r0 src/dist/ipf/bpf_filter.c
diff -r0 -r0 src/dist/ipf/mln_rule.c
diff -r0 -r0 src/dist/ipf/ip_scan.h
diff -r0 -r0 src/dist/ipf/ip_pool.c
diff -r0 -r0 src/dist/ipf/ip_netbios_pxy.c
diff -r0 -r0 src/dist/ipf/BNF
diff -r0 -r0 src/dist/ipf/ip_nat.h
diff -r0 -r0 src/dist/ipf/IMPORTANT
diff -r0 -r0 src/dist/ipf/mlh_rule.c
diff -r0 -r0 src/dist/ipf/todo
diff -r0 -r0 src/dist/ipf/opts.h
diff -r0 -r0 src/dist/ipf/bsdinstall
diff -r0 -r0 src/dist/ipf/arc4random.c
diff -r0 -r0 src/dist/ipf/buildsunos
diff -r0 -r0 src/dist/ipf/ip_raudio_pxy.c
diff -r0 -r0 src/dist/ipf/ip_htable.h
diff -r0 -r0 src/dist/ipf/mli_ipl.c
diff -r0 -r0 src/dist/ipf/solaris.c
diff -r0 -r0 src/dist/ipf/hpux.c
diff -r0 -r0 src/dist/ipf/ip_sync.h
diff -r0 -r0 src/dist/ipf/kmem.h
diff -r0 -r1.1.1.1 src/dist/ipf/ip_fil_compat.c
diff -r0 -r0 src/dist/ipf/radix.c
diff -r0 -r0 src/dist/ipf/ip_state.h
diff -r0 -r0 src/dist/ipf/IPF.KANJI
diff -r0 -r0 src/dist/ipf/mlfk_ipl.c
diff -r0 -r0 src/dist/ipf/ip_log.c
diff -r0 -r0 src/dist/ipf/tools/ipf.c
diff -r0 -r0 src/dist/ipf/tools/lex_var.h
diff -r0 -r0 src/dist/ipf/tools/ipfs.c
diff -r0 -r0 src/dist/ipf/tools/Makefile
diff -r0 -r0 src/dist/ipf/tools/ipnat.c
diff -r0 -r0 src/dist/ipf/tools/lexer.h
diff -r0 -r0 src/dist/ipf/tools/ipsyncs.c
diff -r0 -r0 src/dist/ipf/tools/ipfstat.c
diff -r0 -r0 src/dist/ipf/tools/ipftest.c
diff -r0 -r0 src/dist/ipf/tools/ippool.c
diff -r0 -r0 src/dist/ipf/tools/ipfcomp.c
diff -r0 -r0 src/dist/ipf/tools/ipsyncm.c
diff -r0 -r0 src/dist/ipf/tools/ipmon.c
diff -r0 -r0 src/dist/ipf/tools/lexer.c
diff -r0 -r0 src/dist/ipf/tools/ipmon_y.y
diff -r0 -r0 src/dist/ipf/tools/BNF.ipnat
diff -r0 -r0 src/dist/ipf/tools/BNF.ipf
diff -r0 -r0 src/dist/ipf/ipsend/arp.c
diff -r0 -r0 src/dist/ipf/ipsend/ipsend.c
diff -r0 -r0 src/dist/ipf/ipsend/ipresend.1
diff -r0 -r0 src/dist/ipf/ipsend/linux.h
diff -r0 -r0 src/dist/ipf/ipsend/ip.c
diff -r0 -r0 src/dist/ipf/ipsend/in_var.h
diff -r0 -r0 src/dist/ipf/ipsend/iptest.1
diff -r0 -r0 src/dist/ipf/ipsend/slinux.c
diff -r0 -r0 src/dist/ipf/ipsend/larp.c
diff -r0 -r0 src/dist/ipf/ipsend/dltest.h
diff -r0 -r0 src/dist/ipf/ipsend/ip_var.h
diff -r0 -r0 src/dist/ipf/ipsend/ipsend.h
diff -r0 -r0 src/dist/ipf/ipsend/Crashable
diff -r0 -r0 src/dist/ipf/ipsend/Makefile
diff -r0 -r0 src/dist/ipf/ipsend/iptest.c
diff -r0 -r0 src/dist/ipf/ipsend/ipsopt.c
diff -r0 -r0 src/dist/ipf/ipsend/tcpip.h
diff -r0 -r0 src/dist/ipf/ipsend/sockraw.c
diff -r0 -r0 src/dist/ipf/ipsend/README
diff -r0 -r0 src/dist/ipf/ipsend/resend.c
diff -r0 -r0 src/dist/ipf/ipsend/44arp.c
diff -r0 -r0 src/dist/ipf/ipsend/ipresend.c
diff -r0 -r0 src/dist/ipf/ipsend/lsock.c
diff -r0 -r0 src/dist/ipf/ipsend/ipsend.1
diff -r0 -r0 src/dist/ipf/test/natipftest
diff -r0 -r0 src/dist/ipf/test/itest
diff -r0 -r0 src/dist/ipf/test/nattest
diff -r0 -r0 src/dist/ipf/test/vfycksum.pl
diff -r0 -r0 src/dist/ipf/test/test.format
diff -r0 -r0 src/dist/ipf/test/bpftest
diff -r0 -r0 src/dist/ipf/test/README.TXT
diff -r0 -r0 src/dist/ipf/test/hextest
diff -r0 -r0 src/dist/ipf/test/iptest
diff -r0 -r0 src/dist/ipf/test/dotest6
diff -r0 -r0 src/dist/ipf/test/mhtest
diff -r0 -r0 src/dist/ipf/test/ptest
diff -r0 -r0 src/dist/ipf/test/Makefile
diff -r0 -r0 src/dist/ipf/test/intest
diff -r0 -r0 src/dist/ipf/test/dotest
diff -r0 -r0 src/dist/ipf/test/logtest
diff -r0 -r0 src/dist/ipf/test/mtest
diff -r0 -r0 src/dist/ipf/test/expected/ni21
diff -r0 -r0 src/dist/ipf/test/expected/f18
diff -r0 -r0 src/dist/ipf/test/expected/ip2
diff -r0 -r0 src/dist/ipf/test/expected/f7
diff -r0 -r0 src/dist/ipf/test/expected/f12
diff -r0 -r0 src/dist/ipf/test/expected/ni13
diff -r0 -r0 src/dist/ipf/test/expected/ni19
diff -r0 -r0 src/dist/ipf/test/expected/f20
diff -r0 -r0 src/dist/ipf/test/expected/ipv6.2
diff -r0 -r0 src/dist/ipf/test/expected/ni7
diff -r0 -r0 src/dist/ipf/test/expected/n7
diff -r0 -r0 src/dist/ipf/test/expected/n16
diff -r0 -r0 src/dist/ipf/test/expected/i19.dist
diff -r0 -r0 src/dist/ipf/test/expected/i17
diff -r0 -r0 src/dist/ipf/test/expected/in1
diff -r0 -r0 src/dist/ipf/test/expected/i10
diff -r0 -r0 src/dist/ipf/test/expected/in6
diff -r0 -r0 src/dist/ipf/test/expected/i7
diff -r0 -r0 src/dist/ipf/test/expected/n11
diff -r0 -r0 src/dist/ipf/test/expected/ipv6.5
diff -r0 -r0 src/dist/ipf/test/expected/ni14
diff -r0 -r0 src/dist/ipf/test/expected/l1
diff -r0 -r0 src/dist/ipf/test/expected/p3
diff -r0 -r0 src/dist/ipf/test/expected/f15
diff -r0 -r0 src/dist/ipf/test/expected/f11
diff -r0 -r0 src/dist/ipf/test/expected/f4
diff -r0 -r0 src/dist/ipf/test/expected/ip1
diff -r0 -r0 src/dist/ipf/test/expected/ni10
diff -r0 -r0 src/dist/ipf/test/expected/i9
diff -r0 -r0 src/dist/ipf/test/expected/i3
diff -r0 -r0 src/dist/ipf/test/expected/n4
diff -r0 -r0 src/dist/ipf/test/expected/ni4
diff -r0 -r0 src/dist/ipf/test/expected/ipv6.1
diff -r0 -r0 src/dist/ipf/test/expected/in2
diff -r0 -r0 src/dist/ipf/test/expected/l1.b
diff -r0 -r0 src/dist/ipf/test/expected/i14
diff -r0 -r0 src/dist/ipf/test/expected/in5
diff -r0 -r0 src/dist/ipf/test/expected/i13
diff -r0 -r0 src/dist/ipf/test/expected/ipv6.6
diff -r0 -r0 src/dist/ipf/test/expected/i21
diff -r0 -r0 src/dist/ipf/test/expected/ni9
diff -r0 -r0 src/dist/ipf/test/expected/n12
diff -r0 -r0 src/dist/ipf/test/expected/n9
diff -r0 -r0 src/dist/ipf/test/expected/n3
diff -r0 -r0 src/dist/ipf/test/expected/i4
diff -r0 -r0 src/dist/ipf/test/expected/n18
diff -r0 -r0 src/dist/ipf/test/expected/ni3
diff -r0 -r0 src/dist/ipf/test/expected/f24
diff -r0 -r0 src/dist/ipf/test/expected/bpf1
diff -r0 -r0 src/dist/ipf/test/expected/f16
diff -r0 -r0 src/dist/ipf/test/expected/f9
diff -r0 -r0 src/dist/ipf/test/expected/f3
diff -r0 -r0 src/dist/ipf/test/expected/ni15
diff -r0 -r0 src/dist/ipf/test/expected/p2
diff -r0 -r0 src/dist/ipf/test/expected/f14
diff -r0 -r0 src/dist/ipf/test/expected/f1
diff -r0 -r0 src/dist/ipf/test/expected/in7
diff -r0 -r0 src/dist/ipf/test/expected/i11
diff -r0 -r0 src/dist/ipf/test/expected/n10
diff -r0 -r0 src/dist/ipf/test/expected/n1
diff -r0 -r0 src/dist/ipf/test/expected/i6
diff -r0 -r0 src/dist/ipf/test/expected/ni1
diff -r0 -r0 src/dist/ipf/test/expected/i23
diff -r0 -r0 src/dist/ipf/test/expected/ipv6.3
diff -r0 -r0 src/dist/ipf/test/expected/n17
diff -r0 -r0 src/dist/ipf/test/expected/i1
diff -r0 -r0 src/dist/ipf/test/expected/n6
diff -r0 -r0 src/dist/ipf/test/expected/ni6
diff -r0 -r0 src/dist/ipf/test/expected/i16
diff -r0 -r0 src/dist/ipf/test/expected/f13
diff -r0 -r0 src/dist/ipf/test/expected/f6
diff -r0 -r0 src/dist/ipf/test/expected/ni20
diff -r0 -r0 src/dist/ipf/test/expected/f19
diff -r0 -r0 src/dist/ipf/test/expected/p5
diff -r0 -r0 src/dist/ipf/test/expected/ni12
diff -r0 -r0 src/dist/ipf/test/expected/p1
diff -r0 -r0 src/dist/ipf/test/expected/ni16
diff -r0 -r0 src/dist/ipf/test/expected/f2
diff -r0 -r0 src/dist/ipf/test/expected/f8
diff -r0 -r0 src/dist/ipf/test/expected/f17
diff -r0 -r0 src/dist/ipf/test/expected/i12
diff -r0 -r0 src/dist/ipf/test/expected/in4
diff -r0 -r0 src/dist/ipf/test/expected/i18
diff -r0 -r0 src/dist/ipf/test/expected/i20
diff -r0 -r0 src/dist/ipf/test/expected/ni2
diff -r0 -r0 src/dist/ipf/test/expected/i5
diff -r0 -r0 src/dist/ipf/test/expected/n2
diff -r0 -r0 src/dist/ipf/test/expected/n8
diff -r0 -r0 src/dist/ipf/test/expected/n13
diff -r0 -r0 src/dist/ipf/test/expected/ni8
diff -r0 -r0 src/dist/ipf/test/expected/Makefile
diff -r0 -r0 src/dist/ipf/test/expected/ni5
diff -r0 -r0 src/dist/ipf/test/expected/n5
diff -r0 -r0 src/dist/ipf/test/expected/i2
diff -r0 -r0 src/dist/ipf/test/expected/n14
diff -r0 -r0 src/dist/ipf/test/expected/i8
diff -r0 -r0 src/dist/ipf/test/expected/i15
diff -r0 -r0 src/dist/ipf/test/expected/in3
diff -r0 -r0 src/dist/ipf/test/expected/ni23
diff -r0 -r0 src/dist/ipf/test/expected/f5
diff -r0 -r0 src/dist/ipf/test/expected/f10
diff -r0 -r0 src/dist/ipf/test/expected/ni11
diff -r0 -r0 src/dist/ipf/test/expected/bpf-f1
diff -r0 -r0 src/dist/ipf/test/regress/n11
diff -r0 -r0 src/dist/ipf/test/regress/f1
diff -r0 -r0 src/dist/ipf/test/regress/i10
diff -r0 -r0 src/dist/ipf/test/regress/p3.pool
diff -r0 -r0 src/dist/ipf/test/regress/in6
diff -r0 -r0 src/dist/ipf/test/regress/i6
diff -r0 -r0 src/dist/ipf/test/regress/n1
diff -r0 -r0 src/dist/ipf/test/regress/f15
diff -r0 -r0 src/dist/ipf/test/regress/ipv6.2
diff -r0 -r0 src/dist/ipf/test/regress/ni2.nat
diff -r0 -r0 src/dist/ipf/test/regress/ipv6.5
diff -r0 -r0 src/dist/ipf/test/regress/f20
diff -r0 -r0 src/dist/ipf/test/regress/ni19.nat
diff -r0 -r0 src/dist/ipf/test/regress/ni5.nat
diff -r0 -r0 src/dist/ipf/test/regress/p3.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni23.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni17.nat
diff -r0 -r0 src/dist/ipf/test/regress/ni10.nat
diff -r0 -r0 src/dist/ipf/test/regress/f18
diff -r0 -r0 src/dist/ipf/test/regress/ip2
diff -r0 -r0 src/dist/ipf/test/regress/f12
diff -r0 -r0 src/dist/ipf/test/regress/n6
diff -r0 -r0 src/dist/ipf/test/regress/i1
diff -r0 -r0 src/dist/ipf/test/regress/ni11.ipf
diff -r0 -r0 src/dist/ipf/test/regress/i17
diff -r0 -r0 src/dist/ipf/test/regress/in1
diff -r0 -r0 src/dist/ipf/test/regress/ni16.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni4.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni3.ipf
diff -r0 -r0 src/dist/ipf/test/regress/n16
diff -r0 -r0 src/dist/ipf/test/regress/f6
diff -r0 -r0 src/dist/ipf/test/regress/i21
diff -r0 -r0 src/dist/ipf/test/regress/f2
diff -r0 -r0 src/dist/ipf/test/regress/n12
diff -r0 -r0 src/dist/ipf/test/regress/n18
diff -r0 -r0 src/dist/ipf/test/regress/f8
diff -r0 -r0 src/dist/ipf/test/regress/i19
diff -r0 -r0 src/dist/ipf/test/regress/in5
diff -r0 -r0 src/dist/ipf/test/regress/bpf1
diff -r0 -r0 src/dist/ipf/test/regress/i13
diff -r0 -r0 src/dist/ipf/test/regress/n2
diff -r0 -r0 src/dist/ipf/test/regress/f16
diff -r0 -r0 src/dist/ipf/test/regress/i5
diff -r0 -r0 src/dist/ipf/test/regress/n8
diff -r0 -r0 src/dist/ipf/test/regress/f24
diff -r0 -r0 src/dist/ipf/test/regress/ipv6.1
diff -r0 -r0 src/dist/ipf/test/regress/ni2.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ipv6.6
diff -r0 -r0 src/dist/ipf/test/regress/ni5.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni19.ipf
diff -r0 -r0 src/dist/ipf/test/regress/i2
diff -r0 -r0 src/dist/ipf/test/regress/f11
diff -r0 -r0 src/dist/ipf/test/regress/n5
diff -r0 -r0 src/dist/ipf/test/regress/ip1
diff -r0 -r0 src/dist/ipf/test/regress/ni23.nat
diff -r0 -r0 src/dist/ipf/test/regress/i8
diff -r0 -r0 src/dist/ipf/test/regress/ni10.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni11.nat
diff -r0 -r0 src/dist/ipf/test/regress/p5.ipf
diff -r0 -r0 src/dist/ipf/test/regress/p2.ipf
diff -r0 -r0 src/dist/ipf/test/regress/in2
diff -r0 -r0 src/dist/ipf/test/regress/ni16.nat
diff -r0 -r0 src/dist/ipf/test/regress/i14
diff -r0 -r0 src/dist/ipf/test/regress/f5
diff -r0 -r0 src/dist/ipf/test/regress/ni4.nat
diff -r0 -r0 src/dist/ipf/test/regress/ni3.nat
diff -r0 -r0 src/dist/ipf/test/regress/ni6.ipf
diff -r0 -r0 src/dist/ipf/test/regress/i16
diff -r0 -r0 src/dist/ipf/test/regress/f7
diff -r0 -r0 src/dist/ipf/test/regress/ni1.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni13.ipf
diff -r0 -r0 src/dist/ipf/test/regress/n17
diff -r0 -r0 src/dist/ipf/test/regress/ni8.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni14.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni20.nat
diff -r0 -r0 src/dist/ipf/test/regress/p1.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni15.nat
diff -r0 -r0 src/dist/ipf/test/regress/ni21.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni9.nat
diff -r0 -r0 src/dist/ipf/test/regress/ni12.nat
diff -r0 -r0 src/dist/ipf/test/regress/f13
diff -r0 -r0 src/dist/ipf/test/regress/n7
diff -r0 -r0 src/dist/ipf/test/regress/ni7.nat
diff -r0 -r0 src/dist/ipf/test/regress/f19
diff -r0 -r0 src/dist/ipf/test/regress/f14
diff -r0 -r0 src/dist/ipf/test/regress/i7
diff -r0 -r0 src/dist/ipf/test/regress/ipv6.3
diff -r0 -r0 src/dist/ipf/test/regress/n10
diff -r0 -r0 src/dist/ipf/test/regress/i23
diff -r0 -r0 src/dist/ipf/test/regress/l1
diff -r0 -r0 src/dist/ipf/test/regress/in7
diff -r0 -r0 src/dist/ipf/test/regress/i11
diff -r0 -r0 src/dist/ipf/test/regress/ni6.nat
diff -r0 -r0 src/dist/ipf/test/regress/i15
diff -r0 -r0 src/dist/ipf/test/regress/ni1.nat
diff -r0 -r0 src/dist/ipf/test/regress/in3
diff -r0 -r0 src/dist/ipf/test/regress/ni13.nat
diff -r0 -r0 src/dist/ipf/test/regress/n14
diff -r0 -r0 src/dist/ipf/test/regress/f4
diff -r0 -r0 src/dist/ipf/test/regress/ni14.nat
diff -r0 -r0 src/dist/ipf/test/regress/ni20.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni8.nat
diff -r0 -r0 src/dist/ipf/test/regress/p1.pool
diff -r0 -r0 src/dist/ipf/test/regress/ni9.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni15.ipf
diff -r0 -r0 src/dist/ipf/test/regress/ni21.nat
diff -r0 -r0 src/dist/ipf/test/regress/ni12.ipf
diff -r0 -r0 src/dist/ipf/test/regress/i9
diff -r0 -r0 src/dist/ipf/test/regress/p5.pool
diff -r0 -r0 src/dist/ipf/test/regress/f10
diff -r0 -r0 src/dist/ipf/test/regress/n4
diff -r0 -r0 src/dist/ipf/test/regress/i3
diff -r0 -r0 src/dist/ipf/test/regress/ni7.ipf
diff -r0 -r0 src/dist/ipf/test/regress/n9
diff -r0 -r0 src/dist/ipf/test/regress/i4
diff -r0 -r0 src/dist/ipf/test/regress/n3
diff -r0 -r0 src/dist/ipf/test/regress/f17
diff -r0 -r0 src/dist/ipf/test/regress/i20
diff -r0 -r0 src/dist/ipf/test/regress/f9
diff -r0 -r0 src/dist/ipf/test/regress/n13
diff -r0 -r0 src/dist/ipf/test/regress/bpf-f1
diff -r0 -r0 src/dist/ipf/test/regress/f3
diff -r0 -r0 src/dist/ipf/test/regress/i12
diff -r0 -r0 src/dist/ipf/test/regress/in4
diff -r0 -r0 src/dist/ipf/test/regress/i18
diff -r0 -r0 src/dist/ipf/test/input/n9
diff -r0 -r0 src/dist/ipf/test/input/n3
diff -r0 -r0 src/dist/ipf/test/input/n13
diff -r0 -r0 src/dist/ipf/test/input/ni8
diff -r0 -r0 src/dist/ipf/test/input/ni2
diff -r0 -r0 src/dist/ipf/test/input/f9
diff -r0 -r0 src/dist/ipf/test/input/f3
diff -r0 -r0 src/dist/ipf/test/input/ipv6.3
diff -r0 -r0 src/dist/ipf/test/input/f17
diff -r0 -r0 src/dist/ipf/test/input/ni16
diff -r0 -r0 src/dist/ipf/test/input/f10
diff -r0 -r0 src/dist/ipf/test/input/ni11
diff -r0 -r0 src/dist/ipf/test/input/ni23
diff -r0 -r0 src/dist/ipf/test/input/f4
diff -r0 -r0 src/dist/ipf/test/input/n14
diff -r0 -r0 src/dist/ipf/test/input/ni5
diff -r0 -r0 src/dist/ipf/test/input/n4
diff -r0 -r0 src/dist/ipf/test/input/ni1
diff -r0 -r0 src/dist/ipf/test/input/n10
diff -r0 -r0 src/dist/ipf/test/input/p3
diff -r0 -r0 src/dist/ipf/test/input/ni15
diff -r0 -r0 src/dist/ipf/test/input/l1
diff -r0 -r0 src/dist/ipf/test/input/f14
diff -r0 -r0 src/dist/ipf/test/input/ni12
diff -r0 -r0 src/dist/ipf/test/input/f19
diff -r0 -r0 src/dist/ipf/test/input/f13
diff -r0 -r0 src/dist/ipf/test/input/f7
diff -r0 -r0 src/dist/ipf/test/input/ni20
diff -r0 -r0 src/dist/ipf/test/input/ni6
diff -r0 -r0 src/dist/ipf/test/input/n17
diff -r0 -r0 src/dist/ipf/test/input/n7
diff -r0 -r0 src/dist/ipf/test/input/ni4
diff -r0 -r0 src/dist/ipf/test/input/n5
diff -r0 -r0 src/dist/ipf/test/input/ni10
diff -r0 -r0 src/dist/ipf/test/input/f11
diff -r0 -r0 src/dist/ipf/test/input/ipv6.5
diff -r0 -r0 src/dist/ipf/test/input/f5
diff -r0 -r0 src/dist/ipf/test/input/f2
diff -r0 -r0 src/dist/ipf/test/input/f8
diff -r0 -r0 src/dist/ipf/test/input/f24
diff -r0 -r0 src/dist/ipf/test/input/ipv6.2
diff -r0 -r0 src/dist/ipf/test/input/ni17
diff -r0 -r0 src/dist/ipf/test/input/f16
diff -r0 -r0 src/dist/ipf/test/input/p1
diff -r0 -r0 src/dist/ipf/test/input/n2
diff -r0 -r0 src/dist/ipf/test/input/ip2.data
diff -r0 -r0 src/dist/ipf/test/input/n8
diff -r0 -r0 src/dist/ipf/test/input/n18
diff -r0 -r0 src/dist/ipf/test/input/ni3
diff -r0 -r0 src/dist/ipf/test/input/ni9
diff -r0 -r0 src/dist/ipf/test/input/n12
diff -r0 -r0 src/dist/ipf/test/input/n16
diff -r0 -r0 src/dist/ipf/test/input/ni7
diff -r0 -r0 src/dist/ipf/test/input/n6
diff -r0 -r0 src/dist/ipf/test/input/ni19
diff -r0 -r0 src/dist/ipf/test/input/f12
diff -r0 -r0 src/dist/ipf/test/input/f18
diff -r0 -r0 src/dist/ipf/test/input/ni13
diff -r0 -r0 src/dist/ipf/test/input/p5
diff -r0 -r0 src/dist/ipf/test/input/f20
diff -r0 -r0 src/dist/ipf/test/input/ni21
diff -r0 -r0 src/dist/ipf/test/input/f6
diff -r0 -r0 src/dist/ipf/test/input/ipv6.6
diff -r0 -r0 src/dist/ipf/test/input/ipv6.1
diff -r0 -r0 src/dist/ipf/test/input/f1
diff -r0 -r0 src/dist/ipf/test/input/p2
diff -r0 -r0 src/dist/ipf/test/input/f15
diff -r0 -r0 src/dist/ipf/test/input/ni14
diff -r0 -r0 src/dist/ipf/test/input/n1
diff -r0 -r0 src/dist/ipf/test/input/n11
diff -r0 -r0 src/dist/ipf/iplang/iplang.h
diff -r0 -r0 src/dist/ipf/iplang/iplang_l.l
diff -r0 -r0 src/dist/ipf/iplang/iplang.tst
diff -r0 -r0 src/dist/ipf/iplang/Makefile
diff -r0 -r0 src/dist/ipf/iplang/BNF
diff -r0 -r0 src/dist/ipf/man/ipl.4
diff -r0 -r0 src/dist/ipf/man/ipscan.5
diff -r0 -r0 src/dist/ipf/man/ipfs.8
diff -r0 -r0 src/dist/ipf/man/ipfilter.5
diff -r0 -r0 src/dist/ipf/man/ipscan.8
diff -r0 -r0 src/dist/ipf/man/mkfilters.1
diff -r0 -r0 src/dist/ipf/man/ipnat.8
diff -r0 -r0 src/dist/ipf/man/ipftest.1
diff -r0 -r0 src/dist/ipf/man/ipf.8
diff -r0 -r0 src/dist/ipf/man/ipfilter.4.mandoc
diff -r0 -r0 src/dist/ipf/man/ippool.5
diff -r0 -r0 src/dist/ipf/man/ipmon.5
diff -r0 -r0 src/dist/ipf/man/Makefile
diff -r0 -r0 src/dist/ipf/man/ipmon.8
diff -r0 -r0 src/dist/ipf/man/ipnat.4
diff -r0 -r0 src/dist/ipf/man/ippool.8
diff -r0 -r0 src/dist/ipf/l4check/l4check.conf
diff -r0 -r0 src/dist/ipf/l4check/l4check.c
diff -r0 -r0 src/dist/ipf/l4check/http.ok
diff -r0 -r0 src/dist/ipf/l4check/Makefile
diff -r0 -r0 src/dist/ipf/l4check/http.check
diff -r0 -r0 src/dist/ipf/FWTK/fwtk_transparent.diff
diff -r0 -r0 src/dist/ipf/FWTK/README
diff -r0 -r0 src/dist/ipf/FWTK/fwtkp
diff -r0 -r0 src/dist/ipf/FWTK/README.ipfilter
diff -r0 -r0 src/dist/ipf/FWTK/ftp-gw.diff
diff -r0 -r0 src/dist/ipf/FWTK/Index
diff -r0 -r0 src/dist/ipf/samples/userauth.c
diff -r0 -r0 src/dist/ipf/samples/relay.c
diff -r0 -r0 src/dist/ipf/samples/ipfilter-pb.gif
diff -r0 -r0 src/dist/ipf/samples/proxy.c
diff -r0 -r0 src/dist/ipf/samples/Makefile
diff -r0 -r0 src/dist/ipf/NetBSD-1.2/files.oldconf-PATCH
diff -r0 -r0 src/dist/ipf/NetBSD-1.2/ip_input.c-PATCH
diff -r0 -r0 src/dist/ipf/NetBSD-1.2/in_proto.c-PATCH
diff -r0 -r0 src/dist/ipf/NetBSD-1.2/minstall
diff -r0 -r0 src/dist/ipf/NetBSD-1.2/conf.c-PATCH
diff -r0 -r0 src/dist/ipf/NetBSD-1.2/files-PATCH
diff -r0 -r0 src/dist/ipf/NetBSD-1.2/ip_output.c-PATCH
diff -r0 -r0 src/dist/ipf/NetBSD-1.2/kinstall
diff -r0 -r0 src/dist/ipf/etc/protocols
diff -r0 -r0 src/dist/ipf/etc/services
diff -r0 -r0 src/dist/ipf/ipsd/ipsd.c
diff -r0 -r0 src/dist/ipf/ipsd/slinux.c
diff -r0 -r0 src/dist/ipf/ipsd/README
diff -r0 -r0 src/dist/ipf/ipsd/sdlpi.c
diff -r0 -r0 src/dist/ipf/ipsd/snit.c
diff -r0 -r0 src/dist/ipf/ipsd/linux.h
diff -r0 -r0 src/dist/ipf/ipsd/ipsdr.c
diff -r0 -r0 src/dist/ipf/ipsd/ipsd.h
diff -r0 -r0 src/dist/ipf/ipsd/sbpf.c
diff -r0 -r0 src/dist/ipf/ipsd/Makefile
diff -r0 -r0 src/dist/ipf/ipsd/Celler/ip_compat.h
diff -r0 -r0 src/dist/ipf/perl/plog
diff -r0 -r0 src/dist/ipf/perl/Services
diff -r0 -r0 src/dist/ipf/perl/Ipfanaly.pl
diff -r0 -r0 src/dist/ipf/perl/Isbgraph
diff -r0 -r0 src/dist/ipf/perl/LICENSE
diff -r0 -r0 src/dist/ipf/perl/logfilter.pl
diff -r0 -r0 src/dist/ipf/perl/ipfmeta.pl
diff -r0 -r0 src/dist/ipf/perl/ipf-mrtg.pl
diff -r0 -r0 src/dist/ipf/NetBSD/ip_output.c.diffs
diff -r0 -r0 src/dist/ipf/NetBSD/files.diffs
diff -r0 -r0 src/dist/ipf/NetBSD/files.oldconf.diffs
diff -r0 -r0 src/dist/ipf/NetBSD/files.newconf.diffs
diff -r0 -r0 src/dist/ipf/NetBSD/conf.c.diffs
diff -r0 -r0 src/dist/ipf/NetBSD/conf.c.old.diffs
diff -r0 -r0 src/dist/ipf/NetBSD/in_proto.c.old.diffs
diff -r0 -r0 src/dist/ipf/NetBSD/ip_input.c.diffs
diff -r0 -r0 src/dist/ipf/NetBSD/filez.diffs
diff -r0 -r0 src/dist/ipf/NetBSD/in_proto.c.diffs
diff -r0 -r0 src/dist/ipf/NetBSD/unminstall
diff -r0 -r0 src/dist/ipf/NetBSD/minstall
diff -r0 -r0 src/dist/ipf/NetBSD/unkinstall
diff -r0 -r0 src/dist/ipf/NetBSD/kinstall
diff -r0 -r0 src/dist/ipf/rules/example.12
diff -r0 -r0 src/dist/ipf/rules/firewall
diff -r0 -r0 src/dist/ipf/rules/ftp-proxy
diff -r0 -r0 src/dist/ipf/rules/tcpstate
diff -r0 -r0 src/dist/ipf/rules/example.7
diff -r0 -r0 src/dist/ipf/rules/ip_rules
diff -r0 -r0 src/dist/ipf/rules/BASIC.NAT
diff -r0 -r0 src/dist/ipf/rules/example.11
diff -r0 -r0 src/dist/ipf/rules/example.sr
diff -r0 -r0 src/dist/ipf/rules/nat.eg
diff -r0 -r0 src/dist/ipf/rules/BASIC_1.FW
diff -r0 -r0 src/dist/ipf/rules/example.9
diff -r0 -r0 src/dist/ipf/rules/example.3
diff -r0 -r0 src/dist/ipf/rules/pool.conf
diff -r0 -r0 src/dist/ipf/rules/example.4
diff -r0 -r0 src/dist/ipf/rules/nat-setup
diff -r0 -r0 src/dist/ipf/rules/BASIC_2.FW
diff -r0 -r0 src/dist/ipf/rules/server
diff -r0 -r0 src/dist/ipf/rules/example.6
diff -r0 -r0 src/dist/ipf/rules/ipmon.conf
diff -r0 -r0 src/dist/ipf/rules/example.1
diff -r0 -r0 src/dist/ipf/rules/example.13
diff -r0 -r0 src/dist/ipf/rules/example.5
diff -r0 -r0 src/dist/ipf/rules/example.2
diff -r0 -r0 src/dist/ipf/rules/example.8
diff -r0 -r0 src/dist/ipf/rules/ftppxy
diff -r0 -r0 src/dist/ipf/rules/example.10
diff -r0 -r0 src/dist/ipf/lib/facpri.h
diff -r0 -r0 src/dist/ipf/lib/printbuf.c
diff -r0 -r0 src/dist/ipf/lib/printfraginfo.c
diff -r0 -r0 src/dist/ipf/lib/addipopt.c
diff -r0 -r0 src/dist/ipf/lib/printhash_live.c
diff -r0 -r0 src/dist/ipf/lib/remove_poolnode.c
diff -r0 -r0 src/dist/ipf/lib/printportcmp.c
diff -r0 -r0 src/dist/ipf/lib/kvatoname.c
diff -r0 -r0 src/dist/ipf/lib/fill6bits.c
diff -r0 -r0 src/dist/ipf/lib/tcpflags.c
diff -r0 -r0 src/dist/ipf/lib/printnat.c
diff -r0 -r0 src/dist/ipf/lib/ipoptsec.c
diff -r0 -r0 src/dist/ipf/lib/tcp_flags.c
diff -r0 -r0 src/dist/ipf/lib/ipft_sn.c
diff -r0 -r0 src/dist/ipf/lib/optname.c
diff -r0 -r0 src/dist/ipf/lib/ipft_tx.c
diff -r0 -r0 src/dist/ipf/lib/load_hash.c
diff -r0 -r0 src/dist/ipf/lib/printactivenat.c
diff -r0 -r0 src/dist/ipf/lib/buildopts.c
diff -r0 -r0 src/dist/ipf/lib/debug.c
diff -r0 -r0 src/dist/ipf/lib/optvalue.c
diff -r0 -r0 src/dist/ipf/lib/kmem.h
diff -r0 -r0 src/dist/ipf/lib/optprintv6.c
diff -r0 -r0 src/dist/ipf/lib/nat_setgroupmap.c
diff -r0 -r0 src/dist/ipf/lib/portname.c
diff -r0 -r0 src/dist/ipf/lib/ipft_ef.c
diff -r0 -r0 src/dist/ipf/lib/load_url.c
diff -r0 -r0 src/dist/ipf/lib/remove_hashnode.c
diff -r0 -r0 src/dist/ipf/lib/print_toif.c
diff -r0 -r0 src/dist/ipf/lib/kmemcpywrap.c
diff -r0 -r0 src/dist/ipf/lib/checkrev.c
diff -r0 -r0 src/dist/ipf/lib/load_pool.c
diff -r0 -r0 src/dist/ipf/lib/getsumd.c
diff -r0 -r0 src/dist/ipf/lib/binprint.c
diff -r0 -r0 src/dist/ipf/lib/printifname.c
diff -r0 -r0 src/dist/ipf/lib/printip.c
diff -r0 -r0 src/dist/ipf/lib/verbose.c
diff -r0 -r0 src/dist/ipf/lib/initparse.c
diff -r0 -r0 src/dist/ipf/lib/getifname.c
diff -r0 -r0 src/dist/ipf/lib/printpoolnode.c
diff -r0 -r0 src/dist/ipf/lib/resetlexer.c
diff -r0 -r0 src/dist/ipf/lib/rwlock_emul.c
diff -r0 -r0 src/dist/ipf/lib/flags.c
diff -r0 -r0 src/dist/ipf/lib/nametokva.c
diff -r0 -r0 src/dist/ipf/lib/printhashdata.c
diff -r0 -r0 src/dist/ipf/lib/printpool.c
diff -r0 -r0 src/dist/ipf/lib/printaps.c
diff -r0 -r0 src/dist/ipf/lib/printhostmap.c
diff -r0 -r0 src/dist/ipf/lib/getnattype.c
diff -r0 -r0 src/dist/ipf/lib/addicmp.c
diff -r0 -r0 src/dist/ipf/lib/load_poolnode.c
diff -r0 -r0 src/dist/ipf/lib/printlog.c
diff -r0 -r0 src/dist/ipf/lib/v6optvalue.c
diff -r0 -r0 src/dist/ipf/lib/count6bits.c
diff -r0 -r0 src/dist/ipf/lib/optprint.c
diff -r0 -r0 src/dist/ipf/lib/remove_pool.c
diff -r0 -r0 src/dist/ipf/lib/mutex_emul.c
diff -r0 -r0 src/dist/ipf/lib/ionames.c
diff -r0 -r0 src/dist/ipf/lib/printpacket6.c
diff -r0 -r0 src/dist/ipf/lib/printfr.c
diff -r0 -r0 src/dist/ipf/lib/bcopywrap.c
diff -r0 -r0 src/dist/ipf/lib/Makefile
diff -r0 -r0 src/dist/ipf/lib/ipft_pc.c
diff -r0 -r0 src/dist/ipf/lib/printtqtable.c
diff -r0 -r0 src/dist/ipf/lib/printpacket.c
diff -r0 -r0 src/dist/ipf/lib/printhashnode.c
diff -r0 -r0 src/dist/ipf/lib/ntomask.c
diff -r0 -r0 src/dist/ipf/lib/printhostmask.c
diff -r0 -r0 src/dist/ipf/lib/load_file.c
diff -r0 -r0 src/dist/ipf/lib/load_http.c
diff -r0 -r0 src/dist/ipf/lib/icmpcode.c
diff -r0 -r0 src/dist/ipf/lib/inet_addr.c
diff -r0 -r0 src/dist/ipf/lib/printhash.c
diff -r0 -r0 src/dist/ipf/lib/printpooldata.c
diff -r0 -r0 src/dist/ipf/lib/gethost.c
diff -r0 -r0 src/dist/ipf/lib/printtunable.c
diff -r0 -r0 src/dist/ipf/lib/printpool_live.c
diff -r0 -r0 src/dist/ipf/lib/ipft_hx.c
diff -r0 -r0 src/dist/ipf/lib/load_hashnode.c
diff -r0 -r0 src/dist/ipf/lib/count4bits.c
diff -r0 -r0 src/dist/ipf/lib/alist_free.c
diff -r0 -r0 src/dist/ipf/lib/printproto.c
diff -r0 -r0 src/dist/ipf/lib/alist_new.c
diff -r0 -r0 src/dist/ipf/lib/remove_hash.c
diff -r0 -r0 src/dist/ipf/lib/kmem.c
diff -r0 -r0 src/dist/ipf/lib/printmask.c

File Deleted: src/dist/ipf/Attic/ipf.h

File Deleted: src/dist/ipf/Attic/ip_rpcb_pxy.c

File Deleted: src/dist/ipf/Attic/ip_scan.c

File Deleted: src/dist/ipf/Attic/mlo_ipl.c

File Deleted: src/dist/ipf/Attic/ipmon.h

File Deleted: src/dist/ipf/Attic/mls_rule.c

File Deleted: src/dist/ipf/Attic/mlf_rule.c

File Deleted: src/dist/ipf/Attic/ip_proxy.c

File Deleted: src/dist/ipf/Attic/WhatsNew40.txt

File Deleted: src/dist/ipf/Attic/ip_ipsec_pxy.c

File Deleted: src/dist/ipf/Attic/bpf-ipf.h

File Deleted: src/dist/ipf/Attic/pcap-ipf.h

File Deleted: src/dist/ipf/Attic/mln_ipl.c

File Deleted: src/dist/ipf/Attic/Y2K

File Deleted: src/dist/ipf/Attic/md5.h

File Deleted: src/dist/ipf/Attic/ip_frag.h

File Deleted: src/dist/ipf/Attic/QNX_OCL.txt

File Deleted: src/dist/ipf/Attic/ml_ipl.c

File Deleted: src/dist/ipf/Attic/BugReport

File Deleted: src/dist/ipf/Attic/radix_ipf.h

File Deleted: src/dist/ipf/Attic/ip_sync.c

File Deleted: src/dist/ipf/Attic/mlso_rule.c

File Deleted: src/dist/ipf/Attic/ip_h323_pxy.c

File Deleted: src/dist/ipf/Attic/mlo_rule.c

File Deleted: src/dist/ipf/Attic/ip_pptp_pxy.c

File Deleted: src/dist/ipf/Attic/IPFILTER.LICENCE

File Deleted: src/dist/ipf/Attic/snoop.h

File Deleted: src/dist/ipf/Attic/ip_htable.c

File Deleted: src/dist/ipf/Attic/ip_pool.h

File Deleted: src/dist/ipf/Attic/ip_auth.h

File Deleted: src/dist/ipf/Attic/mlfk_rule.c

File Deleted: src/dist/ipf/Attic/linux.h

File Deleted: src/dist/ipf/Attic/mls_ipl.c

File Deleted: src/dist/ipf/Attic/ip_irc_pxy.c

File Deleted: src/dist/ipf/Attic/md5.c

File Deleted: src/dist/ipf/Attic/ip_frag.c

File Deleted: src/dist/ipf/Attic/ip_proxy.h

File Deleted: src/dist/ipf/Attic/ip_rcmd_pxy.c

File Deleted: src/dist/ipf/Attic/ipt.h

File Deleted: src/dist/ipf/Attic/README

File Deleted: src/dist/ipf/Attic/ip_lookup.h

File Deleted: src/dist/ipf/Attic/mkfilters

File Deleted: src/dist/ipf/Attic/mlf_ipl.c

File Deleted: src/dist/ipf/Attic/STYLE.TXT

File Deleted: src/dist/ipf/Attic/ip_ftp_pxy.c

File Deleted: src/dist/ipf/Attic/bpf_filter.c

File Deleted: src/dist/ipf/Attic/mln_rule.c

File Deleted: src/dist/ipf/Attic/ip_scan.h

File Deleted: src/dist/ipf/Attic/ip_pool.c

File Deleted: src/dist/ipf/Attic/ip_netbios_pxy.c

File Deleted: src/dist/ipf/Attic/BNF

File Deleted: src/dist/ipf/Attic/ip_nat.h

File Deleted: src/dist/ipf/Attic/IMPORTANT

File Deleted: src/dist/ipf/Attic/mlh_rule.c

File Deleted: src/dist/ipf/Attic/todo

File Deleted: src/dist/ipf/Attic/opts.h

File Deleted: src/dist/ipf/Attic/bsdinstall

File Deleted: src/dist/ipf/Attic/arc4random.c

File Deleted: src/dist/ipf/Attic/buildsunos

File Deleted: src/dist/ipf/Attic/ip_raudio_pxy.c

File Deleted: src/dist/ipf/Attic/ip_htable.h

File Deleted: src/dist/ipf/Attic/mli_ipl.c

File Deleted: src/dist/ipf/Attic/solaris.c

File Deleted: src/dist/ipf/Attic/hpux.c

File Deleted: src/dist/ipf/Attic/ip_sync.h

File Deleted: src/dist/ipf/Attic/kmem.h

File Added: src/dist/ipf/Attic/ip_fil_compat.c
/*	$NetBSD$	*/

/*
 * Copyright (C) 2010 by Darren Reed.
 *
 * See the IPFILTER.LICENCE file for details on licencing.
 */
#if defined(KERNEL) || defined(_KERNEL)
# undef KERNEL
# undef _KERNEL
# define        KERNEL	1
# define        _KERNEL	1
#endif
#if defined(__osf__)
# define _PROTO_NET_H_
#endif
#include <sys/param.h>
#include <sys/errno.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/file.h>
#if __FreeBSD_version >= 220000 && defined(_KERNEL)
# include <sys/fcntl.h>
# include <sys/filio.h>
#else
# include <sys/ioctl.h>
#endif
#if !defined(_KERNEL)
# include <string.h>
# define _KERNEL
# ifdef __OpenBSD__
struct file;
# endif
# include <sys/uio.h>
# undef _KERNEL
#endif
#include <sys/socket.h>
#if (defined(__osf__) || defined(AIX) || defined(__hpux) || defined(__sgi)) && defined(_KERNEL)
# include "radix_ipf_local.h"
# define _RADIX_H_
#endif
#include <net/if.h>
#if defined(__FreeBSD__)
#  include <sys/cdefs.h>
#  include <sys/proc.h>
#endif
#if defined(_KERNEL)
# include <sys/systm.h>
# if !defined(__SVR4) && !defined(__svr4__)
#  include <sys/mbuf.h>
# endif
#endif
#include <netinet/in.h>

#include "netinet/ip_compat.h"
#include "netinet/ip_fil.h"
#include "netinet/ip_pool.h"
#include "netinet/ip_htable.h"
#include "netinet/ip_lookup.h"
#include "netinet/ip_nat.h"
#include "netinet/ip_state.h"
#include "netinet/ip_proxy.h"
#include "netinet/ip_auth.h"
/* END OF INCLUDES */

/*
 * NetBSD has moved to 64bit time_t for all architectures.
 * For some, such as sparc64, there is no change because long is already
 * 64bit, but for others (i386), there is...
 */
#ifdef IPFILTER_COMPAT

# ifdef __NetBSD__
typedef struct timeval_l {
	long	tv_sec;
	long	tv_usec;
} timeval_l_t;
# endif

/* ------------------------------------------------------------------------ */

/*
 * 4.1.34 changed the size of the time structure used for pps (current)
 * 4.1.16 moved the location of fr_flineno
 * 4.1.0 base version
 */
typedef	struct	frentry_4_1_16 {
	ipfmutex_t	fr_lock;
	struct	frentry	*fr_next;
	struct	frentry	**fr_grp;
	struct	ipscan	*fr_isc;
	void	*fr_ifas[4];
	void	*fr_ptr;
	char	*fr_comment;
	int	fr_ref;
	int	fr_statecnt;
	int	fr_flineno;
	U_QUAD_T	fr_hits;
	U_QUAD_T	fr_bytes;
	union {
#ifdef __NetBSD__
		timeval_l_t	frp_lastpkt;
#else
		struct timeval	frp_lastpkt;
#endif
	} fr_lpu;
	int		fr_curpps;
	union	{
		void		*fru_data;
		caddr_t		fru_caddr;
		fripf_t		*fru_ipf;
		frentfunc_t	fru_func;
	} fr_dun;
	ipfunc_t fr_func;
	int	fr_dsize;
	int	fr_pps;
	int	fr_statemax;
	u_32_t	fr_type;
	u_32_t	fr_flags;
	u_32_t	fr_logtag;
	u_32_t	fr_collect;
	u_int	fr_arg;
	u_int	fr_loglevel;
	u_int	fr_age[2];
	u_char	fr_v;
	u_char	fr_icode;
	char	fr_group[FR_GROUPLEN];
	char	fr_grhead[FR_GROUPLEN];
	ipftag_t fr_nattag;
	char	fr_ifnames[4][LIFNAMSIZ];
	char	fr_isctag[16];
	frdest_t fr_tifs[2];
	frdest_t fr_dif;
	u_int	fr_cksum;
} frentry_4_1_16_t;

typedef	struct	frentry_4_1_0 {
	ipfmutex_t	fr_lock;
	struct	frentry	*fr_next;
	struct	frentry	**fr_grp;
	struct	ipscan	*fr_isc;
	void	*fr_ifas[4];
	void	*fr_ptr;
	char	*fr_comment;
	int	fr_ref;
	int	fr_statecnt;
	U_QUAD_T	fr_hits;
	U_QUAD_T	fr_bytes;
	union {
#ifdef __NetBSD__
		timeval_l_t	frp_lastpkt;
#else
		struct timeval	frp_lastpkt;
#endif
	} fr_lpu;
	int		fr_curpps;

	union	{
		void		*fru_data;
		caddr_t		fru_caddr;
		fripf_t		*fru_ipf;
		frentfunc_t	fru_func;
	} fr_dun;
	/*
	 * Fields after this may not change whilst in the kernel.
	 */
	ipfunc_t fr_func;
	int	fr_dsize;
	int	fr_pps;
	int	fr_statemax;
	int	fr_flineno;
	u_32_t	fr_type;
	u_32_t	fr_flags;
	u_32_t	fr_logtag;
	u_32_t	fr_collect;
	u_int	fr_arg;
	u_int	fr_loglevel;
	u_int	fr_age[2];
	u_char	fr_v;
	u_char	fr_icode;
	char	fr_group[FR_GROUPLEN];
	char	fr_grhead[FR_GROUPLEN];
	ipftag_t fr_nattag;
	char	fr_ifnames[4][LIFNAMSIZ];
	char	fr_isctag[16];
	frdest_t fr_tifs[2];
	frdest_t fr_dif;
	u_int	fr_cksum;
} frentry_4_1_0_t;

/* ------------------------------------------------------------------------ */

/*
 * 4.1.32 removed both fin_state and fin_nat, added fin_pktnum (current)
 * 4.1.24 added fin_cksum
 * 4.1.23 added fin_exthdr
 * 4.1.11 added fin_ifname
 * 4.1.4  added fin_hbuf
 */
typedef struct  fr_info_4_1_24 {
	void    *fin_ifp;
	fr_ip_t fin_fi;
	union   {
	        u_short fid_16[2];
	        u_32_t  fid_32;
	} fin_dat;
	int     fin_out;
	int     fin_rev;
	u_short fin_hlen;
	u_char  fin_tcpf;
	u_char  fin_icode;
	u_32_t  fin_rule;
	char    fin_group[FR_GROUPLEN];
	struct  frentry *fin_fr;
	void    *fin_dp;
	int     fin_dlen;
	int     fin_plen;
	int     fin_ipoff;
	u_short fin_id;
	u_short fin_off;
	int     fin_depth;
	int     fin_error;
	int     fin_cksum;
	void	*fin_state;
	void	*fin_nat;
	void    *fin_nattag;
	void    *fin_exthdr;
	ip_t    *fin_ip;
	mb_t    **fin_mp;
	mb_t    *fin_m;
#ifdef  MENTAT
	mb_t    *fin_qfm;
	void    *fin_qpi;
	char    fin_ifname[LIFNAMSIZ];
#endif
#ifdef  __sgi
	void    *fin_hbuf;
#endif
} fr_info_4_1_24_t;

typedef struct  fr_info_4_1_23 {
	void    *fin_ifp;
	fr_ip_t fin_fi;
	union   {
	        u_short fid_16[2];
	        u_32_t  fid_32;
	} fin_dat;
	int     fin_out;
	int     fin_rev;
	u_short fin_hlen;
	u_char  fin_tcpf;
	u_char  fin_icode;
	u_32_t  fin_rule;
	char    fin_group[FR_GROUPLEN];
	struct  frentry *fin_fr;
	void    *fin_dp;
	int     fin_dlen;
	int     fin_plen;
	int     fin_ipoff;
	u_short fin_id;
	u_short fin_off;
	int     fin_depth;
	int     fin_error;
	void	*fin_state;
	void	*fin_nat;
	void    *fin_nattag;
	void    *fin_exthdr;
	ip_t    *fin_ip;
	mb_t    **fin_mp;
	mb_t    *fin_m;
#ifdef  MENTAT
	mb_t    *fin_qfm;
	void    *fin_qpi;
	char    fin_ifname[LIFNAMSIZ];
#endif
#ifdef  __sgi
	void    *fin_hbuf;
#endif
} fr_info_4_1_23_t;

typedef struct  fr_info_4_1_11 {
	void    *fin_ifp;
	fr_ip_t fin_fi;
	union   {
	        u_short fid_16[2];
	        u_32_t  fid_32;
	} fin_dat;
	int     fin_out;
	int     fin_rev;
	u_short fin_hlen;
	u_char  fin_tcpf;
	u_char  fin_icode;
	u_32_t  fin_rule;
	char    fin_group[FR_GROUPLEN];
	struct  frentry *fin_fr;
	void    *fin_dp;
	int     fin_dlen;
	int     fin_plen;
	int     fin_ipoff;
	u_short fin_id;
	u_short fin_off;
	int     fin_depth;
	int     fin_error;
	void	*fin_state;
	void	*fin_nat;
	void    *fin_nattag;
	ip_t    *fin_ip;
	mb_t    **fin_mp;
	mb_t    *fin_m;
#ifdef  MENTAT
	mb_t    *fin_qfm;
	void    *fin_qpi;
	char    fin_ifname[LIFNAMSIZ];
#endif
#ifdef  __sgi
	void    *fin_hbuf;
#endif
} fr_info_4_1_11_t;

/* ------------------------------------------------------------------------ */

/*
 * 4.1.33 changed the size of f_locks from IPL_LOGMAX to IPL_LOGSIZE (current)
 */

typedef struct  friostat_4_1_0       {
	struct  filterstats     f_st[2];
	struct  frentry         *f_ipf[2][2];
	struct  frentry         *f_acct[2][2];
	struct  frentry         *f_ipf6[2][2];
	struct  frentry         *f_acct6[2][2];
	struct  frentry         *f_auth;
	struct  frgroup         *f_groups[IPL_LOGSIZE][2];
	u_long  f_froute[2];
	u_long  f_ticks;
	int     f_locks[IPL_LOGMAX];
	size_t  f_kmutex_sz;
	size_t  f_krwlock_sz;
	int     f_defpass;
	int     f_active;
	int     f_running;
	int     f_logging;
	int     f_features;
	char    f_version[32];
} friostat_4_1_0_t;

/*
 * 4.1.14 added in_lock (current)
 */
typedef	struct	ipnat_4_1_0	{
	struct	ipnat	*in_next;
	struct	ipnat	*in_rnext;
	struct	ipnat	**in_prnext;
	struct	ipnat	*in_mnext;
	struct	ipnat	**in_pmnext;
	struct	ipftq	*in_tqehead[2];
	void		*in_ifps[2];
	void		*in_apr;
	char		*in_comment;
	i6addr_t	in_next6;
	u_long		in_space;
	u_long		in_hits;
	u_int		in_use;
	u_int		in_hv;
	int		in_flineno;
	u_short		in_pnext;
	u_char		in_v;
	u_char		in_xxx;
	u_32_t		in_flags;
	u_32_t		in_mssclamp;
	u_int		in_age[2];
	int		in_redir;
	int		in_p;
	i6addr_t	in_in[2];
	i6addr_t	in_out[2];
	i6addr_t	in_src[2];
	frtuc_t		in_tuc;
	u_short		in_port[2];
	u_short		in_ppip;
	u_short		in_ippip;
	char		in_ifnames[2][LIFNAMSIZ];
	char		in_plabel[APR_LABELLEN];
	ipftag_t	in_tag;
} ipnat_4_1_0_t;

/* ------------------------------------------------------------------------ */

/*
 * 4.1.25 added nat_seqnext (current)
 * 4.1.14 added nat_redir
 * 4.1.3  moved nat_rev
 * 4.1.2  added nat_rev
 */
typedef	struct	nat_4_1_14	{
	ipfmutex_t	nat_lock;
	struct	nat	*nat_next;
	struct	nat	**nat_pnext;
	struct	nat	*nat_hnext[2];
	struct	nat	**nat_phnext[2];
	struct	hostmap	*nat_hm;
	void		*nat_data;
	struct	nat	**nat_me;
	struct	ipstate	*nat_state;
	struct	ap_session	*nat_aps;
	frentry_t	*nat_fr;
	struct	ipnat	*nat_ptr;
	void		*nat_ifps[2];
	void		*nat_sync;
	ipftqent_t	nat_tqe;
	u_32_t		nat_flags;
	u_32_t		nat_sumd[2];
	u_32_t		nat_ipsumd;
	u_32_t		nat_mssclamp;
	i6addr_t	nat_inip6;
	i6addr_t	nat_outip6;
	i6addr_t	nat_oip6;
	U_QUAD_T	nat_pkts[2];
	U_QUAD_T	nat_bytes[2];
	union	{
		udpinfo_t	nat_unu;
		tcpinfo_t	nat_unt;
		icmpinfo_t	nat_uni;
		greinfo_t	nat_ugre;
	} nat_un;
	u_short		nat_oport;
	u_short		nat_use;
	u_char		nat_p;
	int		nat_dir;
	int		nat_ref;
	int		nat_hv[2];
	char		nat_ifnames[2][LIFNAMSIZ];
	int		nat_rev;
	int		nat_redir;
} nat_4_1_14_t;

typedef	struct	nat_4_1_3	{
	ipfmutex_t	nat_lock;
	struct	nat	*nat_next;
	struct	nat	**nat_pnext;
	struct	nat	*nat_hnext[2];
	struct	nat	**nat_phnext[2];
	struct	hostmap	*nat_hm;
	void		*nat_data;
	struct	nat	**nat_me;
	struct	ipstate	*nat_state;
	struct	ap_session	*nat_aps;
	frentry_t	*nat_fr;
	struct	ipnat	*nat_ptr;
	void		*nat_ifps[2];
	void		*nat_sync;
	ipftqent_t	nat_tqe;
	u_32_t		nat_flags;
	u_32_t		nat_sumd[2];
	u_32_t		nat_ipsumd;
	u_32_t		nat_mssclamp;
	i6addr_t	nat_inip6;
	i6addr_t	nat_outip6;
	i6addr_t	nat_oip6;
	U_QUAD_T	nat_pkts[2];
	U_QUAD_T	nat_bytes[2];
	union	{
		udpinfo_t	nat_unu;
		tcpinfo_t	nat_unt;
		icmpinfo_t	nat_uni;
		greinfo_t	nat_ugre;
	} nat_un;
	u_short		nat_oport;
	u_short		nat_use;
	u_char		nat_p;
	int		nat_dir;
	int		nat_ref;
	int		nat_hv[2];
	char		nat_ifnames[2][LIFNAMSIZ];
	int		nat_rev;
} nat_4_1_3_t;


typedef	struct	nat_save_4_1_16	{
	void		*ipn_next;
	nat_4_1_14_t	ipn_nat;
	ipnat_t		ipn_ipnat;
	frentry_4_1_16_t	ipn_fr;
	int		ipn_dsize;
	char		ipn_data[4];
} nat_save_4_1_16_t;

typedef	struct	nat_save_4_1_14	{
	void		*ipn_next;
	nat_4_1_14_t	ipn_nat;
	ipnat_t		ipn_ipnat;
	frentry_4_1_0_t	ipn_fr;
	int		ipn_dsize;
	char		ipn_data[4];
} nat_save_4_1_14_t;

typedef	struct	nat_save_4_1_3	{
	void		*ipn_next;
	nat_4_1_3_t	ipn_nat;
	ipnat_4_1_0_t	ipn_ipnat;
	frentry_4_1_0_t	ipn_fr;
	int		ipn_dsize;
	char		ipn_data[4];
} nat_save_4_1_3_t;

/* ------------------------------------------------------------------------ */

/*
 * 4.1.32 added ns_uncreate (current)
 * 4.1.27 added ns_orphans
 * 4.1.16 added ns_ticks
 */
typedef struct  natstat_4_1_27 {
	u_long	ns_mapped[2];
	u_long	ns_rules;
	u_long	ns_added;
	u_long	ns_expire;
	u_long	ns_inuse;
	u_long	ns_logged;
	u_long	ns_logfail;
	u_long	ns_memfail;
	u_long	ns_badnat;
	u_long	ns_addtrpnt;
	nat_t	**ns_table[2];
	hostmap_t **ns_maptable;
	ipnat_t *ns_list;
	void    *ns_apslist;
	u_int   ns_wilds;
	u_int   ns_nattab_sz;
	u_int   ns_nattab_max;
	u_int   ns_rultab_sz;
	u_int   ns_rdrtab_sz;
	u_int   ns_trpntab_sz;
	u_int   ns_hostmap_sz;
	nat_t   *ns_instances;
	hostmap_t *ns_maplist;
	u_long  *ns_bucketlen[2];
	u_long  ns_ticks;
	u_int   ns_orphans;
} natstat_4_1_27_t;

typedef struct  natstat_4_1_16 {
	u_long	ns_mapped[2];
	u_long	ns_rules;
	u_long	ns_added;
	u_long	ns_expire;
	u_long	ns_inuse;
	u_long	ns_logged;
	u_long	ns_logfail;
	u_long	ns_memfail;
	u_long	ns_badnat;
	u_long	ns_addtrpnt;
	nat_t	**ns_table[2];
	hostmap_t **ns_maptable;
	ipnat_t *ns_list;
	void    *ns_apslist;
	u_int   ns_wilds;
	u_int   ns_nattab_sz;
	u_int   ns_nattab_max;
	u_int   ns_rultab_sz;
	u_int   ns_rdrtab_sz;
	u_int   ns_trpntab_sz;
	u_int   ns_hostmap_sz;
	nat_t   *ns_instances;
	hostmap_t *ns_maplist;
	u_long  *ns_bucketlen[2];
	u_long  ns_ticks;
} natstat_4_1_16_t;

typedef struct  natstat_4_1_0 {
	u_long	ns_mapped[2];
	u_long	ns_rules;
	u_long	ns_added;
	u_long	ns_expire;
	u_long	ns_inuse;
	u_long	ns_logged;
	u_long	ns_logfail;
	u_long	ns_memfail;
	u_long	ns_badnat;
	u_long	ns_addtrpnt;
	nat_t	**ns_table[2];
	hostmap_t **ns_maptable;
	ipnat_t *ns_list;
	void    *ns_apslist;
	u_int   ns_wilds;
	u_int   ns_nattab_sz;
	u_int   ns_nattab_max;
	u_int   ns_rultab_sz;
	u_int   ns_rdrtab_sz;
	u_int   ns_trpntab_sz;
	u_int   ns_hostmap_sz;
	nat_t   *ns_instances;
	hostmap_t *ns_maplist;
	u_long  *ns_bucketlen[2];
} natstat_4_1_0_t;

/* ------------------------------------------------------------------------ */

/*
 * 4.1.32 fra_info:removed both fin_state & fin_nat, added fin_pktnum (current)
 * 4.1.29 added fra_flx
 * 4.1.24 fra_info:added fin_cksum
 * 4.1.23 fra_info:added fin_exthdr
 * 4.1.11 fra_info:added fin_ifname
 * 4.1.4  fra_info:added fin_hbuf
 */
typedef struct  frauth_4_1_29 {
	int	fra_age;
	int	fra_len;
	int	fra_index;
	u_32_t	fra_pass;
	fr_info_4_1_24_t	fra_info;
	char	*fra_buf;
	u_32_t	fra_flx;
#ifdef	MENTAT
	queue_t	*fra_q;
	mb_t	*fra_m;
#endif
} frauth_4_1_29_t;

typedef struct  frauth_4_1_24 {
	int	fra_age;
	int	fra_len;
	int	fra_index;
	u_32_t	fra_pass;
	fr_info_4_1_24_t	fra_info;
	char	*fra_buf;
#ifdef	MENTAT
	queue_t	*fra_q;
	mb_t	*fra_m;
#endif
} frauth_4_1_24_t;

typedef struct  frauth_4_1_23 {
	int	fra_age;
	int	fra_len;
	int	fra_index;
	u_32_t	fra_pass;
	fr_info_4_1_23_t	fra_info;
	char	*fra_buf;
#ifdef	MENTAT
	queue_t	*fra_q;
	mb_t	*fra_m;
#endif
} frauth_4_1_23_t;

typedef struct  frauth_4_1_11 {
	int	fra_age;
	int	fra_len;
	int	fra_index;
	u_32_t	fra_pass;
	fr_info_4_1_11_t	fra_info;
	char	*fra_buf;
#ifdef	MENTAT
	queue_t	*fra_q;
	mb_t	*fra_m;
#endif
} frauth_4_1_11_t;

/* ------------------------------------------------------------------------ */

/*
 * 4.1.16 removed is_nat (current)
 */
typedef struct ipstate_4_1_0 {
	ipfmutex_t	is_lock;
	struct	ipstate	*is_next;
	struct	ipstate	**is_pnext;
	struct	ipstate	*is_hnext;
	struct	ipstate	**is_phnext;
	struct	ipstate	**is_me;
	void		*is_ifp[4];
	void		*is_sync;
	void		*is_nat[2];
	frentry_t	*is_rule;
	struct	ipftq	*is_tqehead[2];
	struct	ipscan	*is_isc;
	U_QUAD_T	is_pkts[4];
	U_QUAD_T	is_bytes[4];
	U_QUAD_T	is_icmppkts[4];
	struct	ipftqent is_sti;
	u_int	is_frage[2];
	int	is_ref;
	int	is_isninc[2];
	u_short	is_sumd[2];
	i6addr_t	is_src;
	i6addr_t	is_dst;
	u_int	is_pass;
	u_char	is_p;
	u_char	is_v;
	u_32_t	is_hv;
	u_32_t	is_tag;
	u_32_t	is_opt[2];
	u_32_t	is_optmsk[2];
	u_short	is_sec;
	u_short	is_secmsk;
	u_short	is_auth;
	u_short	is_authmsk;
	union {
		icmpinfo_t	is_ics;
		tcpinfo_t	is_ts;
		udpinfo_t	is_us;
		greinfo_t	is_ug;
	} is_ps;
	u_32_t	is_flags;
	int	is_flx[2][2];
	u_32_t	is_rulen;
	u_32_t	is_s0[2];
	u_short	is_smsk[2];
	char	is_group[FR_GROUPLEN];
	char	is_sbuf[2][16];
	char	is_ifname[4][LIFNAMSIZ];
} ipstate_4_1_0_t;

typedef	struct	ipstate_save_4_1_16	{
	void		*ips_next;
	ipstate_4_1_0_t	ips_is;
	frentry_4_1_16_t	ips_fr;
} ipstate_save_4_1_16_t;

typedef	struct	ipstate_save_4_1_0	{
	void		*ips_next;
	ipstate_4_1_0_t	ips_is;
	frentry_4_1_0_t	ips_fr;
} ipstate_save_4_1_0_t;

/* ------------------------------------------------------------------------ */

/*
 * 4.1.21 added iss_tcptab (current)
 */
typedef	struct	ips_stat_4_1_0 {
	u_long	iss_hits;
	u_long	iss_miss;
	u_long	iss_max;
	u_long	iss_maxref;
	u_long	iss_tcp;
	u_long	iss_udp;
	u_long	iss_icmp;
	u_long	iss_nomem;
	u_long	iss_expire;
	u_long	iss_fin;
	u_long	iss_active;
	u_long	iss_logged;
	u_long	iss_logfail;
	u_long	iss_inuse;
	u_long	iss_wild;
	u_long	iss_killed;
	u_long	iss_ticks;
	u_long	iss_bucketfull;
	int	iss_statesize;
	int	iss_statemax;
	ipstate_t **iss_table;
	ipstate_t *iss_list;
	u_long	*iss_bucketlen;
} ips_stat_4_1_0_t;

/* ------------------------------------------------------------------------ */

static void friostat_current_to_0 __P((void *, friostat_4_1_0_t *, int));
static void ipstate_current_to_0 __P((void *, ipstate_4_1_0_t *));
static void ipnat_current_to_0 __P((void *, ipnat_4_1_0_t *));
static void frauth_current_to_11 __P((void *, frauth_4_1_11_t *));
static void frauth_current_to_23 __P((void *, frauth_4_1_23_t *));
static void frauth_current_to_24 __P((void *, frauth_4_1_24_t *));
static void frauth_current_to_29 __P((void *, frauth_4_1_29_t *));
static void frentry_current_to_0 __P((void *, frentry_4_1_0_t *));
static void frentry_current_to_16 __P((void *, frentry_4_1_16_t *));
static void fr_info_current_to_11 __P((void *, fr_info_4_1_11_t *));
static void fr_info_current_to_23 __P((void *, fr_info_4_1_23_t *));
static void fr_info_current_to_24 __P((void *, fr_info_4_1_24_t *));
static void nat_save_current_to_3 __P((void *, nat_save_4_1_3_t *));
static void nat_save_current_to_14 __P((void *, nat_save_4_1_14_t *));
static void nat_save_current_to_16 __P((void *, nat_save_4_1_16_t *));

static void ipstate_save_current_to_0 __P((void *, ipstate_save_4_1_0_t *));
static void ipstate_save_current_to_16 __P((void *, ipstate_save_4_1_16_t *));

static void friostat_0_to_current __P((friostat_4_1_0_t *, void *));
static void ipnat_0_to_current __P((ipnat_4_1_0_t *, void *));
static void frauth_11_to_current __P((frauth_4_1_11_t *, void *));
static void frauth_23_to_current __P((frauth_4_1_23_t *, void *));
static void frauth_24_to_current __P((frauth_4_1_24_t *, void *));
static void frauth_29_to_current __P((frauth_4_1_29_t *, void *));
static void frentry_0_to_current __P((frentry_4_1_0_t *, void *));
static void frentry_16_to_current __P((frentry_4_1_16_t *, void *));
static void fr_info_11_to_current __P((fr_info_4_1_11_t *, void *));
static void fr_info_23_to_current __P((fr_info_4_1_23_t *, void *));
static void fr_info_24_to_current __P((fr_info_4_1_24_t *, void *));
static void nat_save_3_to_current __P((nat_save_4_1_3_t *, void *));
static void nat_save_14_to_current __P((nat_save_4_1_14_t *, void *));
static void nat_save_16_to_current __P((nat_save_4_1_16_t *, void *));


/* ------------------------------------------------------------------------ */

int fr_in_compat(obj, ptr)
ipfobj_t *obj;
void *ptr;
{
	int error;
	int sz;

	error = EINVAL;

	switch (obj->ipfo_type)
	{
	default :
		break;

	case IPFOBJ_FRENTRY :
		if (obj->ipfo_rev >= 4011600) {
			frentry_4_1_16_t *old;

			KMALLOC(old, frentry_4_1_16_t *);
			if (old == NULL) {
				error = ENOMEM;
				break;
			}
			error = COPYIN(obj->ipfo_ptr, old, sizeof(*old));
			if (error == 0)
				frentry_16_to_current(old, ptr);
		} else {
			frentry_4_1_0_t *old;

			KMALLOC(old, frentry_4_1_0_t *);
			if (old == NULL) {
				error = ENOMEM;
				break;
			}
			error = COPYIN(obj->ipfo_ptr, old, sizeof(*old));
			if (error == 0)
				frentry_0_to_current(old, ptr);
			KFREE(old);
		}
		break;

	case IPFOBJ_IPFSTAT :
	    {
		friostat_4_1_0_t *old;

		KMALLOC(old, friostat_4_1_0_t *);
		if (old == NULL) {
			error = ENOMEM;
			break;
		}
		error = COPYIN(obj->ipfo_ptr, old, sizeof(*old));
		if (error == 0)
			friostat_0_to_current(old, ptr);
		break;
	    }

	case IPFOBJ_IPFINFO :	/* unused */
		break;

	case IPFOBJ_IPNAT :
	    {
		ipnat_4_1_0_t *old;

		KMALLOC(old, ipnat_4_1_0_t *);
		if (old == NULL) {
			error = ENOMEM;
			break;
		}
		error = COPYIN(obj->ipfo_ptr, old, sizeof(*old));
		if (error == 0)
			ipnat_0_to_current(old, ptr);
		KFREE(old);
		break;
	    }

	case IPFOBJ_NATSTAT :
		/*
		 * Statistics are not copied in.
		 */
		break;

	case IPFOBJ_NATSAVE :
		if (obj->ipfo_rev >= 4011600) {
			nat_save_4_1_16_t *old16;

			KMALLOC(old16, nat_save_4_1_16_t *);
			if (old16 == NULL) {
				error = ENOMEM;
				break;
			}
			error = COPYIN(obj->ipfo_ptr, old16, sizeof(*old16));
			if (error == 0)
				nat_save_16_to_current(old16, ptr);
			KFREE(old16);
		} else if (obj->ipfo_rev >= 4011400) {
			nat_save_4_1_14_t *old14;

			KMALLOC(old14, nat_save_4_1_14_t *);
			if (old14 == NULL) {
				error = ENOMEM;
				break;
			}
			error = COPYIN(obj->ipfo_ptr, old14, sizeof(*old14));
			if (error == 0)
				nat_save_14_to_current(old14, ptr);
			KFREE(old14);
		} else if (obj->ipfo_rev >= 4010300) {
			nat_save_4_1_3_t *old3;

			KMALLOC(old3, nat_save_4_1_3_t *);
			if (old3 == NULL) {
				error = ENOMEM;
				break;
			}
			error = COPYIN(obj->ipfo_ptr, old3, sizeof(*old3));
			if (error == 0)
				nat_save_3_to_current(old3, ptr);
			KFREE(old3);
		}
		break;

	case IPFOBJ_STATESAVE :
		if (obj->ipfo_rev >= 4011600) {
			ipstate_save_4_1_16_t *old;

			KMALLOC(old, ipstate_save_4_1_16_t *);
			if (old == NULL) {
				error = ENOMEM;
				break;
			}
			error = COPYIN(obj->ipfo_ptr, old, sizeof(*old));
			if (error == 0)
				/* ipstate_save_16_to_current(&old, ptr); */
				;
			KFREE(old);
		} else {
			ipstate_save_4_1_0_t *old;

			KMALLOC(old, ipstate_save_4_1_0_t *);
			if (old == NULL) {
				error = ENOMEM;
				break;
			}
			error = COPYIN(obj->ipfo_ptr, old, sizeof(*old));
			if (error == 0)
				/* ipstate_save_0_to_current(&old, ptr); */
				;
			KFREE(old);
		}
		break;

	case IPFOBJ_IPSTATE :
		/*
		 * This structure is not copied in by itself.
		 */
		break;

	case IPFOBJ_STATESTAT :
		/*
		 * Statistics are not copied in.
		 */
		break;

	case IPFOBJ_FRAUTH :
		if (obj->ipfo_rev >= 4012900) {
			frauth_4_1_29_t *old29;

			KMALLOC(old29, frauth_4_1_29_t *);
			if (old29 == NULL) {
				error = ENOMEM;
				break;
			}
			error = COPYIN(obj->ipfo_ptr, old29, sizeof(*old29));
			if (error == 0)
				frauth_29_to_current(old29, ptr);
			KFREE(old29);
		} else if (obj->ipfo_rev >= 4012400) {
			frauth_4_1_24_t *old24;

			KMALLOC(old24, frauth_4_1_24_t *);
			if (old24 == NULL) {
				error = ENOMEM;
				break;
			}
			error = COPYIN(obj->ipfo_ptr, old24, sizeof(*old24));
			if (error == 0)
				frauth_24_to_current(old24, ptr);
			KFREE(old24);
		} else if (obj->ipfo_rev >= 4012300) {
			frauth_4_1_23_t *old23;

			KMALLOC(old23, frauth_4_1_23_t *);
			if (old23 == NULL) {
				error = ENOMEM;
				break;
			}
			error = COPYIN(obj->ipfo_ptr, old23, sizeof(*old23));
			if (error == 0)
				frauth_23_to_current(old23, ptr);
			KFREE(old23);
		} else if (obj->ipfo_rev >= 4011100) {
			frauth_4_1_11_t *old11;

			KMALLOC(old11, frauth_4_1_11_t *);
			if (old11 == NULL) {
				error = ENOMEM;
				break;
			}
			error = COPYIN(obj->ipfo_ptr, old11, sizeof(*old11));
			if (error == 0)
				frauth_11_to_current(old11, ptr);
			KFREE(old11);
		}
		break;

	case IPFOBJ_NAT :
		if (obj->ipfo_rev >= 4011400) {
			sz = sizeof(nat_4_1_14_t);
		} else if (obj->ipfo_rev >= 4010300) {
			sz = sizeof(nat_4_1_3_t);
		} else {
			break;
		}
		bzero(ptr, sizeof(nat_t));
		error = COPYIN(obj->ipfo_ptr, ptr, sz);
		break;
	}

	return error;
}


static void frentry_16_to_current(old, current)
frentry_4_1_16_t *old;
void *current;
{
	frentry_t *fr = (frentry_t *)current;

	fr->fr_lock = old->fr_lock;
	fr->fr_next = old->fr_next;
	fr->fr_grp = old->fr_grp;
	fr->fr_isc = old->fr_isc;
	fr->fr_ifas[0] = old->fr_ifas[0];
	fr->fr_ifas[1] = old->fr_ifas[1];
	fr->fr_ifas[2] = old->fr_ifas[2];
	fr->fr_ifas[3] = old->fr_ifas[3];
	fr->fr_ptr = old->fr_ptr;
	fr->fr_comment = old->fr_comment;
	fr->fr_ref = old->fr_ref;
	fr->fr_statecnt = old->fr_statecnt;
	fr->fr_hits = old->fr_hits;
	fr->fr_bytes = old->fr_bytes;
	fr->fr_lastpkt.tv_sec = old->fr_lastpkt.tv_sec;
	fr->fr_lastpkt.tv_usec = old->fr_lastpkt.tv_usec;
	fr->fr_curpps = old->fr_curpps;
	bcopy(&old->fr_dun, &fr->fr_dun, sizeof(old->fr_dun));
	fr->fr_func = old->fr_func;
	fr->fr_dsize = old->fr_dsize;
	fr->fr_pps = old->fr_pps;
	fr->fr_statemax = old->fr_statemax;
	fr->fr_flineno = old->fr_flineno;
	fr->fr_type = old->fr_type;
	fr->fr_flags = old->fr_flags;
	fr->fr_logtag = old->fr_logtag;
	fr->fr_collect = old->fr_collect;
	fr->fr_arg = old->fr_arg;
	fr->fr_loglevel = old->fr_loglevel;
	fr->fr_age[0] = old->fr_age[0];
	fr->fr_age[1] = old->fr_age[1];
	fr->fr_v = old->fr_v;
	fr->fr_icode = old->fr_icode;
	bcopy(&old->fr_group, &fr->fr_group, sizeof(old->fr_group));
	bcopy(&old->fr_grhead, &fr->fr_grhead, sizeof(old->fr_grhead));
	bcopy(&old->fr_nattag, &fr->fr_nattag, sizeof(old->fr_nattag));
	bcopy(&old->fr_ifnames, &fr->fr_ifnames, sizeof(old->fr_ifnames));
	bcopy(&old->fr_isctag, &fr->fr_isctag, sizeof(old->fr_isctag));
	bcopy(&old->fr_tifs, &fr->fr_tifs, sizeof(old->fr_tifs));
	bcopy(&old->fr_dif, &fr->fr_dif, sizeof(old->fr_dif));
	fr->fr_cksum = old->fr_cksum;
}


static void frentry_0_to_current(old, current)
frentry_4_1_0_t *old;
void *current;
{
	frentry_t *fr = (frentry_t *)current;

	fr->fr_lock = old->fr_lock;
	fr->fr_next = old->fr_next;
	fr->fr_grp = old->fr_grp;
	fr->fr_isc = old->fr_isc;
	fr->fr_ifas[0] = old->fr_ifas[0];
	fr->fr_ifas[1] = old->fr_ifas[1];
	fr->fr_ifas[2] = old->fr_ifas[2];
	fr->fr_ifas[3] = old->fr_ifas[3];
	fr->fr_ptr = old->fr_ptr;
	fr->fr_comment = old->fr_comment;
	fr->fr_ref = old->fr_ref;
	fr->fr_statecnt = old->fr_statecnt;
	fr->fr_hits = old->fr_hits;
	fr->fr_bytes = old->fr_bytes;
	fr->fr_lastpkt.tv_sec = old->fr_lastpkt.tv_sec;
	fr->fr_lastpkt.tv_usec = old->fr_lastpkt.tv_usec;
	fr->fr_curpps = old->fr_curpps;
	bcopy(&old->fr_dun, &fr->fr_dun, sizeof(old->fr_dun));
	fr->fr_func = old->fr_func;
	fr->fr_dsize = old->fr_dsize;
	fr->fr_pps = old->fr_pps;
	fr->fr_statemax = old->fr_statemax;
	fr->fr_flineno = old->fr_flineno;
	fr->fr_type = old->fr_type;
	fr->fr_flags = old->fr_flags;
	fr->fr_logtag = old->fr_logtag;
	fr->fr_collect = old->fr_collect;
	fr->fr_arg = old->fr_arg;
	fr->fr_loglevel = old->fr_loglevel;
	fr->fr_age[0] = old->fr_age[0];
	fr->fr_age[1] = old->fr_age[1];
	fr->fr_v = old->fr_v;
	fr->fr_icode = old->fr_icode;
	bcopy(&old->fr_group, &fr->fr_group, sizeof(old->fr_group));
	bcopy(&old->fr_grhead, &fr->fr_grhead, sizeof(old->fr_grhead));
	bcopy(&old->fr_nattag, &fr->fr_nattag, sizeof(old->fr_nattag));
	bcopy(&old->fr_ifnames, &fr->fr_ifnames, sizeof(old->fr_ifnames));
	bcopy(&old->fr_isctag, &fr->fr_isctag, sizeof(old->fr_isctag));
	bcopy(&old->fr_tifs, &fr->fr_tifs, sizeof(old->fr_tifs));
	bcopy(&old->fr_dif, &fr->fr_dif, sizeof(old->fr_dif));
	fr->fr_cksum = old->fr_cksum;
}


static void friostat_0_to_current(old, current)
friostat_4_1_0_t *old;
void *current;
{
	friostat_t *fiop = (friostat_t *)current;

	bcopy(&old->f_st, &fiop->f_st, sizeof(old->f_st));
	fiop->f_ipf[0][0] = old->f_ipf[0][0];
	fiop->f_ipf[0][1] = old->f_ipf[0][1];
	fiop->f_ipf[1][0] = old->f_ipf[1][0];
	fiop->f_ipf[1][1] = old->f_ipf[1][1];
	fiop->f_acct[0][0] = old->f_acct[0][0];
	fiop->f_acct[0][1] = old->f_acct[0][1];
	fiop->f_acct[1][0] = old->f_acct[1][0];
	fiop->f_acct[1][1] = old->f_acct[1][1];
	fiop->f_ipf6[0][0] = old->f_ipf6[0][0];
	fiop->f_ipf6[0][1] = old->f_ipf6[0][1];
	fiop->f_ipf6[1][0] = old->f_ipf6[1][0];
	fiop->f_ipf6[1][1] = old->f_ipf6[1][1];
	fiop->f_acct6[0][0] = old->f_acct6[0][0];
	fiop->f_acct6[0][1] = old->f_acct6[0][1];
	fiop->f_acct6[1][0] = old->f_acct6[1][0];
	fiop->f_acct6[1][1] = old->f_acct6[1][1];
	fiop->f_auth = fiop->f_auth;
	bcopy(&old->f_groups, &fiop->f_groups, sizeof(old->f_groups));
	bcopy(&old->f_froute, &fiop->f_froute, sizeof(old->f_froute));
	fiop->f_ticks = old->f_ticks;
	bcopy(&old->f_locks, &fiop->f_locks, sizeof(old->f_locks));
	fiop->f_kmutex_sz = old->f_kmutex_sz;
	fiop->f_krwlock_sz = old->f_krwlock_sz;
	fiop->f_defpass = old->f_defpass;
	fiop->f_active = old->f_active;
	fiop->f_running = old->f_running;
	fiop->f_logging = old->f_logging;
	fiop->f_features = old->f_features;
	bcopy(old->f_version, fiop->f_version, sizeof(old->f_version));
}


static void ipnat_0_to_current(old, current)
ipnat_4_1_0_t *old;
void *current;
{
	ipnat_t *np = (ipnat_t *)current;

	np->in_next = old->in_next;
	np->in_rnext = old->in_rnext;
	np->in_prnext = old->in_prnext;
	np->in_mnext = old->in_mnext;
	np->in_pmnext = old->in_pmnext;
	np->in_tqehead[0] = old->in_tqehead[0];
	np->in_tqehead[1] = old->in_tqehead[1];
	np->in_ifps[0] = old->in_ifps[0];
	np->in_ifps[1] = old->in_ifps[1];
	np->in_apr = old->in_apr;
	np->in_comment = old->in_comment;
	np->in_next6 = old->in_next6;
	np->in_space = old->in_space;
	np->in_hits = old->in_hits;
	np->in_use = old->in_use;
	np->in_hv = old->in_hv;
	np->in_flineno = old->in_flineno;
	np->in_pnext = old->in_pnext;
	np->in_v = old->in_v;
	np->in_xxx = old->in_xxx;
	np->in_flags = old->in_flags;
	np->in_mssclamp = old->in_mssclamp;
	bcopy(&old->in_age, &np->in_age, sizeof(np->in_age));
	np->in_redir = old->in_redir;
	np->in_p = old->in_p;
	bcopy(&old->in_in, &np->in_in, sizeof(np->in_in));
	bcopy(&old->in_out, &np->in_out, sizeof(np->in_out));
	bcopy(&old->in_src, &np->in_src, sizeof(np->in_src));
	bcopy(&old->in_tuc, &np->in_tuc, sizeof(np->in_tuc));
	np->in_port[0] = old->in_port[0];
	np->in_port[1] = old->in_port[1];
	np->in_ppip = old->in_ppip;
	np->in_ippip = old->in_ippip;
	bcopy(&old->in_ifnames, &np->in_ifnames, sizeof(np->in_ifnames));
	bcopy(&old->in_plabel, &np->in_plabel, sizeof(np->in_plabel));
	bcopy(&old->in_tag, &np->in_tag, sizeof(np->in_tag));
}


static void frauth_29_to_current(old, current)
frauth_4_1_29_t *old;
void *current;
{
	frauth_t *fra = (frauth_t *)current;

	fra->fra_age = old->fra_age;
	fra->fra_len = old->fra_len;
	fra->fra_index = old->fra_index;
	fra->fra_pass = old->fra_pass;
	fr_info_24_to_current(&old->fra_info, &fra->fra_info);
	fra->fra_buf = old->fra_buf;
	fra->fra_flx = old->fra_flx;
#ifdef	MENTAT
	fra->fra_q = old->fra_q;
	fra->fra_m = old->fra_m;
#endif
}


static void frauth_24_to_current(old, current)
frauth_4_1_24_t *old;
void *current;
{
	frauth_t *fra = (frauth_t *)current;

	fra->fra_age = old->fra_age;
	fra->fra_len = old->fra_len;
	fra->fra_index = old->fra_index;
	fra->fra_pass = old->fra_pass;
	fr_info_24_to_current(&old->fra_info, &fra->fra_info);
	fra->fra_buf = old->fra_buf;
#ifdef	MENTAT
	fra->fra_q = old->fra_q;
	fra->fra_m = old->fra_m;
#endif
}


static void frauth_23_to_current(old, current)
frauth_4_1_23_t *old;
void *current;
{
	frauth_t *fra = (frauth_t *)current;

	fra->fra_age = old->fra_age;
	fra->fra_len = old->fra_len;
	fra->fra_index = old->fra_index;
	fra->fra_pass = old->fra_pass;
	fr_info_23_to_current(&old->fra_info, &fra->fra_info);
	fra->fra_buf = old->fra_buf;
#ifdef	MENTAT
	fra->fra_q = old->fra_q;
	fra->fra_m = old->fra_m;
#endif
}


static void frauth_11_to_current(old, current)
frauth_4_1_11_t *old;
void *current;
{
	frauth_t *fra = (frauth_t *)current;

	fra->fra_age = old->fra_age;
	fra->fra_len = old->fra_len;
	fra->fra_index = old->fra_index;
	fra->fra_pass = old->fra_pass;
	fr_info_11_to_current(&old->fra_info, &fra->fra_info);
	fra->fra_buf = old->fra_buf;
#ifdef	MENTAT
	fra->fra_q = old->fra_q;
	fra->fra_m = old->fra_m;
#endif
}


static void fr_info_24_to_current(old, current)
fr_info_4_1_24_t *old;
void *current;
{
	fr_info_t *fin = (fr_info_t *)current;

	fin->fin_ifp = old->fin_ifp;
	fin->fin_fi = old->fin_fi;
	bcopy(&old->fin_dat, &fin->fin_dat, sizeof(old->fin_dat));
	fin->fin_out = old->fin_out;
	fin->fin_rev = old->fin_rev;
	fin->fin_hlen = old->fin_hlen;
	fin->fin_tcpf = old->fin_tcpf;
	fin->fin_icode = old->fin_icode;
	fin->fin_rule = old->fin_rule;
	bcopy(old->fin_group, fin->fin_group, sizeof(old->fin_group));
	fin->fin_fr = old->fin_fr;
	fin->fin_dp = old->fin_dp;
	fin->fin_dlen = old->fin_dlen;
	fin->fin_plen = old->fin_plen;
	fin->fin_ipoff = old->fin_ipoff;
	fin->fin_id = old->fin_id;
	fin->fin_off = old->fin_off;
	fin->fin_depth = old->fin_depth;
	fin->fin_error = old->fin_error;
	fin->fin_cksum = old->fin_cksum;
	fin->fin_nattag = old->fin_nattag;
	fin->fin_exthdr = old->fin_exthdr;
	fin->fin_ip = old->fin_ip;
	fin->fin_mp = old->fin_mp;
	fin->fin_m = old->fin_m;
#ifdef  MENTAT
	fin->fin_qfm = old->fin_qfm;
	fin->fin_qpi = old->fin_qpi;
	fin->fin_ifname = old_ifname;
#endif
#ifdef  __sgi
	fin->fin_hbuf = old->fin_hbuf;
#endif
}


static void fr_info_23_to_current(old, current)
fr_info_4_1_23_t *old;
void *current;
{
	fr_info_t *fin = (fr_info_t *)current;

	fin->fin_ifp = old->fin_ifp;
	fin->fin_fi = old->fin_fi;
	bcopy(&old->fin_dat, &fin->fin_dat, sizeof(old->fin_dat));
	fin->fin_out = old->fin_out;
	fin->fin_rev = old->fin_rev;
	fin->fin_hlen = old->fin_hlen;
	fin->fin_tcpf = old->fin_tcpf;
	fin->fin_icode = old->fin_icode;
	fin->fin_rule = old->fin_rule;
	bcopy(old->fin_group, fin->fin_group, sizeof(old->fin_group));
	fin->fin_fr = old->fin_fr;
	fin->fin_dp = old->fin_dp;
	fin->fin_dlen = old->fin_dlen;
	fin->fin_plen = old->fin_plen;
	fin->fin_ipoff = old->fin_ipoff;
	fin->fin_id = old->fin_id;
	fin->fin_off = old->fin_off;
	fin->fin_depth = old->fin_depth;
	fin->fin_error = old->fin_error;
	fin->fin_nattag = old->fin_nattag;
	fin->fin_exthdr = old->fin_exthdr;
	fin->fin_ip = old->fin_ip;
	fin->fin_mp = old->fin_mp;
	fin->fin_m = old->fin_m;
#ifdef  MENTAT
	fin->fin_qfm = old->fin_qfm;
	fin->fin_qpi = old->fin_qpi;
	fin->fin_ifname = old_ifname;
#endif
#ifdef  __sgi
	fin->fin_hbuf = fin->fin_hbuf;
#endif
}


static void fr_info_11_to_current(old, current)
fr_info_4_1_11_t *old;
void *current;
{
	fr_info_t *fin = (fr_info_t *)current;

	fin->fin_ifp = old->fin_ifp;
	fin->fin_fi = old->fin_fi;
	bcopy(&old->fin_dat, &fin->fin_dat, sizeof(old->fin_dat));
	fin->fin_out = old->fin_out;
	fin->fin_rev = old->fin_rev;
	fin->fin_hlen = old->fin_hlen;
	fin->fin_tcpf = old->fin_tcpf;
	fin->fin_icode = old->fin_icode;
	fin->fin_rule = old->fin_rule;
	bcopy(old->fin_group, fin->fin_group, sizeof(old->fin_group));
	fin->fin_fr = old->fin_fr;
	fin->fin_dp = old->fin_dp;
	fin->fin_dlen = old->fin_dlen;
	fin->fin_plen = old->fin_plen;
	fin->fin_ipoff = old->fin_ipoff;
	fin->fin_id = old->fin_id;
	fin->fin_off = old->fin_off;
	fin->fin_depth = old->fin_depth;
	fin->fin_error = old->fin_error;
	fin->fin_nattag = old->fin_nattag;
	fin->fin_ip = old->fin_ip;
	fin->fin_mp = old->fin_mp;
	fin->fin_m = old->fin_m;
#ifdef  MENTAT
	fin->fin_qfm = old->fin_qfm;
	fin->fin_qpi = old->fin_qpi;
	fin->fin_ifname = old_ifname;
#endif
#ifdef  __sgi
	fin->fin_hbuf = fin->fin_hbuf;
#endif
}


static void nat_3_to_current(nat_4_1_3_t *old, nat_t *current)
{
	bzero((void *)current, sizeof(*current));
	bcopy((void *)old, (void *)current, sizeof(*old));
}


static void nat_14_to_current(nat_4_1_14_t *old, nat_t *current)
{
	bzero((void *)current, sizeof(*current));
	bcopy((void *)old, (void *)current, sizeof(*old));
}


static void nat_save_16_to_current(old, current)
nat_save_4_1_16_t *old;
void *current;
{
	nat_save_t *nats = (nat_save_t *)current;

	nats->ipn_next = old->ipn_next;
	nat_14_to_current(&old->ipn_nat, &nats->ipn_nat);
	bcopy(&old->ipn_ipnat, &nats->ipn_ipnat, sizeof(old->ipn_ipnat));
	bcopy(&old->ipn_fr, &nats->ipn_fr, sizeof(old->ipn_fr));
	nats->ipn_dsize = old->ipn_dsize;
	bcopy(old->ipn_data, nats->ipn_data, sizeof(nats->ipn_data));
}


static void nat_save_14_to_current(old, current)
nat_save_4_1_14_t *old;
void *current;
{
	nat_save_t *nats = (nat_save_t *)current;

	nats->ipn_next = old->ipn_next;
	nat_14_to_current(&old->ipn_nat, &nats->ipn_nat);
	bcopy(&old->ipn_ipnat, &nats->ipn_ipnat, sizeof(old->ipn_ipnat));
	frentry_0_to_current(&old->ipn_fr, &nats->ipn_fr);
	nats->ipn_dsize = old->ipn_dsize;
	bcopy(old->ipn_data, nats->ipn_data, sizeof(nats->ipn_data));
}


static void nat_save_3_to_current(old, current)
nat_save_4_1_3_t *old;
void *current;
{
	nat_save_t *nats = (nat_save_t *)current;

	nats->ipn_next = old->ipn_next;
	nat_3_to_current(&old->ipn_nat, &nats->ipn_nat);
	ipnat_0_to_current(&old->ipn_ipnat, &nats->ipn_ipnat);
	frentry_0_to_current(&old->ipn_fr, &nats->ipn_fr);
	nats->ipn_dsize = old->ipn_dsize;
	bcopy(old->ipn_data, nats->ipn_data, sizeof(nats->ipn_data));
}


static void ipstate_save_current_to_16(current, old)
void *current;
ipstate_save_4_1_16_t *old;
{
	ipstate_save_t *ips = (ipstate_save_t *)current;

	old->ips_next = ips->ips_next;
	ipstate_current_to_0(&ips->ips_is, &old->ips_is);
	frentry_current_to_16(&ips->ips_fr, &old->ips_fr);
}


static void ipstate_save_current_to_0(current, old)
void *current;
ipstate_save_4_1_0_t *old;
{
	ipstate_save_t *ips = (ipstate_save_t *)current;

	old->ips_next = ips->ips_next;
	ipstate_current_to_0(&ips->ips_is, &old->ips_is);
	frentry_current_to_0(&ips->ips_fr, &old->ips_fr);
}


int fr_out_compat(obj, ptr)
ipfobj_t *obj;
void *ptr;
{
	int error;
	int sz;

	error = EINVAL;

	switch (obj->ipfo_type)
	{
	default :
		break;

	case IPFOBJ_FRENTRY :
		if (obj->ipfo_rev >= 4011600) {
			frentry_4_1_16_t *old;

			KMALLOC(old, frentry_4_1_16_t *);
			if (old == NULL) {
				error = ENOMEM;
				break;
			}
			frentry_current_to_16(ptr, old);
			error = COPYOUT(old, obj->ipfo_ptr, sizeof(*old));
			KFREE(old);
			obj->ipfo_size = sizeof(*old);
		} else {
			frentry_4_1_0_t *old;

			KMALLOC(old, frentry_4_1_0_t *);
			if (old == NULL) {
				error = ENOMEM;
				break;
			}
			frentry_current_to_0(ptr, old);
			error = COPYOUT(old, obj->ipfo_ptr, sizeof(*old));
			KFREE(old);
			obj->ipfo_size = sizeof(*old);
		}
		break;

	case IPFOBJ_IPFSTAT :
	    {
		friostat_4_1_0_t *old;

		KMALLOC(old, friostat_4_1_0_t *);
		if (old == NULL) {
			error = ENOMEM;
			break;
		}
		friostat_current_to_0(ptr, old, obj->ipfo_rev);
		error = COPYOUT(old, obj->ipfo_ptr, sizeof(*old));
		KFREE(old);
		break;
	    }

	case IPFOBJ_IPFINFO :	/* unused */
		break;

	case IPFOBJ_IPNAT :
	    {
		ipnat_4_1_0_t *old;

		KMALLOC(old, ipnat_4_1_0_t *);
		if (old == NULL) {
			error = ENOMEM;
			break;
		}
		ipnat_current_to_0(ptr, old);
		error = COPYOUT(old, obj->ipfo_ptr, sizeof(*old));
		KFREE(old);
		break;
	    }

	case IPFOBJ_NATSTAT :
		if (obj->ipfo_rev >= 4012700)
			sz = sizeof(natstat_4_1_27_t);
		else if (obj->ipfo_rev >= 4011600)
			sz = sizeof(natstat_4_1_16_t);
		else
			sz = sizeof(natstat_4_1_0_t);
		error = COPYOUT(ptr, obj->ipfo_ptr, sz);
		break;

	case IPFOBJ_STATESAVE :
		if (obj->ipfo_rev >= 4011600) {
			ipstate_save_4_1_16_t *old;

			KMALLOC(old, ipstate_save_4_1_16_t *);
			if (old == NULL) {
				error = ENOMEM;
				break;
			}
			ipstate_save_current_to_16(ptr, old);
			error = COPYOUT(old, obj->ipfo_ptr, sizeof(*old));
			KFREE(old);
		} else {
			ipstate_save_4_1_0_t *old;

			KMALLOC(old, ipstate_save_4_1_0_t *);
			if (old == NULL) {
				error = ENOMEM;
				break;
			}
			ipstate_save_current_to_0(ptr, old);
			error = COPYOUT(old, obj->ipfo_ptr, sizeof(*old));
			KFREE(old);
		}
		break;

	case IPFOBJ_NATSAVE :
		if (obj->ipfo_rev >= 4011600) {
			nat_save_4_1_16_t *old16;

			KMALLOC(old16, nat_save_4_1_16_t *);
			if (old16 == NULL) {
				error = ENOMEM;
				break;
			}
			nat_save_current_to_16(ptr, old16);
			error = COPYOUT(&old16, obj->ipfo_ptr, sizeof(*old16));
			KFREE(old16);
		} else if (obj->ipfo_rev >= 4011400) {
			nat_save_4_1_14_t *old14;

			KMALLOC(old14, nat_save_4_1_14_t *);
			if (old14 == NULL) {
				error = ENOMEM;
				break;
			}
			nat_save_current_to_14(ptr, old14);
			error = COPYOUT(&old14, obj->ipfo_ptr, sizeof(*old14));
			KFREE(old14);
		} else if (obj->ipfo_rev >= 4010300) {
			nat_save_4_1_3_t *old3;

			KMALLOC(old3, nat_save_4_1_3_t *);
			if (old3 == NULL) {
				error = ENOMEM;
				break;
			}
			nat_save_current_to_3(ptr, old3);
			error = COPYOUT(&old3, obj->ipfo_ptr, sizeof(*old3));
			KFREE(old3);
		}
		break;

	case IPFOBJ_IPSTATE :
	    {
		ipstate_4_1_0_t *old;

		KMALLOC(old, ipstate_4_1_0_t *);
		if (old == NULL) {
			error = ENOMEM;
			break;
		}
		ipstate_current_to_0(ptr, old);
		error = COPYOUT(old, obj->ipfo_ptr, sizeof(*old));
		KFREE(old);
		break;
	    }

	case IPFOBJ_STATESTAT :
		error = COPYOUT(ptr, obj->ipfo_ptr, sizeof(ips_stat_4_1_0_t));
		break;

	case IPFOBJ_FRAUTH :
		if (obj->ipfo_rev >= 4012900) {
			frauth_4_1_29_t *old29;

			KMALLOC(old29, frauth_4_1_29_t *);
			if (old29 == NULL) {
				error = ENOMEM;
				break;
			}
			frauth_current_to_29(ptr, old29);
			error = COPYOUT(old29, obj->ipfo_ptr, sizeof(*old29));
			KFREE(old29);
		} else if (obj->ipfo_rev >= 4012400) {
			frauth_4_1_24_t *old24;

			KMALLOC(old24, frauth_4_1_24_t *);
			if (old24 == NULL) {
				error = ENOMEM;
				break;
			}
			frauth_current_to_24(ptr, old24);
			error = COPYOUT(old24, obj->ipfo_ptr, sizeof(*old24));
			KFREE(old24);
		} else if (obj->ipfo_rev >= 4012300) {
			frauth_4_1_23_t *old23;

			KMALLOC(old23, frauth_4_1_23_t *);
			if (old23 == NULL) {
				error = ENOMEM;
				break;
			}
			frauth_current_to_23(ptr, old23);
			error = COPYOUT(old23, obj->ipfo_ptr, sizeof(*old23));
			KFREE(old23);
		} else if (obj->ipfo_rev >= 4011100) {
			frauth_4_1_11_t *old11;

			KMALLOC(old11, frauth_4_1_11_t *);
			if (old11 == NULL) {
				error = ENOMEM;
				break;
			}
			frauth_current_to_11(ptr, old11);
			error = COPYOUT(old11, obj->ipfo_ptr, sizeof(*old11));
			KFREE(old11);
		}
		break;

	case IPFOBJ_NAT :
		if (obj->ipfo_rev >= 4011400) {
			sz = sizeof(nat_4_1_14_t);
		} else if (obj->ipfo_rev >= 4010300) {
			sz = sizeof(nat_4_1_3_t);
		} else {
			break;
		}
		error = COPYOUT(ptr, obj->ipfo_ptr, sz);
		break;
	}
	return error;
}


static void friostat_current_to_0(current, old, rev)
void *current;
friostat_4_1_0_t *old;
int rev;
{
	friostat_t *fiop = (friostat_t *)current;

	bcopy(&fiop->f_st, &old->f_st, sizeof(fiop->f_st));
	old->f_ipf[0][0] = fiop->f_ipf[0][0];
	old->f_ipf[0][1] = fiop->f_ipf[0][1];
	old->f_ipf[1][0] = fiop->f_ipf[1][0];
	old->f_ipf[1][1] = fiop->f_ipf[1][1];
	old->f_acct[0][0] = fiop->f_acct[0][0];
	old->f_acct[0][1] = fiop->f_acct[0][1];
	old->f_acct[1][0] = fiop->f_acct[1][0];
	old->f_acct[1][1] = fiop->f_acct[1][1];
	old->f_ipf6[0][0] = fiop->f_ipf6[0][0];
	old->f_ipf6[0][1] = fiop->f_ipf6[0][1];
	old->f_ipf6[1][0] = fiop->f_ipf6[1][0];
	old->f_ipf6[1][1] = fiop->f_ipf6[1][1];
	old->f_acct6[0][0] = fiop->f_acct6[0][0];
	old->f_acct6[0][1] = fiop->f_acct6[0][1];
	old->f_acct6[1][0] = fiop->f_acct6[1][0];
	old->f_acct6[1][1] = fiop->f_acct6[1][1];
	old->f_auth = fiop->f_auth;
	bcopy(&fiop->f_groups, &old->f_groups, sizeof(old->f_groups));
	bcopy(&fiop->f_froute, &old->f_froute, sizeof(old->f_froute));
	old->f_ticks = fiop->f_ticks;
	bcopy(&fiop->f_locks, &old->f_locks, sizeof(old->f_locks));
	old->f_kmutex_sz = fiop->f_kmutex_sz;
	old->f_krwlock_sz = fiop->f_krwlock_sz;
	old->f_defpass = fiop->f_defpass;
	old->f_active = fiop->f_active;
	old->f_running = fiop->f_running;
	old->f_logging = fiop->f_logging;
	old->f_features = fiop->f_features;
	sprintf(old->f_version, "IP Filter: v%d.%d.%d",
		(rev / 1000000) % 100,
		(rev / 10000) % 100,
		(rev / 100) % 100);
}


static void frentry_current_to_16(current, old)
void *current;
frentry_4_1_16_t *old;
{
	frentry_t *fr = (frentry_t *)current;

	old->fr_lock = fr->fr_lock;
	old->fr_next = fr->fr_next;
	old->fr_grp = fr->fr_grp;
	old->fr_isc = fr->fr_isc;
	old->fr_ifas[0] = fr->fr_ifas[0];
	old->fr_ifas[1] = fr->fr_ifas[1];
	old->fr_ifas[2] = fr->fr_ifas[2];
	old->fr_ifas[3] = fr->fr_ifas[3];
	old->fr_ptr = fr->fr_ptr;
	old->fr_comment = fr->fr_comment;
	old->fr_ref = fr->fr_ref;
	old->fr_statecnt = fr->fr_statecnt;
	old->fr_hits = fr->fr_hits;
	old->fr_bytes = fr->fr_bytes;
	old->fr_lastpkt.tv_sec = fr->fr_lastpkt.tv_sec;
	old->fr_lastpkt.tv_usec = fr->fr_lastpkt.tv_usec;
	old->fr_curpps = fr->fr_curpps;
	bcopy(&fr->fr_dun, &old->fr_dun, sizeof(fr->fr_dun));
	old->fr_func = fr->fr_func;
	old->fr_dsize = fr->fr_dsize;
	old->fr_pps = fr->fr_pps;
	old->fr_statemax = fr->fr_statemax;
	old->fr_flineno = fr->fr_flineno;
	old->fr_type = fr->fr_type;
	old->fr_flags = fr->fr_flags;
	old->fr_logtag = fr->fr_logtag;
	old->fr_collect = fr->fr_collect;
	old->fr_arg = fr->fr_arg;
	old->fr_loglevel = fr->fr_loglevel;
	old->fr_age[0] = fr->fr_age[0];
	old->fr_age[1] = fr->fr_age[1];
	old->fr_v = fr->fr_v;
	old->fr_icode = fr->fr_icode;
	bcopy(&fr->fr_group, &old->fr_group, sizeof(fr->fr_group));
	bcopy(&fr->fr_grhead, &old->fr_grhead, sizeof(fr->fr_grhead));
	bcopy(&fr->fr_nattag, &old->fr_nattag, sizeof(fr->fr_nattag));
	bcopy(&fr->fr_ifnames, &old->fr_ifnames, sizeof(fr->fr_ifnames));
	bcopy(&fr->fr_isctag, &old->fr_isctag, sizeof(fr->fr_isctag));
	bcopy(&fr->fr_tifs, &old->fr_tifs, sizeof(fr->fr_tifs));
	bcopy(&fr->fr_dif, &old->fr_dif, sizeof(fr->fr_dif));
	old->fr_cksum = fr->fr_cksum;
}


static void frentry_current_to_0(current, old)
void *current;
frentry_4_1_0_t *old;
{
	frentry_t *fr = (frentry_t *)current;

	old->fr_lock = fr->fr_lock;
	old->fr_next = fr->fr_next;
	old->fr_grp = fr->fr_grp;
	old->fr_isc = fr->fr_isc;
	old->fr_ifas[0] = fr->fr_ifas[0];
	old->fr_ifas[1] = fr->fr_ifas[1];
	old->fr_ifas[2] = fr->fr_ifas[2];
	old->fr_ifas[3] = fr->fr_ifas[3];
	old->fr_ptr = fr->fr_ptr;
	old->fr_comment = fr->fr_comment;
	old->fr_ref = fr->fr_ref;
	old->fr_statecnt = fr->fr_statecnt;
	old->fr_hits = fr->fr_hits;
	old->fr_bytes = fr->fr_bytes;
	old->fr_lastpkt.tv_sec = fr->fr_lastpkt.tv_sec;
	old->fr_lastpkt.tv_usec = fr->fr_lastpkt.tv_usec;
	old->fr_curpps = fr->fr_curpps;
	bcopy(&fr->fr_dun, &old->fr_dun, sizeof(fr->fr_dun));
	old->fr_func = fr->fr_func;
	old->fr_dsize = fr->fr_dsize;
	old->fr_pps = fr->fr_pps;
	old->fr_statemax = fr->fr_statemax;
	old->fr_flineno = fr->fr_flineno;
	old->fr_type = fr->fr_type;
	old->fr_flags = fr->fr_flags;
	old->fr_logtag = fr->fr_logtag;
	old->fr_collect = fr->fr_collect;
	old->fr_arg = fr->fr_arg;
	old->fr_loglevel = fr->fr_loglevel;
	old->fr_age[0] = fr->fr_age[0];
	old->fr_age[1] = fr->fr_age[1];
	old->fr_v = fr->fr_v;
	old->fr_icode = fr->fr_icode;
	bcopy(&fr->fr_group, &old->fr_group, sizeof(fr->fr_group));
	bcopy(&fr->fr_grhead, &old->fr_grhead, sizeof(fr->fr_grhead));
	bcopy(&fr->fr_nattag, &old->fr_nattag, sizeof(fr->fr_nattag));
	bcopy(&fr->fr_ifnames, &old->fr_ifnames, sizeof(fr->fr_ifnames));
	bcopy(&fr->fr_isctag, &old->fr_isctag, sizeof(fr->fr_isctag));
	bcopy(&fr->fr_tifs, &old->fr_tifs, sizeof(fr->fr_tifs));
	bcopy(&fr->fr_dif, &old->fr_dif, sizeof(fr->fr_dif));
	old->fr_cksum = fr->fr_cksum;
}


static void fr_info_current_to_24(current, old)
void *current;
fr_info_4_1_24_t *old;
{
	fr_info_t *fin = (fr_info_t *)current;

	old->fin_ifp = fin->fin_ifp;
	old->fin_fi = fin->fin_fi;
	bcopy(&fin->fin_dat, &old->fin_dat, sizeof(fin->fin_dat));
	old->fin_out = fin->fin_out;
	old->fin_rev = fin->fin_rev;
	old->fin_hlen = fin->fin_hlen;
	old->fin_tcpf = fin->fin_tcpf;
	old->fin_icode = fin->fin_icode;
	old->fin_rule = fin->fin_rule;
	bcopy(fin->fin_group, old->fin_group, sizeof(fin->fin_group));
	old->fin_fr = fin->fin_fr;
	old->fin_dp = fin->fin_dp;
	old->fin_dlen = fin->fin_dlen;
	old->fin_plen = fin->fin_plen;
	old->fin_ipoff = fin->fin_ipoff;
	old->fin_id = fin->fin_id;
	old->fin_off = fin->fin_off;
	old->fin_depth = fin->fin_depth;
	old->fin_error = fin->fin_error;
	old->fin_cksum = fin->fin_cksum;
	old->fin_state = NULL;
	old->fin_nat = NULL;
	old->fin_nattag = fin->fin_nattag;
	old->fin_exthdr = fin->fin_exthdr;
	old->fin_ip = fin->fin_ip;
	old->fin_mp = fin->fin_mp;
	old->fin_m = fin->fin_m;
#ifdef  MENTAT
	old->fin_qfm = fin->fin_qfm;
	old->fin_qpi = fin->fin_qpi;
	old->fin_ifname = fin_ifname;
#endif
#ifdef  __sgi
	old->fin_hbuf = fin->fin_hbuf;
#endif
}


static void fr_info_current_to_23(current, old)
void *current;
fr_info_4_1_23_t *old;
{
	fr_info_t *fin = (fr_info_t *)current;

	old->fin_ifp = fin->fin_ifp;
	old->fin_fi = fin->fin_fi;
	bcopy(&fin->fin_dat, &old->fin_dat, sizeof(fin->fin_dat));
	old->fin_out = fin->fin_out;
	old->fin_rev = fin->fin_rev;
	old->fin_hlen = fin->fin_hlen;
	old->fin_tcpf = fin->fin_tcpf;
	old->fin_icode = fin->fin_icode;
	old->fin_rule = fin->fin_rule;
	bcopy(fin->fin_group, old->fin_group, sizeof(fin->fin_group));
	old->fin_fr = fin->fin_fr;
	old->fin_dp = fin->fin_dp;
	old->fin_dlen = fin->fin_dlen;
	old->fin_plen = fin->fin_plen;
	old->fin_ipoff = fin->fin_ipoff;
	old->fin_id = fin->fin_id;
	old->fin_off = fin->fin_off;
	old->fin_depth = fin->fin_depth;
	old->fin_error = fin->fin_error;
	old->fin_state = NULL;
	old->fin_nat = NULL;
	old->fin_nattag = fin->fin_nattag;
	old->fin_exthdr = fin->fin_exthdr;
	old->fin_ip = fin->fin_ip;
	old->fin_mp = fin->fin_mp;
	old->fin_m = fin->fin_m;
#ifdef  MENTAT
	old->fin_qfm = fin->fin_qfm;
	old->fin_qpi = fin->fin_qpi;
	old->fin_ifname = fin_ifname;
#endif
#ifdef  __sgi
	old->fin_hbuf = fin->fin_hbuf;
#endif
}


static void fr_info_current_to_11(current, old)
void *current;
fr_info_4_1_11_t *old;
{
	fr_info_t *fin = (fr_info_t *)current;

	old->fin_ifp = fin->fin_ifp;
	old->fin_fi = fin->fin_fi;
	bcopy(&fin->fin_dat, &old->fin_dat, sizeof(fin->fin_dat));
	old->fin_out = fin->fin_out;
	old->fin_rev = fin->fin_rev;
	old->fin_hlen = fin->fin_hlen;
	old->fin_tcpf = fin->fin_tcpf;
	old->fin_icode = fin->fin_icode;
	old->fin_rule = fin->fin_rule;
	bcopy(fin->fin_group, old->fin_group, sizeof(fin->fin_group));
	old->fin_fr = fin->fin_fr;
	old->fin_dp = fin->fin_dp;
	old->fin_dlen = fin->fin_dlen;
	old->fin_plen = fin->fin_plen;
	old->fin_ipoff = fin->fin_ipoff;
	old->fin_id = fin->fin_id;
	old->fin_off = fin->fin_off;
	old->fin_depth = fin->fin_depth;
	old->fin_error = fin->fin_error;
	old->fin_state = NULL;
	old->fin_nat = NULL;
	old->fin_nattag = fin->fin_nattag;
	old->fin_ip = fin->fin_ip;
	old->fin_mp = fin->fin_mp;
	old->fin_m = fin->fin_m;
#ifdef  MENTAT
	old->fin_qfm = fin->fin_qfm;
	old->fin_qpi = fin->fin_qpi;
	old->fin_ifname = fin_ifname;
#endif
#ifdef  __sgi
	old->fin_hbuf = fin->fin_hbuf;
#endif
}


static void frauth_current_to_29(current, old)
void *current;
frauth_4_1_29_t *old;
{
	frauth_t *fra = (frauth_t *)current;

	old->fra_age = fra->fra_age;
	old->fra_len = fra->fra_len;
	old->fra_index = fra->fra_index;
	old->fra_pass = fra->fra_pass;
	fr_info_current_to_24(&fra->fra_info, &old->fra_info);
	old->fra_buf = fra->fra_buf;
	old->fra_flx = fra->fra_flx;
#ifdef	MENTAT
	old->fra_q = fra->fra_q;
	old->fra_m = fra->fra_m;
#endif
}


static void frauth_current_to_24(current, old)
void *current;
frauth_4_1_24_t *old;
{
	frauth_t *fra = (frauth_t *)current;

	old->fra_age = fra->fra_age;
	old->fra_len = fra->fra_len;
	old->fra_index = fra->fra_index;
	old->fra_pass = fra->fra_pass;
	fr_info_current_to_24(&fra->fra_info, &old->fra_info);
	old->fra_buf = fra->fra_buf;
#ifdef	MENTAT
	old->fra_q = fra->fra_q;
	old->fra_m = fra->fra_m;
#endif
}


static void frauth_current_to_23(current, old)
void *current;
frauth_4_1_23_t *old;
{
	frauth_t *fra = (frauth_t *)current;

	old->fra_age = fra->fra_age;
	old->fra_len = fra->fra_len;
	old->fra_index = fra->fra_index;
	old->fra_pass = fra->fra_pass;
	fr_info_current_to_23(&fra->fra_info, &old->fra_info);
	old->fra_buf = fra->fra_buf;
#ifdef	MENTAT
	old->fra_q = fra->fra_q;
	old->fra_m = fra->fra_m;
#endif
}


static void frauth_current_to_11(current, old)
void *current;
frauth_4_1_11_t *old;
{
	frauth_t *fra = (frauth_t *)current;

	old->fra_age = fra->fra_age;
	old->fra_len = fra->fra_len;
	old->fra_index = fra->fra_index;
	old->fra_pass = fra->fra_pass;
	fr_info_current_to_11(&fra->fra_info, &old->fra_info);
	old->fra_buf = fra->fra_buf;
#ifdef	MENTAT
	old->fra_q = fra->fra_q;
	old->fra_m = fra->fra_m;
#endif
}


static void ipnat_current_to_0(current, old)
void *current;
ipnat_4_1_0_t *old;
{
	ipnat_t *np = (ipnat_t *)current;

	old->in_next = np->in_next;
	old->in_rnext = np->in_rnext;
	old->in_prnext = np->in_prnext;
	old->in_mnext = np->in_mnext;
	old->in_pmnext = np->in_pmnext;
	old->in_tqehead[0] = np->in_tqehead[0];
	old->in_tqehead[1] = np->in_tqehead[1];
	old->in_ifps[0] = np->in_ifps[0];
	old->in_ifps[1] = np->in_ifps[1];
	old->in_apr = np->in_apr;
	old->in_comment = np->in_comment;
	old->in_next6 = np->in_next6;
	old->in_space = np->in_space;
	old->in_hits = np->in_hits;
	old->in_use = np->in_use;
	old->in_hv = np->in_hv;
	old->in_flineno = np->in_flineno;
	old->in_pnext = np->in_pnext;
	old->in_v = np->in_v;
	old->in_xxx = np->in_xxx;
	old->in_flags = np->in_flags;
	old->in_mssclamp = np->in_mssclamp;
	bcopy(&np->in_age, &old->in_age, sizeof(np->in_age));
	old->in_redir = np->in_redir;
	old->in_p = np->in_p;
	bcopy(&np->in_in, &old->in_in, sizeof(np->in_in));
	bcopy(&np->in_out, &old->in_out, sizeof(np->in_out));
	bcopy(&np->in_src, &old->in_src, sizeof(np->in_src));
	bcopy(&np->in_tuc, &old->in_tuc, sizeof(np->in_tuc));
	old->in_port[0] = np->in_port[0];
	old->in_port[1] = np->in_port[1];
	old->in_ppip = np->in_ppip;
	old->in_ippip = np->in_ippip;
	bcopy(&np->in_ifnames, &old->in_ifnames, sizeof(np->in_ifnames));
	bcopy(&np->in_plabel, &old->in_plabel, sizeof(np->in_plabel));
	bcopy(&np->in_tag, &old->in_tag, sizeof(np->in_tag));
}


static void ipstate_current_to_0(current, old)
void *current;
ipstate_4_1_0_t *old;
{
	ipstate_t *is = (ipstate_t *)current;

	old->is_lock = is->is_lock;
	old->is_next = is->is_next;
	old->is_pnext = is->is_pnext;
	old->is_hnext = is->is_hnext;
	old->is_phnext = is->is_phnext;
	old->is_me = is->is_me;
	old->is_ifp[0] = is->is_ifp[0];
	old->is_ifp[1] = is->is_ifp[1];
	old->is_sync = is->is_sync;
	bzero(&old->is_nat, sizeof(old->is_nat));
	old->is_rule = is->is_rule;
	old->is_tqehead[0] = is->is_tqehead[0];
	old->is_tqehead[1] = is->is_tqehead[1];
	old->is_isc = is->is_isc;
	old->is_pkts[0] = is->is_pkts[0];
	old->is_pkts[1] = is->is_pkts[1];
	old->is_pkts[2] = is->is_pkts[2];
	old->is_pkts[3] = is->is_pkts[3];
	old->is_bytes[0] = is->is_bytes[0];
	old->is_bytes[1] = is->is_bytes[1];
	old->is_bytes[2] = is->is_bytes[2];
	old->is_bytes[3] = is->is_bytes[3];
	old->is_icmppkts[0] = is->is_icmppkts[0];
	old->is_icmppkts[1] = is->is_icmppkts[1];
	old->is_icmppkts[2] = is->is_icmppkts[2];
	old->is_icmppkts[3] = is->is_icmppkts[3];
	old->is_sti = is->is_sti;
	old->is_frage[0] = is->is_frage[0];
	old->is_frage[1] = is->is_frage[1];
	old->is_ref = is->is_ref;
	old->is_isninc[0] = is->is_isninc[0];
	old->is_isninc[1] = is->is_isninc[1];
	old->is_sumd[0] = is->is_sumd[0];
	old->is_sumd[1] = is->is_sumd[1];
	old->is_src = is->is_src;
	old->is_dst = is->is_dst;
	old->is_pass = is->is_pass;
	old->is_p = is->is_p;
	old->is_v = is->is_v;
	old->is_hv = is->is_hv;
	old->is_tag = is->is_tag;
	old->is_opt[0] = is->is_opt[0];
	old->is_opt[1] = is->is_opt[1];
	old->is_optmsk[0] = is->is_optmsk[0];
	old->is_optmsk[1] = is->is_optmsk[1];
	old->is_sec = is->is_sec;
	old->is_secmsk = is->is_secmsk;
	old->is_auth = is->is_auth;
	old->is_authmsk = is->is_authmsk;
	bcopy(&is->is_ps, &old->is_ps, sizeof(is->is_ps));
	old->is_flags = is->is_flags;
	old->is_flx[0][0] = is->is_flx[0][0];
	old->is_flx[0][1] = is->is_flx[0][1];
	old->is_flx[1][0] = is->is_flx[1][0];
	old->is_flx[1][1] = is->is_flx[1][1];
	old->is_rulen = is->is_rulen;
	old->is_s0[0] = is->is_s0[0];
	old->is_s0[1] = is->is_s0[1];
	old->is_smsk[0] = is->is_smsk[0];
	old->is_smsk[1] = is->is_smsk[1];
	bcopy(is->is_group, old->is_group, sizeof(is->is_group));
	bcopy(is->is_sbuf, old->is_sbuf, sizeof(is->is_sbuf));
	bcopy(is->is_ifname, old->is_ifname, sizeof(is->is_ifname));
}


static void nat_save_current_to_16(current, old)
void *current;
nat_save_4_1_16_t *old;
{
	nat_save_t *nats = (nat_save_t *)current;

	old->ipn_next = nats->ipn_next;
	bcopy(&nats->ipn_nat, &old->ipn_nat, sizeof(old->ipn_nat));
	bcopy(&nats->ipn_ipnat, &old->ipn_ipnat, sizeof(old->ipn_ipnat));
	frentry_current_to_16(&nats->ipn_fr, &old->ipn_fr);
	old->ipn_dsize = nats->ipn_dsize;
	bcopy(nats->ipn_data, old->ipn_data, sizeof(nats->ipn_data));
}


static void nat_save_current_to_14(current, old)
void *current;
nat_save_4_1_14_t *old;
{
	nat_save_t *nats = (nat_save_t *)current;

	old->ipn_next = nats->ipn_next;
	bcopy(&nats->ipn_nat, &old->ipn_nat, sizeof(old->ipn_nat));
	bcopy(&nats->ipn_ipnat, &old->ipn_ipnat, sizeof(old->ipn_ipnat));
	frentry_current_to_0(&nats->ipn_fr, &old->ipn_fr);
	old->ipn_dsize = nats->ipn_dsize;
	bcopy(nats->ipn_data, old->ipn_data, sizeof(nats->ipn_data));
}


static void nat_save_current_to_3(current, old)
void *current;
nat_save_4_1_3_t *old;
{
	nat_save_t *nats = (nat_save_t *)current;

	old->ipn_next = nats->ipn_next;
	bcopy(&nats->ipn_nat, &old->ipn_nat, sizeof(old->ipn_nat));
	bcopy(&nats->ipn_ipnat, &old->ipn_ipnat, sizeof(old->ipn_ipnat));
	frentry_current_to_0(&nats->ipn_fr, &old->ipn_fr);
	old->ipn_dsize = nats->ipn_dsize;
	bcopy(nats->ipn_data, old->ipn_data, sizeof(nats->ipn_data));
}

#endif /* IPFILTER_COMPAT */

File Deleted: src/dist/ipf/Attic/radix.c

File Deleted: src/dist/ipf/Attic/ip_state.h

File Deleted: src/dist/ipf/Attic/IPF.KANJI

File Deleted: src/dist/ipf/Attic/mlfk_ipl.c

File Deleted: src/dist/ipf/Attic/ip_log.c

File Deleted: src/dist/ipf/tools/Attic/ipf.c

File Deleted: src/dist/ipf/tools/Attic/lex_var.h

File Deleted: src/dist/ipf/tools/Attic/ipfs.c

File Deleted: src/dist/ipf/tools/Attic/Makefile

File Deleted: src/dist/ipf/tools/Attic/ipnat.c

File Deleted: src/dist/ipf/tools/Attic/lexer.h

File Deleted: src/dist/ipf/tools/Attic/ipsyncs.c

File Deleted: src/dist/ipf/tools/Attic/ipfstat.c

File Deleted: src/dist/ipf/tools/Attic/ipftest.c

File Deleted: src/dist/ipf/tools/Attic/ippool.c

File Deleted: src/dist/ipf/tools/Attic/ipfcomp.c

File Deleted: src/dist/ipf/tools/Attic/ipsyncm.c

File Deleted: src/dist/ipf/tools/Attic/ipmon.c

File Deleted: src/dist/ipf/tools/Attic/lexer.c

File Deleted: src/dist/ipf/tools/Attic/ipmon_y.y

File Deleted: src/dist/ipf/tools/Attic/BNF.ipnat

File Deleted: src/dist/ipf/tools/Attic/BNF.ipf

File Deleted: src/dist/ipf/ipsend/Attic/arp.c

File Deleted: src/dist/ipf/ipsend/Attic/ipsend.c

File Deleted: src/dist/ipf/ipsend/Attic/ipresend.1

File Deleted: src/dist/ipf/ipsend/Attic/linux.h

File Deleted: src/dist/ipf/ipsend/Attic/ip.c

File Deleted: src/dist/ipf/ipsend/Attic/in_var.h

File Deleted: src/dist/ipf/ipsend/Attic/iptest.1

File Deleted: src/dist/ipf/ipsend/Attic/slinux.c

File Deleted: src/dist/ipf/ipsend/Attic/larp.c

File Deleted: src/dist/ipf/ipsend/Attic/dltest.h

File Deleted: src/dist/ipf/ipsend/Attic/ip_var.h

File Deleted: src/dist/ipf/ipsend/Attic/ipsend.h

File Deleted: src/dist/ipf/ipsend/Attic/Crashable

File Deleted: src/dist/ipf/ipsend/Attic/Makefile

File Deleted: src/dist/ipf/ipsend/Attic/iptest.c

File Deleted: src/dist/ipf/ipsend/Attic/ipsopt.c

File Deleted: src/dist/ipf/ipsend/Attic/tcpip.h

File Deleted: src/dist/ipf/ipsend/Attic/sockraw.c

File Deleted: src/dist/ipf/ipsend/Attic/README

File Deleted: src/dist/ipf/ipsend/Attic/resend.c

File Deleted: src/dist/ipf/ipsend/Attic/44arp.c

File Deleted: src/dist/ipf/ipsend/Attic/ipresend.c

File Deleted: src/dist/ipf/ipsend/Attic/lsock.c

File Deleted: src/dist/ipf/ipsend/Attic/ipsend.1

File Deleted: src/dist/ipf/test/Attic/natipftest

File Deleted: src/dist/ipf/test/Attic/itest

File Deleted: src/dist/ipf/test/Attic/nattest

File Deleted: src/dist/ipf/test/Attic/vfycksum.pl

File Deleted: src/dist/ipf/test/Attic/test.format

File Deleted: src/dist/ipf/test/Attic/bpftest

File Deleted: src/dist/ipf/test/Attic/README.TXT

File Deleted: src/dist/ipf/test/Attic/hextest

File Deleted: src/dist/ipf/test/Attic/iptest

File Deleted: src/dist/ipf/test/Attic/dotest6

File Deleted: src/dist/ipf/test/Attic/mhtest

File Deleted: src/dist/ipf/test/Attic/ptest

File Deleted: src/dist/ipf/test/Attic/Makefile

File Deleted: src/dist/ipf/test/Attic/intest

File Deleted: src/dist/ipf/test/Attic/dotest

File Deleted: src/dist/ipf/test/Attic/logtest

File Deleted: src/dist/ipf/test/Attic/mtest

File Deleted: src/dist/ipf/test/expected/Attic/ni21

File Deleted: src/dist/ipf/test/expected/Attic/f18

File Deleted: src/dist/ipf/test/expected/Attic/ip2

File Deleted: src/dist/ipf/test/expected/Attic/f7

File Deleted: src/dist/ipf/test/expected/Attic/f12

File Deleted: src/dist/ipf/test/expected/Attic/ni13

File Deleted: src/dist/ipf/test/expected/Attic/ni19

File Deleted: src/dist/ipf/test/expected/Attic/f20

File Deleted: src/dist/ipf/test/expected/Attic/ipv6.2

File Deleted: src/dist/ipf/test/expected/Attic/ni7

File Deleted: src/dist/ipf/test/expected/Attic/n7

File Deleted: src/dist/ipf/test/expected/Attic/n16

File Deleted: src/dist/ipf/test/expected/Attic/i19.dist

File Deleted: src/dist/ipf/test/expected/Attic/i17

File Deleted: src/dist/ipf/test/expected/Attic/in1

File Deleted: src/dist/ipf/test/expected/Attic/i10

File Deleted: src/dist/ipf/test/expected/Attic/in6

File Deleted: src/dist/ipf/test/expected/Attic/i7

File Deleted: src/dist/ipf/test/expected/Attic/n11

File Deleted: src/dist/ipf/test/expected/Attic/ipv6.5

File Deleted: src/dist/ipf/test/expected/Attic/ni14

File Deleted: src/dist/ipf/test/expected/Attic/l1

File Deleted: src/dist/ipf/test/expected/Attic/p3

File Deleted: src/dist/ipf/test/expected/Attic/f15

File Deleted: src/dist/ipf/test/expected/Attic/f11

File Deleted: src/dist/ipf/test/expected/Attic/f4

File Deleted: src/dist/ipf/test/expected/Attic/ip1

File Deleted: src/dist/ipf/test/expected/Attic/ni10

File Deleted: src/dist/ipf/test/expected/Attic/i9

File Deleted: src/dist/ipf/test/expected/Attic/i3

File Deleted: src/dist/ipf/test/expected/Attic/n4

File Deleted: src/dist/ipf/test/expected/Attic/ni4

File Deleted: src/dist/ipf/test/expected/Attic/ipv6.1

File Deleted: src/dist/ipf/test/expected/Attic/in2

File Deleted: src/dist/ipf/test/expected/Attic/l1.b

File Deleted: src/dist/ipf/test/expected/Attic/i14

File Deleted: src/dist/ipf/test/expected/Attic/in5

File Deleted: src/dist/ipf/test/expected/Attic/i13

File Deleted: src/dist/ipf/test/expected/Attic/ipv6.6

File Deleted: src/dist/ipf/test/expected/Attic/i21

File Deleted: src/dist/ipf/test/expected/Attic/ni9

File Deleted: src/dist/ipf/test/expected/Attic/n12

File Deleted: src/dist/ipf/test/expected/Attic/n9

File Deleted: src/dist/ipf/test/expected/Attic/n3

File Deleted: src/dist/ipf/test/expected/Attic/i4

File Deleted: src/dist/ipf/test/expected/Attic/n18

File Deleted: src/dist/ipf/test/expected/Attic/ni3

File Deleted: src/dist/ipf/test/expected/Attic/f24

File Deleted: src/dist/ipf/test/expected/Attic/bpf1

File Deleted: src/dist/ipf/test/expected/Attic/f16

File Deleted: src/dist/ipf/test/expected/Attic/f9

File Deleted: src/dist/ipf/test/expected/Attic/f3

File Deleted: src/dist/ipf/test/expected/Attic/ni15

File Deleted: src/dist/ipf/test/expected/Attic/p2

File Deleted: src/dist/ipf/test/expected/Attic/f14

File Deleted: src/dist/ipf/test/expected/Attic/f1

File Deleted: src/dist/ipf/test/expected/Attic/in7

File Deleted: src/dist/ipf/test/expected/Attic/i11

File Deleted: src/dist/ipf/test/expected/Attic/n10

File Deleted: src/dist/ipf/test/expected/Attic/n1

File Deleted: src/dist/ipf/test/expected/Attic/i6

File Deleted: src/dist/ipf/test/expected/Attic/ni1

File Deleted: src/dist/ipf/test/expected/Attic/i23

File Deleted: src/dist/ipf/test/expected/Attic/ipv6.3

File Deleted: src/dist/ipf/test/expected/Attic/n17

File Deleted: src/dist/ipf/test/expected/Attic/i1

File Deleted: src/dist/ipf/test/expected/Attic/n6

File Deleted: src/dist/ipf/test/expected/Attic/ni6

File Deleted: src/dist/ipf/test/expected/Attic/i16

File Deleted: src/dist/ipf/test/expected/Attic/f13

File Deleted: src/dist/ipf/test/expected/Attic/f6

File Deleted: src/dist/ipf/test/expected/Attic/ni20

File Deleted: src/dist/ipf/test/expected/Attic/f19

File Deleted: src/dist/ipf/test/expected/Attic/p5

File Deleted: src/dist/ipf/test/expected/Attic/ni12

File Deleted: src/dist/ipf/test/expected/Attic/p1

File Deleted: src/dist/ipf/test/expected/Attic/ni16

File Deleted: src/dist/ipf/test/expected/Attic/f2

File Deleted: src/dist/ipf/test/expected/Attic/f8

File Deleted: src/dist/ipf/test/expected/Attic/f17

File Deleted: src/dist/ipf/test/expected/Attic/i12

File Deleted: src/dist/ipf/test/expected/Attic/in4

File Deleted: src/dist/ipf/test/expected/Attic/i18

File Deleted: src/dist/ipf/test/expected/Attic/i20

File Deleted: src/dist/ipf/test/expected/Attic/ni2

File Deleted: src/dist/ipf/test/expected/Attic/i5

File Deleted: src/dist/ipf/test/expected/Attic/n2

File Deleted: src/dist/ipf/test/expected/Attic/n8

File Deleted: src/dist/ipf/test/expected/Attic/n13

File Deleted: src/dist/ipf/test/expected/Attic/ni8

File Deleted: src/dist/ipf/test/expected/Attic/Makefile

File Deleted: src/dist/ipf/test/expected/Attic/ni5

File Deleted: src/dist/ipf/test/expected/Attic/n5

File Deleted: src/dist/ipf/test/expected/Attic/i2

File Deleted: src/dist/ipf/test/expected/Attic/n14

File Deleted: src/dist/ipf/test/expected/Attic/i8

File Deleted: src/dist/ipf/test/expected/Attic/i15

File Deleted: src/dist/ipf/test/expected/Attic/in3

File Deleted: src/dist/ipf/test/expected/Attic/ni23

File Deleted: src/dist/ipf/test/expected/Attic/f5

File Deleted: src/dist/ipf/test/expected/Attic/f10

File Deleted: src/dist/ipf/test/expected/Attic/ni11

File Deleted: src/dist/ipf/test/expected/Attic/bpf-f1

File Deleted: src/dist/ipf/test/regress/Attic/n11

File Deleted: src/dist/ipf/test/regress/Attic/f1

File Deleted: src/dist/ipf/test/regress/Attic/i10

File Deleted: src/dist/ipf/test/regress/Attic/p3.pool

File Deleted: src/dist/ipf/test/regress/Attic/in6

File Deleted: src/dist/ipf/test/regress/Attic/i6

File Deleted: src/dist/ipf/test/regress/Attic/n1

File Deleted: src/dist/ipf/test/regress/Attic/f15

File Deleted: src/dist/ipf/test/regress/Attic/ipv6.2

File Deleted: src/dist/ipf/test/regress/Attic/ni2.nat

File Deleted: src/dist/ipf/test/regress/Attic/ipv6.5

File Deleted: src/dist/ipf/test/regress/Attic/f20

File Deleted: src/dist/ipf/test/regress/Attic/ni19.nat

File Deleted: src/dist/ipf/test/regress/Attic/ni5.nat

File Deleted: src/dist/ipf/test/regress/Attic/p3.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni23.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni17.nat

File Deleted: src/dist/ipf/test/regress/Attic/ni10.nat

File Deleted: src/dist/ipf/test/regress/Attic/f18

File Deleted: src/dist/ipf/test/regress/Attic/ip2

File Deleted: src/dist/ipf/test/regress/Attic/f12

File Deleted: src/dist/ipf/test/regress/Attic/n6

File Deleted: src/dist/ipf/test/regress/Attic/i1

File Deleted: src/dist/ipf/test/regress/Attic/ni11.ipf

File Deleted: src/dist/ipf/test/regress/Attic/i17

File Deleted: src/dist/ipf/test/regress/Attic/in1

File Deleted: src/dist/ipf/test/regress/Attic/ni16.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni4.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni3.ipf

File Deleted: src/dist/ipf/test/regress/Attic/n16

File Deleted: src/dist/ipf/test/regress/Attic/f6

File Deleted: src/dist/ipf/test/regress/Attic/i21

File Deleted: src/dist/ipf/test/regress/Attic/f2

File Deleted: src/dist/ipf/test/regress/Attic/n12

File Deleted: src/dist/ipf/test/regress/Attic/n18

File Deleted: src/dist/ipf/test/regress/Attic/f8

File Deleted: src/dist/ipf/test/regress/Attic/i19

File Deleted: src/dist/ipf/test/regress/Attic/in5

File Deleted: src/dist/ipf/test/regress/Attic/bpf1

File Deleted: src/dist/ipf/test/regress/Attic/i13

File Deleted: src/dist/ipf/test/regress/Attic/n2

File Deleted: src/dist/ipf/test/regress/Attic/f16

File Deleted: src/dist/ipf/test/regress/Attic/i5

File Deleted: src/dist/ipf/test/regress/Attic/n8

File Deleted: src/dist/ipf/test/regress/Attic/f24

File Deleted: src/dist/ipf/test/regress/Attic/ipv6.1

File Deleted: src/dist/ipf/test/regress/Attic/ni2.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ipv6.6

File Deleted: src/dist/ipf/test/regress/Attic/ni5.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni19.ipf

File Deleted: src/dist/ipf/test/regress/Attic/i2

File Deleted: src/dist/ipf/test/regress/Attic/f11

File Deleted: src/dist/ipf/test/regress/Attic/n5

File Deleted: src/dist/ipf/test/regress/Attic/ip1

File Deleted: src/dist/ipf/test/regress/Attic/ni23.nat

File Deleted: src/dist/ipf/test/regress/Attic/i8

File Deleted: src/dist/ipf/test/regress/Attic/ni10.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni11.nat

File Deleted: src/dist/ipf/test/regress/Attic/p5.ipf

File Deleted: src/dist/ipf/test/regress/Attic/p2.ipf

File Deleted: src/dist/ipf/test/regress/Attic/in2

File Deleted: src/dist/ipf/test/regress/Attic/ni16.nat

File Deleted: src/dist/ipf/test/regress/Attic/i14

File Deleted: src/dist/ipf/test/regress/Attic/f5

File Deleted: src/dist/ipf/test/regress/Attic/ni4.nat

File Deleted: src/dist/ipf/test/regress/Attic/ni3.nat

File Deleted: src/dist/ipf/test/regress/Attic/ni6.ipf

File Deleted: src/dist/ipf/test/regress/Attic/i16

File Deleted: src/dist/ipf/test/regress/Attic/f7

File Deleted: src/dist/ipf/test/regress/Attic/ni1.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni13.ipf

File Deleted: src/dist/ipf/test/regress/Attic/n17

File Deleted: src/dist/ipf/test/regress/Attic/ni8.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni14.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni20.nat

File Deleted: src/dist/ipf/test/regress/Attic/p1.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni15.nat

File Deleted: src/dist/ipf/test/regress/Attic/ni21.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni9.nat

File Deleted: src/dist/ipf/test/regress/Attic/ni12.nat

File Deleted: src/dist/ipf/test/regress/Attic/f13

File Deleted: src/dist/ipf/test/regress/Attic/n7

File Deleted: src/dist/ipf/test/regress/Attic/ni7.nat

File Deleted: src/dist/ipf/test/regress/Attic/f19

File Deleted: src/dist/ipf/test/regress/Attic/f14

File Deleted: src/dist/ipf/test/regress/Attic/i7

File Deleted: src/dist/ipf/test/regress/Attic/ipv6.3

File Deleted: src/dist/ipf/test/regress/Attic/n10

File Deleted: src/dist/ipf/test/regress/Attic/i23

File Deleted: src/dist/ipf/test/regress/Attic/l1

File Deleted: src/dist/ipf/test/regress/Attic/in7

File Deleted: src/dist/ipf/test/regress/Attic/i11

File Deleted: src/dist/ipf/test/regress/Attic/ni6.nat

File Deleted: src/dist/ipf/test/regress/Attic/i15

File Deleted: src/dist/ipf/test/regress/Attic/ni1.nat

File Deleted: src/dist/ipf/test/regress/Attic/in3

File Deleted: src/dist/ipf/test/regress/Attic/ni13.nat

File Deleted: src/dist/ipf/test/regress/Attic/n14

File Deleted: src/dist/ipf/test/regress/Attic/f4

File Deleted: src/dist/ipf/test/regress/Attic/ni14.nat

File Deleted: src/dist/ipf/test/regress/Attic/ni20.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni8.nat

File Deleted: src/dist/ipf/test/regress/Attic/p1.pool

File Deleted: src/dist/ipf/test/regress/Attic/ni9.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni15.ipf

File Deleted: src/dist/ipf/test/regress/Attic/ni21.nat

File Deleted: src/dist/ipf/test/regress/Attic/ni12.ipf

File Deleted: src/dist/ipf/test/regress/Attic/i9

File Deleted: src/dist/ipf/test/regress/Attic/p5.pool

File Deleted: src/dist/ipf/test/regress/Attic/f10

File Deleted: src/dist/ipf/test/regress/Attic/n4

File Deleted: src/dist/ipf/test/regress/Attic/i3

File Deleted: src/dist/ipf/test/regress/Attic/ni7.ipf

File Deleted: src/dist/ipf/test/regress/Attic/n9

File Deleted: src/dist/ipf/test/regress/Attic/i4

File Deleted: src/dist/ipf/test/regress/Attic/n3

File Deleted: src/dist/ipf/test/regress/Attic/f17

File Deleted: src/dist/ipf/test/regress/Attic/i20

File Deleted: src/dist/ipf/test/regress/Attic/f9

File Deleted: src/dist/ipf/test/regress/Attic/n13

File Deleted: src/dist/ipf/test/regress/Attic/bpf-f1

File Deleted: src/dist/ipf/test/regress/Attic/f3

File Deleted: src/dist/ipf/test/regress/Attic/i12

File Deleted: src/dist/ipf/test/regress/Attic/in4

File Deleted: src/dist/ipf/test/regress/Attic/i18

File Deleted: src/dist/ipf/test/input/Attic/n9

File Deleted: src/dist/ipf/test/input/Attic/n3

File Deleted: src/dist/ipf/test/input/Attic/n13

File Deleted: src/dist/ipf/test/input/Attic/ni8

File Deleted: src/dist/ipf/test/input/Attic/ni2

File Deleted: src/dist/ipf/test/input/Attic/f9

File Deleted: src/dist/ipf/test/input/Attic/f3

File Deleted: src/dist/ipf/test/input/Attic/ipv6.3

File Deleted: src/dist/ipf/test/input/Attic/f17

File Deleted: src/dist/ipf/test/input/Attic/ni16

File Deleted: src/dist/ipf/test/input/Attic/f10

File Deleted: src/dist/ipf/test/input/Attic/ni11

File Deleted: src/dist/ipf/test/input/Attic/ni23

File Deleted: src/dist/ipf/test/input/Attic/f4

File Deleted: src/dist/ipf/test/input/Attic/n14

File Deleted: src/dist/ipf/test/input/Attic/ni5

File Deleted: src/dist/ipf/test/input/Attic/n4

File Deleted: src/dist/ipf/test/input/Attic/ni1

File Deleted: src/dist/ipf/test/input/Attic/n10

File Deleted: src/dist/ipf/test/input/Attic/p3

File Deleted: src/dist/ipf/test/input/Attic/ni15

File Deleted: src/dist/ipf/test/input/Attic/l1

File Deleted: src/dist/ipf/test/input/Attic/f14

File Deleted: src/dist/ipf/test/input/Attic/ni12

File Deleted: src/dist/ipf/test/input/Attic/f19

File Deleted: src/dist/ipf/test/input/Attic/f13

File Deleted: src/dist/ipf/test/input/Attic/f7

File Deleted: src/dist/ipf/test/input/Attic/ni20

File Deleted: src/dist/ipf/test/input/Attic/ni6

File Deleted: src/dist/ipf/test/input/Attic/n17

File Deleted: src/dist/ipf/test/input/Attic/n7

File Deleted: src/dist/ipf/test/input/Attic/ni4

File Deleted: src/dist/ipf/test/input/Attic/n5

File Deleted: src/dist/ipf/test/input/Attic/ni10

File Deleted: src/dist/ipf/test/input/Attic/f11

File Deleted: src/dist/ipf/test/input/Attic/ipv6.5

File Deleted: src/dist/ipf/test/input/Attic/f5

File Deleted: src/dist/ipf/test/input/Attic/f2

File Deleted: src/dist/ipf/test/input/Attic/f8

File Deleted: src/dist/ipf/test/input/Attic/f24

File Deleted: src/dist/ipf/test/input/Attic/ipv6.2

File Deleted: src/dist/ipf/test/input/Attic/ni17

File Deleted: src/dist/ipf/test/input/Attic/f16

File Deleted: src/dist/ipf/test/input/Attic/p1

File Deleted: src/dist/ipf/test/input/Attic/n2

File Deleted: src/dist/ipf/test/input/Attic/ip2.data

File Deleted: src/dist/ipf/test/input/Attic/n8

File Deleted: src/dist/ipf/test/input/Attic/n18

File Deleted: src/dist/ipf/test/input/Attic/ni3

File Deleted: src/dist/ipf/test/input/Attic/ni9

File Deleted: src/dist/ipf/test/input/Attic/n12

File Deleted: src/dist/ipf/test/input/Attic/n16

File Deleted: src/dist/ipf/test/input/Attic/ni7

File Deleted: src/dist/ipf/test/input/Attic/n6

File Deleted: src/dist/ipf/test/input/Attic/ni19

File Deleted: src/dist/ipf/test/input/Attic/f12

File Deleted: src/dist/ipf/test/input/Attic/f18

File Deleted: src/dist/ipf/test/input/Attic/ni13

File Deleted: src/dist/ipf/test/input/Attic/p5

File Deleted: src/dist/ipf/test/input/Attic/f20

File Deleted: src/dist/ipf/test/input/Attic/ni21

File Deleted: src/dist/ipf/test/input/Attic/f6

File Deleted: src/dist/ipf/test/input/Attic/ipv6.6

File Deleted: src/dist/ipf/test/input/Attic/ipv6.1

File Deleted: src/dist/ipf/test/input/Attic/f1

File Deleted: src/dist/ipf/test/input/Attic/p2

File Deleted: src/dist/ipf/test/input/Attic/f15

File Deleted: src/dist/ipf/test/input/Attic/ni14

File Deleted: src/dist/ipf/test/input/Attic/n1

File Deleted: src/dist/ipf/test/input/Attic/n11

File Deleted: src/dist/ipf/iplang/Attic/iplang.h

File Deleted: src/dist/ipf/iplang/Attic/iplang_l.l

File Deleted: src/dist/ipf/iplang/Attic/iplang.tst

File Deleted: src/dist/ipf/iplang/Attic/Makefile

File Deleted: src/dist/ipf/iplang/Attic/BNF

File Deleted: src/dist/ipf/man/Attic/ipl.4

File Deleted: src/dist/ipf/man/Attic/ipscan.5

File Deleted: src/dist/ipf/man/Attic/ipfs.8

File Deleted: src/dist/ipf/man/Attic/ipfilter.5

File Deleted: src/dist/ipf/man/Attic/ipscan.8

File Deleted: src/dist/ipf/man/Attic/mkfilters.1

File Deleted: src/dist/ipf/man/Attic/ipnat.8

File Deleted: src/dist/ipf/man/Attic/ipftest.1

File Deleted: src/dist/ipf/man/Attic/ipf.8

File Deleted: src/dist/ipf/man/Attic/ipfilter.4.mandoc

File Deleted: src/dist/ipf/man/Attic/ippool.5

File Deleted: src/dist/ipf/man/Attic/ipmon.5

File Deleted: src/dist/ipf/man/Attic/Makefile

File Deleted: src/dist/ipf/man/Attic/ipmon.8

File Deleted: src/dist/ipf/man/Attic/ipnat.4

File Deleted: src/dist/ipf/man/Attic/ippool.8

File Deleted: src/dist/ipf/l4check/Attic/l4check.conf

File Deleted: src/dist/ipf/l4check/Attic/l4check.c

File Deleted: src/dist/ipf/l4check/Attic/http.ok

File Deleted: src/dist/ipf/l4check/Attic/Makefile

File Deleted: src/dist/ipf/l4check/Attic/http.check

File Deleted: src/dist/ipf/FWTK/Attic/fwtk_transparent.diff

File Deleted: src/dist/ipf/FWTK/Attic/README

File Deleted: src/dist/ipf/FWTK/Attic/fwtkp

File Deleted: src/dist/ipf/FWTK/Attic/README.ipfilter

File Deleted: src/dist/ipf/FWTK/Attic/ftp-gw.diff

File Deleted: src/dist/ipf/FWTK/Attic/Index

File Deleted: src/dist/ipf/samples/Attic/userauth.c

File Deleted: src/dist/ipf/samples/Attic/relay.c

File Deleted: src/dist/ipf/samples/Attic/ipfilter-pb.gif

File Deleted: src/dist/ipf/samples/Attic/proxy.c

File Deleted: src/dist/ipf/samples/Attic/Makefile

File Deleted: src/dist/ipf/NetBSD-1.2/Attic/files.oldconf-PATCH

File Deleted: src/dist/ipf/NetBSD-1.2/Attic/ip_input.c-PATCH

File Deleted: src/dist/ipf/NetBSD-1.2/Attic/in_proto.c-PATCH

File Deleted: src/dist/ipf/NetBSD-1.2/Attic/minstall

File Deleted: src/dist/ipf/NetBSD-1.2/Attic/conf.c-PATCH

File Deleted: src/dist/ipf/NetBSD-1.2/Attic/files-PATCH

File Deleted: src/dist/ipf/NetBSD-1.2/Attic/ip_output.c-PATCH

File Deleted: src/dist/ipf/NetBSD-1.2/Attic/kinstall

File Deleted: src/dist/ipf/etc/Attic/protocols

File Deleted: src/dist/ipf/etc/Attic/services

File Deleted: src/dist/ipf/ipsd/Attic/ipsd.c

File Deleted: src/dist/ipf/ipsd/Attic/slinux.c

File Deleted: src/dist/ipf/ipsd/Attic/README

File Deleted: src/dist/ipf/ipsd/Attic/sdlpi.c

File Deleted: src/dist/ipf/ipsd/Attic/snit.c

File Deleted: src/dist/ipf/ipsd/Attic/linux.h

File Deleted: src/dist/ipf/ipsd/Attic/ipsdr.c

File Deleted: src/dist/ipf/ipsd/Attic/ipsd.h

File Deleted: src/dist/ipf/ipsd/Attic/sbpf.c

File Deleted: src/dist/ipf/ipsd/Attic/Makefile

File Deleted: src/dist/ipf/ipsd/Celler/Attic/ip_compat.h

File Deleted: src/dist/ipf/perl/Attic/plog

File Deleted: src/dist/ipf/perl/Attic/Services

File Deleted: src/dist/ipf/perl/Attic/Ipfanaly.pl

File Deleted: src/dist/ipf/perl/Attic/Isbgraph

File Deleted: src/dist/ipf/perl/Attic/LICENSE

File Deleted: src/dist/ipf/perl/Attic/logfilter.pl

File Deleted: src/dist/ipf/perl/Attic/ipfmeta.pl

File Deleted: src/dist/ipf/perl/Attic/ipf-mrtg.pl

File Deleted: src/dist/ipf/NetBSD/Attic/ip_output.c.diffs

File Deleted: src/dist/ipf/NetBSD/Attic/files.diffs

File Deleted: src/dist/ipf/NetBSD/Attic/files.oldconf.diffs

File Deleted: src/dist/ipf/NetBSD/Attic/files.newconf.diffs

File Deleted: src/dist/ipf/NetBSD/Attic/conf.c.diffs

File Deleted: src/dist/ipf/NetBSD/Attic/conf.c.old.diffs

File Deleted: src/dist/ipf/NetBSD/Attic/in_proto.c.old.diffs

File Deleted: src/dist/ipf/NetBSD/Attic/ip_input.c.diffs

File Deleted: src/dist/ipf/NetBSD/Attic/filez.diffs

File Deleted: src/dist/ipf/NetBSD/Attic/in_proto.c.diffs

File Deleted: src/dist/ipf/NetBSD/Attic/unminstall

File Deleted: src/dist/ipf/NetBSD/Attic/minstall

File Deleted: src/dist/ipf/NetBSD/Attic/unkinstall

File Deleted: src/dist/ipf/NetBSD/Attic/kinstall

File Deleted: src/dist/ipf/rules/Attic/example.12

File Deleted: src/dist/ipf/rules/Attic/firewall

File Deleted: src/dist/ipf/rules/Attic/ftp-proxy

File Deleted: src/dist/ipf/rules/Attic/tcpstate

File Deleted: src/dist/ipf/rules/Attic/example.7

File Deleted: src/dist/ipf/rules/Attic/ip_rules

File Deleted: src/dist/ipf/rules/Attic/BASIC.NAT

File Deleted: src/dist/ipf/rules/Attic/example.11

File Deleted: src/dist/ipf/rules/Attic/example.sr

File Deleted: src/dist/ipf/rules/Attic/nat.eg

File Deleted: src/dist/ipf/rules/Attic/BASIC_1.FW

File Deleted: src/dist/ipf/rules/Attic/example.9

File Deleted: src/dist/ipf/rules/Attic/example.3

File Deleted: src/dist/ipf/rules/Attic/pool.conf

File Deleted: src/dist/ipf/rules/Attic/example.4

File Deleted: src/dist/ipf/rules/Attic/nat-setup

File Deleted: src/dist/ipf/rules/Attic/BASIC_2.FW

File Deleted: src/dist/ipf/rules/Attic/server

File Deleted: src/dist/ipf/rules/Attic/example.6

File Deleted: src/dist/ipf/rules/Attic/ipmon.conf

File Deleted: src/dist/ipf/rules/Attic/example.1

File Deleted: src/dist/ipf/rules/Attic/example.13

File Deleted: src/dist/ipf/rules/Attic/example.5

File Deleted: src/dist/ipf/rules/Attic/example.2

File Deleted: src/dist/ipf/rules/Attic/example.8

File Deleted: src/dist/ipf/rules/Attic/ftppxy

File Deleted: src/dist/ipf/rules/Attic/example.10

File Deleted: src/dist/ipf/lib/Attic/facpri.h

File Deleted: src/dist/ipf/lib/Attic/printbuf.c

File Deleted: src/dist/ipf/lib/Attic/printfraginfo.c

File Deleted: src/dist/ipf/lib/Attic/addipopt.c

File Deleted: src/dist/ipf/lib/Attic/printhash_live.c

File Deleted: src/dist/ipf/lib/Attic/remove_poolnode.c

File Deleted: src/dist/ipf/lib/Attic/printportcmp.c

File Deleted: src/dist/ipf/lib/Attic/kvatoname.c

File Deleted: src/dist/ipf/lib/Attic/fill6bits.c

File Deleted: src/dist/ipf/lib/Attic/tcpflags.c

File Deleted: src/dist/ipf/lib/Attic/printnat.c

File Deleted: src/dist/ipf/lib/Attic/ipoptsec.c

File Deleted: src/dist/ipf/lib/Attic/tcp_flags.c

File Deleted: src/dist/ipf/lib/Attic/ipft_sn.c

File Deleted: src/dist/ipf/lib/Attic/optname.c

File Deleted: src/dist/ipf/lib/Attic/ipft_tx.c

File Deleted: src/dist/ipf/lib/Attic/load_hash.c

File Deleted: src/dist/ipf/lib/Attic/printactivenat.c

File Deleted: src/dist/ipf/lib/Attic/buildopts.c

File Deleted: src/dist/ipf/lib/Attic/debug.c

File Deleted: src/dist/ipf/lib/Attic/optvalue.c

File Deleted: src/dist/ipf/lib/Attic/kmem.h

File Deleted: src/dist/ipf/lib/Attic/optprintv6.c

File Deleted: src/dist/ipf/lib/Attic/nat_setgroupmap.c

File Deleted: src/dist/ipf/lib/Attic/portname.c

File Deleted: src/dist/ipf/lib/Attic/ipft_ef.c

File Deleted: src/dist/ipf/lib/Attic/load_url.c

File Deleted: src/dist/ipf/lib/Attic/remove_hashnode.c

File Deleted: src/dist/ipf/lib/Attic/print_toif.c

File Deleted: src/dist/ipf/lib/Attic/kmemcpywrap.c

File Deleted: src/dist/ipf/lib/Attic/checkrev.c

File Deleted: src/dist/ipf/lib/Attic/load_pool.c

File Deleted: src/dist/ipf/lib/Attic/getsumd.c

File Deleted: src/dist/ipf/lib/Attic/binprint.c

File Deleted: src/dist/ipf/lib/Attic/printifname.c

File Deleted: src/dist/ipf/lib/Attic/printip.c

File Deleted: src/dist/ipf/lib/Attic/verbose.c

File Deleted: src/dist/ipf/lib/Attic/initparse.c

File Deleted: src/dist/ipf/lib/Attic/getifname.c

File Deleted: src/dist/ipf/lib/Attic/printpoolnode.c

File Deleted: src/dist/ipf/lib/Attic/resetlexer.c

File Deleted: src/dist/ipf/lib/Attic/rwlock_emul.c

File Deleted: src/dist/ipf/lib/Attic/flags.c

File Deleted: src/dist/ipf/lib/Attic/nametokva.c

File Deleted: src/dist/ipf/lib/Attic/printhashdata.c

File Deleted: src/dist/ipf/lib/Attic/printpool.c

File Deleted: src/dist/ipf/lib/Attic/printaps.c

File Deleted: src/dist/ipf/lib/Attic/printhostmap.c

File Deleted: src/dist/ipf/lib/Attic/getnattype.c

File Deleted: src/dist/ipf/lib/Attic/addicmp.c

File Deleted: src/dist/ipf/lib/Attic/load_poolnode.c

File Deleted: src/dist/ipf/lib/Attic/printlog.c

File Deleted: src/dist/ipf/lib/Attic/v6optvalue.c

File Deleted: src/dist/ipf/lib/Attic/count6bits.c

File Deleted: src/dist/ipf/lib/Attic/optprint.c

File Deleted: src/dist/ipf/lib/Attic/remove_pool.c

File Deleted: src/dist/ipf/lib/Attic/mutex_emul.c

File Deleted: src/dist/ipf/lib/Attic/ionames.c

File Deleted: src/dist/ipf/lib/Attic/printpacket6.c

File Deleted: src/dist/ipf/lib/Attic/printfr.c

File Deleted: src/dist/ipf/lib/Attic/bcopywrap.c

File Deleted: src/dist/ipf/lib/Attic/Makefile

File Deleted: src/dist/ipf/lib/Attic/ipft_pc.c

File Deleted: src/dist/ipf/lib/Attic/printtqtable.c

File Deleted: src/dist/ipf/lib/Attic/printpacket.c

File Deleted: src/dist/ipf/lib/Attic/printhashnode.c

File Deleted: src/dist/ipf/lib/Attic/ntomask.c

File Deleted: src/dist/ipf/lib/Attic/printhostmask.c

File Deleted: src/dist/ipf/lib/Attic/load_file.c

File Deleted: src/dist/ipf/lib/Attic/load_http.c

File Deleted: src/dist/ipf/lib/Attic/icmpcode.c

File Deleted: src/dist/ipf/lib/Attic/inet_addr.c

File Deleted: src/dist/ipf/lib/Attic/printhash.c

File Deleted: src/dist/ipf/lib/Attic/printpooldata.c

File Deleted: src/dist/ipf/lib/Attic/gethost.c

File Deleted: src/dist/ipf/lib/Attic/printtunable.c

File Deleted: src/dist/ipf/lib/Attic/printpool_live.c

File Deleted: src/dist/ipf/lib/Attic/ipft_hx.c

File Deleted: src/dist/ipf/lib/Attic/load_hashnode.c

File Deleted: src/dist/ipf/lib/Attic/count4bits.c

File Deleted: src/dist/ipf/lib/Attic/alist_free.c

File Deleted: src/dist/ipf/lib/Attic/printproto.c

File Deleted: src/dist/ipf/lib/Attic/alist_new.c

File Deleted: src/dist/ipf/lib/Attic/remove_hash.c

File Deleted: src/dist/ipf/lib/Attic/kmem.c

File Deleted: src/dist/ipf/lib/Attic/printmask.c