]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
Merge branch 'master' into next
authorArne Fitzenreiter <arne_f@ipfire.org>
Tue, 26 Jul 2011 06:12:05 +0000 (08:12 +0200)
committerArne Fitzenreiter <arne_f@ipfire.org>
Tue, 26 Jul 2011 06:12:05 +0000 (08:12 +0200)
Conflicts:
config/kernel/kernel.config.i586-ipfire-pae
config/rootfiles/core/45/meta
config/rootfiles/core/46/meta
config/rootfiles/core/47/meta
config/rootfiles/core/48/meta
config/rootfiles/core/52/meta
config/rootfiles/oldcore/44/meta
config/rootfiles/oldcore/45/meta
config/rootfiles/oldcore/46/meta
config/rootfiles/oldcore/47/meta
doc/language_missings
langs/pl/cgi-bin/pl.pl
make.sh

50 files changed:
config/etc/sysctl.conf
config/kernel/kernel.config.i586-ipfire-pae
config/rootfiles/common/apache2
config/rootfiles/common/misc-progs
config/rootfiles/common/strongswan
config/rootfiles/core/next/exclude [new file with mode: 0644]
config/rootfiles/core/next/filelists/crda [new symlink]
config/rootfiles/core/next/filelists/dracut [new symlink]
config/rootfiles/core/next/filelists/files [new file with mode: 0644]
config/rootfiles/core/next/filelists/gmp [new symlink]
config/rootfiles/core/next/filelists/grub [new symlink]
config/rootfiles/core/next/filelists/iw [new symlink]
config/rootfiles/core/next/filelists/linux [new symlink]
config/rootfiles/core/next/filelists/linux-firmware [new symlink]
config/rootfiles/core/next/filelists/strongswan [new symlink]
config/rootfiles/core/next/filelists/wireless-regdb [new symlink]
config/rootfiles/core/next/filelists/zd1211-firmware [new symlink]
config/rootfiles/core/next/meta [new file with mode: 0644]
config/rootfiles/core/next/update.sh [new file with mode: 0644]
config/rootfiles/packages/qemu
doc/language_issues.de
doc/language_issues.en
doc/language_issues.es
doc/language_issues.fr
doc/language_issues.pl
doc/language_missings
html/cgi-bin/extrahd.cgi
html/cgi-bin/index.cgi
html/cgi-bin/outgoinggrp.cgi
html/cgi-bin/routing.cgi [new file with mode: 0644]
html/cgi-bin/vpnmain.cgi
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl
langs/es/cgi-bin/es.pl
langs/fr/cgi-bin/fr.pl
langs/pl/cgi-bin/pl.pl
lfs/e1000
lfs/e1000e
lfs/igb
lfs/iproute2
lfs/kvm-kmod
lfs/qemu
lfs/strongswan
make.sh
src/initscripts/init.d/static-routes [new file with mode: 0644]
src/misc-progs/Makefile
src/misc-progs/ipsecctrl.c
src/misc-progs/rebuildroutes.c [new file with mode: 0644]
src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch [new file with mode: 0644]
src/scripts/vpn-watch

index 8855e3206e4b8ded1b161cd3ca26aa3abf064657..105feaa0acd34872c9a8982f36840a7e05281fa8 100644 (file)
@@ -3,19 +3,18 @@ net.ipv4.ip_dynaddr = 1
 net.ipv4.icmp_echo_ignore_broadcasts = 1
 net.ipv4.icmp_ignore_bogus_error_responses = 1
 
-net.ipv4.tcp_sack = 0
-net.ipv4.tcp_timestamps = 0
 net.ipv4.tcp_syncookies = 1
 net.ipv4.tcp_fin_timeout = 30
-net.ipv4.tcp_window_scaling = 0
 net.ipv4.tcp_syn_retries = 3
 net.ipv4.tcp_synack_retries = 3
 
+net.ipv4.conf.default.arp_filter = 1
 net.ipv4.conf.default.rp_filter = 0
 net.ipv4.conf.default.accept_redirects = 0
 net.ipv4.conf.default.accept_source_route = 0
 net.ipv4.conf.default.log_martians = 1
 
+net.ipv4.conf.all.arp_filter = 1
 net.ipv4.conf.all.rp_filter = 0
 net.ipv4.conf.all.accept_redirects = 0
 net.ipv4.conf.all.accept_source_route = 0
index 17498b7f7c01c0da77fe54c9909079b213c38deb..4b23df337a261c302f4087c9c72862f8a76994f5 100644 (file)
@@ -96,7 +96,6 @@ CONFIG_RCU_FANOUT=32
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=17
 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
-# CONFIG_GROUP_SCHED is not set
 # CONFIG_CGROUPS is not set
 CONFIG_SYSFS_DEPRECATED=y
 CONFIG_SYSFS_DEPRECATED_V2=y
@@ -203,8 +202,9 @@ CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
 CONFIG_SMP=y
 CONFIG_SPARSE_IRQ=y
+CONFIG_NUMA_IRQ_DESC=y
 CONFIG_X86_MPPARSE=y
-# CONFIG_X86_BIGSMP is not set
+CONFIG_X86_BIGSMP=y
 CONFIG_X86_EXTENDED_PLATFORM=y
 # CONFIG_X86_ELAN is not set
 # CONFIG_X86_MRST is not set
@@ -280,10 +280,10 @@ CONFIG_HPET_EMULATE_RTC=y
 CONFIG_DMI=y
 # CONFIG_IOMMU_HELPER is not set
 CONFIG_IOMMU_API=y
-CONFIG_NR_CPUS=8
-CONFIG_IRQ_TIME_ACCOUNTING=y
+CONFIG_NR_CPUS=256
 CONFIG_SCHED_SMT=y
 CONFIG_SCHED_MC=y
+CONFIG_IRQ_TIME_ACCOUNTING=y
 CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT_VOLUNTARY is not set
 # CONFIG_PREEMPT is not set
@@ -314,19 +314,29 @@ CONFIG_PAGE_OFFSET=0xC0000000
 CONFIG_HIGHMEM=y
 CONFIG_X86_PAE=y
 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
-CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_NUMA=y
+CONFIG_NODES_SHIFT=3
+CONFIG_HAVE_ARCH_BOOTMEM=y
+CONFIG_ARCH_HAVE_MEMORY_PRESENT=y
+CONFIG_NEED_NODE_MEMMAP_SIZE=y
+CONFIG_HAVE_ARCH_ALLOC_REMAP=y
+CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
+CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
 CONFIG_ARCH_SPARSEMEM_ENABLE=y
 CONFIG_ARCH_SELECT_MEMORY_MODEL=y
 CONFIG_ILLEGAL_POINTER_VALUE=0
 CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_DISCONTIGMEM_MANUAL=y
 # CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
+CONFIG_DISCONTIGMEM=y
 CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
 CONFIG_SPARSEMEM_STATIC=y
 CONFIG_PAGEFLAGS_EXTENDED=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_MIGRATION=y
 CONFIG_PHYS_ADDR_T_64BIT=y
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
@@ -363,6 +373,7 @@ CONFIG_HOTPLUG_CPU=y
 CONFIG_COMPAT_VDSO=y
 # CONFIG_CMDLINE_BOOL is not set
 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+# CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID is not set
 
 #
 # Power management and ACPI options
@@ -392,6 +403,7 @@ CONFIG_ACPI_PROCESSOR=m
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
 CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_NUMA is not set
 CONFIG_ACPI_CUSTOM_DSDT_FILE=""
 # CONFIG_ACPI_CUSTOM_DSDT is not set
 CONFIG_ACPI_BLACKLIST_YEAR=0
index 970598e38e2f18e9f7311ec81ffe56785db6b5a8..2eab3b5e72b5eb9fc9e41be9499f5bf0a291ebc8 100644 (file)
@@ -1404,6 +1404,7 @@ srv/web/ipfire/cgi-bin/pppsetup.cgi
 srv/web/ipfire/cgi-bin/proxy.cgi
 srv/web/ipfire/cgi-bin/qos.cgi
 srv/web/ipfire/cgi-bin/remote.cgi
+srv/web/ipfire/cgi-bin/routing.cgi
 srv/web/ipfire/cgi-bin/services.cgi
 srv/web/ipfire/cgi-bin/speed.cgi
 srv/web/ipfire/cgi-bin/system.cgi
index 6e5d7caec192ef14668720b40f7fbf9f62ea7745..adab51bc1eea62f39c70c0e8101a43476534b5ed 100644 (file)
@@ -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
index df093b0751114d98b212dccfb7f34e5199c38789..6e97b170fd79671372eca64f0e109618a6e6725a 100644 (file)
@@ -40,6 +40,9 @@ usr/libexec/ipsec/plugins/libstrongswan-aes.so
 #usr/libexec/ipsec/plugins/libstrongswan-attr.a
 #usr/libexec/ipsec/plugins/libstrongswan-attr.la
 usr/libexec/ipsec/plugins/libstrongswan-attr.so
+#usr/libexec/ipsec/plugins/libstrongswan-constraints.a
+#usr/libexec/ipsec/plugins/libstrongswan-constraints.la
+usr/libexec/ipsec/plugins/libstrongswan-constraints.so
 #usr/libexec/ipsec/plugins/libstrongswan-curl.a
 #usr/libexec/ipsec/plugins/libstrongswan-curl.la
 usr/libexec/ipsec/plugins/libstrongswan-curl.so
@@ -118,14 +121,11 @@ usr/sbin/ipsec
 #usr/share/man/man3/anyaddr.3
 #usr/share/man/man3/atoaddr.3
 #usr/share/man/man3/atoasr.3
-#usr/share/man/man3/atosa.3
 #usr/share/man/man3/atoul.3
 #usr/share/man/man3/goodmask.3
 #usr/share/man/man3/initaddr.3
 #usr/share/man/man3/initsubnet.3
-#usr/share/man/man3/keyblobtoid.3
 #usr/share/man/man3/portof.3
-#usr/share/man/man3/prng.3
 #usr/share/man/man3/rangetosubnet.3
 #usr/share/man/man3/sameaddr.3
 #usr/share/man/man3/subnetof.3
@@ -136,13 +136,11 @@ usr/sbin/ipsec
 #usr/share/man/man5/ipsec.conf.5
 #usr/share/man/man5/ipsec.secrets.5
 #usr/share/man/man5/strongswan.conf.5
