64 lines
1.8 KiB
Tcsh
Executable File
64 lines
1.8 KiB
Tcsh
Executable File
#!/bin/csh -f
|
|
#
|
|
set dir=`pwd`
|
|
set karch=`uname -m`
|
|
set ipfdir=/sys/netinet
|
|
set krev=`uname -r|sed -e 's/\([0-9\.]*\)-.*/\1/'`
|
|
if ( -d /sys/arch/$karch ) set archdir="/sys/arch/$karch"
|
|
if ( -d /sys/$karch ) set archdir="/sys/$karch"
|
|
if ( -d /sys/contrib/ipfilter ) set ipfdir=/sys/contrib/ipfilter/netinet
|
|
set confdir="$archdir/conf"
|
|
|
|
if ( $dir =~ */FreeBSD* ) cd ..
|
|
echo -n "Installing "
|
|
foreach i (ip_{auth,fil,nat,pool,proxy,scan,state,sync}.[ch] fil.c \
|
|
ip_*_pxy.c mlfk_ipl.c ipl.h ip_compat.h ip_log.c )
|
|
echo -n "$i ";
|
|
cp $i /sys/netinet
|
|
chmod 644 /sys/netinet/$i
|
|
switch ($i)
|
|
case *.h:
|
|
/bin/cp $i /usr/include/netinet/$i
|
|
chmod 644 /usr/include/netinet/$i
|
|
breaksw
|
|
endsw
|
|
end
|
|
echo ""
|
|
echo "Linking /usr/include/osreldate.h to /sys/sys/osreldate.h"
|
|
ln -s /usr/include/osreldate.h /sys/sys/osreldate.h
|
|
|
|
echo ""
|
|
echo "Patching ip6_input.c and ip6_output.c"
|
|
cat FreeBSD-4.0/ipv6-patch-$krev | (cd /sys/netinet6; patch -N)
|
|
|
|
set config=`(cd $confdir; /bin/ls -1t [0-9A-Z_]*) | head -1`
|
|
echo -n "Kernel configuration to update [$config] "
|
|
set newconfig=$<
|
|
if ( "$newconfig" != "" ) then
|
|
set config="$confdir/$newconfig"
|
|
else
|
|
set newconfig=$config
|
|
endif
|
|
grep -q IPFILTER $confdir/$newconfig
|
|
if ($status == 0) then
|
|
echo "IPFilter already configured in kernel config file"
|
|
exit 0
|
|
endif
|
|
echo "Rewriting $newconfig..."
|
|
if ( -f $confdir/$newconfig ) then
|
|
mv $confdir/$newconfig $confdir/$newconfig.bak
|
|
endif
|
|
if ( -d $archdir/../compile/$newconfig ) then
|
|
set bak=".bak"
|
|
set dot=0
|
|
while ( -d $archdir/../compile/${newconfig}.${bak} )
|
|
set bak=".bak.$dot"
|
|
set dot=`expr 1 + $dot`
|
|
end
|
|
mv $archdir/../compile/$newconfig $archdir/../compile/${newconfig}.${bak}
|
|
endif
|
|
awk '{print $0;if($2=="INET"){print"options IPFILTER\noptions IPFILTER_LOG"}}'\
|
|
$confdir/$newconfig.bak > $confdir/$newconfig
|
|
echo "You will now need to run config on $newconfig and build a new kernel."
|
|
exit 0
|