diff --git a/config/motion/motion.conf b/config/motion/motion.conf
index a97762cc5..78478bd26 100644
--- a/config/motion/motion.conf
+++ b/config/motion/motion.conf
@@ -400,7 +400,7 @@ timelapse_filename %Y%m%d-timelapse
webcam_port 2500
# Quality of the jpeg images produced (default: 50)
-webcam_quality 75
+webcam_quality 50
# Output frames at 1 fps when no motion is detected and increase to the
# rate given by webcam_maxrate when motion is detected (default: off)
diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2
index 40d226a07..d0c41ef33 100644
--- a/config/rootfiles/common/apache2
+++ b/config/rootfiles/common/apache2
@@ -1341,7 +1341,6 @@ srv/web/ipfire/cgi-bin/modem.cgi
srv/web/ipfire/cgi-bin/netexternal.cgi
srv/web/ipfire/cgi-bin/netinternal.cgi
srv/web/ipfire/cgi-bin/netother.cgi
-srv/web/ipfire/cgi-bin/networks.cgi
srv/web/ipfire/cgi-bin/outgoingfw.cgi
srv/web/ipfire/cgi-bin/optionsfw.cgi
srv/web/ipfire/cgi-bin/ovpnmain.cgi
diff --git a/config/rootfiles/common/bind b/config/rootfiles/common/bind
index cb2f257da..db6bdabf4 100644
--- a/config/rootfiles/common/bind
+++ b/config/rootfiles/common/bind
@@ -1,6 +1,8 @@
#usr/bin/dig
usr/bin/host
usr/bin/nslookup
+usr/bin/nsupdate
#usr/man/man1/dig.1
#usr/man/man1/host.1
#usr/man/man1/nslookup.1
+#usr/man/man8/nsupdate.8
diff --git a/config/rootfiles/common/fcron b/config/rootfiles/common/fcron
index 2d74f9901..4f582d90b 100644
--- a/config/rootfiles/common/fcron
+++ b/config/rootfiles/common/fcron
@@ -11,66 +11,66 @@ usr/bin/fcronsighup
usr/bin/fcrontab
usr/sbin/fcron
#usr/share/doc/fcron-3.0.1
-#usr/share/doc/fcron-3.0.1/en
-#usr/share/doc/fcron-3.0.1/en/HTML
-#usr/share/doc/fcron-3.0.1/en/HTML/LEGALNOTICE.html
-#usr/share/doc/fcron-3.0.1/en/HTML/changes.html
-#usr/share/doc/fcron-3.0.1/en/HTML/faq.html
-#usr/share/doc/fcron-3.0.1/en/HTML/fcron.8.html
-#usr/share/doc/fcron-3.0.1/en/HTML/fcron.conf.5.html
-#usr/share/doc/fcron-3.0.1/en/HTML/fcrondyn.1.html
-#usr/share/doc/fcron-3.0.1/en/HTML/fcrontab.1.html
-#usr/share/doc/fcron-3.0.1/en/HTML/fcrontab.5.html
-#usr/share/doc/fcron-3.0.1/en/HTML/fdl.html
-#usr/share/doc/fcron-3.0.1/en/HTML/gpl.html
-#usr/share/doc/fcron-3.0.1/en/HTML/how-and-why.html
-#usr/share/doc/fcron-3.0.1/en/HTML/index.html
-#usr/share/doc/fcron-3.0.1/en/HTML/install.html
-#usr/share/doc/fcron-3.0.1/en/HTML/manpages.html
-#usr/share/doc/fcron-3.0.1/en/HTML/readme.html
-#usr/share/doc/fcron-3.0.1/en/HTML/relnotes.html
-#usr/share/doc/fcron-3.0.1/en/HTML/thanks.html
-#usr/share/doc/fcron-3.0.1/en/HTML/todo.html
-#usr/share/doc/fcron-3.0.1/en/HTML/using-fcron.html
-#usr/share/doc/fcron-3.0.1/en/txt
-#usr/share/doc/fcron-3.0.1/en/txt/changes.txt
-#usr/share/doc/fcron-3.0.1/en/txt/faq.txt
-#usr/share/doc/fcron-3.0.1/en/txt/gpl.txt
-#usr/share/doc/fcron-3.0.1/en/txt/install.txt
-#usr/share/doc/fcron-3.0.1/en/txt/readme.txt
-#usr/share/doc/fcron-3.0.1/en/txt/relnotes.txt
-#usr/share/doc/fcron-3.0.1/en/txt/thanks.txt
-#usr/share/doc/fcron-3.0.1/en/txt/todo.txt
-#usr/share/doc/fcron-3.0.1/fr
-#usr/share/doc/fcron-3.0.1/fr/HTML
-#usr/share/doc/fcron-3.0.1/fr/HTML/LEGALNOTICE.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/changes.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/faq.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/fcron.8.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/fcron.conf.5.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/fcrondyn.1.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/fcrontab.1.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/fcrontab.5.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/fdl.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/gpl.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/how-and-why.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/index.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/install.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/manpages.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/readme.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/relnotes.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/thanks.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/todo.html
-#usr/share/doc/fcron-3.0.1/fr/HTML/using-fcron.html
-#usr/share/doc/fcron-3.0.1/fr/txt
-#usr/share/doc/fcron-3.0.1/fr/txt/changes.txt
-#usr/share/doc/fcron-3.0.1/fr/txt/faq.txt
-#usr/share/doc/fcron-3.0.1/fr/txt/gpl.txt
-#usr/share/doc/fcron-3.0.1/fr/txt/install.txt
-#usr/share/doc/fcron-3.0.1/fr/txt/readme.txt
-#usr/share/doc/fcron-3.0.1/fr/txt/relnotes.txt
-#usr/share/doc/fcron-3.0.1/fr/txt/thanks.txt
-#usr/share/doc/fcron-3.0.1/fr/txt/todo.txt
+#usr/share/doc/fcron-3.0.4/en
+#usr/share/doc/fcron-3.0.4/en/HTML
+#usr/share/doc/fcron-3.0.4/en/HTML/LEGALNOTICE.html
+#usr/share/doc/fcron-3.0.4/en/HTML/changes.html
+#usr/share/doc/fcron-3.0.4/en/HTML/faq.html
+#usr/share/doc/fcron-3.0.4/en/HTML/fcron.8.html
+#usr/share/doc/fcron-3.0.4/en/HTML/fcron.conf.5.html
+#usr/share/doc/fcron-3.0.4/en/HTML/fcrondyn.1.html
+#usr/share/doc/fcron-3.0.4/en/HTML/fcrontab.1.html
+#usr/share/doc/fcron-3.0.4/en/HTML/fcrontab.5.html
+#usr/share/doc/fcron-3.0.4/en/HTML/fdl.html
+#usr/share/doc/fcron-3.0.4/en/HTML/gpl.html
+#usr/share/doc/fcron-3.0.4/en/HTML/how-and-why.html
+#usr/share/doc/fcron-3.0.4/en/HTML/index.html
+#usr/share/doc/fcron-3.0.4/en/HTML/install.html
+#usr/share/doc/fcron-3.0.4/en/HTML/manpages.html
+#usr/share/doc/fcron-3.0.4/en/HTML/readme.html
+#usr/share/doc/fcron-3.0.4/en/HTML/relnotes.html
+#usr/share/doc/fcron-3.0.4/en/HTML/thanks.html
+#usr/share/doc/fcron-3.0.4/en/HTML/todo.html
+#usr/share/doc/fcron-3.0.4/en/HTML/using-fcron.html
+#usr/share/doc/fcron-3.0.4/en/txt
+#usr/share/doc/fcron-3.0.4/en/txt/changes.txt
+#usr/share/doc/fcron-3.0.4/en/txt/faq.txt
+#usr/share/doc/fcron-3.0.4/en/txt/gpl.txt
+#usr/share/doc/fcron-3.0.4/en/txt/install.txt
+#usr/share/doc/fcron-3.0.4/en/txt/readme.txt
+#usr/share/doc/fcron-3.0.4/en/txt/relnotes.txt
+#usr/share/doc/fcron-3.0.4/en/txt/thanks.txt
+#usr/share/doc/fcron-3.0.4/en/txt/todo.txt
+#usr/share/doc/fcron-3.0.4/fr
+#usr/share/doc/fcron-3.0.4/fr/HTML
+#usr/share/doc/fcron-3.0.4/fr/HTML/LEGALNOTICE.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/changes.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/faq.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/fcron.8.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/fcron.conf.5.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/fcrondyn.1.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/fcrontab.1.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/fcrontab.5.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/fdl.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/gpl.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/how-and-why.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/index.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/install.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/manpages.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/readme.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/relnotes.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/thanks.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/todo.html
+#usr/share/doc/fcron-3.0.4/fr/HTML/using-fcron.html
+#usr/share/doc/fcron-3.0.4/fr/txt
+#usr/share/doc/fcron-3.0.4/fr/txt/changes.txt
+#usr/share/doc/fcron-3.0.4/fr/txt/faq.txt
+#usr/share/doc/fcron-3.0.4/fr/txt/gpl.txt
+#usr/share/doc/fcron-3.0.4/fr/txt/install.txt
+#usr/share/doc/fcron-3.0.4/fr/txt/readme.txt
+#usr/share/doc/fcron-3.0.4/fr/txt/relnotes.txt
+#usr/share/doc/fcron-3.0.4/fr/txt/thanks.txt
+#usr/share/doc/fcron-3.0.4/fr/txt/todo.txt
#usr/share/man/fr
#usr/share/man/fr/man1
#usr/share/man/fr/man1/fcrondyn.1
diff --git a/config/rootfiles/core/29/filelists/fcron b/config/rootfiles/core/29/filelists/fcron
new file mode 120000
index 000000000..4a454ea21
--- /dev/null
+++ b/config/rootfiles/core/29/filelists/fcron
@@ -0,0 +1 @@
+../../../common/fcron
\ No newline at end of file
diff --git a/config/rootfiles/core/29/filelists/files b/config/rootfiles/core/29/filelists/files
index 1a51a6cfa..96eb219c3 100644
--- a/config/rootfiles/core/29/filelists/files
+++ b/config/rootfiles/core/29/filelists/files
@@ -1,15 +1,16 @@
etc/collectd.conf
+etc/rc.d/init.d/networking/red
etc/system-release
+lib/firmware/av7110/bootcode.bin
+srv/web/ipfire/cgi-bin/aliases.cgi
srv/web/ipfire/cgi-bin/credits.cgi
srv/web/ipfire/cgi-bin/ids.cgi
srv/web/ipfire/cgi-bin/ovpnmain.cgi
srv/web/ipfire/html/blob.gif
srv/web/ipfire/html/images/info.gif
srv/web/ipfire/html/images/openvpn.png
-var/ipfire/menu.d/50-firewall.menu
-lib/firmware/av7110/bootcode.bin
+usr/bin/nsupdate
var/ipfire/backup/include
-etc/rc.d/init.d/networking/red
-srv/web/ipfire/cgi-bin/aliases.cgi
-/var/ipfire/langs/list
-/var/ipfire/langs/de.pl
+var/ipfire/langs/list
+var/ipfire/langs/de.pl
+var/ipfire/menu.d/50-firewall.menu
diff --git a/config/rootfiles/core/29/update.sh b/config/rootfiles/core/29/update.sh
index d3397197c..aa2410f21 100644
--- a/config/rootfiles/core/29/update.sh
+++ b/config/rootfiles/core/29/update.sh
@@ -26,5 +26,6 @@
/etc/init.d/collectd stop
ecxtract_files
rm -rf /var/log/rrd*//collectd/localhost/disk-*[0-9]*
+rm -rf /srv/web/ipfire/cgi-bin/networks.cgi
/etc/init.d/collectd start
perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
diff --git a/doc/packages-list.txt b/doc/packages-list.txt
index 77c1dbde9..fdc58fea3 100644
--- a/doc/packages-list.txt
+++ b/doc/packages-list.txt
@@ -96,9 +96,9 @@
* expat-2.0.0
* ez-ipupdate-3.0.11b8
* fbset-2.1
-* fcron-3.0.1
+* fcron-3.0.4
* feedparser-4.1
-* fetchmail-6.3.9
+* fetchmail-6.3.10
* ffmpeg-export-2008-04-13
* file-4.17
* findutils-4.2.27
diff --git a/html/cgi-bin/networks.cgi b/html/cgi-bin/networks.cgi
deleted file mode 100644
index b14f3c664..000000000
--- a/html/cgi-bin/networks.cgi
+++ /dev/null
@@ -1,419 +0,0 @@
-#!/usr/bin/perl
-###############################################################################
-# #
-# IPFire.org - A linux based firewall #
-# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
-# #
-# 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 . #
-# #
-###############################################################################
-
-
-use strict;
-
-require '/var/ipfire/general-functions.pl';
-require "${General::swroot}/lang.pl";
-require "${General::swroot}/header.pl";
-
-my %netsettings=();
-&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
-
-my @networks=();
-my $filename = "${General::swroot}/firewall/customnetworks";
-&setup_default_networks();
-
-&Header::getcgihash(\%cgiparams);
-
-if ($cgiparams{'ACTION'} eq $Lang::tr{'add'}){
-
- &validateparams();
- unless($errormessage){
- $key++; # Add one to last sequence number
- open(FILE,">>$filename") or die 'Unable to open custom networks file.';
- flock FILE, 2;
- print FILE "$key,$cgiparams{'NAME'},$cgiparams{'IPADDRESS'},$cgiparams{'NETMASK'}\n";
- close(FILE);
- &General::log("$Lang::tr{'network added'}: $cgiparams{'NAME'}");
- undef %cgiparams;
- }
-}
-
-if ($cgiparams{'ACTION'} eq $Lang::tr{'update'})
-{
- &validateparams();
- # Darren Critchley - If there is an error don't waste any more processing time
- if ($errormessage) { $cgiparams{'ACTION'} = $Lang::tr{'edit'}; goto UPD_ERROR; }
-
- unless($errormessage){
- open(FILE, $filename) or die 'Unable to open custom networks file.';
- my @current = ;
- close(FILE);
- open(FILE, ">$filename") or die 'Unable to open config file.';
- flock FILE, 2;
- foreach my $line (@current) {
- chomp($line);
- my @temp = split(/\,/,$line);
- if ($cgiparams{'KEY'} eq $temp[0]) {
- print FILE "$cgiparams{'KEY'},$cgiparams{'NAME'},$cgiparams{'IPADDRESS'},$cgiparams{'NETMASK'}\n";
- } else {
- print FILE "$line\n";
- }
- }
- close(FILE);
- &General::log("$Lang::tr{'network updated'}: $cgiparams{'NAME'}");
- undef %cgiparams;
- }
-UPD_ERROR:
-}
-
-if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'})
-{
- open(FILE, "$filename") or die 'Unable to open custom networks file.';
- my @current = ;
- close(FILE);
-
- unless ($errormessage)
- {
- foreach my $line (@current)
- {
- chomp($line);
- my @temp = split(/\,/,$line);
- if ($cgiparams{'KEY'} eq $temp[0]) {
- $cgiparams{'NAME'} = $temp[1];
- $cgiparams{'IPADDRESS'} = $temp[2];
- $cgiparams{'NETMASK'} = $temp[3];
- }
-
- }
- }
-}
-
-if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'})
-{
- open(FILE, $filename) or die 'Unable to open custom networks file.';
- my @current = ;
- close(FILE);
-
- open(FILE, ">$filename") or die 'Unable to open custom networks file.';
- flock FILE, 2;
- foreach my $line (@current)
- {
- chomp($line);
- if ($line ne '') {
- my @temp = split(/\,/,$line);
- if ($cgiparams{'KEY'} eq $temp[0]) {
- &General::log("$Lang::tr{'network removed'}: $temp[1]");
- } else {
- print FILE "$temp[0],$temp[1],$temp[2],$temp[3]\n";
- }
- }
- }
- close(FILE);
- undef %cgiparams;
-}
-
-if ($cgiparams{'ACTION'} eq $Lang::tr{'reset'})
-{
- undef %cgiparams;
-}
-
-if ($cgiparams{'ACTION'} eq '')
-{
- $cgiparams{'KEY'} = '';
- $cgiparams{'IPADDRESS'} = '';
- $cgiparams{'NETMASK'} = '';
- $cgiparams{'NAME'} = '';
-}
-
-&Header::showhttpheaders();
-
-&Header::openpage($Lang::tr{'networks settings'}, 1, '');
-
-&Header::openbigbox('100%', 'LEFT', '', $errormessage);
-
-# DEBUG DEBUG
-#&Header::openbox('100%', 'LEFT', 'DEBUG');
-#foreach $line (keys %cgiparams) {
-# print "$line = $cgiparams{$line}
";
-#}
-#print "$ENV{'QUERY_STRING'}\n";
-#print " \n";
-#&Header::closebox();
-
-if ($errormessage) {
- &Header::openbox('100%', 'LEFT', $Lang::tr{'error messages'});
- print "$errormessage\n";
- print " \n";
- &Header::closebox();
-}
-
-if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}){
- &Header::openbox('100%', 'LEFT', "$Lang::tr{'edit network'}:");
-} else {
- &Header::openbox('100%', 'LEFT', "$Lang::tr{'add network'}:");
-}
-print <
-
-
-END
-;
-&Header::closebox();
-
-&Header::openbox('100%', 'LEFT', "$Lang::tr{'custom networks'}:");
-print <
-
-
- | $Lang::tr{'name'} |
- $Lang::tr{'ip address'} |
- $Lang::tr{'netmask'} |
-
-END
-;
-&display_custom_networks();
-print <
-
-END
-;
-&Header::closebox();
-
-&Header::openbox('100%', 'LEFT', "$Lang::tr{'default networks'}:");
-print <
-
-
- | $Lang::tr{'name'} |
- $Lang::tr{'ip address'} |
- $Lang::tr{'netmask'} |
-
-END
-;
-&display_default_networks();
-print <
-
-END
-;
-&Header::closebox();
-
- print "$Lang::tr{'this feature has been sponsored by'} : ";
- print "Kobelt Development Inc..\n";
-
-&Header::closebigbox();
-
-&Header::closepage();
-
-sub display_custom_networks
-{
- open(FILE, "$filename") or die 'Unable to open networks file.';
- my @current = ;
- close(FILE);
-
- my $id = 0;
- foreach $line (@current)
- {
- chomp($line);
- if ($line ne ''){
- my @temp = split(/\,/,$line);
- # Darren Critchley highlight the row we are editing
- if ( $cgiparams{'ACTION'} eq $Lang::tr{'edit'} && $cgiparams{'KEY'} eq $temp[0] ) {
- print "\n";
- } else {
- if ($id % 2) {
- print "
\n";
- } else {
- print "
\n";
- }
- }
- print "| $temp[1] | \n";
- print "$temp[2] | \n";
- print "$temp[3] | \n";
- print <
-
-
-
-
- |
-
-
-END
-;
- print "
\n";
- $id++;
- }
- }
-}
-
-sub display_default_networks
-{
- foreach $line (sort @networks)
- {
- my @temp = split(/\,/,$line);
- if ($id % 2) {
- print "\n";
- } else {
- print "
\n";
- }
- print "| $temp[0] | \n";
- print "$temp[1] | \n";
- print "$temp[2] | \n";
- print "
\n";
- $id++;
- }
-}
-
-sub setup_default_networks
-{
- # Get current defined networks (Red, Green, Blue, Orange)
- my $line = "Any,0.0.0.0,0.0.0.0";
- push (@networks, $line);
- $line = "localhost,127.0.0.1,255.255.255.255";
- push (@networks, $line);
- $line = "localnet,127.0.0.0,255.0.0.0";
- push (@networks, $line);
- $line = "Private Network 10.0.0.0,10.0.0.0,255.0.0.0";
- push (@networks, $line);
- $line = "Private Network 172.16.0.0,172.16.0.0,255.240.0.0";
- push (@networks, $line);
- $line = "Private Network 192.168.0.0,192.168.0.0,255.255.0.0";
- push (@networks, $line);
-
- my $red_address=`cat ${General::swroot}/red/local-ipaddress`;
- $line = "Red Address,$red_address,";
- push (@networks, $line);
-
- $line = "Green Address,$netsettings{'GREEN_ADDRESS'},255.255.255.255";
- push (@networks, $line);
- $line = "Green Network,$netsettings{'GREEN_NETADDRESS'},$netsettings{'GREEN_NETMASK'}";
- push (@networks, $line);
-
- if ($netsettings{'ORANGE_DEV'}ne ''){
- $line = "Orange Address,$netsettings{'ORANGE_ADDRESS'},255.255.255.255";
- push (@networks, $line);
- $line = "Orange Network,$netsettings{'ORANGE_NETADDRESS'},$netsettings{'ORANGE_NETMASK'}";
- push (@networks, $line);
- }
-
- if ($netsettings{'BLUE_DEV'}ne ''){
- $line = "Blue Address,$netsettings{'BLUE_ADDRESS'},255.255.255.255";
- push (@networks, $line);
- $line = "Blue Network,$netsettings{'BLUE_NETADDRESS'},$netsettings{'BLUE_NETMASK'}";
- push (@networks, $line);
- }
- open(FILE, "${General::swroot}/ethernet/aliases") or die 'Unable to open aliases file.';
- my @current = ;
- close(FILE);
- my $ctr = 0;
- foreach my $lne (@current)
- {
- if ($lne ne ''){
- chomp($lne);
- my @temp = split(/\,/,$lne);
- if ($temp[2] eq '') {
- $temp[2] = "Alias $ctr : $temp[0]";
- }
- $line = "$temp[2],$temp[0],";
- push (@networks, $line);
- $ctr++;
- }
- }
-}
-
-# Validate Field Entries
-sub validateparams
-{
- if ($cgiparams{'NAME'} eq '') {
- $errormessage = $Lang::tr{'nonetworkname'};
- return;
- }
- $cgiparams{'NAME'}=&Header::cleanhtml($cgiparams{'NAME'});
- unless(&General::validip($cgiparams{'IPADDRESS'})){$errormessage = $Lang::tr{'invalid ip'}; }
- unless($errormessage){
- my @tmp = split(/\./,$cgiparams{'IPADDRESS'});
- if ($cgiparams{'NETMASK'} eq '' && $tmp[3] ne '255' && $tmp[3] ne '0'){
- $cgiparams{'NETMASK'} = "255.255.255.255";
- }
- }
- unless(&General::validmask($cgiparams{'NETMASK'})){$errormessage = $Lang::tr{'subnet is invalid'}; }
-
- open(FILE, $filename) or die 'Unable to open custom network file.';
- my @current = ;
- close(FILE);
- foreach my $line (@current)
- {
- chomp($line);
- if ($line ne '') {
- my @temp = split(/\,/,$line);
- if ($cgiparams{'NAME'} eq $temp[1] && $cgiparams{'KEY'} ne $temp[0]) {
- $errormessage=$Lang::tr{'duplicate name'};
- return;
- }
- $key=$temp[0];
- }
- }
- foreach $line (@networks)
- {
- my @temp = split(/\,/,$line);
- if ($cgiparams{'NAME'} eq $temp[0]) {
- $errormessage=$Lang::tr{'duplicate name'};
- return;
- }
- }
-}
diff --git a/lfs/bind b/lfs/bind
index 91622d826..022335882 100644
--- a/lfs/bind
+++ b/lfs/bind
@@ -71,7 +71,7 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
- cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+ cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls --disable-ipv6
cd $(DIR_APP) && make -C lib/dns
cd $(DIR_APP) && make -C lib/isc
cd $(DIR_APP) && make -C lib/bind9
@@ -79,5 +79,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
cd $(DIR_APP) && make -C lib/lwres
cd $(DIR_APP) && make -C bin/dig
cd $(DIR_APP) && make -C bin/dig install
+ cd $(DIR_APP) && make -C bin/nsupdate
+ cd $(DIR_APP) && make -C bin/nsupdate install
@rm -rf $(DIR_APP)
@$(POSTBUILD)
diff --git a/lfs/fcron b/lfs/fcron
index 1982bed94..5cf9cc5e5 100644
--- a/lfs/fcron
+++ b/lfs/fcron
@@ -24,7 +24,7 @@
include Config
-VER = 3.0.1
+VER = 3.0.4
THISAPP = fcron-$(VER)
DL_FILE = $(THISAPP).src.tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 8e5dcb3a646c11294294895954ef0a48
+$(DL_FILE)_MD5 = 5a26a1dfd91fdc7e87401e98aef870e6
install : $(TARGET)
@@ -76,6 +76,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
--without-sendmail \
--with-spooldir=/var/spool/cron \
--with-fifodir=/var/run \
+ --with-piddir=/var/run \
+ --sysconfdir=/etc \
--with-username=cron \
--with-groupname=cron \
--with-run-non-privileged=no \
diff --git a/lfs/fetchmail b/lfs/fetchmail
index e60c30bea..903dddc5c 100644
--- a/lfs/fetchmail
+++ b/lfs/fetchmail
@@ -24,7 +24,7 @@
include Config
-VER = 6.3.9
+VER = 6.3.10
THISAPP = fetchmail-$(VER)
DL_FILE = $(THISAPP).tar.bz2
@@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = fetchmail
-PAK_VER = 3
+PAK_VER = 4
DEPS = ""
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 72c20ad2b9629f1a109668b05a84d823
+$(DL_FILE)_MD5 = 50f6c7d2c400c6521dec3da459ae30c4
install : $(TARGET)
diff --git a/lfs/snort b/lfs/snort
index 62f998163..3955ab629 100644
--- a/lfs/snort
+++ b/lfs/snort
@@ -36,14 +36,11 @@ TARGET = $(DIR_INFO)/$(THISAPP)
# Top-level Rules
###############################################################################
-objects = $(DL_FILE) \
- Community-Rules-20070503.tar.gz
+objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-Community-Rules-20070503.tar.gz = $(DL_FROM)/Community-Rules-20070503.tar.gz
$(DL_FILE)_MD5 = 193179da8db8aac5ee6b0a751ce7b76d
-Community-Rules-20070503.tar.gz_MD5 = f236b8a4ac12e99d3e7bd81bf3b5a482
install : $(TARGET)
@@ -81,7 +78,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
mv /usr/bin/snort /usr/sbin/
-mkdir -p /etc/snort/rules
- tar xvfz $(DIR_DL)/Community-Rules-20070503.tar.gz -C /etc/snort/
cd $(DIR_APP) && install -m 0644 \
etc/reference.config etc/classification.config /etc/snort/rules
cd $(DIR_APP) && install -m 0644 etc/unicode.map /etc/snort
diff --git a/src/initscripts/init.d/motion b/src/initscripts/init.d/motion
index 642272c14..f5fa9c677 100644
--- a/src/initscripts/init.d/motion
+++ b/src/initscripts/init.d/motion
@@ -6,6 +6,12 @@
case "$1" in
start)
boot_mesg "Starting motion webcam server..."
+ if [ ! -e /dev/video0 ]; then
+ boot_mesg "Error! No video input device found."
+ echo_failure
+ #No 3 min wait
+ exit 0;
+ fi
chown :video /dev/video*
mkdir -p /var/motion/cam1
chown -R video: /var/motion/cam1
diff --git a/src/paks/motion/install.sh b/src/paks/motion/install.sh
index f9c2000ba..fbdab43ac 100644
--- a/src/paks/motion/install.sh
+++ b/src/paks/motion/install.sh
@@ -25,3 +25,5 @@
extract_files
restore_backup ${NAME}
useradd -s /bin/false video
+#Ignore error if the user already exist
+exit 0