-#usr/share/man/man8/_copyright.8
 #usr/share/man/man8/_updown.8
 #usr/share/man/man8/_updown_espmark.8
 #usr/share/man/man8/ipsec.8
 #usr/share/man/man8/openac.8
 #usr/share/man/man8/pluto.8
 #usr/share/man/man8/scepclient.8
-#usr/share/man/man8/starter.8
 etc/ipsec.user.conf
 etc/ipsec.user.secrets
diff --git a/config/rootfiles/core/next/exclude b/config/rootfiles/core/next/exclude
new file mode 100644 (file)
index 0000000..c2bceb8
--- /dev/null
@@ -0,0 +1,6 @@
+etc/udev/rules.d/30-persistent-network.rules
+etc/ipsec.conf
+etc/ipsec.secrets
+etc/ipsec.user.conf
+etc/ipsec.user.secrets
+var/updatecache
diff --git a/config/rootfiles/core/next/filelists/crda b/config/rootfiles/core/next/filelists/crda
new file mode 120000 (symlink)
index 0000000..d68c46e
--- /dev/null
@@ -0,0 +1 @@
+../../../common/crda
\ No newline at end of file
diff --git a/config/rootfiles/core/next/filelists/dracut b/config/rootfiles/core/next/filelists/dracut
new file mode 120000 (symlink)
index 0000000..1608699
--- /dev/null
@@ -0,0 +1 @@
+../../../common/dracut
\ No newline at end of file
diff --git a/config/rootfiles/core/next/filelists/files b/config/rootfiles/core/next/filelists/files
new file mode 100644 (file)
index 0000000..30727a5
--- /dev/null
@@ -0,0 +1,13 @@
+etc/sysctl.conf
+etc/system-release
+etc/issue
+srv/web/ipfire/cgi-bin/extrahd.cgi
+srv/web/ipfire/cgi-bin/index.cgi
+srv/web/ipfire/cgi-bin/vpnmain.cgi
+var/ipfire/langs/de.pl
+var/ipfire/langs/en.pl
+var/ipfire/langs/es.pl
+var/ipfire/langs/fr.pl
+var/ipfire/langs/pl.pl
+usr/local/bin/ipsecctrl
+usr/local/bin/vpn-watch
diff --git a/config/rootfiles/core/next/filelists/gmp b/config/rootfiles/core/next/filelists/gmp
new file mode 120000 (symlink)
index 0000000..8662a89
--- /dev/null
@@ -0,0 +1 @@
+../../../common/gmp
\ No newline at end of file
diff --git a/config/rootfiles/core/next/filelists/grub b/config/rootfiles/core/next/filelists/grub
new file mode 120000 (symlink)
index 0000000..050745c
--- /dev/null
@@ -0,0 +1 @@
+../../../common/grub
\ No newline at end of file
diff --git a/config/rootfiles/core/next/filelists/iw b/config/rootfiles/core/next/filelists/iw
new file mode 120000 (symlink)
index 0000000..7c58a20
--- /dev/null
@@ -0,0 +1 @@
+../../../common/iw
\ No newline at end of file
diff --git a/config/rootfiles/core/next/filelists/linux b/config/rootfiles/core/next/filelists/linux
new file mode 120000 (symlink)
index 0000000..c469fe1
--- /dev/null
@@ -0,0 +1 @@
+../../../common/linux
\ No newline at end of file
diff --git a/config/rootfiles/core/next/filelists/linux-firmware b/config/rootfiles/core/next/filelists/linux-firmware
new file mode 120000 (symlink)
index 0000000..4bf91bc
--- /dev/null
@@ -0,0 +1 @@
+../../../common/linux-firmware
\ No newline at end of file
diff --git a/config/rootfiles/core/next/filelists/strongswan b/config/rootfiles/core/next/filelists/strongswan
new file mode 120000 (symlink)
index 0000000..90c727e
--- /dev/null
@@ -0,0 +1 @@
+../../../common/strongswan
\ No newline at end of file
diff --git a/config/rootfiles/core/next/filelists/wireless-regdb b/config/rootfiles/core/next/filelists/wireless-regdb
new file mode 120000 (symlink)
index 0000000..c9205b3
--- /dev/null
@@ -0,0 +1 @@
+../../../common/wireless-regdb
\ No newline at end of file
diff --git a/config/rootfiles/core/next/filelists/zd1211-firmware b/config/rootfiles/core/next/filelists/zd1211-firmware
new file mode 120000 (symlink)
index 0000000..33985ce
--- /dev/null
@@ -0,0 +1 @@
+../../../common/zd1211-firmware
\ No newline at end of file
diff --git a/config/rootfiles/core/next/meta b/config/rootfiles/core/next/meta
new file mode 100644 (file)
index 0000000..d547fa8
--- /dev/null
@@ -0,0 +1 @@
+DEPS=""
diff --git a/config/rootfiles/core/next/update.sh b/config/rootfiles/core/next/update.sh
new file mode 100644 (file)
index 0000000..38a1f78
--- /dev/null
@@ -0,0 +1,167 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire is free software; you can redistribute it and/or modify           #
+# it under the terms of the GNU General Public License as published by     #
+# the Free Software Foundation; either version 3 of the License, or        #
+# (at your option) any later version.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2011 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+/usr/local/bin/backupctrl exclude >/dev/null 2>&1
+#
+KVER="xxxKVERxxx"
+MOUNT=`grep "kernel" /boot/grub/grub.conf | tail -n 1`
+# Nur den letzten Parameter verwenden
+echo $MOUNT > /dev/null
+MOUNT=$_
+if [ ! $MOUNT == "rw" ]; then
+       MOUNT="ro"
+fi
+
+
+#
+# check if we the backup file already exist
+if [ -e /var/ipfire/backup/core-upgrade_$KVER.tar.bz2 ]; then
+    echo Moving backup to backup-old ...
+    mv -f /var/ipfire/backup/core-upgrade_$KVER.tar.bz2 \
+       /var/ipfire/backup/core-upgrade_$KVER-old.tar.bz2
+fi
+echo First we made a backup of all files that was inside of the
+echo update archive. This may take a while ...
+# Add some files that are not in the package to backup
+echo lib/modules >> /opt/pakfire/tmp/ROOTFILES
+echo boot >> /opt/pakfire/tmp/ROOTFILES
+
+# Backup the files
+tar cjvf /var/ipfire/backup/core-upgrade_$KVER.tar.bz2 \
+    -C / -T /opt/pakfire/tmp/ROOTFILES --exclude='#*' > /dev/null 2>&1
+
+echo
+echo Update Kernel to $KVER ...
+# Remove old kernel, configs, initrd, modules ...
+#
+rm -rf /boot/System.map-*
+rm -rf /boot/config-*
+rm -rf /boot/ipfirerd-*
+rm -rf /boot/vmlinuz-*
+rm -rf /lib/modules/*-ipfire
+#
+# Backup grub.conf
+#
+cp -vf /boot/grub/grub.conf /boot/grub/grub.conf.org
+
+#
+# Stop services to save memory
+#
+/etc/init.d/snort stop
+/etc/init.d/squid stop
+/etc/init.d/ipsec stop
+
+#
+# Unpack the updated files
+#
+echo
+echo Unpack the updated files ...
+#
+tar xvf /opt/pakfire/tmp/files --preserve --numeric-owner -C / \
+       --no-overwrite-dir
+
+#
+# Enable ralink rt73 hardware encryption again
+rm -f /etc/modprobe.d/ralink_wireless
+
+#
+# Start services
+#
+/etc/init.d/squid start
+/etc/init.d/snort start
+if [ `grep "ENABLED=on" /var/ipfire/vpn/settings` ]; then
+       /etc/init.d/ipsec start
+fi
+
+#
+# Modify grub.conf
+#
+echo
+echo Update grub configuration ...
+ROOT=`mount | grep " / " | cut -d" " -f1`
+if [ ! -z $ROOT ]; then
+       ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2`
+fi
+if [ ! -z $ROOTUUID ]; then
+       sed -i "s|ROOT|UUID=$ROOTUUID|g" /boot/grub/grub.conf
+else
+       sed -i "s|ROOT|$ROOT|g" /boot/grub/grub.conf
+fi
+sed -i "s|KVER|$KVER|g" /boot/grub/grub.conf
+sed -i "s|MOUNT|$MOUNT|g" /boot/grub/grub.conf
+
+if [ "$(grep "^serial" /boot/grub/grub.conf.org)" == "" ]; then
+       echo "grub use default console ..."
+else
+       echo "grub use serial console ..."
+       sed -i -e "s|splashimage|#splashimage|g" /boot/grub/grub.conf
+       sed -i -e "s|#serial|serial|g" /boot/grub/grub.conf
+       sed -i -e "s|#terminal|terminal|g" /boot/grub/grub.conf
+       sed -i -e "s| panic=10 | console=ttyS0,38400n8 panic=10 |g" /boot/grub/grub.conf
+fi
+#
+# ReInstall grub
+#
+grub-install --no-floppy ${ROOT::`expr length $ROOT`-1} --recheck
+#
+# Rebuild Language
+#
+perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
+#
+# Delete old lm-sensor modullist to force search at next boot
+#
+rm -rf /etc/sysconfig/lm_sensors
+##
+## Change version of Pakfire.conf
+##
+#OLDVERSION=`grep "version = " /opt/pakfire/etc/pakfire.conf | cut -d'"' -f2`
+#NEWVERSION="2.9"
+#sed -i "s|$OLDVERSION|$NEWVERSION|g" /opt/pakfire/etc/pakfire.conf
+##
+## After pakfire has ended run it again and update the lists and do upgrade
+##
+#echo '#!/bin/bash'                                        >  /tmp/pak_update
+#echo 'while [ "$(ps -A | grep " update.sh")" != "" ]; do' >> /tmp/pak_update
+#echo '    sleep 1'                                        >> /tmp/pak_update
+#echo 'done'                                               >> /tmp/pak_update
+#echo 'while [ "$(ps -A | grep " pakfire")" != "" ]; do'   >> /tmp/pak_update
+#echo '    sleep 1'                                        >> /tmp/pak_update
+#echo 'done'                                               >> /tmp/pak_update
+#echo '/opt/pakfire/pakfire update -y --force'             >> /tmp/pak_update
+#echo '/opt/pakfire/pakfire upgrade -y'                    >> /tmp/pak_update
+#echo '/opt/pakfire/pakfire upgrade -y'                    >> /tmp/pak_update
+#echo '/opt/pakfire/pakfire upgrade -y'                    >> /tmp/pak_update
+#echo '/usr/bin/logger -p syslog.emerg -t core-upgrade-44 "Upgrade finished. If you use a customized grub.cfg"' >> /tmp/pak_update
+#echo '/usr/bin/logger -p syslog.emerg -t core-upgrade-44 "Check it before reboot !!!"' >> /tmp/pak_update
+#echo '/usr/bin/logger -p syslog.emerg -t core-upgrade-44 " *** Please reboot... *** "' >> /tmp/pak_update
+#echo 'touch /var/run/need_reboot ' >> /tmp/pak_update
+#
+#chmod +x /tmp/pak_update
+#/tmp/pak_update &
+#echo
+#echo Please wait until pakfire has ended...
+#echo
+/usr/bin/logger -p syslog.emerg -t core-upgrade-next "Upgrade finished. If you use a customized grub.cfg"
+/usr/bin/logger -p syslog.emerg -t core-upgrade-next "Check it before reboot !!!"
+/usr/bin/logger -p syslog.emerg -t core-upgrade-next " *** Please reboot... *** "
index d061319fdd95a31120e3601f4bb84aaff5f4da88..f04fdfbed7f7a683ddb220a4c7e0b1b8351e04db 100644 (file)
@@ -14,6 +14,7 @@ usr/bin/qemu-nbd
 usr/share/qemu
 usr/share/qemu/bamboo.dtb
 usr/share/qemu/bios.bin
+usr/share/qemu/extboot.bin
 usr/share/qemu/gpxe-eepro100-80861209.rom
 usr/share/qemu/keymaps
 usr/share/qemu/keymaps/ar
@@ -64,6 +65,7 @@ usr/share/qemu/pxe-pcnet.bin
 usr/share/qemu/pxe-rtl8139.bin
 usr/share/qemu/pxe-virtio.bin
 usr/share/qemu/s390-zipl.rom
+usr/share/qemu/vapic.bin
 usr/share/qemu/vgabios-cirrus.bin
 usr/share/qemu/vgabios-qxl.bin
 usr/share/qemu/vgabios-stdvga.bin
index d59f1f3ddc5df04230300aa7ab1f076ec9c5094a..52324ceba559b0ccf4851ba17ae002de600d1a83 100644 (file)
@@ -144,6 +144,8 @@ WARNING: translation string unused: error external access
 WARNING: translation string unused: expected
 WARNING: translation string unused: exportkey
 WARNING: translation string unused: external access rule changed
+WARNING: translation string unused: extrahd unable to read
+WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
 WARNING: translation string unused: firewall graphs
 WARNING: translation string unused: firewall log viewer
@@ -462,3 +464,7 @@ WARNING: untranslated string: bytes
 WARNING: untranslated string: new
 WARNING: untranslated string: outgoing firewall reserved groupname
 WARNING: untranslated string: qos add subclass
+WARNING: untranslated string: route config changed
+WARNING: untranslated string: routing config added
+WARNING: untranslated string: routing config changed
+WARNING: untranslated string: routing table
index 3df8ad27256978651873a1af477bcd50379b0bb7..14e47d99560d5a3468b8291611fea9c4e52ef285 100644 (file)
@@ -168,6 +168,8 @@ WARNING: translation string unused: error external access
 WARNING: translation string unused: expected
 WARNING: translation string unused: exportkey
 WARNING: translation string unused: external access rule changed
+WARNING: translation string unused: extrahd unable to read
+WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
 WARNING: translation string unused: firewall graphs
 WARNING: translation string unused: firewall log viewer
@@ -494,3 +496,7 @@ WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: bytes
 WARNING: untranslated string: new
 WARNING: untranslated string: outgoing firewall reserved groupname
+WARNING: untranslated string: route config changed
+WARNING: untranslated string: routing config added
+WARNING: untranslated string: routing config changed
+WARNING: untranslated string: routing table
index ae69c6faba5513ed1ba082f5191e3e367dcbdf7c..456eb1f28c38c6100ffa1088ead4f79d1c160d25 100644 (file)
@@ -168,6 +168,8 @@ WARNING: translation string unused: error external access
 WARNING: translation string unused: expected
 WARNING: translation string unused: exportkey
 WARNING: translation string unused: external access rule changed
+WARNING: translation string unused: extrahd unable to read
+WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
 WARNING: translation string unused: firewall graphs
 WARNING: translation string unused: firewall log viewer
@@ -530,4 +532,9 @@ WARNING: untranslated string: outgoing firewall p2p description 3
 WARNING: untranslated string: outgoing firewall reserved groupname
 WARNING: untranslated string: outgoing firewall view group
 WARNING: untranslated string: pakfire ago
+WARNING: untranslated string: route config changed
+WARNING: untranslated string: routing config added
+WARNING: untranslated string: routing config changed
+WARNING: untranslated string: routing table
 WARNING: untranslated string: system information
+WARNING: untranslated string: vpn keyexchange
index cb58f420224b688884bbedddc97fac5e22adc945..784bf382c21a2ba814523cd58e0a2a1cd2b8bae9 100644 (file)
@@ -168,7 +168,8 @@ WARNING: translation string unused: error external access
 WARNING: translation string unused: expected
 WARNING: translation string unused: exportkey
 WARNING: translation string unused: external access rule changed
-WARNING: translation string unused: extrahd founded drives
+WARNING: translation string unused: extrahd unable to read
+WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
 WARNING: translation string unused: firewall graphs
 WARNING: translation string unused: firewall log viewer
@@ -496,7 +497,6 @@ WARNING: translation string unused: yearly firewallhits
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: bytes
 WARNING: untranslated string: dns address deleted txt
-WARNING: untranslated string: extrahd detected drives
 WARNING: untranslated string: fireinfo ipfire version
 WARNING: untranslated string: fireinfo is disabled
 WARNING: untranslated string: fireinfo is enabled
@@ -520,11 +520,16 @@ WARNING: untranslated string: ntp common settings
 WARNING: untranslated string: ntp sync
 WARNING: untranslated string: outgoing firewall reserved groupname
 WARNING: untranslated string: pakfire ago
+WARNING: untranslated string: route config changed
+WARNING: untranslated string: routing config added
+WARNING: untranslated string: routing config changed
+WARNING: untranslated string: routing table
 WARNING: untranslated string: snort working
 WARNING: untranslated string: system information
 WARNING: untranslated string: upload new ruleset
 WARNING: untranslated string: urlfilter file ext block
 WARNING: untranslated string: urlfilter mode block
+WARNING: untranslated string: vpn keyexchange
 WARNING: untranslated string: wlanap access point
 WARNING: untranslated string: wlanap channel
 WARNING: untranslated string: wlanap debugging
index ae69c6faba5513ed1ba082f5191e3e367dcbdf7c..456eb1f28c38c6100ffa1088ead4f79d1c160d25 100644 (file)
@@ -168,6 +168,8 @@ WARNING: translation string unused: error external access
 WARNING: translation string unused: expected
 WARNING: translation string unused: exportkey
 WARNING: translation string unused: external access rule changed
+WARNING: translation string unused: extrahd unable to read
+WARNING: translation string unused: extrahd unable to write
 WARNING: translation string unused: filename
 WARNING: translation string unused: firewall graphs
 WARNING: translation string unused: firewall log viewer
@@ -530,4 +532,9 @@ WARNING: untranslated string: outgoing firewall p2p description 3
 WARNING: untranslated string: outgoing firewall reserved groupname
 WARNING: untranslated string: outgoing firewall view group
 WARNING: untranslated string: pakfire ago
+WARNING: untranslated string: route config changed
+WARNING: untranslated string: routing config added
+WARNING: untranslated string: routing config changed
+WARNING: untranslated string: routing table
 WARNING: untranslated string: system information
+WARNING: untranslated string: vpn keyexchange
index 0ddcb9582affb9a76f4215ec11d3858ae4703c0c..3de5aec9e05eb3a993dc8ebdf2ed150e1908992e 100644 (file)
@@ -11,7 +11,6 @@
 # Checking cgi-bin translations for language: fr                           #
 ############################################################################
 < dns address deleted txt
-< extrahd detected drives
 < fireinfo ipfire version
 < fireinfo is disabled
 < fireinfo is enabled
@@ -37,6 +36,7 @@
 < upload new ruleset
 < urlfilter file ext block
 < urlfilter mode block
+< vpn keyexchange
 < wlanap access point
 < wlanap channel
 < wlanap debugging
 < outgoing firewall view group
 < Set time on boot
 < system information
+< vpn keyexchange
 ############################################################################
 # Checking install/setup translations for language: pl                     #
 ############################################################################
 ############################################################################
 # Checking cgi-bin translations for language: pl                           #
 ############################################################################
+< extrahd because there is already a device mounted
+< extrahd cant umount
+< extrahd install or load driver
+< extrahd maybe the device is in use
+< extrahd to
+< extrahd to root
+< extrahd unable to read
+< extrahd unable to write
+< extrahd you cant mount
 < minute
+< vpn keyexchange
index 3bb6afd8deade3e0905751dea9762c3146985e6d..86b0de5c37e6cfff31d2f87ca064f025bf73ddc7 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2011  IPFire Team  <info@ipfire.org>                          #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -79,11 +79,11 @@ if ($extrahdsettings{'ACTION'} eq $Lang::tr{'add'})
                @deviceline = split( /\;/, $deviceentry );
                if ( "$extrahdsettings{'PATH'}" eq "$deviceline[2]" ) {
                        $ok = "false";
-                       $errormessage = "You can't mount $extrahdsettings{'DEVICE'} to $extrahdsettings{'PATH'}, because there is already a device mounted.";
+                       $errormessage = "$Lang::tr{'extrahd you cant mount'} $extrahdsettings{'DEVICE'} $Lang::tr{'extrahd to'} $extrahdsettings{'PATH'}$Lang::tr{'extrahd because there is already a device mounted'}.";
                }
                if ( "$extrahdsettings{'PATH'}" eq "/" ) {
                        $ok = "false";
-                       $errormessage = "You can't mount $extrahdsettings{'DEVICE'} to root /.";
+                       $errormessage = "$Lang::tr{'extrahd you cant mount'} $extrahdsettings{'DEVICE'} $Lang::tr{'extrahd to root'}.";
                }
        }
 
@@ -113,7 +113,7 @@ elsif ($extrahdsettings{'ACTION'} eq $Lang::tr{'delete'})
                }
                close FILE;
        } else {
-               $errormessage = "Can't umount $extrahdsettings{'PATH'}. Maybe the device is in use?";
+               $errormessage = "$Lang::tr{'extrahd cant umount'} $extrahdsettings{'PATH'}$Lang::tr{'extrahd maybe the device is in use'}?";
        }
 }
 
@@ -143,10 +143,10 @@ END
                        $color=$Header::colourgreen;
                }
                print <<END
-                       <tr><td colspan="5">&nbsp;
-                       <tr><td align='center'><font color=$color><b>$deviceline[0]</b></font>
-                               <td align='center'>$deviceline[1]
-                               <td align='center'>$deviceline[2]
+                       <tr><td colspan="4">&nbsp;</td></tr>
+                       <tr><td align='left'><font color=$color><b>$deviceline[0]</b></font></td>
+                               <td align='left'>$deviceline[1]</td>
+                               <td align='left'>$deviceline[2]</td>
                                <td align='center'>
                                        <form method='post' action='$ENV{'SCRIPT_NAME'}'>
                                                <input type='hidden' name='DEVICE' value='$deviceline[0]' />
@@ -154,7 +154,7 @@ END
                                                <input type='hidden' name='PATH' value='$deviceline[2]' />
                                                <input type='hidden' name='ACTION' value=$Lang::tr{'delete'} />
                                                <input type='image' alt=$Lang::tr{'delete'} src='/images/delete.gif' />
-                                       </form>
+                                       </form></td></tr>
 END
 ;
        }
@@ -179,21 +179,26 @@ END
        foreach $scanentry (sort @scans)
        {
                @scanline = split( /\;/, $scanentry );
-               print <<END
-                       <tr><td colspan="5">&nbsp;
-                       <tr><td align='left' colspan="2"><b>/dev/$scanline[0]</b>
-                               <td align='center' colspan="2">$scanline[1]
+               # remove wrong entries like usb controller name
+               if ($scanline[1] ne "\n")
+               {
+                       print <<END
+                               <tr><td colspan="5">&nbsp;</td></tr>
+                               <tr><td align='left' colspan="2"><b>/dev/$scanline[0]</b></td>
+                               <td align='center' colspan="2">$scanline[1]</td>
 END
 ;
+
+               }
                foreach $partitionentry (sort @partitions)
                {
                        @partitionline = split( /\;/, $partitionentry );
                        if ( "$partitionline[0]" eq "$scanline[0]" ) {
                                $size = int($partitionline[1] / 1024);
                                print <<END
-                               <td align='center'>$Lang::tr{'size'} $size MB
-                               <td>&nbsp;
-                               <tr><td colspan="5">&nbsp;
+                               <td align='center'>$Lang::tr{'size'} $size MB</td>
+                               <td>&nbsp;</td></tr>
+                               <tr><td colspan="5">&nbsp;</td></tr>
 END
 ;
                        }
@@ -206,24 +211,27 @@ END
                                $size = int($partitionline[1] / 1024);
                                print <<END
                                <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-                               <tr><td align="left" colspan=5><b>UUID=$partitionline[2]</b></td></tr>
+                               <tr><td align="left" colspan=5><strong>UUID=$partitionline[2]</strong></td></tr>
                                <tr>
                                <td align="list">/dev/$partitionline[0]</td>
-                               <td align="center">$Lang::tr{'size'} $size MB
+                               <td align="center">$Lang::tr{'size'} $size MB</td>
                                <td align="center"><select name="FS">
                                                                                <option value="auto">auto</option>
                                                                                <option value="ext3">ext3</option>
+                                                                               <option value="ext4">ext4</option>
                                                                                <option value="reiserfs">reiserfs</option>
                                                                                <option value="vfat">fat</option>
                                                                                <option value="ntfs-3g">ntfs (experimental)</option>
-                                                                          </select>
-                               <td align="center"><input type='text' name='PATH' value=/mnt/harddisk />
+                                                                          </select></td>
+                               <td align="center"><input type='text' name='PATH' value=/mnt/harddisk /></td>
                                <td align="center">
                                        <input type='hidden' name='DEVICE' value='$partitionline[0]' />
                                        <input type='hidden' name='UUID' value='$partitionline[2]' />
                                        <input type='hidden' name='ACTION' value=$Lang::tr{'add'} />
                                        <input type='image' alt=$Lang::tr{'add'} src='/images/add.gif' />
-                               </form>
+                               </form></td></tr>
+END
+;
 
 END
 ;
@@ -232,7 +240,9 @@ END
        }
 
        print <<END
-       <tr><td align="center" colspan="5">If your device isn't listed here, you need to install or load the driver.<br />If you can see your device but no partitions you have to create them first.
+       <tr><td align="center" colspan="5">&nbsp;</td></tr>
+       <tr><td align="center" colspan="5">&nbsp;</td></tr>
+       <tr><td align="center" colspan="5">$Lang::tr{'extrahd install or load driver'}</td></tr>
        </table>
 END
 ;
index 0dcadb0b2223de184030087642135b1a189c7b5c..b325250a58e9b0d37fe316692028e71856e4050f 100644 (file)
@@ -369,7 +369,9 @@ END
                            $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourblue}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>";
                        } else {
                            foreach my $line (@status) {
-                               if ($line =~ /\"$confighash{$key}[1]\".*IPsec SA established/) {
+                               if (($line =~ /\"$confighash{$key}[1]\".*IPsec SA established/) ||
+                                   ($line =~/$confighash{$key}[1]\{.*INSTALLED/ ))
+                                   {
                                    $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourgreen}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b></td></tr></table>";
                                }
                           }
index e757ca08afb11f2a840f36995c2452e23809f73c..1c3d6952cd2a601906467328027756437f7030e4 100644 (file)
@@ -87,6 +87,8 @@ if ($outgrpsettings{'ACTION'} eq 'newipgroup')
 
        if ( -e "$configpath/macgroups/$outgrpsettings{'ipgroup'}" ){
                $errormessage =  "$Lang::tr{'outgoing firewall group error'}";
+       } elsif ( $outgrpsettings{'ipgroup'} =~ /\W/ ){
+               $errormessage = $Lang::tr{'name must only contain characters'}." - ".$outgrpsettings{'ipgroup'};
        } elsif ( $outgrpsettings{'ipgroup'} eq "all" || $outgrpsettings{'ipgroup'} eq "red" || $outgrpsettings{'ipgroup'} eq "blue" ||
                        $outgrpsettings{'ipgroup'} eq "green" || $outgrpsettings{'ipgroup'} eq "orange" || $outgrpsettings{'ipgroup'} eq "ip" ||
                        $outgrpsettings{'ipgroup'} eq "mac" || $outgrpsettings{'ipgroup'} eq "ovpn" || $outgrpsettings{'ipgroup'} eq "ipsec" ) {
@@ -112,6 +114,8 @@ if ($outgrpsettings{'ACTION'} eq 'newmacgroup')
 
        if ( -e "$configpath/ipgroups/$outgrpsettings{'macgroup'}" ){
                $errormessage =  "$Lang::tr{'outgoing firewall group error'}";
+       } elsif ( $outgrpsettings{'macgroup'} =~ /\W/ ){
+               $errormessage = $Lang::tr{'name must only contain characters'}." - ".$outgrpsettings{'macgroup'};
        } elsif ( $outgrpsettings{'macgroup'} eq "all" || $outgrpsettings{'macgroup'} eq "red" || $outgrpsettings{'macgroup'} eq "blue" ||
                        $outgrpsettings{'macgroup'} eq "green" || $outgrpsettings{'macgroup'} eq "orange" || $outgrpsettings{'macgroup'} eq "ip" ||
                        $outgrpsettings{'macgroup'} eq "mac" || $outgrpsettings{'macgroup'} eq "ovpn" || $outgrpsettings{'macgroup'} eq "ipsec" ) {
diff --git a/html/cgi-bin/routing.cgi b/html/cgi-bin/routing.cgi
new file mode 100644 (file)
index 0000000..86e0429
--- /dev/null
@@ -0,0 +1,446 @@
+#!/usr/bin/perl
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2011  IPFire Team  <info@ipfire.org>                     #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+use strict;
+
+# enable only the following on debugging purpose
+#use warnings;
+#use CGI::Carp 'fatalsToBrowser';
+
+require '/var/ipfire/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+
+#workaround to suppress a warning when a variable is used only once
+my @dummy = ( ${Header::colouryellow} );
+undef (@dummy);
+
+# Files used
+my $setting = "${General::swroot}/main/settings";
+our $datafile = "${General::swroot}/main/routing";             #(our: used in subroutine)
+
+my %color = ();
+my %mainsettings = ();
+&General::readhash("${General::swroot}/main/settings", \%mainsettings);
+&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
+
+our %settings = ();
+
+$settings{'EN'} = '';                  # reuse for dummy field in position zero
+$settings{'IP'} = '';
+$settings{'GATEWAY'} = '';
+$settings{'REMARK'} = '';
+my @nosaved=('EN','IP','GATEWAY','REMARK');    # List here ALL setting2 fields. Mandatory
+    
+$settings{'ACTION'} = '';              # add/edit/remove
+$settings{'KEY1'} = '';                        # point record for ACTION
+
+#Define each field that can be used to sort columns
+my $sortstring='^IP|^GATEWAY|^REMARK';
+$settings{'SORT_GATEWAYLIST'} = 'GATEWAY';
+my $errormessage = '';
+my $warnmessage = '';
+
+&Header::showhttpheaders();
+
+#Get GUI values
+&Header::getcgihash(\%settings);
+
+###############
+# DEBUG DEBUG
+#&Header::openbox('100%', 'left', 'DEBUG');
+#my $debugCount = 0;
+#foreach my $line (sort keys %settings) {
+#print "$line = $settings{$line}<br />\n";
+# $debugCount++;
+#}
+#print "&nbsp;Count: $debugCount\n";
+#&Header::closebox();
+# DEBUG DEBUG
+###############
+
+# Load multiline data
+our @current = ();
+if (open(FILE, "$datafile")) {
+    @current = <FILE>;
+    close (FILE);
+}
+
+## Settings1 Box not used...
+&General::readhash("${General::swroot}/main/settings", \%settings);
+
+
+## Now manipulate the multi-line list with Settings2
+# Basic actions are:
+#      toggle the check box
+#      add/update a new line
+#      begin editing a line
+#      remove a line
+
+
+# Toggle enable/disable field.  Field is in second position
+if ($settings{'ACTION'} eq $Lang::tr{'toggle enable disable'}) {
+    #move out new line
+    chomp(@current[$settings{'KEY1'}]);
+    my @temp = split(/\,/,@current[$settings{'KEY1'}]);
+
+    $temp[0] = $temp[0] ne '' ? '' : 'on';             # Toggle the field
+    @current[$settings{'KEY1'}] = join (',',@temp)."\n";
+    $settings{'KEY1'} = '';                            # End edit mode
+    
+    &General::log($Lang::tr{'routing config changed'});
+
+    #Save current
+    open(FILE, ">$datafile") or die 'routing datafile error';
+    print FILE @current;
+    close(FILE);
+       
+    # Rebuild configuration file
+    &BuildConfiguration;
+}
+
+if ($settings{'ACTION'} eq $Lang::tr{'add'}) {
+
+# Validate inputs
+       if (( !&General::validip($settings{'IP'})) and ( !&General::validipandmask($settings{'IP'}))){
+       $errormessage = $Lang::tr{'invalid ip'}." / ".$Lang::tr{'invalid netmask'};
+       }
+
+       if ($settings{'IP'} =~ /0.0.0.0/){
+       $errormessage = $Lang::tr{'invalid ip'}." - 0.0.0.0";
+       }
+
+       if( !&General::validip($settings{'GATEWAY'}) ) {
+       $errormessage = $Lang::tr{'invalid ip'}. " - ".$Lang::tr{'gateway ip'};
+       }
+
+    unless ($errormessage) {
+       if ($settings{'KEY1'} eq '') { #add or edit ?
+           unshift (@current, "$settings{'EN'},$settings{'IP'},$settings{'GATEWAY'},$settings{'REMARK'}\n");
+           &General::log($Lang::tr{'routing config added'});
+       } else {
+           @current[$settings{'KEY1'}] = "$settings{'EN'},$settings{'IP'},$settings{'GATEWAY'},$settings{'REMARK'}\n";
+           $settings{'KEY1'} = '';       # End edit mode
+           &General::log($Lang::tr{'routing config changed'});
+       }
+
+        # Write changes to config file.
+        &SortDataFile;                         # sort newly added/modified entry
+        &BuildConfiguration;                   # then re-build routing
+       
+       #map ($settings{$_}='' ,@nosaved);      # Clear fields
+    }
+}
+
+if ($settings{'ACTION'} eq $Lang::tr{'edit'}) {
+    #move out new line
+    my $line = @current[$settings{'KEY1'}];    # KEY1 is the index in current
+    chomp($line);
+    my @temp = split(/\,/, $line);
+    $settings{'EN'}=$temp[0];                  # Prepare the screen for editing
+    $settings{'IP'}=$temp[1];
+    $settings{'GATEWAY'}=$temp[2];
+    $settings{'REMARK'}=$temp[3];
+    &BuildConfiguration;
+}
+
+if ($settings{'ACTION'} eq $Lang::tr{'remove'}) {
+    splice (@current,$settings{'KEY1'},1);             # Delete line 
+    open(FILE, ">$datafile") or die 'route datafile error';
+    print FILE @current;
+    close(FILE);
+    $settings{'KEY1'} = '';                            # End remove mode
+    &General::log($Lang::tr{'route config changed'});
+
+    &BuildConfiguration;                               # then re-build conf which use new data
+}
+
+##  Check if sorting is asked
+# If same column clicked, reverse the sort.
+if ($ENV{'QUERY_STRING'} =~ /$sortstring/ ) {
+    my $newsort=$ENV{'QUERY_STRING'};
+    my $actual=$settings{'SORT_GATEWAYLIST'};
+    #Reverse actual sort ?
+    if ($actual =~ $newsort) {
+       my $Rev='';
+       if ($actual !~ 'Rev') {
+           $Rev='Rev';
+       }
+       $newsort.=$Rev;
+    }
+    $settings{'SORT_GATEWAYLIST'}=$newsort;
+    map (delete ($settings{$_}) ,(@nosaved,'ACTION','KEY1'));# Must never be saved
+    &General::writehash($setting, \%settings);
+    &SortDataFile;
+    $settings{'ACTION'} = 'SORT';                      # Create an 'ACTION'
+    map ($settings{$_} = '' ,@nosaved,'KEY1');         # and reinit vars to empty
+}
+
+if ($settings{'ACTION'} eq '' ) { # First launch from GUI
+    # Place here default value when nothing is initialized
+    $settings{'EN'} = 'on';
+    $settings{'GATEWAY'} = '';
+    $settings{'IP'} = '';
+}
+
+&Header::openpage($Lang::tr{'routing table entries'}, 1, '');
+&Header::openbigbox('100%', 'left', '', $errormessage);
+my %checked=();     # Checkbox manipulations
+
+if ($errormessage) {
+    &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
+    print "<font class='base'>$errormessage&nbsp;</font>";
+    &Header::closebox();
+}
+
+#
+
+$checked{'EN'}{'on'} = ($settings{'EN'} eq '' ) ? '' : "checked='checked'";
+
+my $buttontext = $Lang::tr{'add'};
+if ($settings{'KEY1'} ne '') {
+    $buttontext = $Lang::tr{'update'};
+    &Header::openbox('100%', 'left', $Lang::tr{'Edit an existing route'});
+} else {
+    &Header::openbox('100%', 'left', $Lang::tr{'Add a route'});
+}
+
+#Edited line number (KEY1) passed until cleared by 'save' or 'remove' or 'new sort order'
+print <<END
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+<input type='hidden' name='KEY1' value='$settings{'KEY1'}' />
+<table width='100%'>
+<tr>
+    <td class='base'>$Lang::tr{'host ip'} / $Lang::tr{'network'}:&nbsp;</td>
+    <td><input type='text' name='IP' value='$settings{'IP'}' size='25'/></td>
+</tr><tr>
+    <td class='base'>$Lang::tr{'gateway'}:&nbsp;</td>
+    <td><input type='text' name='GATEWAY' value='$settings{'GATEWAY'}' size='25'/></td>
+    <td class='base'>$Lang::tr{'enabled'}</td>
+    <td><input type='checkbox' name='EN' $checked{'EN'}{'on'} /></td>
+</tr>
+</tr>
+    <td class='base'>$Lang::tr{'remark'}:&nbsp;</td>
+    <td><input type='text' name='REMARK' value='$settings{'REMARK'}' size='25'/></td>
+</tr>
+</table>
+<hr />
+<table width='100%'>
+<tr>
+    <td width='50%' align='center'><input type='hidden' name='ACTION' value='$Lang::tr{'add'}' /><input type='submit' name='SUBMIT' value='$buttontext' /></td>
+</tr>
+</table>
+</form>
+END
+;
+&Header::closebox();
+
+&Header::openbox('100%', 'left', $Lang::tr{'routing table'});
+print <<END
+<hr />
+<table width='100%'>
+<tr>
+    <td width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?IP'><b>$Lang::tr{'host ip'} / $Lang::tr{'network'}</b></a></td>
+    <td width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?GATEWAY'><b>$Lang::tr{'gateway'}</b></a></td>
+    <td width='30%' align='center'><a href='$ENV{'SCRIPT_NAME'}?REMARK'><b>$Lang::tr{'remark'}</b></a></td>
+    <td width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td>
+</tr>
+END
+;
+
+#
+# Print each line of @current list
+#
+
+my $key = 0;
+foreach my $line (@current) {
+    chomp($line);                              # remove newline
+    my @temp=split(/\,/,$line);
+    $temp[2] ='' unless defined $temp[2]; # not always populated
+    $temp[3] ='' unless defined $temp[2]; # not always populated
+
+    #Choose icon for checkbox
+    my $gif = '';
+    my $gdesc = '';
+    if ($temp[0] ne '' ) {
+       $gif = 'on.gif';
+       $gdesc = $Lang::tr{'click to disable'};
+    } else {
+       $gif = 'off.gif';
+       $gdesc = $Lang::tr{'click to enable'}; 
+    }
+
+    #Colorize each line
+    if ($settings{'KEY1'} eq $key) {
+       print "<tr bgcolor='${Header::colouryellow}'>";
+    } elsif ($key % 2) {
+       print "<tr bgcolor='$color{'color22'}'>";
+    } else {
+       print "<tr bgcolor='$color{'color20'}'>"; 
+    }
+    print <<END
+<td align='center'>$temp[1]</td>
+<td align='center'>$temp[2]</td>
+<td align='center'>$temp[3]</td>
+<td align='center'>
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+<input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />
+<input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' />
+<input type='hidden' name='KEY1' value='$key' />
+</form>
+</td>
+
+<td align='center'>
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+<input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' />
+<input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' />
+<input type='hidden' name='KEY1' value='$key' />
+</form>
+</td>
+
+<td align='center'>
+<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
+<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
+<input type='hidden' name='KEY1' value='$key' />
+</form>
+</td>
+</tr>
+END
+;
+    $key++;
+}
+print "</table>";
+
+# If table contains entries, print 'Key to action icons'
+if ($key) {
+print <<END
+<table>
+<tr>
+    <td class='boldbase'>&nbsp;<b>$Lang::tr{'legend'}:&nbsp;</b></td>
+    <td><img src='/images/on.gif' alt='$Lang::tr{'click to disable'}' /></td>
+    <td class='base'>$Lang::tr{'click to disable'}</td>
+    <td>&nbsp;&nbsp;</td>
+    <td><img src='/images/off.gif' alt='$Lang::tr{'click to enable'}' /></td>
+    <td class='base'>$Lang::tr{'click to enable'}</td>
+    <td>&nbsp;&nbsp;</td>
+    <td><img src='/images/edit.gif' alt='$Lang::tr{'edit'}' /></td>
+    <td class='base'>$Lang::tr{'edit'}</td>
+    <td>&nbsp;&nbsp;</td>
+    <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
+    <td class='base'>$Lang::tr{'remove'}</td>
+</tr>
+</table>
+END
+;
+}
+
+&Header::closebox();
+
+my $output = `/sbin/ip route show table static`;
+$output = &Header::cleanhtml($output,"y");
+
+if ( $output != "" ) {
+       &Header::openbox('100%', 'left', $Lang::tr{'routing table entries'});
+       print "<pre>$output</pre>\n";
+       &Header::closebox();
+}
+
+&Header::closebigbox();
+&Header::closepage();
+
+## Ouf it's the end !
+
+# Sort the "current" array according to choices
+sub SortDataFile
+{
+    our %entries = ();
+    
+    # Sort pair of record received in $a $b special vars.
+    # When IP is specified use numeric sort else alpha.
+    # If sortname ends with 'Rev', do reverse sort.
+    #
+    sub fixedleasesort {
+       my $qs='';             # The sort field specified minus 'Rev'
+       if (rindex ($settings{'SORT_GATEWAYLIST'},'Rev') != -1) {
+           $qs=substr ($settings{'SORT_GATEWAYLIST'},0,length($settings{'SORT_GATEWAYLIST'})-3);
+           if ($qs eq 'IP') {
+               my @a = split(/\./,$entries{$a}->{$qs});
+               my @b = split(/\./,$entries{$b}->{$qs});
+               ($b[0]<=>$a[0]) ||
+               ($b[1]<=>$a[1]) ||
+               ($b[2]<=>$a[2]) ||
+               ($b[3]<=>$a[3]);
+           } else {
+               $entries{$b}->{$qs} cmp $entries{$a}->{$qs};
+           }
+       } else { #not reverse
+           $qs=$settings{'SORT_GATEWAYLIST'};
+           if ($qs eq 'IP') {
+               my @a = split(/\./,$entries{$a}->{$qs});
+               my @b = split(/\./,$entries{$b}->{$qs});
+               ($a[0]<=>$b[0]) ||
+               ($a[1]<=>$b[1]) ||
+               ($a[2]<=>$b[2]) ||
+               ($a[3]<=>$b[3]);
+           } else {
+               $entries{$a}->{$qs} cmp $entries{$b}->{$qs};
+           }
+       }
+    }
+
+    #Use an associative array (%entries)
+    my $key = 0;
+    foreach my $line (@current) {
+       chomp( $line); #remove newline because can be on field 5 or 6 (addition of REMARK)
+       my @temp = ( '','','', '');
+       @temp = split (',',$line);
+
+       # Build a pair 'Field Name',value for each of the data dataline.
+       # Each SORTABLE field must have is pair.
+       # Other data fields (non sortable) can be grouped in one
+       
+       my @record = ('KEY',$key++,'EN',$temp[0],'IP',$temp[1],'GATEWAY',$temp[2],'REMARK',$temp[3]);
+       my $record = {};                                # create a reference to empty hash
+       %{$record} = @record;                           # populate that hash with @record
+       $entries{$record->{KEY}} = $record;             # add this to a hash of hashes
+    }
+    
+    open(FILE, ">$datafile") or die 'routing datafile error';
+
+    # Each field value is printed , with the newline ! Don't forget separator and order of them.
+    foreach my $entry (sort fixedleasesort keys %entries) {
+       print FILE "$entries{$entry}->{EN},$entries{$entry}->{IP},$entries{$entry}->{GATEWAY},$entries{$entry}->{REMARK}\n";
+    }
+
+    close(FILE);
+    # Reload sorted  @current
+    open (FILE, "$datafile");
+    @current = <FILE>;
+    close (FILE);
+}
+
+#
+# Build the configuration file
+#
+sub BuildConfiguration {
+    system '/usr/local/bin/rebuildroutes';
+}
\ No newline at end of file
index 76b408d10f11ead61e7c852220f26d90ae3125ba..177cdf4c27a798754f0f04326796c2723fcf09ea 100644 (file)
@@ -395,8 +395,11 @@ sub writeipsecfiles {
            print CONF "\tpfsgroup=$lconfighash{$key}[23]\n";
        }
 
-       # IKE V1
-       print CONF "\tkeyexchange=ikev1\n";
+       # IKE V1 or V2
+       if (! $lconfighash{$key}[29]) {
+          $lconfighash{$key}[29] = "ikev1";
+       }
+       print CONF "\tkeyexchange=$lconfighash{$key}[29]\n";
 
        # Lifetimes
        print CONF "\tikelifetime=$lconfighash{$key}[16]h\n" if ($lconfighash{$key}[16]);
@@ -1288,6 +1291,7 @@ END
        $cgiparams{'REMARK'}            = $confighash{$cgiparams{'KEY'}}[25];
        $cgiparams{'INTERFACE'}         = $confighash{$cgiparams{'KEY'}}[26];
        $cgiparams{'DPD_ACTION'}        = $confighash{$cgiparams{'KEY'}}[27];
+       $cgiparams{'IKE_VERSION'}       = $confighash{$cgiparams{'KEY'}}[29];
        $cgiparams{'IKE_ENCRYPTION'}    = $confighash{$cgiparams{'KEY'}}[18];
        $cgiparams{'IKE_INTEGRITY'}     = $confighash{$cgiparams{'KEY'}}[19];
        $cgiparams{'IKE_GROUPTYPE'}     = $confighash{$cgiparams{'KEY'}}[20];
@@ -1790,6 +1794,7 @@ END
        $confighash{$key}[25] = $cgiparams{'REMARK'};
        $confighash{$key}[26] = $cgiparams{'INTERFACE'};
        $confighash{$key}[27] = $cgiparams{'DPD_ACTION'};
+       $confighash{$key}[29] = $cgiparams{'IKE_VERSION'};
 
        #dont forget advanced value
        $confighash{$key}[18] = $cgiparams{'IKE_ENCRYPTION'};
@@ -1845,6 +1850,11 @@ END
            $cgiparams{'DPD_ACTION'} = 'restart';
        }
 
+       # Default IKE Version to V1
+       if (! $cgiparams{'IKE_VERSION'}) {
+           $cgiparams{'IKE_VERSION'} = 'ikev1';
+       }
+
        # Default is yes for 'pfs'
        $cgiparams{'PFS'}     = 'on';
        
@@ -1895,6 +1905,10 @@ END
     $selected{'DPD_ACTION'}{'restart'} = '';
     $selected{'DPD_ACTION'}{$cgiparams{'DPD_ACTION'}} = "selected='selected'";
 
+    $selected{'IKE_VERSION'}{'ikev1'} = '';
+    $selected{'IKE_VERSION'}{'ikev2'} = '';
+    $selected{'IKE_VERSION'}{$cgiparams{'IKE_VERSION'}} = "selected='selected'";
+
     &Header::showhttpheaders();
     &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');
     &Header::openbigbox('100%', 'left', '', $errormessage);
@@ -1974,6 +1988,12 @@ END
            <td><input type='text' name='REMOTE_ID' value='$cgiparams{'REMOTE_ID'}' /></td>
        </tr><tr>
        </tr><td><br /></td><tr>
+           <td>$Lang::tr{'vpn keyexchange'}:</td>
+           <td><select name='IKE_VERSION'>
+               <option value='ikev1' $selected{'IKE_VERSION'}{'ikev1'}>IKEv1</option>
+               <option value='ikev2' $selected{'IKE_VERSION'}{'ikev2'}>IKEv2</option>
+               </select></a>
+           </td>
            <td>$Lang::tr{'dpd action'}:</td>
            <td><select name='DPD_ACTION'>
                <option value='clear' $selected{'DPD_ACTION'}{'clear'}>clear</option>
@@ -2507,7 +2527,7 @@ END
            print "<tr bgcolor='$color{'color22'}'>\n";
        }
        print "<td align='center' nowrap='nowrap'>$confighash{$key}[1]</td>";
-       print "<td align='center' nowrap='nowrap'>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td>";
+       print "<td align='center' nowrap='nowrap'>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ") $confighash{$key}[29]</td>";
        if ($confighash{$key}[2] eq '%auth-dn') {
            print "<td align='left' nowrap='nowrap'>$confighash{$key}[9]</td>";
        } elsif ($confighash{$key}[4] eq 'cert') {
@@ -2519,7 +2539,9 @@ END
        # get real state
        my $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>";
        foreach my $line (@status) {
-           if ($line =~ /\"$confighash{$key}[1]\".*IPsec SA established/) {
+           if (($line =~ /\"$confighash{$key}[1]\".*IPsec SA established/) ||
+              ($line =~ /$confighash{$key}[1]\{.*INSTALLED/))
+           {
                $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourgreen}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b></td></tr></table>";
            }
        }
index e6d451fe7f700b369888ae630bc3f8dff06c48f1..0f95df04e3d42836b625402f85e80e100b44d71a 100644 (file)
@@ -5,6 +5,7 @@
 'Add Level7 rule' => 'Level7-Regel hinzufügen',
 'Add Port Rule' => 'Port Regel hinzufügen',
 'Add Rule' => 'Regel hinzufügen',
+'Add a route' => 'Eine Route hinzufügen',
 'Async logging enabled' => 'Aktiviere asynchrones schreiben des Syslogs',
 'Choose Rule' => 'Wählen sie <u>eine</u> der untenstehenden Regeln aus.',
 'Class' => 'Klasse',
@@ -24,6 +25,7 @@
 'ConnSched time' => 'Zeit:',
 'ConnSched up' => 'Hoch',
 'ConnSched weekdays' => 'Wochentage:',
+'Edit an existing route' => 'Eine existierende Route editieren',
 'Enter TOS' => 'Aktivieren oder deaktivieren sie die TOS-Bits <br /> und klicken Sie danach auf <i>Speichern</i>.',
 'Existing Files' => 'Dateien in der Datenbank',
 'HDD temperature' => 'HDD-Temperatur',
 'external access rule removed' => ' Regel für externen Zugang entfernt; Starte Zugangskontroller neu',
 'external aliases configuration' => 'Externe Alias-Konfiguration',
 'extrahd' => 'ExtraHD',
+'extrahd because there is already a device mounted' => ' mounten, weil bereits ein Geräte gemountet ist',
+'extrahd cant umount' => 'Konnte',
 'extrahd detected drives' => 'gefundene Laufwerke',
+'extrahd install or load driver' => 'Wenn Ihre Festplatte nicht angezeigt wird, müssen Sie zuerst den Treiber laden oder ggf. auch nach installieren. Wenn diese jedoch angezeigt wird, aber keine Partitionen zu sehen sind, müssen diese erst angelegt werden.',
+'extrahd maybe the device is in use' => 'nicht mounten. Vielleicht wird das Gerät bereits verwendet',
+'extrahd to' => 'nicht nach',
+'extrahd to root' => 'nicht nach root mounten',
+'extrahd unable to read' => 'Lesefehler von',
+'extrahd unable to write' => 'Schreibfehler von',
+'extrahd you cant mount' => 'Sie können',
 'false classnumber' => 'Die Klassennummer passt nicht zum angegebenen Interface.',
 'false max bandwith' => 'Maximalbandbreite ist ungültig.',
 'false min bandwith' => 'Mindestbandbreite ist ungültig.',
 'vpn delayed start' => 'Verzögerung bevor VPN gestartet wird (Sekunden)',
 'vpn delayed start help' => 'Falls notwendig, kann diese Verzögerung dazu verwendet werden, um Dynamic DNS Updates ordnungsgemäß anzuwenden. 60 ist ein gängiger Wert, wenn ROT (RED) eine dynamische IP Adresse ist.',
 'vpn incompatible use of defaultroute' => 'Hostname=%defaultroute nicht zulässig',
+'vpn keyexchange' => 'Schlüsseltausch',
 'vpn local id' => 'Lokale ID',
 'vpn missing remote id' => 'Sie müssen einen korrekten Distinguished Name (DN) für diese Authentifikation eingeben.',
 'vpn mtu invalid' => 'MTU muß ein numerischer Wert sein!',
index 247814505a94244f141749e5298de2486a8dce1a..851d3c6a8a3de12e9a2c52d5d824286c7e7429cf 100644 (file)
@@ -5,6 +5,7 @@
 'Add Level7 rule' => 'Add Level7 rule',
 'Add Port Rule' => 'Add port rule',
 'Add Rule' => 'Add rule',
+'Add a route' => 'Add a route',
 'Async logging enabled' => 'Enable asynchronous writing of the syslog file',
 'Choose Rule' => 'Choose <u>one</u> of the following rules.',
 'Class' => 'Class',
@@ -24,6 +25,7 @@
 'ConnSched time' => 'Time:',
 'ConnSched up' => 'Up',
 'ConnSched weekdays' => 'Days of the week:',
+'Edit an existing route' => 'Edit an existing route',
 'Enter TOS' => 'Activate or deactivate TOS-bits <br /> and then press <i>Save</i>.',
 'Existing Files' => 'Files in database',
 'HDD temperature' => 'HDD temperature',
 'external access rule removed' => ' External access rule removed; restarting access controller',
 'external aliases configuration' => 'External aliases configuration',
 'extrahd' => 'ExtraHD',
+'extrahd because there is already a device mounted' => ', because there is already a device mounted',
+'extrahd cant umount' => 'Can\'t umount',
 'extrahd detected drives' => 'detected drives',
+'extrahd install or load driver' => 'If your device isn\'t listed here, you need to install or load the driver.<br />If you can see your device but no partitions you have to create them first.',
+'extrahd maybe the device is in use' => '. Maybe the device is in use',
+'extrahd to' => 'to',
+'extrahd to root' => 'to root',
+'extrahd unable to read' => 'Unable to read',
+'extrahd unable to write' => 'Unable to write',
+'extrahd you cant mount' => 'You can\'t mount',
 'false classnumber' => 'The Class-Number does not match the interface.',
 'false max bandwith' => 'Maximum bandwith is false.',
 'false min bandwith' => 'Minimum bandwith is false.',
 'vpn delayed start' => 'Delay before launching VPN (seconds)',
 'vpn delayed start help' => 'If required, this delay can be used to allow dynamic DNS updates to propagate properly. 60 is a common value when RED is a dynamic IP.',
 'vpn incompatible use of defaultroute' => 'hostname=%defaultroute not allowed',
+'vpn keyexchange' => 'Keyexchange',
 'vpn local id' => 'Local ID',
 'vpn missing remote id' => 'You must specify a correct Distinguished Name (DN) for this authentication.',
 'vpn mtu invalid' => 'MTU must be a numeric value!',
index 861ff2a2a6fde0b9c901534e6a44e74fc5d3d8a4..409380965c11b44f4fffa3a6e324cd9cfb0cddba 100644 (file)
@@ -5,6 +5,7 @@
 'Add Level7 rule' => 'añadir regla de Nivel 7',
 'Add Port Rule' => 'Añadir Regla de Puerto',
 'Add Rule' => 'Añadir Regla',
+'Add a route' => 'Añadir una route',
 'Choose Rule' => 'Seleccione <u>una</u> de las siguientes reglas.',
 'Class' => 'Clase',
 'Class was deleted' => 'con subclases potenciales fué eliminado',
@@ -23,6 +24,7 @@
 'ConnSched time' => 'Tiempo:',
 'ConnSched up' => 'Arriba',
 'ConnSched weekdays' => 'Días de las semana:',
+'Edit an existing route' => 'Editar una route existente',
 'Enter TOS' => 'Activar o desactivar bits TOS<br /> y después presione <i>Guardar</i>',
 'Existing Files' => 'Archivos en la base de datos',
 'HDD temperature' => 'Temperatura de HDD',
 'external access rule removed' => '"Reglas de acceso externo eliminadas; reiniciando controlador de acceso"',
 'external aliases configuration' => 'Configuración de Alias externo',
 'extrahd' => 'Disco duro Adicional',
+'extrahd because there is already a device mounted' => ', because there is already a device mounted',
+'extrahd cant umount' => 'Can\'t umount',
 'extrahd detected drives' => 'Unidades encontradas',
+'extrahd install or load driver' => 'If your device isn\'t listed here, you need to install or load the driver.<br />If you can see your device but no partitions you have to create them first.',
+'extrahd maybe the device is in use' => '. Maybe the device is in use',
+'extrahd to' => 'to',
+'extrahd to root' => 'to root',
+'extrahd unable to read' => 'Unable to read',
+'extrahd unable to write' => 'Unable to write',
+'extrahd you cant mount' => 'You can\'t mount',
 'false classnumber' => 'El número de clase no coincide con la interfaz',
 'false max bandwith' => 'El ancho de banda máximo es falso',
 'false min bandwith' => 'El ancho de banda mínimo es falso',
index 778d9d5ae42a3ae99197d3e1768ef88aaae23fd0..69e8ba1c664669b53ec3b5a158b8c400b5280f0c 100644 (file)
@@ -5,6 +5,7 @@
 'Add Level7 rule' => 'Ajouter une règle Level7',
 'Add Port Rule' => 'Ajouter une règle de port',
 'Add Rule' => 'Ajouter une règle',
+'Add a route' => 'Ajouter une route',
 'Async logging enabled' => 'Activer l\'écriture asynchrone du fichier syslog',
 'Choose Rule' => 'Choisissez <u>une</u> des règles suivantes.',
 'Class' => 'Classe',
@@ -24,6 +25,7 @@
 'ConnSched time' => 'Temps :',
 'ConnSched up' => 'Actif',
 'ConnSched weekdays' => 'Jours de la semaine :',
+'Edit an existing route' => 'Modifier une route existante',
 'Enter TOS' => 'Activer ou désactiver TOS-Bits <br /> puis appuyez sur <i> Enregistrer </i>.',
 'Existing Files' => 'Fichiers dans la base de donnée',
 'HDD temperature' => 'Température Disque Dur',
 'external access rule removed' => 'Règle d\'accès externe supprimée; redémarrage du controleur d\'accès',
 'external aliases configuration' => 'Configuration des alias externes',
 'extrahd' => 'ExtraHD',
-'extrahd founded drives' => 'Périphériques trouvés',
+'extrahd because there is already a device mounted' => ' car vous avez déjà un support de monté',
+'extrahd cant umount' => 'Impossible de démonter',
+'extrahd detected drives' => 'Périphériques trouvés',
+'extrahd install or load driver' => 'Si votre support n\'est pas visible ici, vous devez installer ou charger son pilote.<br />Si vous voyez votre support mais pas de partitions, vous devez tout d\'abord les créer.',
+'extrahd maybe the device is in use' => '. Votre support est peut-être en cours d\'utilisation',
+'extrahd to' => 'vers',
+'extrahd to root' => 'vers root',
+'extrahd unable to read' => 'Impossible de lire',
+'extrahd unable to write' => 'Impossible d\'écrire',
+'extrahd you cant mount' => 'Vous ne pouvez pas monter',
 'false classnumber' => 'Le numéro de classe ne correspond pas Ã  l\'interface.',
 'false max bandwith' => 'La bande passante maximum est fausse.',
 'false min bandwith' => 'La bande passante minimum est fausse.',
index 43599843b8f570084b733ea41fa025417aa69316..be4f5ea0f96472fddbe6d11d8d3cb608d101feac 100644 (file)
@@ -5,6 +5,7 @@
 'Add Level7 rule' => 'Dodaj reguÅ‚Ä™ L7',
 'Add Port Rule' => 'Dodaj reguÅ‚Ä™ portu',
 'Add Rule' => 'Dodaj reguÅ‚Ä™',
+'Add a route' => 'Dodaj trase',
 'Async logging enabled' => 'WÅ‚Ä…cz asynchroniczny zapis do pliku syslog',
 'Choose Rule' => 'Wybierz <u>jednÄ…</u> z poniższych reguÅ‚.',
 'Class' => 'Klasa',
@@ -24,6 +25,7 @@
 'ConnSched time' => 'Czas:',
 'ConnSched up' => 'Wyżej',
 'ConnSched weekdays' => 'Dni tygodnia:',
+'Edit an existing route' => 'Edytuj istniejaca trase',
 'Enter TOS' => 'Aktywuj lub deaktywuj bity TOS <br /> a nastÄ™pnie kliknij <i>Zapisz</i>.',
 'Existing Files' => 'Plików w bazie',
 'HDD temperature' => 'Temperatura HDD',
index 1d61e5bb277d31884e354dd7e65f20fa284d4214..66e4fdd6e6c61020e2ae7aa3fc1e74ebf510c969 100644 (file)
--- a/lfs/e1000
+++ b/lfs/e1000
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team <info@ipfire.org>                           #
+# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -34,7 +34,7 @@ else
 endif
 endif
 
-VER        = 8.0.19
+VER        = 8.0.30
 
 THISAPP    = e1000-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -50,7 +50,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = dc66dcbfd7c2e48af8cfc86f4f174fce
+$(DL_FILE)_MD5 = d85a64fdde2987b27ac6fbab5be605a0
 
 install : $(TARGET)
 
index cce53673551bbb1542360cb46a1ea28ae4c178b9..ba465952bda6d25478e919dc6d809a9b921a8aa2 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team <info@ipfire.org>                           #
+# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -34,7 +34,7 @@ else
 endif
 endif
 
-VER        = 1.1.19
+VER        = 1.3.10a
 
 THISAPP    = e1000e-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -50,7 +50,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 94e86507f139226c1add173dafdbbd52
+$(DL_FILE)_MD5 = 04b8856433d5e582ab41bdd3b24f20a5
 
 install : $(TARGET)
 
diff --git a/lfs/igb b/lfs/igb
index 830564795047f583c2a02304323c599e71f9f64f..678c7036708e06509e23f6b682dedd4e49c388e8 100644 (file)
--- a/lfs/igb
+++ b/lfs/igb
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team <info@ipfire.org>                           #
+# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -34,7 +34,7 @@ else
 endif
 endif
 
-VER        = 2.3.4
+VER        = 3.0.19
 
 THISAPP    = igb-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -50,7 +50,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = b0ea2a70198746b69392ef935b61454a
+$(DL_FILE)_MD5 = 8fdc04600bea4a4188672a1a8d0eb73b
 
 install : $(TARGET)
 
index 3cc684483b711da7df627a2e4c4e90171e81cb56..50ccf40df3014209153c13f5460aaca6770595b6 100644 (file)
@@ -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)
index e443b703447a1dfe922c582de6e2045c5ee2103c..b6418acb17dbaae7ce905d04a82c59d6626a0054 100644 (file)
@@ -34,7 +34,7 @@ else
 endif
 endif
 
-VER        = 2.6.34.1
+VER        = 2.6.38.6
 
 THISAPP    = kvm-kmod-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -50,7 +50,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = c227b58ee33f6035f16abd258bcd92ec
+$(DL_FILE)_MD5 = b631ba6ba7b0d3c07de870c6104ffbd5
 
 install : $(TARGET)
 
@@ -83,6 +83,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)_remove_pvclock_scale_delta_redifinition.patch
        cd $(DIR_APP) && ./configure --kerneldir=/usr/src/linux
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && install -m 644 x86/*.ko \
index 03c20d5544724f2e5e3763873db9411b070b45f9..275155035678073020499dbefcabe23c25426aa5 100644 (file)
--- a/lfs/qemu
+++ b/lfs/qemu
@@ -26,13 +26,13 @@ include Config
 
 VER        = 0.14.1
 
-THISAPP    = qemu-$(VER)
+THISAPP    = qemu-kvm-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = qemu
-PAK_VER    = 11
+PAK_VER    = 12
 
 DEPS       = "sdl"
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = b6c713a8db638e173af53a62d5178640
+$(DL_FILE)_MD5 = ed37a2c0b1981220b842920140574c63
 
 install : $(TARGET)
 
index 380d351d9fd864aed723ca18f5d3d970080503a0..7f92c19b4003d2c44697a82515bbe6ea52de1377 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2011  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.5.0
+VER        = 4.5.3dr7
 
 THISAPP    = strongswan-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = cfbd6efef87830a2e7cc4175bde7ac84
+$(DL_FILE)_MD5 = 72036d309e254c0b3cad8e5473d68218
 
 install : $(TARGET)
 
diff --git a/make.sh b/make.sh
index a9bc4bede00f4f01f77f28b345399de990cacf58..660bfbe1495b0746ec34a7606d8fd3e772fd2295 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -24,7 +24,7 @@
 
 NAME="IPFire"                                                  # Software name
 SNAME="ipfire"                                                 # Short name
-VERSION="2.9"                                                  # Version number
+VERSION="2.10"                                                 # Version number
 CORE="52"                                                      # Core Level (Filename)
 PAKFIRE_CORE="51"                                              # Core Level (PAKFIRE)
 GIT_BRANCH=`git status | head -n1 | cut -d" " -f4`             # Git Branch
@@ -709,7 +709,7 @@ buildipfire() {
   echo >> $BASEDIR/build/var/ipfire/firebuild
   cat /proc/cpuinfo >> $BASEDIR/build/var/ipfire/firebuild
   echo $PAKFIRE_CORE > $BASEDIR/build/opt/pakfire/db/core/mine
-  if [ "$GIT_BRANCH" = "master" ]; then
+  if [ "$GIT_BRANCH" = "next" ]; then
        echo "$NAME $VERSION - (Development Build: $GIT_LASTCOMMIT)" > $BASEDIR/build/etc/system-release
   else
        echo "$NAME $VERSION - $GIT_BRANCH" > $BASEDIR/build/etc/system-release
diff --git a/src/initscripts/init.d/static-routes b/src/initscripts/init.d/static-routes
new file mode 100644 (file)
index 0000000..970083c
--- /dev/null
@@ -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
index 348f91c7437111fe42b03edf77fd4bb3cf6248f5..9f1e3f0006d16b3dac3ac93e8bc95af8fbd2c191 100644 (file)
@@ -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 $@
index 51f6b5a30190a1472afb4b5ae09096fec16e17ab..a018289f6f0d2522b23d479ef130a2bda2dd6e93 100644 (file)
@@ -59,9 +59,9 @@ void open_physical (char *interface, int nat_traversal_port) {
 //        safe_system(str);
         // IKE
 
-        sprintf(str, "/sbin/iptables -D IPSECINPUT -p udp -i %s --sport 500 --dport 500 -j ACCEPT >/dev/null 2>&1", interface);
+        sprintf(str, "/sbin/iptables -D IPSECINPUT -p udp -i %s --dport 500 -j ACCEPT >/dev/null 2>&1", interface);
         safe_system(str);
-        sprintf(str, "/sbin/iptables -A IPSECINPUT -p udp -i %s --sport 500 --dport 500 -j ACCEPT", interface);
+        sprintf(str, "/sbin/iptables -A IPSECINPUT -p udp -i %s --dport 500 -j ACCEPT", interface);
         safe_system(str);
 
         if (! nat_traversal_port) 
@@ -156,7 +156,15 @@ void turn_connection_off (char *name) {
         snprintf(command, STRING_SIZE - 1, 
                 "/usr/sbin/ipsec whack --delete --name %s >/dev/null", name);
         safe_system(command);
+        snprintf(command, STRING_SIZE - 1, 
+                "/usr/sbin/ipsec stroke down %s >/dev/null", name);
+        safe_system(command);
+        snprintf(command, STRING_SIZE - 1, 
+                "/usr/sbin/ipsec stroke delete %s >/dev/null", name);
+        safe_system(command);
         safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null");
+        safe_system("/usr/sbin/ipsec stroke rereadall >/dev/null");
+
 }
 
 
@@ -178,11 +186,13 @@ int main(int argc, char *argv[]) {
 
         if (strcmp(argv[1], "I") == 0) {
                 safe_system("/usr/sbin/ipsec whack --status");
+                safe_system("/usr/sbin/ipsec stroke status");
                 exit(0);
         }
 
         if (strcmp(argv[1], "R") == 0) {
                 safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null");
+                safe_system("/usr/sbin/ipsec stroke rereadall >/dev/null");
                 exit(0);
         }
 
diff --git a/src/misc-progs/rebuildroutes.c b/src/misc-progs/rebuildroutes.c
new file mode 100644 (file)
index 0000000..3655692
--- /dev/null
@@ -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;
+}
diff --git a/src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch b/src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch
new file mode 100644 (file)
index 0000000..331e8a1
--- /dev/null
@@ -0,0 +1,45 @@
+diff -Naur kvm-kmod-2.6.38.6.org/x86/external-module-compat.h kvm-kmod-2.6.38.6/x86/external-module-compat.h
+--- kvm-kmod-2.6.38.6.org/x86/external-module-compat.h 2011-05-15 09:34:48.000000000 +0200
++++ kvm-kmod-2.6.38.6/x86/external-module-compat.h     2011-05-21 13:30:50.529469540 +0200
+@@ -1064,41 +1064,6 @@
+ #endif /* >= 2.6.36 */
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)
+-static inline u64 pvclock_scale_delta(u64 delta, u32 mul_frac, int shift)
+-{
+-      u64 product;
+-#ifdef __i386__
+-      u32 tmp1, tmp2;
+-#endif
+-
+-      if (shift < 0)
+-              delta >>= -shift;
+-      else
+-              delta <<= shift;
+-
+-#ifdef __i386__
+-      __asm__ (
+-              "mul  %5       ; "
+-              "mov  %4,%%eax ; "
+-              "mov  %%edx,%4 ; "
+-              "mul  %5       ; "
+-              "xor  %5,%5    ; "
+-              "add  %4,%%eax ; "
+-              "adc  %5,%%edx ; "
+-              : "=A" (product), "=r" (tmp1), "=r" (tmp2)
+-              : "a" ((u32)delta), "1" ((u32)(delta >> 32)), "2" (mul_frac) );
+-#elif defined(__x86_64__)
+-      __asm__ (
+-              "mul %%rdx ; shrd $32,%%rdx,%%rax"
+-              : "=a" (product) : "0" (delta), "d" ((u64)mul_frac) );
+-#else
+-#error implement me!
+-#endif
+-
+-      return product;
+-}
+-#endif
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34) && \
+     LINUX_VERSION_CODE != KERNEL_VERSION(2,6,32) && defined(CONFIG_X86_64)
index af646adce8b8f98fa2277a1287cd38571728e8f7..63b2442caf7fd57d0be4100e2e9de05dfc998e06 100755 (executable)
@@ -42,7 +42,9 @@ while ( $i == 0){
 my $status = `ipsec whack --status`;
 foreach (@vpnsettings){
  my @settings = split(/,/,$_);
-
+  
+  chomp($settings[30]);
+  if ($settings[30] eq 'ikev2'){next;}
   if ($settings[27] ne 'RED'){next;}
   if ($settings[4] ne 'net'){next;}  
   if ($settings[1] ne 'on'){next;}chomp($settings[29]);