summaryrefslogtreecommitdiff
path: root/BSD/kupgrade
diff options
context:
space:
mode:
Diffstat (limited to 'BSD/kupgrade')
-rw-r--r--BSD/kupgrade86
1 files changed, 67 insertions, 19 deletions
diff --git a/BSD/kupgrade b/BSD/kupgrade
index 04b257d7ca60f..30df4545f2943 100644
--- a/BSD/kupgrade
+++ b/BSD/kupgrade
@@ -2,7 +2,7 @@
#
PATH=/sbin:/usr/sbin:/bin:/usr/bin; export PATH
argv0=`basename $0`
-
+
os=`uname -s`
rev=`uname -r`
maj=`expr $rev : '\([0-9]*\)\.'`
@@ -23,6 +23,7 @@ fi
if [ -d /sys/dist/ipf ] ; then
ipfdir=/sys/dist/ipf/netinet
fi
+mkdir -m 755 -p $ipfdir/../net
confdir="$archdir/conf"
if [ -f /dev/ipnat ] ; then
major=`ls -l /dev/ipnat | sed -e 's/.* \([0-9]*\),.*/\1/'`
@@ -30,7 +31,7 @@ if [ -f /dev/ipnat ] ; then
else
major=x
fi
-
+
if [ ! -f ip_rules.c -o ! -f ip_rules.h ] ; then
echo "Trying to build ip_rules.c and ip_rules.h"
make ip_rules.c
@@ -43,8 +44,9 @@ if [ ! -f ip_rules.c -o ! -f ip_rules.h ] ; then
fi
fi
-echo -n "Installing "
-for j in auth frag nat proxy scan state sync pool htable lookup rules; do
+echo -n "Installing into $ipfdir"
+for j in auth frag nat proxy scan state sync pool dstlist htable lookup rules \
+ dstlist; do
for i in ip_$j.[ch]; do
if [ -f "$i" ] ; then
echo -n " $i"
@@ -53,6 +55,12 @@ for j in auth frag nat proxy scan state sync pool htable lookup rules; do
fi
done
done
+echo -n " net/radix_ipf.h"
+cp radix_ipf.h $ipfdir
+chmod 644 $ipfdir/radix_ipf.h
+echo -n " radix_ipf.c -> $ipfdir/radix_ipf.c"
+cp radix_ipf.c $ipfdir/radix_ipf.c
+chmod 644 $ipfdir/radix_ipf.c
case $os in
SunOS)
@@ -88,14 +96,16 @@ if [ -f $ipfdir/ip_fil.c ] ; then
chmod 644 $ipfdir/ip_fil.c
fi
-for i in ip_fil.h fil.c ip_log.c ip_compat.h ipl.h ip_*_pxy.c; do
+for i in ip_nat6.c ip_fil.h fil.c ip_log.c ip_compat.h ipl.h ip_*_pxy.c \
+ ip_fil_compat.c ipf_rb.h; do
echo -n " $i"
cp $i $ipfdir
chmod 644 $ipfdir/$i
done
echo ""
echo -n "Installing into /usr/include/netinet"
-for j in auth compat fil frag nat proxy scan state sync pool htable lookup; do
+for j in auth compat fil frag nat proxy scan state sync pool htable dstlist \
+ lookup; do
i=ip_$j.h
if [ -f "$i" ] ; then
echo -n " $i"
@@ -103,7 +113,7 @@ for j in auth compat fil frag nat proxy scan state sync pool htable lookup; do
chmod 644 /usr/include/netinet/$i
fi
done
-for j in ipl.h; do
+for j in ipl.h ipf_rb.h; do
if [ -f "$j" ] ; then
echo -n " $j"
cp $j /usr/include/netinet/$j
@@ -157,15 +167,19 @@ if [ $os = FreeBSD -a -f /sys/conf/files ] ; then
mv files files.preipf4
cp -p files.preipf4 files
fi
- for i in htable pool lookup; do
+ for i in dstlist htable pool lookup; do
grep ip_$i.c files >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "contrib/ipfilter/netinet/ip_$i.c optional ipfilter inet ipfilter_lookup" >> files
fi
done
+ grep ip_fil_compat.c files >/dev/null 2>&1
+ if [ $? -ne 0 ] ; then
+ echo 'contrib/ipfilter/netinet/ip_fil_compat.c optional ipfilter inet ipfilter_compat' >> files
+ fi
grep ip_sync.c files >/dev/null 2>&1
if [ $? -ne 0 ] ; then
- echo 'contrib/ipfilter/netinet/ip_sync.c optional ipfilter inet ipfilter_sync' >> files
+ echo 'contrib/ipfilter/netinet/ip_sync.c optional ipfilter inet' >> files
fi
grep ip_scan.c files >/dev/null 2>&1
if [ $? -ne 0 ] ; then
@@ -177,13 +191,19 @@ if [ $os = FreeBSD -a -f /sys/conf/files ] ; then
fi
fi
if [ $os = NetBSD -a -f /sys/conf/files ] ; then
+ if [ -f /sys/netinet/files.ipfilter ] ; then
+ if ! grep -q ip_fil_compat.c /sys/netinet/files.ipfilter; then
+ echo 'file dist/ipf/netinet/ip_fil_compat.c ipfilter & ipfilter_compat' >> /sys/netinet/files.ipfilter
+ echo 'defflag opt_ipfilter.h IPFILTER_COMPAT' >> /sys/netinet/files.ipfilter
+ fi
+ fi
cd /sys/conf
if [ ! -f files.preipf4 ] ; then
mv files files.preipf4
cp -p files.preipf4 files
fi
if [ $fullrev -ge 010600 -a $fullrev -lt 020000 ] ; then
- for i in htable pool lookup; do
+ for i in dstlist htable pool lookup; do
grep ip_$i.c files >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "file netinet/ip_$i.c ipfilter & ipfilter_lookup" >> files
@@ -191,7 +211,7 @@ if [ $os = NetBSD -a -f /sys/conf/files ] ; then
done
grep ip_sync.c files >/dev/null 2>&1
if [ $? -ne 0 ] ; then
- echo 'file netinet/ip_sync.c ipfilter & ipfilter_sync' >> files
+ echo 'file netinet/ip_sync.c ipfilter' >> files
fi
grep ip_scan.c files >/dev/null 2>&1
if [ $? -ne 0 ] ; then
@@ -210,15 +230,18 @@ if [ $os = OpenBSD -a -f /sys/conf/files ] ; then
cp -p files.preipf4 files
fi
if [ $fullrev -ge 030400 ] ; then
- for i in htable pool lookup; do
+ for i in dstlist htable pool lookup; do
grep ip_$i.c files >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "file netinet/ip_$i.c ipfilter & ipfilter_lookup" >> files
fi
done
- grep ip_sync.c files >/dev/null 2>&1
+ grep ip_fil_compat.c files >/dev/null 2>&1
+ if [ $? -ne 0 ] ; then
+ echo 'file netinet/ip_fil_compat.c ipfilter & ipfilter_compat' >> files
+ fi
if [ $? -ne 0 ] ; then
- echo 'file netinet/ip_sync.c ipfilter & ipfilter_sync' >> files
+ echo 'file netinet/ip_sync.c ipfilter' >> files
fi
grep ip_scan.c files >/dev/null 2>&1
if [ $? -ne 0 ] ; then
@@ -241,7 +264,7 @@ cat | (cd /usr/src/sys/modules/ipfilter; patch) <<__EOF__
KMOD= ipl
SRCS= mlfk_ipl.c ip_nat.c ip_frag.c ip_state.c ip_proxy.c ip_auth.c \\
! ip_log.c ip_fil.c fil.c
-
+
.if !defined(NOINET6)
CFLAGS+= -DUSE_INET6
.endif
@@ -249,10 +272,10 @@ cat | (cd /usr/src/sys/modules/ipfilter; patch) <<__EOF__
! CFLAGS+= -DIPFILTER=1 -DIPFILTER_LKM -DIPFILTER_LOG -DPFIL_HOOKS
--- 5,15 ----
KMOD= ipl
- SRCS= mlfk_ipl.c ip_nat.c ip_frag.c ip_state.c ip_proxy.c ip_auth.c \\
-! ip_log.c ip_fil.c fil.c ip_lookup.c ip_pool.c ip_htable.c \\
-! ip_sync.c ip_scan.c ip_rules.c
-
+ SRCS= mlfk_ipl.c ip_nat.c ip_nat6.c ip_frag.c ip_state.c ip_proxy.c ip_auth.c \\
+! ip_log.c ip_fil.c fil.c ip_lookup.c ip_pool.c ip_dstlist.c ip_htable.c \\
+! ip_sync.c ip_scan.c ip_rules.c ip_fil_compat.c
+
.if !defined(NOINET6)
CFLAGS+= -DUSE_INET6
.endif
@@ -261,4 +284,29 @@ cat | (cd /usr/src/sys/modules/ipfilter; patch) <<__EOF__
! -DIPFILTER_LOOKUP -DIPFILTER_COMPILED
__EOF__
fi
+
+CONF=/sys/netinet/files.ipfilter
+if [ -f $CONF -a $os = NetBSD ] ; then
+ for i in ip_nat6.c ip_dstlist.c radix_ipf.c; do
+ echo "Checking for $i in $CONF"
+ grep $i $CONF >/dev/null 2>&1
+ if [ $? -ne 0 ] ; then
+ echo "Adding $i to $CONF"
+ sed -n -e /ip_nat.c/s/ip_nat.c/$i/p $CONF >> $CONF
+ fi
+ done
+fi
+
+CONF=/sys/conf/files
+if [ -f $CONF -a $os = FreeBSD ] ; then
+ for i in ip_nat6.c ip_dstlist.c radix_ipf.c; do
+ echo "Checking for $i in $CONF"
+ grep $i $CONF >/dev/null 2>&1
+ if [ $? -ne 0 ] ; then
+ echo "Adding $i to $CONF"
+ sed -n -e /ip_nat.c/,/NORMAL/p $CONF | \
+ sed -e s/ip_nat.c/$i/p >> $CONF
+ fi
+ done
+fi
exit 0