From fccf30d4bf6b00b317756a9ff9d2135b361d2599 Mon Sep 17 00:00:00 2001 From: thierry Date: Tue, 13 Apr 2010 14:54:12 +0000 Subject: [PATCH] avoid attempting to run anything at build-time & cleaned up --- planetlab/ipfw | 13 ++++++------- planetlab/ipfwroot.spec | 23 +++++++++++------------ 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/planetlab/ipfw b/planetlab/ipfw index adec18f..114cafb 100755 --- a/planetlab/ipfw +++ b/planetlab/ipfw @@ -21,20 +21,20 @@ fi # Load the ipfw module, and initialize netconfig start() { # load the module - modprobe $IPFW_MOD > /dev/null 2> /dev/null + modprobe $IPFW_MOD >& /dev/null let ret=$?; [ $ret -eq 0 ] && success || failure # init netconfig - echo "super dbcleanup" | ${IPFW_BACKEND} root > /dev/null 2> /dev/null - echo "super init" | ${IPFW_BACKEND} root > /dev/null 2> /dev/null + echo "super dbcleanup" | ${IPFW_BACKEND} root >& /dev/null + echo "super init" | ${IPFW_BACKEND} root >& /dev/null return $ret } stop() { # clean netconfig stuff - echo "super dbcleanup" | ${IPFW_BACKEND} root > /dev/null 2> /dev/null + echo "super dbcleanup" | ${IPFW_BACKEND} root >& /dev/null echo "Unloading $IPFW_MOD module: " # unload the ipfw module @@ -48,11 +48,10 @@ stop() { # echo the ipfw status status() { # check for module presence - LOADED=`cat /proc/modules | grep ^ipfw_mod` - [ ! -n "$LOADED" ] && echo "ipfw not loaded" && return 0 + grep '^ipfw_mod$' /proc/modules >& /dev/null || echo "ipfw not loaded" && return 0 # Show active users - USERS=`cat /tmp/ff | grep BLOCK | wc -l` + USERS=$(grep BLOCK /tmp/ff | wc -l) echo "ipfw is loaded and there are currently ${USERS} with active emulation." return 0 } diff --git a/planetlab/ipfwroot.spec b/planetlab/ipfwroot.spec index d0da641..30da96e 100644 --- a/planetlab/ipfwroot.spec +++ b/planetlab/ipfwroot.spec @@ -61,18 +61,21 @@ install -D -m 755 ipfw/ipfw $RPM_BUILD_ROOT/sbin/ipfw install -D -m 644 planetlab/ipfw.cron $RPM_BUILD_ROOT/%{_sysconfdir}/cron.d/ipfw.cron install -D -m 755 planetlab/ipfw $RPM_BUILD_ROOT/etc/rc.d/init.d/ipfw +%clean +rm -rf $RPM_BUILD_ROOT + %post -# load the module +### this script is also triggered while the node image is being created at build-time +# some parts of the script do not make sense in this context +# this is why the build exports PL_BOOTCD=1 in such cases depmod -a -modprobe ipfw_mod -# clean the old database and initialize the firewall -echo "super dbcleanup" | /vsys/ipfw-be root -echo "super init" | /vsys/ipfw-be root -# add ipfw to chkconfig /sbin/chkconfig --add ipfw +# start the service if not building +[ -z "$PL_BOOTCD" ] && service ipfw start -%clean -rm -rf $RPM_BUILD_ROOT +%postun +# stop the service if not building +[ -z "$PL_BOOTCD" ] && service ipfw stop # here there is a list of the final installation directories %files @@ -83,10 +86,6 @@ rm -rf $RPM_BUILD_ROOT %{_sysconfdir}/cron.d/ipfw.cron /etc/rc.d/init.d/ipfw -%postun -# unload the module if present -LOADED=`cat /proc/modules | grep ^ipfw_mod`; if [ -n "$LOADED" ] ; then rmmod ipfw_mod; fi - %changelog * Mon Apr 12 2010 Thierry Parmentelat - ipfw-0.9-11 - add ipfw initialization script to chkconfig -- 2.43.0