3 PATH=/sbin:/usr/sbin:/bin:/usr/bin; export PATH
8 maj=`expr $rev : '\([0-9]*\)\.'`
9 min=`expr $rev : '[0-9]*\.\([0-9]*\)'`
10 sub=`expr $rev : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
12 # try to bomb out fast if anything fails....
15 fullrev=`printf '%02d%02d%02d' $maj $min $sub`
18 archdir="/sys/arch/$karch"
20 if [ -d /sys/contrib/ipfilter ] ; then
21 ipfdir=/sys/contrib/ipfilter/netinet
23 if [ -d /sys/dist/ipf ] ; then
24 ipfdir=/sys/dist/ipf/netinet
26 confdir="$archdir/conf"
27 if [ -f /dev/ipnat ] ; then
28 major=`ls -l /dev/ipnat | sed -e 's/.* \([0-9]*\),.*/\1/'`
29 echo "Major number for IP Filter is $major"
34 if [ ! -f ip_rules.c -o ! -f ip_rules.h ] ; then
35 echo "Please do a build of ipfilter and then run the following"
36 echo "command to build extra files:"
38 echo "make ip_rules.c"
43 for j in auth frag nat proxy scan state sync pool htable lookup rules; do
44 for i in ip_$j.[ch]; do
65 filc=ip_fil_`echo $os | tr A-Z a-z`.c
68 cp mlfk_ipl.c $ipfdir/
76 if [ -f $ipfdir/$filc ] ; then
77 echo -n "$filc -> $ipfdir/$filc "
78 cp $filc $ipfdir/$filc
79 chmod 644 $ipfdir/$filc
81 if [ -f $ipfdir/ip_fil.c ] ; then
82 echo -n "$filc -> $ipfdir/ip_fil.c "
83 cp $filc $ipfdir/ip_fil.c
84 chmod 644 $ipfdir/ip_fil.c
87 for i in ip_fil.h fil.c ip_log.c ip_compat.h ipl.h ip_*_pxy.c; do
93 echo -n "Installing into /usr/include/netinet"
94 for j in auth compat fil frag nat proxy scan state sync pool htable lookup; do
98 cp $i /usr/include/netinet/$i
99 chmod 644 /usr/include/netinet/$i
103 if [ -f "$j" ] ; then
105 cp $j /usr/include/netinet/$j
106 chmod 644 /usr/include/netinet/$j
111 if [ -f /sys/netinet/ip_fil_compat.h ] ; then
112 echo "Linking /sys/netinet/ip_compat.h to /sys/netinet/ip_fil_compat.h"
113 rm /sys/netinet/ip_fil_compat.h
114 ln -s /sys/netinet/ip_compat.h /sys/netinet/ip_fil_compat.h
117 if [ $major != x ] ; then
118 if [ ! -e /dev/ipsync ] ; then
119 echo "Creating /dev/ipsync"
120 mknod /dev/ipsync c $major 4
123 if [ ! -e /dev/ipsync ] ; then
124 echo "Creating /dev/ipscan"
125 mknod /dev/ipsync c $major 5
128 if [ ! -e /dev/iplookup ] ; then
129 echo "Creating /dev/iplookup"
130 mknod /dev/iplookup c $major 6
136 if [ $os = FreeBSD -a -f /sys/conf/files ] ; then
138 if [ -f options ] ; then
139 if [ ! -f options.preipf4 ] ; then
140 mv options options.preipf4
141 cp -p options.preipf4 options
143 for i in SCAN SYNC LOOKUP COMPILED; do
144 grep IPFILTER_$i options >/dev/null 2>&1
145 if [ $? -ne 0 ] ; then
147 echo "# extra option for IP Filter" >> options
148 echo "IPFILTER_$i opt_ipfilter.h" >> options
152 if [ ! -f files.preipf4 ] ; then
153 mv files files.preipf4
154 cp -p files.preipf4 files
156 for i in htable pool lookup; do
157 grep ip_$i.c files >/dev/null 2>&1
158 if [ $? -ne 0 ] ; then
159 echo "contrib/ipfilter/netinet/ip_$i.c optional ipfilter inet ipfilter_lookup" >> files
162 grep ip_sync.c files >/dev/null 2>&1
163 if [ $? -ne 0 ] ; then
164 echo 'contrib/ipfilter/netinet/ip_sync.c optional ipfilter inet ipfilter_sync' >> files
166 grep ip_scan.c files >/dev/null 2>&1
167 if [ $? -ne 0 ] ; then
168 echo 'contrib/ipfilter/netinet/ip_scan.c optional ipfilter inet ipfilter_scan' >> files
170 grep ip_rules.c files >/dev/null 2>&1
171 if [ $? -ne 0 ] ; then
172 echo 'contrib/ipfilter/netinet/ip_rules.c optional ipfilter inet ipfilter_compiled' >> files
175 if [ $os = NetBSD -a -f /sys/conf/files ] ; then
177 if [ ! -f files.preipf4 ] ; then
178 mv files files.preipf4
179 cp -p files.preipf4 files
181 if [ $fullrev -ge 010600 -a $fullrev -lt 020000 ] ; then
182 for i in htable pool lookup; do
183 grep ip_$i.c files >/dev/null 2>&1
184 if [ $? -ne 0 ] ; then
185 echo "file netinet/ip_$i.c ipfilter & ipfilter_lookup" >> files
188 grep ip_sync.c files >/dev/null 2>&1
189 if [ $? -ne 0 ] ; then
190 echo 'file netinet/ip_sync.c ipfilter & ipfilter_sync' >> files
192 grep ip_scan.c files >/dev/null 2>&1
193 if [ $? -ne 0 ] ; then
194 echo 'file netinet/ip_scan.c ipfilter & ipfilter_scan' >> files
196 grep ip_rules.c files >/dev/null 2>&1
197 if [ $? -ne 0 ] ; then
198 echo 'file netinet/ip_rules.c ipfilter & ipfilter_compiled' >> files
202 if [ $os = OpenBSD -a -f /sys/conf/files ] ; then
204 if [ ! -f files.preipf4 ] ; then
205 mv files files.preipf4
206 cp -p files.preipf4 files
208 if [ $fullrev -ge 030400 ] ; then
209 for i in htable pool lookup; do
210 grep ip_$i.c files >/dev/null 2>&1
211 if [ $? -ne 0 ] ; then
212 echo "file netinet/ip_$i.c ipfilter & ipfilter_lookup" >> files
215 grep ip_sync.c files >/dev/null 2>&1
216 if [ $? -ne 0 ] ; then
217 echo 'file netinet/ip_sync.c ipfilter & ipfilter_sync' >> files
219 grep ip_scan.c files >/dev/null 2>&1
220 if [ $? -ne 0 ] ; then
221 echo 'file netinet/ip_scan.c ipfilter & ipfilter_scan' >> files
223 grep ip_rules.c files >/dev/null 2>&1
224 if [ $? -ne 0 ] ; then
225 echo 'file netinet/ip_rules.c ipfilter & ipfilter_compiled' >> files
230 if [ -f /usr/src/sys/modules/ipfilter/Makefile -a \
231 ! -f /usr/src/sys/modules/ipfilter/Makefile.orig ] ; then
232 cat | (cd /usr/src/sys/modules/ipfilter; patch) <<__EOF__
233 *** Makefile.orig Mon Mar 28 09:10:11 2005
234 --- Makefile Mon Mar 28 09:12:51 2005
238 SRCS= mlfk_ipl.c ip_nat.c ip_frag.c ip_state.c ip_proxy.c ip_auth.c \\
239 ! ip_log.c ip_fil.c fil.c
241 .if !defined(NOINET6)
244 CFLAGS+= -I$${.CURDIR}/../../contrib/ipfilter
245 ! CFLAGS+= -DIPFILTER=1 -DIPFILTER_LKM -DIPFILTER_LOG -DPFIL_HOOKS
248 SRCS= mlfk_ipl.c ip_nat.c ip_frag.c ip_state.c ip_proxy.c ip_auth.c \\
249 ! ip_log.c ip_fil.c fil.c ip_lookup.c ip_pool.c ip_htable.c \\
250 ! ip_sync.c ip_scan.c ip_rules.c
252 .if !defined(NOINET6)
255 CFLAGS+= -I$${.CURDIR}/../../contrib/ipfilter
256 ! CFLAGS+= -DIPFILTER=1 -DIPFILTER_LKM -DIPFILTER_LOG -DPFIL_HOOKS \\
257 ! -DIPFILTER_LOOKUP -DIPFILTER_COMPILED