This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, next has been updated via 3717a205a61b582ba5426da008a548bf98085742 (commit) via daf9669080f7b03530bdebcfee822697c89242c5 (commit) via aba9ac599fe3ba8657a2a35519ee0e8266def38b (commit) via bfd77eaf70f5112da41c9ae379c130fc8bceed76 (commit) from e1b8a853237eb16a3cfc1a98ddd9b3ef2bdfe095 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 3717a205a61b582ba5426da008a548bf98085742 Merge: e1b8a85 daf9669 Author: Michael Tremer michael.tremer@ipfire.org Date: Wed Jul 6 19:38:29 2011 +0200
Merge branch 'static-routing' into next
-----------------------------------------------------------------------
Summary of changes: config/rootfiles/common/misc-progs | 1 + lfs/iproute2 | 4 ++ src/initscripts/init.d/static-routes | 67 ++++++++++++++++++++++++++++++++++ src/misc-progs/Makefile | 4 ++- src/misc-progs/rebuildroutes.c | 17 +++++++++ 5 files changed, 92 insertions(+), 1 deletions(-) create mode 100644 src/initscripts/init.d/static-routes create mode 100644 src/misc-progs/rebuildroutes.c
Difference in files: diff --git a/config/rootfiles/common/misc-progs b/config/rootfiles/common/misc-progs index 6e5d7ca..adab51b 100644 --- a/config/rootfiles/common/misc-progs +++ b/config/rootfiles/common/misc-progs @@ -18,6 +18,7 @@ usr/local/bin/outgoingfwctrl usr/local/bin/pakfire usr/local/bin/qosctrl usr/local/bin/rebuildhosts +usr/local/bin/rebuildroutes usr/local/bin/redctrl #usr/local/bin/sambactrl usr/local/bin/setaliases diff --git a/lfs/iproute2 b/lfs/iproute2 index 3cc6844..50ccf40 100644 --- a/lfs/iproute2 +++ b/lfs/iproute2 @@ -76,5 +76,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && make $(MAKETUNING) SBINDIR=/sbin cd $(DIR_APP) && make SBINDIR=/sbin install cd $(DIR_APP) && mv -v /sbin/arpd /usr/sbin + + # Add table for static routing + echo "200 static" >> /etc/iproute2/rt_tables + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/src/initscripts/init.d/static-routes b/src/initscripts/init.d/static-routes new file mode 100644 index 0000000..970083c --- /dev/null +++ b/src/initscripts/init.d/static-routes @@ -0,0 +1,67 @@ +#!/bin/bash + +. /etc/sysconfig/rc +. ${rc_functions} + + +function init_table() { + # Check if table does already exist. If not we add it. + if (ip rule | grep -q "static" >/dev/null 2>&1); then + return + fi + + ip rule add table static +} + +function create_all_routes() { + local file=${1} + shift + + # Remote all routes. + ip route flush table static >/dev/null 2>&1 + + local status + local network + local gateway + local remark + + # Read all routes from the configuration file and add the enabled ones + # immediately. + while IFS=, read status network gateway remark; do + [ "${status}" = "on" ] || continue + + if [ -z "${network}" -o -z "${gateway}" ]; then + # Silently skipping invalid routes. + continue + fi + + ip route add ${network} via ${gateway} table static + done < ${file} +} + +CONFIGFILE="/var/ipfire/main/routing" + +case "${1}" in + start) + boot_mesg "Adding static routes..." + + # First, initialize the table + init_table + + # Add all routes + create_all_routes ${CONFIGFILE} + + evaluate_retval + ;; + + stop) + boot_mesg "Removing static routes..." + ip route flush table static >/dev/null 2>&1 + evaluate_retval + ;; + + *) + echo "Usage: ${0} {start|stop}" + exit 1 + ;; +esac diff --git a/src/misc-progs/Makefile b/src/misc-progs/Makefile index 348f91c..9f1e3f0 100644 --- a/src/misc-progs/Makefile +++ b/src/misc-progs/Makefile @@ -32,7 +32,7 @@ SUID_PROGS = setdmzholes setportfw setxtaccess \ wirelessctrl getipstat getiptstate qosctrl launch-ether-wake \ redctrl syslogdctrl extrahdctrl sambactrl upnpctrl tripwirectrl \ smartctrl clamavctrl addonctrl pakfire mpfirectrl wlanapctrl \ - setaliases urlfilterctrl updxlratorctrl fireinfoctrl + setaliases urlfilterctrl updxlratorctrl fireinfoctrl rebuildroutes SUID_UPDX = updxsetperms
install : all @@ -158,3 +158,5 @@ updxsetperms: updxsetperms.c setuid.o ../install+setup/libsmooth/varval.o fireinfoctrl: fireinfoctrl.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ fireinfoctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@
+rebuildroutes: rebuildroutes.c setuid.o ../install+setup/libsmooth/varval.o + $(COMPILE) -I../install+setup/libsmooth/ rebuildroutes.c setuid.o ../install+setup/libsmooth/varval.o -o $@ diff --git a/src/misc-progs/rebuildroutes.c b/src/misc-progs/rebuildroutes.c new file mode 100644 index 0000000..3655692 --- /dev/null +++ b/src/misc-progs/rebuildroutes.c @@ -0,0 +1,17 @@ +/* IPFire helper program - rebuildroutes + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + */ + +#include "libsmooth.h" +#include "setuid.h" + +int main(int argc, char *argv[]) { + if (!(initsetuid())) + exit(1); + + safe_system("/etc/init.d/static-routes start >/dev/null 2>&1"); + + return 0; +}
hooks/post-receive -- IPFire 2.x development tree