Hinzugefügt:
authorms <ms@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Sun, 21 May 2006 20:54:29 +0000 (20:54 +0000)
committerms <ms@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Sun, 21 May 2006 20:54:29 +0000 (20:54 +0000)
  * Nochmal ein neues Shutdown-Bild.
  * Schnelle Profilauswahl in der index.cgi
  * Nettraffic.
  * Capiinfo.
Geändert:
  * Menü komplett neu sortiert.
  * Javascript-Option aus gui.cgi entfernt.
  * Pakfire-Fehler beseitigt.
  * Sämtliche /var/ipcop durch /var/ipfire ersetzt.

git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@129 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8

22 files changed:
config/cdrom/README.txt
config/cfgroot/backup-exclude
config/cfgroot/backup-exclude.hardware
config/cfgroot/backup-include
config/cfgroot/header.pl
config/cfgroot/net-traffic-lib.pl [new file with mode: 0644]
config/cfgroot/proxy-acl
doc/ChangeLog
html/cgi-bin/dial.cgi
html/cgi-bin/gui.cgi
html/cgi-bin/index.cgi
html/cgi-bin/traffic.cgi [new file with mode: 0644]
html/cgi-bin/traffics.cgi [new file with mode: 0644]
html/html/ipcop_big.gif [deleted file]
html/html/ipfire_big.gif [moved from html/html/images/ipfire_big.gif with 100% similarity]
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl
lfs/asterisk
lfs/capi4k-utils
lfs/configroot
lfs/pakfire
src/ROOTFILES.i386

index a6056ec..9159321 100644 (file)
@@ -1,42 +1,42 @@
-IPCop - The Bad Packets Stop Here (VERSION)\r
-------------------------------------------\r
-\r
-Installation\r
-------------\r
-\r
-Please read the IPCop Installation PDF before installing the firewall.\r
-This document is located in the \doc directory on the cdrom.  It will\r
-guide you through the installation process and will help you make the\r
-necessary decisions during the installation process.\r
-\r
-\r
-DOS Image utility tools\r
------------------------\r
-\r
-The dosutils directory contains the following DOS and Windows applications,\r
-please use with caution and please can we draw your attention to the \r
-documentation on the IPCop CD or install image on your network drive. \r
-We also draw your attention to the disclaimer of Warranty below.\r
-\r
-rawrite.exe    - rawrite executable\r
-rawwritewin.exe - rawwrite for Windows\r
-diskio.dll     - this MUST be in the same directory as rawrite for Windows\r
-copying.txt    - text file\r
-\r
-\r
-License\r
--------\r
-\r
-Please read the file COPYING for more information on the license.\r
-\r
-\r
-Disclaimer of Warranty\r
-----------------------\r
-\r
-Users of this software must accept this disclaimer of warranty:  "This\r
-software is supplied AS IS.  IPCop disclaims all warranties, expressed\r
-or implied, including, without limitation, the warranties of merchantability\r
-and of fitness for any purpose.  IPCop assumes no liability for\r
-damages, direct or consequential, which may result from the use of this\r
-software."\r
-\r
+IPFire - We secure your network (VERSION)
+------------------------------------------
+
+Installation
+------------
+
+Please read the IPFire Installation manual before installing the firewall.
+This document is located in the \doc directory on the cdrom.  It will
+guide you through the installation process and will help you make the
+necessary decisions during the installation process.
+
+
+DOS Image utility tools
+-----------------------
+
+The dosutils directory contains the following DOS and Windows applications,
+please use with caution and please can we draw your attention to the 
+documentation on the IPFire CD or install image on your network drive. 
+We also draw your attention to the disclaimer of Warranty below.
+
+rawrite.exe    - rawrite executable
+rawwritewin.exe - rawwrite for Windows
+diskio.dll     - this MUST be in the same directory as rawrite for Windows
+copying.txt    - text file
+
+
+License
+-------
+
+Please read the file COPYING for more information on the license.
+
+
+Disclaimer of Warranty
+----------------------
+
+Users of this software must accept this disclaimer of warranty:  "This
+software is supplied AS IS.  IPFire disclaims all warranties, expressed
+or implied, including, without limitation, the warranties of merchantability
+and of fitness for any purpose.  IPFire assumes no liability for
+damages, direct or consequential, which may result from the use of this
+software."
+
index e528590..19f2828 100644 (file)
@@ -1,20 +1,21 @@
-var/ipcop/backup/*.system
-var/ipcop/backup/backup.key
-var/ipcop/backup/sets
-var/ipcop/countries.pl
-var/ipcop/dhcpc
-var/ipcop/eciadsl/modems.db
-var/ipcop/eciadsl/firmware00.bin
-var/ipcop/header.pl
-var/ipcop/general-functions.pl
-var/ipcop/lang.pl
-var/ipcop/key
-var/ipcop/langs
-var/ipcop/patches
-var/ipcop/ppp/fake-resolv.conf
-var/ipcop/red
-var/ipcop/time/counter
-var/ipcop/firewall/protocols.pl
-var/ipcop/firewall/defaultservices
-var/ipcop/firewall/icmptypes
-var/ipcop/addon-lang
+var/ipfire/backup/*.system
+var/ipfire/backup/backup.key
+var/ipfire/backup/sets
+var/ipfire/countries.pl
+var/ipfire/dhcpc
+var/ipfire/eciadsl/modems.db
+var/ipfire/eciadsl/firmware00.bin
+var/ipfire/header.pl
+var/ipfire/general-functions.pl
+var/ipfire/lang.pl
+var/ipfire/key
+var/ipfire/langs
+var/ipfire/patches
+var/ipfire/ppp/fake-resolv.conf
+var/ipfire/red
+var/ipfire/time/counter
+var/ipfire/firewall/protocols.pl
+var/ipfire/firewall/defaultservices
+var/ipfire/firewall/icmptypes
+var/ipfire/addon-lang
+var/ipfire/net-traffic
\ No newline at end of file
index d6bcd15..5c0360a 100644 (file)
@@ -1 +1 @@
-var/ipcop/ethernet/settings
+var/ipfire/ethernet/settings
index c8d66bd..ab19ddc 100644 (file)
@@ -13,4 +13,4 @@
 /etc/ssh/ssh_host_key.pub
 /etc/ssh/ssh_host_rsa_key
 /etc/ssh/ssh_host_rsa_key.pub
-/var/ipcop/
+/var/ipfire/
index 9c6ed7b..f219de1 100644 (file)
@@ -9,8 +9,6 @@
 # Copyright (c) 2002/08/23 Mark Wormgoor <mark@wormgoor.com> validfqdn()
 # Copyright (c) 2003/09/11 Darren Critchley <darrenc@telus.net> srtarray()
 #
-# $Id: header.pl,v 1.34.2.39 2004/11/26 15:51:27 alanh Exp $
-#
 package Header;
 
 use CGI();
@@ -19,15 +17,6 @@ use Time::Local;
 
 $|=1; # line buffering
 
-sub get_version() {
-    my $read_ver = `cat /etc/ipfire-release`;
-    if ($read_ver =~ /^$/) {
-       return "IPFire (unknown version)";
-    }
-    return $read_ver;
-}
-
-$Header::version = get_version();
 $Header::revision = 'final';
 $Header::swroot = '/var/ipfire';
 $Header::pagecolour = '#ffffff';
@@ -139,43 +128,37 @@ sub genmenu {
                                   'title' => "$tr{'network configuration'}",
                                   'enabled' => 1,
                                   };
-    $subsystem->{'03.updates'} = {
-                                'caption' => $tr{'updates'},
-                                'uri' => '/cgi-bin/updates.cgi',
-                                'title' => "$tr{'updates'}",
-                                'enabled' => 0,
-                                };
-    $subsystem->{'04.passwords'} = {
+    $subsystem->{'03.passwords'} = {
                                   'caption' => $tr{'sspasswords'},
                                   'uri' => '/cgi-bin/changepw.cgi',
                                   'title' => "$tr{'sspasswords'}",
                                   'enabled' => 1,
                                   };
-    $subsystem->{'05.ssh'} = {
+    $subsystem->{'04.ssh'} = {
                             'caption' => $tr{'ssh access'},
                             'uri' => '/cgi-bin/remote.cgi',
                             'title' => "$tr{'ssh access'}",
                             'enabled' => 1,
                             };
-    $subsystem->{'06.gui'} = {
+    $subsystem->{'05.gui'} = {
                              'caption' => $tr{'gui settings'},
                              'uri' => '/cgi-bin/gui.cgi',
                              'title' => "$tr{'gui settings'}",
                              'enabled' => 1,
                              };
-    $subsystem->{'07.backup'} = {
+    $subsystem->{'06.backup'} = {
                                'caption' => $tr{'backup'},
                                'uri' => '/cgi-bin/backup.cgi',
                                'title' => "$tr{'backup'} / $tr{'restore'}",
                                'enabled' => 0,
                                };
-    $subsystem->{'08.shutdown'} = {
+    $subsystem->{'07.shutdown'} = {
                                  'caption' => $tr{'shutdown'},
                                  'uri' => '/cgi-bin/shutdown.cgi',
                                  'title' => "$tr{'shutdown'} / $tr{'reboot'}",
                                  'enabled' => 1,
                                  };
-    $subsystem->{'09.credits'} = {
+    $subsystem->{'08.credits'} = {
                                  'caption' => $tr{'credits'},
                                  'uri' => '/cgi-bin/credits.cgi',
                                  'title' => "$tr{'credits'}",
@@ -256,36 +239,61 @@ sub genmenu {
                                  'title' => "$tr{'external aliases configuration'}",
                                  'enabled' => 1,
                                  };
+    $subnetwork->{'05.nettraf'} = {
+                                 'caption' => '$tr{'sstraffic'}',
+                                 'uri' => '/cgi-bin/traffic.cgi',
+                                 'title' => "$tr{'sstraffic'}",
+                                'enabled' => 1,
+                                 };
+
+    $subnetwork->{'06.openvpn'} = {
+                                 'caption' => 'OpenVPN',
+                                 'uri' => '/cgi-bin/ovpnmain.cgi',
+                                 'title' => "$tr{'virtual private networking'}",
+                                'enabled' => 1,
+                                 };
+    $subnetwork->{'07.ipsec'} = {
+                                 'caption' => 'IPSec,
+                                 'uri' => '/cgi-bin/vpnmain.cgi',
+                                 'title' => "$tr{'virtual private networking'}",
+                                 'enabled' => 1,
+                                 };
 
 
     my %subserviceshash = ();
     my $subservices = \%subserviceshash;
 
-    $subservices->{'01.dhcp'} = {
+    $subservices->{'01.proxy'} = {
+                               'caption' => $tr{'proxy'},
+                               'uri' => '/cgi-bin/proxy.cgi',
+                               'title' => "HTTP: $tr{'web proxy configuration'}",
+                               'enabled' => 1,
+                               };
+    $subservices->{'02.dhcp'} = {
                                 'caption' => $tr{'dhcp server'},
                                 'uri' => '/cgi-bin/dhcp.cgi',
                                 'title' => "$tr{'dhcp configuration'}",
                                 'enabled' => 1,
                                 };
-    $subservices->{'02.dyndns'} = {
+    $subservices->{'03.dyndns'} = {
                                   'caption' => $tr{'dynamic dns'},
                                   'uri' => '/cgi-bin/ddns.cgi',
                                   'title' => "$tr{'dynamic dns client'}",
                                   'enabled' => 1,
                                 };
-    $subservices->{'03.time'} = {
+    $subservices->{'04.time'} = {
                                   'caption' => $tr{'time server'},
                                   'uri' => '/cgi-bin/time.cgi',
                                   'title' => "$tr{'time server'}",
                                   'enabled' => 1,
                                 };
-    $subservices->{'04.shaping'} = {
-                                   'caption' => $tr{'traffic shaping'},
-                                   'uri' => '/cgi-bin/shaping.cgi',
+    $subservices->{'05.qos'} = {
+                                   'caption' => 'Quality of Service',
+                                   'uri' => '/cgi-bin/qos.cgi',
                                    'title' => "$tr{'traffic shaping settings'}",
                                    'enabled' => 1,
                                    };
-    $subservices->{'05.ids'} = {'caption' => $tr{'intrusion detection'},
+    $subservices->{'06.ids'} = {'caption' => $tr{'intrusion detection'},
                                'enabled' => 1,
                                'uri' => '/cgi-bin/ids.cgi',
                                'title' => "$tr{'intrusion detection system'} (Snort)",
@@ -322,87 +330,6 @@ sub genmenu {
                                     };
     
 
-
-    my %subhttphash = ();
-    my $subhttp = \%subhttphash;
-    $subhttp->{'01.proxy'} = {
-                             'caption' => $tr{'proxy'},
-                             'uri' => '/cgi-bin/advproxy.cgi',
-                             'title' => "HTTP: $tr{'web proxy configuration'}",
-                             'enabled' => 1,
-                             };
-    $subhttp->{'02.contentfilter'} = {
-                                     'caption' => $tr{'content filter'},
-                                     'uri' => '/cgi-bin/dansguardian.cgi',
-                                     'title' => "HTTP: $tr{'content filter'}",
-                                     'enabled' => 1,
-                                     };
-    $subhttp->{'03.antivirus'} = {
-                                 'caption' => $tr{'antivirus'},
-                                 'uri' => '/cgi-bin/httpantivirus.cgi',
-                                 'title' => "HTTP: $tr{'antivirus'}",
-                                 'enabled' => 1,
-                                 };
-     $subhttp->{'04.proxymanagment'} = {
-                                   'caption' => $tr{'DS Managment'},
-                                   'uri' => '/cgi-bin/proxygm.cgi',
-                                   'title' => "HTTP: $tr{'DS Managment'}",
-                                   'enabled' => 1,
-                                   };
-     $subhttp->{'05.activatedgroups'} = {
-                                   'caption' => $tr{'activated Groups'},
-                                   'uri' => '/cgi-bin/proxyag.cgi',
-                                   'title' => "HTTP: $tr{'activated Groups'}",
-                                   'enabled' => 1,
-                                   };
-     $subhttp->{'06.advancedproxy'} = {
-                                   'caption' => $tr{'Proxy Advanced'},
-                                   'uri' => '/cgi-bin/proxyad.cgi',
-                                   'title' => "HTTP: $tr{'Proxy Advanced'}",
-                                   'enabled' => 1,
-                                   };
-
-
-    my %subproxyhash = ();
-    my $subproxy = \%subproxyhash;
-
-    $subproxy->{'01.http'} = {'caption' => $tr{'HTTP'},
-                             'enabled' => 1,
-                             'subMenu' => $subhttp
-                             };
-    $subproxy->{'02.ftp'} = {'caption' => 'FTP',
-                             'enabled' => 1,
-                             'subMenu' => $subftp
-                             };
-
-
-
-    my %subopenvpnhash = ();
-    my $subopenvpn = \%subopenvpnhash;
-    $subopenvpn->{'01.server'} = {'caption' => $tr{'openvpn'},
-                                 'uri' => '/cgi-bin/openvpn.cgi',
-                                 'title' => "$tr{'virtual private networking'}",
-                                 'enabled' => 1,
-                                 };
-    $subopenvpn->{'02.client'} = {'caption' => $tr{'openvpnclient'},
-                                 'uri' => '/cgi-bin/openvpnclient.cgi',
-                                 'title' => "$tr{'virtual private networking'}",
-                                 'enabled' => 1,
-                                 };
-
-    my %subvpnhash = ();
-    my $subvpn = \%subvpnhash;
-
-    $subvpn->{'01.openvpn'} = {'caption' => $tr{'openvpn'},
-                              'subMenu' => $subopenvpn,
-                              'enabled' => 1,
-                          };
-    $subvpn->{'02.ipsec'} = {'caption' => $tr{'ipsec'},
-                            'uri' => '/cgi-bin/vpnmain.cgi',
-                            'title' => "$tr{'virtual private networking'}",
-                            'enabled' => 1,
-                        };
-
     my %sublogshash = ();
     my $sublogs = \%sublogshash;
 
@@ -465,11 +392,21 @@ sub genmenu {
                                  'title' => "$tr{'paketmanager'}",
                                  'enabled' => 1,
                                  };
+    $subipfire->{'02.asterisk'} = {'caption' => $tr{'asterisk'},
+                                 'uri' => '/cgi-bin/asterisk.cgi',
+                                 'title' => "$tr{'asterisk'}",
+                                 'enabled' => 1,
+                                 };
     $subipfire->{'02.samba'} = {'caption' => $tr{'samba'},
                                  'uri' => '/cgi-bin/samba.cgi',
                                  'title' => "$tr{'samba'}",
                                  'enabled' => 1,
                                  };
+    $subipfire->{'99.help'} = {'caption' => $tr{'help'},
+                                 'uri' => '/cgi-bin/help.cgi',
+                                 'title' => "$tr{'help'}",
+                                 'enabled' => 1,
+                                 };
 
 
 
@@ -497,7 +434,7 @@ sub genmenu {
                           'enabled' => 1,
                           'subMenu' => $subproxy
                           };
-    $menu->{'07.vpn'} = {'caption' => 'VPN',
+    $menu->{'07.ipfire'} = {'caption' => 'IPFire',
                         'enabled' => 1,
                         'subMenu' => $subvpn
                         };
@@ -505,12 +442,6 @@ sub genmenu {
                          'enabled' => 1,
                          'subMenu' => $sublogs
                          };
-    $menu->{'09.ipfire'} = {'caption' => 'IPFire',
-                         'enabled' => 1,
-                         'subMenu' => $subipfire
-                         };
-
-
 
     if (! blue_used() && ! orange_used()) {
        $menu->{'05.firewall'}{'subMenu'}->{'03.dmz'}{'enabled'} = 0;
@@ -876,7 +807,6 @@ sub closepage () {
             <p>
              <div style="font-size: 9px"><b>Status:</b> $status <b>Uptime:</b>$uptime</div>
             </p>
-            <p><a href="http://www.ipfire.org">IPFire</a> $version (c)</p>
           </div>
        </body>
        <meta http-equiv="Page-Enter" content="blendTrans(Duration=1.0,Transition=12)">
diff --git a/config/cfgroot/net-traffic-lib.pl b/config/cfgroot/net-traffic-lib.pl
new file mode 100644 (file)
index 0000000..b354ff4
--- /dev/null
@@ -0,0 +1,498 @@
+#!/usr/bin/perl
+#
+# $Id: net-traffic-lib.pl,v 1.4 2005/03/17 11:43:55 dotzball Exp $
+#
+# Summarize all IP accounting files from start to end time
+#
+# Copyright (C) 1997 - 2000 Moritz Both
+#              2001 - 2002 Al Zaharov
+#
+# 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 2 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, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+# The author can be reached via email: moritz@daneben.de, or by
+# snail mail: Moritz Both, Im Moore 26, 30167 Hannover,
+#             Germany. Phone: +49-511-1610129
+#
+#
+# 22 June 2004 By Achim Weber dotzball@users.sourceforge.net
+#      - changed to use it with Net-Traffic Addon
+#      - renamed to avoid issues when calling this file or original ipacsum
+#      - this file is net-traffic-lib.pl for IPCop 1.4.0
+#
+
+package Traffic;
+
+use 5.000;
+use Getopt::Long;
+use POSIX qw(strftime);
+use Time::Local;
+use Socket;
+use IO::Handle;
+
+$|=1; # line buffering
+
+@moff = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 );
+
+# =()<$datdelim="@<DATDELIM>@";>()=
+$datdelim="#-#-#-#-#";
+# =()<$prefix="@<prefix>@";>()=
+$prefix="/usr";
+# =()<$exec_prefix="@<exec_prefix>@";>()=
+$exec_prefix="${prefix}";
+# =()<$INSTALLPATH="@<INSTALLPATH>@";>()=
+$INSTALLPATH="${exec_prefix}/sbin";
+$datdir="/var/log/ip-acct";
+
+$me=$0;
+$me =~ s|^.*/([^/]+)$|$1|;
+$now = time;
+$fetchipac="$INSTALLPATH/fetchipac";
+$rule_regex = ".*";                            # match rules with this regex only
+
+## Net-Traffic variables ##
+my %allDays = ();
+my $allDaysBytes;
+my $tzoffset = 0;
+my $displayMode = "daily";
+my ($curMonth, $curYear);
+${Traffic::blue_in} = 'incoming BLUE';
+${Traffic::green_in} = 'incoming GREEN';
+${Traffic::orange_in} = 'incoming ORANGE';
+${Traffic::red_in} = 'incoming RED';
+${Traffic::blue_out} = 'outgoing BLUE';
+${Traffic::green_out} = 'outgoing GREEN';
+${Traffic::orange_out} = 'outgoing ORANGE';
+${Traffic::red_out} = 'outgoing RED';
+
+
+sub calcTraffic{
+       $allDaysBytes = shift;
+       $starttime = shift;
+       $endtime = shift;
+       $displayMode = shift;
+
+       $starttime =~ /^(\d\d\d\d)(\d\d)/;
+       $curYear = $1;
+       $curMonth = $2;
+
+       # calculate time zone offset in seconds - use difference of output of date
+       # command and time function, round it
+       $tzoffset = time-timegm(localtime());
+       $machine_name = undef;
+
+       $starttime = makeunixtime($starttime);
+       $endtime = makeunixtime($endtime);
+       $endtime -= 1;
+
+       # options that we need to pass to fetchipac if we call it.
+       $fetchipac_options = "--directory=$datdir";
+
+       $endtime = $now if ($endtime > $now);
+       $starttime = 0 if ($starttime < 0);
+       $mystarttime = &makemydailytime($starttime);
+       $myendtime = &makemydailytime($endtime);
+       %rule_firstfile =  %rule_lastfile = ( );
+
+       # find out which timestamps we need to read.
+       # remember newest timestamp before starttime so we know when data for
+       # the first file starts
+       # also remember oldest timestamp after end time
+       $newest_timestamp_before_starttime = "";
+       $oldest_timestamp_after_endtime = "";
+       open(DATA, "$fetchipac $fetchipac_options --timestamps=$starttime,$endtime ".
+                       "--machine-output-format|") || die "$me: cant run $fetchipac\n";
+       # the first thing is the timestamp count
+       $count=<DATA>;
+       if ($count == 0) {
+               return ();
+       }
+       while(<DATA>)
+       {
+               if (/^(.)\s(\d+)$/) {
+                       my $ts = $2;
+                       if ($1 eq "-") {
+                               $newest_timestamp_before_starttime=$ts;
+                       }
+                       elsif ($1 eq "+") {
+                               $oldest_timestamp_after_endtime=$ts;
+                       }
+                       elsif ($1 eq "*") {
+                               push(@timestamps, $ts);
+                       }
+                       else {
+                               die "$me: illegal output from $fetchipac: \"$_\"\n";
+                       }
+               }
+               else {
+                       die "$me: illegal output from $fetchipac: \"$_\"\n";
+               }
+       }
+       close DATA;
+
+       push(@timestamps, $oldest_timestamp_after_endtime) 
+               if ($oldest_timestamp_after_endtime);
+       unshift(@timestamps, $newest_timestamp_before_starttime) 
+               if ($newest_timestamp_before_starttime);
+
+       $rulenumber = 0;
+
+       # read all data we need and put the data into memory.
+       &read_data;
+
+       @days_sorted = sort keys %allDays;
+       return @days_sorted;
+}
+##########################
+# END OF MAIN PROGRAM
+##########################
+
+# read all data (@timestmaps contains the timestamps, must be sorted!)
+# and put the data into our global memory data
+# structures. special care must be taken with data of the first and
+# the last timestamps we read, since we only want data which is from our
+# time frame. Furthermore, data from before and after this time frame
+# must be preserved in special data structures because we might replace
+# them (option --replace) and have to write extra data for these times
+# then.
+sub read_data {
+       my $run_s;
+       my $s;
+       my $i;
+       my $in_time = 0;
+       my $after_time = 0;
+
+       my $curDay = $starttime;
+
+       # feed the timestamp list to fetchipac on its stdin.
+       socketpair(CHILD, PARENT, AF_UNIX, SOCK_STREAM, PF_UNSPEC)
+                           or die "socketpair: $!";
+       CHILD->autoflush(1);
+       PARENT->autoflush(1);
+       my $pid = open(CHILD, "-|");
+       die "$me: can't fork: $!\n" unless defined $pid;
+       if ($pid == 0) {
+               # child
+               close CHILD;
+               open(FETCHIPAC, "|$fetchipac $fetchipac_options --record "
+                               ."--machine-output-format")
+                       or die "$me: cant exec fetchipac\n";
+
+#this is much more efficient than the original code (Manfred Weihs)
+# and it adds more troubles than solves (Al Zakharov)
+                if ($timestamps[0] == $newest_timestamp_before_starttime) {
+                        print(FETCHIPAC $timestamps[1],"-",$timestamps[$count],"\n");
+                } else {
+                        print(FETCHIPAC $timestamps[0],"-",$timestamps[$count-1],"\n");
+               }
+               close(FETCHIPAC);
+               close(PARENT);
+               exit;
+       }
+       close PARENT;
+
+       my $laststamp = undef;
+       $laststamp = $newest_timestamp_before_starttime
+               if ($newest_timestamp_before_starttime);
+       $i = 0;
+       $i++ if ($laststamp);
+       while (<CHILD>) {
+               # first line of fetchipac output: "ADD"
+               /^ADD\s*$/i or die "$me: bad line from fetchipac: $_\n";
+               # second line of fetchipac output: timestamp no_of_records
+               $_ = <CHILD> || last;
+               /^(\d+)\s(\d+)$/ or die "$me: bad line from fetchipac: $_\n";
+               my $timestamp = int $1;
+               my $number_of_records = int $2;
+               my $do_collect = 1;
+
+               if ($displayMode =~ /^daily/) {
+                       # increment Day aslong current timestamp is not in current Day
+                       while ( ($timestamp-$curDay) > 86399) {
+                               $curDay += 86400;
+                       }
+               }
+               else
+               {
+                       my @dummy =  localtime($timestamp);
+                       # increment Month aslong current timestamp is not in current Month
+                       while ($curMonth < ($dummy[4]+1) || $curYear<($dummy[5]+1900)) {
+                               $curMonth++;
+                               if ($curMonth > 12) {
+                                       $curMonth = 1;
+                                       $curYear++;
+                               }
+                               my $newMonth = $curYear;                                
+                               $newMonth .= $curMonth < 10 ? "0".$curMonth."01" : $curMonth."01";
+                               $newMonth .= "01";
+                               $curDay = &makeunixtime($newMonth);
+                       }
+               }
+
+               if ($timestamp < $starttime) {
+                       # this record is too old, we dont need the data.
+                       # However, the timestamp gives us a clue on the 
+                       # time period the next item covers.
+                       $do_collect = 0;
+               }
+
+               my $irec;
+               # read each record
+               my $data = &read_data_record(CHILD, $number_of_records);
+
+               if ($do_collect && $in_time == 0) {
+                       # the data is from after starttime. if it is the
+                       # first one, split the data (if we know for how
+                       # long this data is valid, and if $laststamp is not
+                       # equal to $starttime in which case the split is
+                       # redundant). If we don't have a clue about the 
+                       # last file time before our first file was created,
+                       # we do not know how much of the file data is in our
+                       # time frame. we assume everything belongs to us.
+                       $in_time = 1;
+#                      if ($laststamp && $laststamp != $starttime) {
+                       if ($laststamp && $laststamp != $newest_timestamp_before_starttime) {
+                               my $newdata = &split_data($data,
+                                       $laststamp, $timestamp, $starttime);
+                               $glb_data_before = $data;
+                               $data = $newdata;
+                               $laststamp = $starttime;
+                       }
+               }
+
+               if ($timestamp > $endtime) {
+                       # this data is too new, but the data in it may have
+                       # begun within our time frame. (if endtime eq laststamp
+                       # we do a redundant split here, too - it works for now
+                       # and --replace relies on it, but it is ugly.)
+                       if ($after_time == 0) {
+                               $after_time = 1;
+                               if ($laststamp) {
+                                       $glb_data_after =
+                                               &split_data($data,$laststamp,$timestamp,$endtime);
+                               } else {
+                                       $do_collect = 0;
+                               }
+                       } else {
+                               $do_collect = 0;        # just too new.
+                       }
+               }
+
+               if ($do_collect) {
+                       &collect_data($data, $i, $curDay);
+               }
+               $laststamp = $timestamp;
+               $i++;
+       }
+       close CHILD;
+       wait;
+}
+
+# split the data in $1 (format as from read_data) into a pair of two
+# such data sets. The set referenced to as $1 will afterwards contain
+# the first part of the data, another set which is returned contains
+# the second part of the data.
+# interpret the data as having start time=$2 and end time=$3 and split
+# time=$4
+sub split_data {
+       my $data = shift;
+       my $mstart = shift;
+       my $mend = shift;
+       my $msplit = shift;
+
+       # calculate factors for multiplications
+       my $ust = $mstart;
+       my $uperiod = $mend - $ust;
+       my $usplit = $msplit - $ust;
+
+       if ($uperiod < 0) {
+               # hmmm? die Daten sind rueckwaerts???
+               $uperiod = -$uperiod;
+       }
+       my $fac1;
+       if ($usplit < 0) {
+               $fac1 = 0;
+       }
+       elsif ($usplit > $uperiod) {
+               $fac1 = 1;
+       }
+       else {
+               $fac1 = $usplit / $uperiod;
+       }
+
+       # $fac1 now says us how much weight the first result has.
+       # initialize the set we will return.
+       my @ret = ( );
+       
+       foreach $set (@$data) {
+               my ($rule, $bytes, $pkts) = @$set;
+               $$set[1] = int($bytes * $fac1 + 0.5);
+               $$set[2] = int($pkts * $fac1 + 0.5);
+               push(@ret, [ $rule, $bytes - $$set[1], $pkts - $$set[2] ]);
+       }
+       return \@ret;
+}
+
+# put data from one file into global data structures
+# must be called in correct sorted file name order to set rules_lastfile
+# and rules_firstfile (which are currently useless)
+# arguments: 
+# $1=index number of file; $2 = reference to array with data from file
+sub collect_data {
+       my($filedata, $ifile, $i, $day);
+
+       $filedata = shift;
+       $ifile=shift;
+       $day =shift;
+
+       # if day first appeared in this file, initialize its
+       # life.
+       if (!defined($allDays{$day})) {
+               return if (&init_filter_id($day));
+               $allDays{$day} = $rulenumber++;
+       }
+
+       for ($i=0; $i<=$#$filedata; $i++) {
+               my $set = $$filedata[$i];
+               my $rule = $$set[0];
+               my $bytes = $$set[1];
+               my $pkts = $$set[2];
+               
+               $_ = $rule;
+               /^(.*) \(.*$/;
+               $_ = $1;
+               /^forwarded (.*)$/;
+               $rule = $1;
+               $allDaysBytes->{$day}{$rule} += $bytes;
+       }
+}
+
+# initialize data variables for a new rule - if it is new
+sub init_filter_id {
+       my($s, $ifile) = @_;
+
+       if (!defined $allDaysBytes->{$s}) {
+               if ($displayMode =~ /^daily/) {
+                       my $newDay = &makemydailytime($s);
+                       $newDay =~ /^\d\d\d\d-(\d\d)-\d\d$/;
+
+                       return 1 if ($1 > $curMonth && $displayMode ne "daily_multi");  
+                       
+                       $allDaysBytes->{$s}{'Day'} = $newDay;
+               }
+               else {
+                       $allDaysBytes->{$s}{'Day'} = &makemymonthlytime($s);
+               }
+               $allDaysBytes->{$s}{${Traffic::blue_in}} = int(0);
+               $allDaysBytes->{$s}{${Traffic::green_in}} = int(0);
+               $allDaysBytes->{$s}{${Traffic::orange_in}} = int(0);
+               $allDaysBytes->{$s}{${Traffic::red_in}} = int(0);
+               $allDaysBytes->{$s}{${Traffic::blue_out}} = int(0);
+               $allDaysBytes->{$s}{${Traffic::green_out}} = int(0);
+               $allDaysBytes->{$s}{${Traffic::orange_out}} = int(0);
+               $allDaysBytes->{$s}{${Traffic::red_out}} = int(0);
+       }
+       return 0;
+}
+
+# read data record from filehandle $1
+# number of records is $2
+# Return value: reference to array a of length n; 
+#      n is the number of rules
+#      each field in a is an array aa with 3 fields
+#      the fields in arrays aa are: [0]=name of rule; [1]=byte count;
+#      [2]=packet count
+# function does not use global variables
+sub read_data_record {
+       my($file, $number_of_records, $beforedata, $indata, $i, $irec);
+       my($pkts, $bytes, $rule);
+       my(@result);
+
+       $file=shift;
+       $number_of_records = shift;
+       $indata=0;
+       $beforedata=1;
+
+       for($irec = 0; $irec < $number_of_records; $irec++) {
+               $_ = <$file>;
+               chop;
+               /^\(\s*(.*)$/ or die "$me: bad line from fetchipac (expecting machine name): $_\n";
+               $machine_name = $1;     # remember final machine name
+               while(<$file>) {
+                       last if (/^\)$/);       # terminating line ')'
+                       /^(\d+)\s(\d+)\s\|(.*)\|$/
+                               or die "$me: bad line from fetchipac (expecting rule item): $_\n";
+                       $bytes = $1;
+                       $pkts = $2;
+                       $rule = $3;
+                       if ($rule =~ /$rule_regex/) {
+                               push(@result, [ $rule, $bytes, $pkts]);
+                       }
+               }
+       }
+       # read another emtpy line (data format consistency)
+       $_ = <$file>;
+       die "$me: bad data from fetchipac (expected emtpy line): $_\n"
+               if ($_ !~ /^$/);
+       \@result;
+}
+
+# given a string in format YYYYMMDD[hh[mm[ss]]], make unix time
+# use time zone offset $tzoffset (input=wall clock time, output=UTC)
+sub makeunixtime {
+       my($y, $m, $d, $h, $i, $e);
+       $s = shift;
+
+       $h=0; $i=0; $e=0;
+       if ($s =~ /^(\d\d\d\d)(\d\d)(\d\d)/) {
+               ($y, $m, $d) = ($1, $2, $3);
+               if ($s =~ /^\d\d\d\d\d\d\d\d-?(\d\d)/) {
+                       $h=$1;
+                       if ($s =~ /^\d\d\d\d\d\d\d\d-?\d\d(\d\d)/) {
+                               $i=$1;
+                               if ($s =~ /^\d\d\d\d\d\d\d\d-?\d\d\d\d(\d\d)/) {
+                                       $e=$1;
+                               }
+                       }
+               }
+       }
+       else {
+               return 0;
+       }
+
+       $y-=1970;
+       $s = (($y)*365) + int(($y+2)/4) + $moff[$m-1] + $d-1;
+       $s-- if (($y+2)%4 == 0 && $m < 3);
+       $s*86400 + $h*3600 + $i*60 + $e + $tzoffset;
+}
+
+# return the given unix time in localtime in "mydaily" time format
+sub makemydailytime {
+       my($s)=shift;
+
+       my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
+                                                 localtime($s);
+       return sprintf("%04d-%02d-%02d", 1900+$year, $mon+1, $mday);
+}
+
+# return the given unix time in localtime in "mymonthly" time format
+sub makemymonthlytime {
+       my($s)=shift;
+
+       my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
+                                                 localtime($s);
+       return sprintf("%04d-%02d", 1900+$year, $mon+1);
+}
+
+# EOF
index 038f64d..b7ebc69 100644 (file)
@@ -1,49 +1,49 @@
-# Do not modify '/var/ipcop/proxy/squid.conf' directly since any changes\r
-# you make will be overwritten whenever you resave proxy settings using the\r
-# web interface! Instead, modify the file '/var/ipcop/proxy/acl' and then\r
-# restart squid using the web interface. Changes made to the 'acl' file\r
-# will propagate to the 'squid.conf' file at that time.\r
-# [Scott Tregear, 22 Feb 2005]\r
-\r
-# Uncomment the following line to enable logging of User-Agent header:\r
-#useragent_log      /var/log/squid/user_agent.log\r
-\r
-# Uncomment the following line to enable logging of Referer header:\r
-#referer_log        /var/log/squid/referer.log\r
-\r
-acl all src 0.0.0.0/0.0.0.0\r
-acl localhost src 127.0.0.1/255.255.255.255\r
-acl SSL_ports port 443 563 \r
-acl Safe_ports port 80 # http \r
-acl Safe_ports port 21 # ftp \r
-acl Safe_ports port 443 563 # https, snews \r
-acl Safe_ports port 70 # gopher \r
-acl Safe_ports port 210 # wais \r
-acl Safe_ports port 1025-65535 # unregistered ports \r
-acl Safe_ports port 280 # http-mgmt \r
-acl Safe_ports port 488 # gss-http \r
-acl Safe_ports port 591 # filemaker \r
-acl Safe_ports port 777 # multiling http \r
-acl Safe_ports port __PROXY_PORT__ # Squid port (for icons) \r
-\r
-acl IPCop_http  port 81\r
-acl IPCop_https port 444\r
-acl IPCop_ips  dst __GREEN_IP__ __BLUE_IP__\r
-acl IPCop_networks src __GREEN_NET__ __BLUE_NET__\r
-acl CONNECT method CONNECT \r
-\r
-##Access to squid:\r
-#local machine, no restriction\r
-http_access allow         localhost\r
-\r
-#GUI admin if local machine connects\r
-http_access allow         IPCop_ips IPCop_networks IPCop_http\r
-http_access allow CONNECT IPCop_ips IPCop_networks IPCop_https\r
-\r
-#Deny not web services\r
-http_access deny          !Safe_ports\r
-http_access deny  CONNECT !SSL_ports\r
-\r
-#Finally allow IPCop_networks clients\r
-http_access allow         IPCop_networks\r
-http_access deny          all\r
+# Do not modify '/var/ipfire/proxy/squid.conf' directly since any changes
+# you make will be overwritten whenever you resave proxy settings using the
+# web interface! Instead, modify the file '/var/ipfire/proxy/acl' and then
+# restart squid using the web interface. Changes made to the 'acl' file
+# will propagate to the 'squid.conf' file at that time.
+# [Scott Tregear, 22 Feb 2005]
+
+# Uncomment the following line to enable logging of User-Agent header:
+#useragent_log      /var/log/squid/user_agent.log
+
+# Uncomment the following line to enable logging of Referer header:
+#referer_log        /var/log/squid/referer.log
+
+acl all src 0.0.0.0/0.0.0.0
+acl localhost src 127.0.0.1/255.255.255.255
+acl SSL_ports port 443 563 
+acl Safe_ports port 80 # http 
+acl Safe_ports port 21 # ftp 
+acl Safe_ports port 443 563 # https, snews 
+acl Safe_ports port 70 # gopher 
+acl Safe_ports port 210 # wais 
+acl Safe_ports port 1025-65535 # unregistered ports 
+acl Safe_ports port 280 # http-mgmt 
+acl Safe_ports port 488 # gss-http 
+acl Safe_ports port 591 # filemaker 
+acl Safe_ports port 777 # multiling http 
+acl Safe_ports port __PROXY_PORT__ # Squid port (for icons) 
+
+acl IPCop_http  port 81
+acl IPCop_https port 444
+acl IPCop_ips  dst __GREEN_IP__ __BLUE_IP__
+acl IPCop_networks src __GREEN_NET__ __BLUE_NET__
+acl CONNECT method CONNECT 
+
+##Access to squid:
+#local machine, no restriction
+http_access allow         localhost
+
+#GUI admin if local machine connects
+http_access allow         IPCop_ips IPCop_networks IPCop_http
+http_access allow CONNECT IPCop_ips IPCop_networks IPCop_https
+
+#Deny not web services
+http_access deny          !Safe_ports
+http_access deny  CONNECT !SSL_ports
+
+#Finally allow IPCop_networks clients
+http_access allow         IPCop_networks
+http_access deny          all
index 740c32c..b87a76c 100644 (file)
@@ -1,3 +1,14 @@
+------------------------------------------------------------------------
+r128 | ms | 2006-05-20 13:34:29 +0200 (Sa, 20 Mai 2006) | 8 lines
+
+Hinzugefügt:
+  * Pakfire in die ISO gepackt. (Welche nocheinmal kleiner geworden ist.)
+  * Neues Shutdown-Bild
+Geändert:
+  * Zahlreiche Schönheitsfehler im Pakfire korrigiert. ^^
+Gelöscht:
+  * Ein kleines Überbleibsel vom IPCop entfernt.
+
 ------------------------------------------------------------------------
 r127 | ms | 2006-05-20 11:34:19 +0200 (Sa, 20 Mai 2006) | 3 lines
 
index 7751fa4..67b40b0 100644 (file)
@@ -24,6 +24,41 @@ my %cgiparams=();
 $cgiparams{'ACTION'} = '';
 &Header::getcgihash(\%cgiparams);
 
+if ($cgiparams{'ACTION'} eq $Lang::tr{'dial profile'})
+{
+       my $profile = $cgiparams{'PROFILE'};
+       my %tempcgiparams = ();
+       $tempcgiparams{'PROFILE'} = '';
+       &General::readhash("${General::swroot}/ppp/settings-$cgiparams{'PROFILE'}",
+               \%tempcgiparams);
+
+       # make a link from the selected profile to the "default" one.
+       unlink("${General::swroot}/ppp/settings");
+       link("${General::swroot}/ppp/settings-$cgiparams{'PROFILE'}",
+               "${General::swroot}/ppp/settings");
+       system ("/bin/touch", "${General::swroot}/ppp/updatesettings");
+
+       # read in the new params "early" so we can write secrets.
+       %cgiparams = ();
+       &General::readhash("${General::swroot}/ppp/settings", \%cgiparams);
+       $cgiparams{'PROFILE'} = $profile;
+       $cgiparams{'BACKUPPROFILE'} = $profile;
+       &General::writehash("${General::swroot}/ppp/settings-$cgiparams{'PROFILE'}",
+               \%cgiparams);
+
+       # write secrets file.
+       open(FILE, ">/${General::swroot}/ppp/secrets") or die "Unable to write secrets file.";
+       flock(FILE, 2);
+       my $username = $cgiparams{'USERNAME'};
+       my $password = $cgiparams{'PASSWORD'};
+       print FILE "'$username' * '$password'\n";
+       chmod 0600, "${General::swroot}/ppp/secrets";
+       close FILE;
+
+       &General::log("$Lang::tr{'profile made current'} $tempcgiparams{'PROFILENAME'}"); 
+       $cgiparams{'ACTION'} = "$Lang::tr{'dial'}";
+}
+
 if ($cgiparams{'ACTION'} eq $Lang::tr{'dial'}) {
        system('/etc/rc.d/rc.red','start') == 0
        or &General::log("Dial failed: $?"); }
index 6eaac29..3eaf37c 100644 (file)
@@ -56,11 +56,6 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}")
                goto SAVE_ERROR;
        }
 
-       if ($cgiparams{'JAVASCRIPT'} !~ /^(on|off)$/) {
-               $errormessage = $Lang::tr{'invalid input'};
-               goto SAVE_ERROR;
-       }  
-
         # Set flag if index page is to refresh whilst ppp is up.
         # Default is NO refresh.
         if ($cgiparams{'REFRESHINDEX'} ne 'off') {
@@ -79,7 +74,6 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}")
 
         # write cgi vars to the file.
        $mainsettings{'LANGUAGE'} = $cgiparams{'lang'};
-       $mainsettings{'JAVASCRIPT'} = $cgiparams{'JAVASCRIPT'};
        $mainsettings{'WINDOWWITHHOSTNAME'} = $cgiparams{'WINDOWWITHHOSTNAME'};
        $mainsettings{'PPPUPDOWNBEEP'} = $cgiparams{'PPPUPDOWNBEEP'};
        $mainsettings{'REFRESHINDEX'} = $cgiparams{'REFRESHINDEX'};
@@ -87,12 +81,6 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}")
        &Lang::reload($cgiparams{'lang'});
        SAVE_ERROR:
 } else {
-       if ($mainsettings{'JAVASCRIPT'}) {
-               $cgiparams{'JAVASCRIPT'} = $mainsettings{'JAVASCRIPT'};
-       } else {
-               $cgiparams{'JAVASCRIPT'} = 'on';
-       }
-
        if ($mainsettings{'WINDOWWITHHOSTNAME'}) {
                $cgiparams{'WINDOWWITHHOSTNAME'} = $mainsettings{'WINDOWWITHHOSTNAME'};
        } else {
@@ -115,16 +103,11 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}")
 # Default settings
 if ($cgiparams{'ACTION'} eq "$Lang::tr{'restore defaults'}")
 {
-       $cgiparams{'JAVASCRIPT'} = 'on';
        $cgiparams{'WINDOWWITHHOSTNAME'} = 'off';
        $cgiparams{'PPPUPDOWNBEEP'} = 'on';
        $cgiparams{'REFRESHINDEX'} = 'off';
 }
 
-$checked{'JAVASCRIPT'}{'off'} = '';
-$checked{'JAVASCRIPT'}{'on'} = '';
-$checked{'JAVASCRIPT'}{$cgiparams{'JAVASCRIPT'}} = "checked='checked'";
-
 $checked{'WINDOWWITHHOSTNAME'}{'off'} = '';
 $checked{'WINDOWWITHHOSTNAME'}{'on'} = '';
 $checked{'WINDOWWITHHOSTNAME'}{$cgiparams{'WINDOWWITHHOSTNAME'}} = "checked='checked'";
@@ -154,10 +137,6 @@ print <<END
 <tr>
     <td colspan='2'><p><b>$Lang::tr{'display'}</b></td>
 </tr>
-<tr>
-    <td><input type='checkbox' name='JAVASCRIPT' $checked{'JAVASCRIPT'}{'on'} />
-    <td width='100%'>$Lang::tr{'enable javascript'}</td>
-</tr>
 <tr>
     <td><input type='checkbox' name='WINDOWWITHHOSTNAME' $checked{'WINDOWWITHHOSTNAME'}{'on'} /></td>
     <td>$Lang::tr{'display hostname in window title'}</td>
index b1e88b0..1d374f4 100644 (file)
@@ -180,24 +180,57 @@ print "</p>\n";
 
 &Header::closebox();
 
-# Test browser, and direct User where to turn off Javascript if necessary
-# only display message if Javascript is currently enabled
-if (${Header::javascript}) {
-print <<END
-<script type='text/javascript'>\n
-if(navigator.platform.indexOf("MacPPC")>(-1)){
-  document.write(
-    "<center><p>"
-    + "$Lang::tr{'javascript menu error1'}"
-    + " <a href='/cgi-bin/gui.cgi'>$Lang::tr{'gui settings'}</a> "
-    + "$Lang::tr{'javascript menu error2'}"
-    + "</p></center>"
-  )
+&Header::openbox('100%', 'left', $Lang::tr{'quick control'});
+# read in the profile names into @profilenames.
+my $c;
+my $maxprofiles = 5;
+my @profilenames = ();
+
+for ($c = 1; $c <= $maxprofiles; $c++)
+{
+       my %temppppsettings = ();
+       $temppppsettings{'PROFILENAME'} = '';
+       &General::readhash("${General::swroot}/ppp/settings-$c", \%temppppsettings);
+       $profilenames[$c] = $temppppsettings{'PROFILENAME'};
+}
+my %selected;
+for ($c = 1; $c <= $maxprofiles; $c++) {
+       $selected{'PROFILE'}{$c} = ''; 
 }
-</script>
+$selected{'PROFILE'}{$pppsettings{'PROFILE'}} = "selected='selected'";
+
+print <<END;
+       <table width='100%'>
+       <tr>
+               <td align='left'>
+                       <form method='post' action='/cgi-bin/dial.cgi'>
+                               $Lang::tr{'profile'}:
+                               <select name='PROFILE'>
 END
-;
+my $dialButtonDisabled = "disabled='disabled'";
+for ($c = 1; $c <= $maxprofiles; $c++)
+{
+       if ($profilenames[$c] ne '') {
+               $dialButtonDisabled = "";
+               print "\t<option value='$c' $selected{'PROFILE'}{$c}>$c. $profilenames[$c]</option>\n";
+       }
 }
+$dialButtonDisabled = "disabled='disabled'" if (-e '/var/run/ppp-ipcop.pid' || -e "${General::swroot}/red/active");
+
+print <<END;
+                               </select>
+                               <input type='submit' name='ACTION' value='$Lang::tr{'dial profile'}' $dialButtonDisabled />
+                       </form>
+               </td>
+               <td align='right'>
+                       <form method='post' action='/cgi-bin/shutdown.cgi'>
+                               <input type='submit' name='ACTION' value='$Lang::tr{'shutdown'}' />
+                       </form>
+               </td>
+       </tr>
+       </table>
+END
+&Header::closebox();
 
 &Header::closebigbox();
 
diff --git a/html/cgi-bin/traffic.cgi b/html/cgi-bin/traffic.cgi
new file mode 100644 (file)
index 0000000..78640e4
--- /dev/null
@@ -0,0 +1,297 @@
+#!/usr/bin/perl
+#
+# SmoothWall CGIs
+#
+# This code is distributed under the terms of the GPL
+#
+# (c) The SmoothWall Team
+#
+
+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";
+require '/var/ipfire/net-traffic/net-traffic-lib.pl';
+
+my %cgiparams; 
+my %pppsettings;
+my %netsettings;
+
+&General::readhash("${General::swroot}/ppp/settings", \%pppsettings);
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
+
+my @wday = ($Lang::tr{'wday1'}, $Lang::tr{'wday2'}, $Lang::tr{'wday3'}, $Lang::tr{'wday4'}, $Lang::tr{'wday5'}, $Lang::tr{'wday6'}, $Lang::tr{'wday7'});
+
+my ($s, $min, $h, $d, $m,$y) = localtime(time);
+$y+=1900;
+$m+=1;
+$m = $m < 10 ? $m = "0".$m : $m;
+
+$cgiparams{'MONTH'} = $m;
+&Header::getcgihash(\%cgiparams);
+$cgiparams{'YEAR'} = $y;
+&Header::getcgihash(\%cgiparams);
+
+&Header::showhttpheaders();
+
+my %selectYear;
+$selectYear{'YEAR'}{'2001'} = '';
+$selectYear{'YEAR'}{'2002'} = '';
+$selectYear{'YEAR'}{'2003'} = '';
+$selectYear{'YEAR'}{'2004'} = '';
+$selectYear{'YEAR'}{'2005'} = '';
+$selectYear{'YEAR'}{'2006'} = '';
+$selectYear{'YEAR'}{'2007'} = '';
+$selectYear{'YEAR'}{'2008'} = '';
+$selectYear{'YEAR'}{'2009'} = '';
+$selectYear{'YEAR'}{'????'} = '';
+$selectYear{'YEAR'}{$cgiparams{'YEAR'}} = 'selected=\'selected\'';
+
+
+my %selected;
+
+$selected{'MONTH'}{'01'} = '';
+$selected{'MONTH'}{'02'} = '';
+$selected{'MONTH'}{'03'} = '';
+$selected{'MONTH'}{'04'} = '';
+$selected{'MONTH'}{'05'} = '';
+$selected{'MONTH'}{'06'} = '';
+$selected{'MONTH'}{'07'} = '';
+$selected{'MONTH'}{'08'} = '';
+$selected{'MONTH'}{'09'} = '';
+$selected{'MONTH'}{'10'} = '';
+$selected{'MONTH'}{'11'} = '';
+$selected{'MONTH'}{'12'} = '';
+$selected{'MONTH'}{'??'} = '';
+$selected{'MONTH'}{$cgiparams{'MONTH'}} = 'selected=\'selected\'';
+
+&Header::openpage($Lang::tr{'sstraffic'}, 1, '');
+
+&Header::openbigbox('100%', 'left');
+
+&Header::openbox('100%', 'left', $Lang::tr{'settingsc'});
+
+print <<END;
+       <table width='80%' align='center'>
+       <tr>
+               <td width='95%' align='left' nowrap='nowrap'>
+                       <form method='post' action='/cgi-bin/traffic.cgi'>
+                               $Lang::tr{'selecttraffic'}
+                               <select name='MONTH'>           
+                                       <option $selected{'MONTH'}{'01'} value='01'>$Lang::tr{'january'}</option>
+                                       <option $selected{'MONTH'}{'02'} value='02'>$Lang::tr{'february'}</option>
+                                       <option $selected{'MONTH'}{'03'} value='03'>$Lang::tr{'march'}</option>
+                                       <option $selected{'MONTH'}{'04'} value='04'>$Lang::tr{'april'}</option>
+                                       <option $selected{'MONTH'}{'05'} value='05'>$Lang::tr{'may'}</option>
+                                       <option $selected{'MONTH'}{'06'} value='06'>$Lang::tr{'june'}</option>
+                                       <option $selected{'MONTH'}{'07'} value='07'>$Lang::tr{'july'}</option>
+                                       <option $selected{'MONTH'}{'08'} value='08'>$Lang::tr{'august'}</option>
+                                       <option $selected{'MONTH'}{'09'} value='09'>$Lang::tr{'september'}</option>
+                                       <option $selected{'MONTH'}{'10'} value='10'>$Lang::tr{'october'}</option>
+                                       <option $selected{'MONTH'}{'11'} value='11'>$Lang::tr{'november'}</option>
+                                       <option $selected{'MONTH'}{'12'} value='12'>$Lang::tr{'december'}</option>
+                                       <option $selected{'MONTH'}{'??'} value='??'>$Lang::tr{'allmsg'}</option>
+                               </select>
+                               <select name='YEAR'>            
+                                       <option $selectYear{'YEAR'}{'2001'} value='2001'>2001</option>
+                                       <option $selectYear{'YEAR'}{'2002'} value='2002'>2002</option>
+                                       <option $selectYear{'YEAR'}{'2003'} value='2003'>2003</option>
+                                       <option $selectYear{'YEAR'}{'2004'} value='2004'>2004</option>
+                                       <option $selectYear{'YEAR'}{'2005'} value='2005'>2005</option>
+                                       <option $selectYear{'YEAR'}{'2006'} value='2006'>2006</option>
+                                       <option $selectYear{'YEAR'}{'????'} value='????'>$Lang::tr{'allmsg'}</option>
+                               </select>
+                               <input type='submit' name='ACTION' value='$Lang::tr{'update'}' />
+                       </form>
+               </td>   
+               <td width='5%' align='center'>
+                       <form method='post' action='/cgi-bin/traffics.cgi'>
+                       <input type='submit' name='ACTION' value=' > ' />
+                       </form>
+               </td>   
+       </tr>
+       </table>
+END
+
+&Header::closebox();
+
+&Header::openbox('100%', 'left', $Lang::tr{'traffics'});
+
+my $dateWidth = '20%';
+my $netWidth = '34%';
+my $inOutWidth = '17%';
+
+# 4 networks
+if ($netsettings{'CONFIG_TYPE'} =~ /^(5|7)$/) {
+       $dateWidth = '12%';
+       $netWidth = '22%';
+       $inOutWidth = '11%';
+}
+# 3 networks
+if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|4|6)$/) {
+       $dateWidth = '16%';
+       $netWidth = '28%';
+       $inOutWidth = '14%';
+}
+
+print <<END;
+       <table width='100%'>
+       <tr>
+               <td width='$dateWidth' align='center' class='boldbase'></td>
+               <td width='$netWidth' align='center' class='boldbase' ><b>$Lang::tr{'trafficgreen'}</b></td>
+END
+
+if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/) {
+       print "<td width='$netWidth' align='center' class='boldbase' ><b>$Lang::tr{'trafficblue'}</b></td>";
+}
+
+if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/) {
+       print "<td width='$netWidth' align='center' class='boldbase' ><b>$Lang::tr{'trafficorange'}</b></td>";
+}
+
+print <<END;
+               <td width='$netWidth' align='center' class='boldbase'><b>$Lang::tr{'trafficred'}</b></td>
+       </tr>
+       </table>
+       <table width='100%'>
+       <tr>
+               <td width='$dateWidth' align='center' class='boldbase'><b>$Lang::tr{'trafficdate'}</b></td>
+               <td width='$inOutWidth' align='center' class='boldbase'><font color='#16A61D'><b>$Lang::tr{'trafficin'}</b></font></td>
+               <td width='$inOutWidth' align='center' class='boldbase'><font color='#16A61D'><b>$Lang::tr{'trafficout'}</b></font></td>
+END
+
+if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/)
+{  
+       print "<td width='$inOutWidth' align='center' class='boldbase'><font color='${Header::colourblue}'><b>$Lang::tr{'trafficin'}</b></font></td>";
+       print "<td width='$inOutWidth' align='center' class='boldbase'><font color='${Header::colourblue}'><b>$Lang::tr{'trafficout'}</b></font></td>";
+} 
+
+if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/)
+{  
+       print "<td width='$inOutWidth' align='center' class='boldbase'><font color='#FF9933'><b>$Lang::tr{'trafficin'}</b></font></td>";
+       print "<td width='$inOutWidth' align='center' class='boldbase'><font color='#FF9933'><b>$Lang::tr{'trafficout'}</b></font></td>";
+} 
+print <<END;
+               <td width='$inOutWidth' align='center' class='boldbase'><font color='#CE1B31'><b>$Lang::tr{'trafficin'}</b></font></td>
+               <td width='$inOutWidth' align='center' class='boldbase'><font color='#CE1B31'><b>$Lang::tr{'trafficout'}</b></font></td>
+       </tr>
+END
+
+my $total_blue_in=0;
+my $total_blue_out=0;
+my $total_green_in=0;
+my $total_green_out=0;
+my $total_orange_in=0;
+my $total_orange_out=0;
+my $total_red_in=0;
+my $total_red_out=0;
+my $lines=0;
+
+my $displayMode = "daily";
+my $startMonth = $cgiparams{'MONTH'};
+my $endMonth = $cgiparams{'MONTH'};
+
+if ($cgiparams{'MONTH'} eq '??') {
+       $displayMode = "monthly";
+       $startMonth = '01';
+       $endMonth = '12';
+}
+
+my $start = "$cgiparams{'YEAR'}$startMonth"."01";
+my $end = "$cgiparams{'YEAR'}$endMonth"."32";
+my %allDaysBytes = ();
+my @allDays = &Traffic::calcTraffic(\%allDaysBytes,$start,$end, $displayMode);
+
+
+foreach (@allDays) {
+       $total_green_in += $allDaysBytes{$_}{${Traffic::green_in}};
+       $total_green_out += $allDaysBytes{$_}{${Traffic::green_out}};
+               
+       if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/)
+       {
+               $total_blue_in += $allDaysBytes{$_}{${Traffic::blue_in}};
+               $total_blue_out += $allDaysBytes{$_}{${Traffic::blue_out}};
+       }
+               
+       if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/)
+       {
+               $total_orange_in += $allDaysBytes{$_}{${Traffic::orange_in}};
+               $total_orange_out += $allDaysBytes{$_}{${Traffic::orange_out}};
+       }
+               
+       $total_red_in += $allDaysBytes{$_}{${Traffic::red_in}};
+       $total_red_out += $allDaysBytes{$_}{${Traffic::red_out}};
+                               
+       if ($lines % 2) {
+               print "<tr bgcolor='${Header::table1colour}'>"; }
+       else {
+               print "<tr bgcolor='${Header::table2colour}'>"; }
+                               
+       printf "<td align='center' nowrap='nowrap'>%s</td>\n", $allDaysBytes{$_}{'Day'};
+       printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::green_in}}/1048576);
+       printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::green_out}}/1048576);
+               
+       if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/)
+       {   
+               printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::blue_in}}/1048576);
+               printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::blue_out}}/1048576);
+       } 
+       if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/)
+       {   
+               printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::orange_in}}/1048576);
+               printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::orange_out}}/1048576);
+       } 
+               
+       printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::red_in}}/1048576);
+       printf "<td align='center' nowrap='nowrap'>%.3f</td></tr>\n", ($allDaysBytes{$_}{${Traffic::red_out}}/1048576);
+               
+       $lines++;
+}
+
+$total_green_in=sprintf("%.2f", ($total_green_in/1048576));
+$total_green_out=sprintf("%.2f", ($total_green_out/1048576));
+$total_blue_in=sprintf("%.2f", ($total_blue_in/1048576));
+$total_blue_out=sprintf("%.2f", ($total_blue_out/1048576));
+$total_orange_in=sprintf("%.2f", ($total_orange_in/1048576));
+$total_orange_out=sprintf("%.2f", ($total_orange_out/1048576));  
+$total_red_in=sprintf("%.2f", ($total_red_in/1048576));
+$total_red_out=sprintf("%.2f", ($total_red_out/1048576));
+       
+if ($lines % 2) {print "<tr bgcolor='${Header::table1colour}'>"; }
+else {print "<tr bgcolor='${Header::table2colour}'>"; }
+  
+print <<END;
+       <td align='center' class='boldbase' height='20' nowrap='nowrap'><b>$Lang::tr{'trafficsum'}</b></td>
+       <td align='center' class='boldbase' nowrap='nowrap'><b>$total_green_in MB</b></td>
+       <td align='center' class='boldbase' nowrap='nowrap'><b>$total_green_out MB</b></td>
+END
+  
+if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/)
+{    
+       print "<td align='center' class='boldbase' nowrap='nowrap'><b>$total_blue_in MB</b></td>";
+       print "<td align='center' class='boldbase' nowrap='nowrap'><b>$total_blue_out MB</b></td>";
+}
+
+if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/)
+{    
+       print "<td align='center' class='boldbase' nowrap='nowrap'><b>$total_orange_in MB</b></td>";
+       print "<td align='center' class='boldbase' nowrap='nowrap'><b>$total_orange_out MB</b></td>";
+}
+     
+print <<END;
+               <td align='center' class='boldbase' nowrap='nowrap'><b>$total_red_in MB</b></td>
+               <td align='center' class='boldbase' nowrap='nowrap'><b>$total_red_out MB</b></td>
+       </tr>
+       </table>
+END
+
+&Header::closebox();
+
+&Header::closebigbox();
+
+&Header::closepage();
diff --git a/html/cgi-bin/traffics.cgi b/html/cgi-bin/traffics.cgi
new file mode 100644 (file)
index 0000000..fe620f4
--- /dev/null
@@ -0,0 +1,357 @@
+#!/usr/bin/perl
+#
+# SmoothWall CGIs
+#
+# This code is distributed under the terms of the GPL
+#
+# (c) The SmoothWall Team
+#
+
+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";
+require '/var/ipfire/net-traffic/net-traffic-lib.pl';
+
+my %cgiparams; 
+my %netsettings;
+
+&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
+
+my @years=("2001","2002","2003","2004","2005","2006","2007","2008","2009");
+
+my @longmonths = ( $Lang::tr{'january'}, $Lang::tr{'february'}, $Lang::tr{'march'},
+       $Lang::tr{'april'}, $Lang::tr{'may'}, $Lang::tr{'june'}, $Lang::tr{'july'}, $Lang::tr{'august'},
+       $Lang::tr{'september'}, $Lang::tr{'october'}, $Lang::tr{'november'},
+       $Lang::tr{'december'} );
+
+my @months = ( 0,1,2,3,4,5,6,7,8,9,10,11 );
+my @days = ( 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 );
+
+my @wday = ($Lang::tr{'wday1'}, $Lang::tr{'wday2'}, $Lang::tr{'wday3'}, $Lang::tr{'wday4'}, $Lang::tr{'wday5'}, $Lang::tr{'wday6'}, $Lang::tr{'wday7'});
+
+my @now = localtime(time);     
+
+$now[5] = $now[5]+1900;
+
+$cgiparams{'STARTDAY'} = 10;  
+$cgiparams{'STOPDAY'} = 11;  
+$cgiparams{'STARTYEAR'} = $now[5];  
+$cgiparams{'STOPYEAR'} = $now[5];  
+
+# this periode started last month
+if ($now[3] < 10) {
+       $cgiparams{'STARTMONTH'} = $now[4]-1;
+       $cgiparams{'STOPMONTH'} = $now[4];
+       # when current month is january we start in last year december
+       if ($now[4] == 0) {
+               $cgiparams{'STARTYEAR'} = $now[5]-1;
+               $cgiparams{'STARTMONTH'} = 11; 
+       }
+}
+else {
+       $cgiparams{'STARTMONTH'} = $now[4];
+       $cgiparams{'STOPMONTH'} = $now[4]+1;
+       # when we are december, this periode ends next year january
+       if ($now[4] == 11) {
+               $cgiparams{'STOPYEAR'} = $now[5]+1; 
+               $cgiparams{'STOPMONTH'} = 0;
+       }
+}
+       
+&Header::getcgihash(\%cgiparams);
+
+&Header::showhttpheaders();
+
+&Header::openpage($Lang::tr{'sstraffic'}, 1, '');
+
+&Header::openbigbox('100%', 'left');
+
+&Header::openbox('100%', 'left', $Lang::tr{'settingsc'});
+
+print <<END;
+<table width='100%' align='center'>
+<tr>
+       <td width='95%' class='base' align='center'>
+               <form method='post' action='/cgi-bin/traffics.cgi'>
+               $Lang::tr{'trafficfrom'}
+               <select name='STARTDAY'>
+END
+
+foreach (@days) 
+{
+       print "\t<option ";
+       if ($_ == $cgiparams{'STARTDAY'}) {
+               print 'selected=\'selected\' '; }
+       print "value='$_'>$_</option>\n";
+}
+print <<END;
+       </select>
+       <select name='STARTMONTH'>
+END
+
+foreach (@months)
+{
+       print "\t<option ";
+       if ($_ == $cgiparams{'STARTMONTH'}) {
+               print 'selected=\'selected\' '; }
+       print "value='$_'>$longmonths[$_]</option>\n";
+}
+
+print <<END;
+       </select>
+       <select name='STARTYEAR'>
+END
+
+for (my $index=0; $index<=$#years; $index++) {
+       print "\t<option ";
+       if ($years[$index] == $cgiparams{'STARTYEAR'}) {
+               print 'selected=\'selected\' '; }
+       print "value='$years[$index]'>$years[$index]</option>\n";
+}
+
+print <<END;
+       </select>
+       $Lang::tr{'trafficto'}
+       <select name='STOPDAY'>
+END
+
+foreach (@days) 
+{
+       print "\t<option ";
+       if ($_ == $cgiparams{'STOPDAY'}) 
+               {
+               print 'selected=\'selected\' '; }
+       print "value='$_'>$_</option>\n";
+}
+
+print <<END;
+       </select>
+       <select name='STOPMONTH'>
+END
+
+foreach (@months)
+{
+       print "\t<option ";
+       if ($_ == $cgiparams{'STOPMONTH'}) {
+               print 'selected=\'selected\' '; }
+       print "value='$_'>$longmonths[$_]</option>\n";
+}
+
+print <<END;
+       </select>
+       <select name='STOPYEAR'>
+END
+
+for (my $index = 0; $index <=$#years; $index++) {
+       print "\t<option ";
+       if ($years[$index] == $cgiparams{'STOPYEAR'}) {
+               print 'selected=\'selected\' '; }
+       print "value='$years[$index]'>$years[$index]</option>\n";
+}
+
+
+print <<END;
+                       </select>
+                       <input type='submit' name='ACTION' value='$Lang::tr{'update'}' />
+               </form> 
+       </td>        
+       <td width='5%' align='center'>
+               <form method='post' action='/cgi-bin/traffic.cgi'>
+               <input type='submit' name='ACTION' value=' > ' />
+               </form>
+       </td>   
+       </tr>
+       </table>
+END
+
+&Header::closebox();
+
+&Header::openbox('100%', 'left', $Lang::tr{'traffics'});
+
+my $dateWidth = '20%';
+my $netWidth = '34%';
+my $inOutWidth = '17%';
+
+# 4 networks
+if ($netsettings{'CONFIG_TYPE'} =~ /^(5|7)$/) {
+       $dateWidth = '12%';
+       $netWidth = '22%';
+       $inOutWidth = '11%';
+}
+# 3 networks
+if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|4|6)$/) {
+       $dateWidth = '16%';
+       $netWidth = '28%';
+       $inOutWidth = '14%';
+}
+
+print <<END;
+       <table width='100%'>
+       <tr>
+               <td width='$dateWidth' align='center' class='boldbase'></td>
+               <td width='$netWidth' align='center' class='boldbase' ><b>$Lang::tr{'trafficgreen'}</b></td>
+END
+
+if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/) {
+       print "<td width='$netWidth' align='center' class='boldbase' ><b>$Lang::tr{'trafficblue'}</b></td>";
+}
+
+if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/) {
+       print "<td width='$netWidth' align='center' class='boldbase' ><b>$Lang::tr{'trafficorange'}</b></td>";
+}
+
+print <<END;
+               <td width='$netWidth' align='center' class='boldbase'><b>$Lang::tr{'trafficred'}</b></td>
+       </tr>
+       </table>
+       <table width='100%'>
+       <tr>
+               <td width='$dateWidth' align='center' class='boldbase'><b>$Lang::tr{'trafficdate'}</b></td>
+               <td width='$inOutWidth' align='center' class='boldbase'><font color='#16A61D'><b>$Lang::tr{'trafficin'}</b></font></td>
+               <td width='$inOutWidth' align='center' class='boldbase'><font color='#16A61D'><b>$Lang::tr{'trafficout'}</b></font></td>
+END
+
+if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/)
+{  
+       print "<td width='$inOutWidth' align='center' class='boldbase'><font color='${Header::colourblue}'><b>$Lang::tr{'trafficin'}</b></font></td>";
+       print "<td width='$inOutWidth' align='center' class='boldbase'><font color='${Header::colourblue}'><b>$Lang::tr{'trafficout'}</b></font></td>";
+} 
+
+if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/)
+{  
+       print "<td width='$inOutWidth' align='center' class='boldbase'><font color='#FF9933'><b>$Lang::tr{'trafficin'}</b></font></td>";
+       print "<td width='$inOutWidth' align='center' class='boldbase'><font color='#FF9933'><b>$Lang::tr{'trafficout'}</b></font></td>";
+} 
+print <<END;
+               <td width='$inOutWidth' align='center' class='boldbase'><font color='#CE1B31'><b>$Lang::tr{'trafficin'}</b></font></td>
+               <td width='$inOutWidth' align='center' class='boldbase'><font color='#CE1B31'><b>$Lang::tr{'trafficout'}</b></font></td>
+       </tr>
+END
+
+my $total_blue_in=0;
+my $total_blue_out=0;
+my $total_green_in=0;
+my $total_green_out=0;
+my $total_orange_in=0;
+my $total_orange_out=0;
+my $total_red_in=0;
+my $total_red_out=0;
+my $lines=0;
+
+
+my $startyear = $cgiparams{'STARTYEAR'};
+my $stopyear = $cgiparams{'STOPYEAR'};
+
+my $startMonth = $cgiparams{'STARTMONTH'}+1;
+$startMonth = $startMonth < 10 ? $startMonth = "0".$startMonth : $startMonth;
+
+my $endMonth = $cgiparams{'STOPMONTH'}+1;
+$endMonth = $endMonth < 10 ? $endMonth = "0".$endMonth : $endMonth;
+
+my $startDay = $cgiparams{'STARTDAY'};
+$startDay = $startDay < 10 ? $startDay = "0".$startDay : $startDay;
+
+my $endDay = $cgiparams{'STOPDAY'}+1;
+$endDay = $endDay < 10 ? $endDay = "0".$endDay : $endDay;
+
+my $displayMode = "daily_multi";
+my $start = $startyear.$startMonth.$startDay;
+my $end = $stopyear.$endMonth.$endDay;
+
+my %allDaysBytes = ();
+my @allDays = &Traffic::calcTraffic(\%allDaysBytes,$start,$end, $displayMode);
+
+
+foreach (@allDays) {
+       $total_green_in += $allDaysBytes{$_}{${Traffic::green_in}};
+       $total_green_out += $allDaysBytes{$_}{${Traffic::green_out}};
+               
+       if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/)
+       {
+               $total_blue_in += $allDaysBytes{$_}{${Traffic::blue_in}};
+               $total_blue_out += $allDaysBytes{$_}{${Traffic::blue_out}};
+       }
+               
+       if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/)
+       {
+               $total_orange_in += $allDaysBytes{$_}{${Traffic::orange_in}};
+               $total_orange_out += $allDaysBytes{$_}{${Traffic::orange_out}};
+       }
+               
+       $total_red_in += $allDaysBytes{$_}{${Traffic::red_in}};
+       $total_red_out += $allDaysBytes{$_}{${Traffic::red_out}};
+                               
+       if ($lines % 2) {
+               print "<tr bgcolor='${Header::table1colour}'>"; }
+       else {
+               print "<tr bgcolor='${Header::table2colour}'>"; }
+                               
+       printf "<td align='center' nowrap='nowrap'>%s</td>\n", $allDaysBytes{$_}{'Day'};
+       printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::green_in}}/1048576);
+       printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::green_out}}/1048576);
+               
+       if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/)
+       {   
+               printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::blue_in}}/1048576);
+               printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::blue_out}}/1048576);
+       } 
+       if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/)
+       {   
+               printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::orange_in}}/1048576);
+               printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::orange_out}}/1048576);
+       } 
+               
+       printf "<td align='center' nowrap='nowrap'>%.3f</td>\n", ($allDaysBytes{$_}{${Traffic::red_in}}/1048576);
+       printf "<td align='center' nowrap='nowrap'>%.3f</td></tr>\n", ($allDaysBytes{$_}{${Traffic::red_out}}/1048576);
+               
+       $lines++;
+}
+
+$total_green_in=sprintf("%.2f", ($total_green_in/1048576));
+$total_green_out=sprintf("%.2f", ($total_green_out/1048576));
+$total_blue_in=sprintf("%.2f", ($total_blue_in/1048576));
+$total_blue_out=sprintf("%.2f", ($total_blue_out/1048576));
+$total_orange_in=sprintf("%.2f", ($total_orange_in/1048576));
+$total_orange_out=sprintf("%.2f", ($total_orange_out/1048576));  
+$total_red_in=sprintf("%.2f", ($total_red_in/1048576));
+$total_red_out=sprintf("%.2f", ($total_red_out/1048576));
+       
+if ($lines % 2) {print "<tr bgcolor='${Header::table1colour}'>"; }
+else {print "<tr bgcolor='${Header::table2colour}'>"; }
+  
+print <<END;
+       <td align='center' class='boldbase' height='20' nowrap='nowrap'><b>$Lang::tr{'trafficsum'}</b></td>
+       <td align='center' class='boldbase' nowrap='nowrap'><b>$total_green_in MB</b></td>
+       <td align='center' class='boldbase' nowrap='nowrap'><b>$total_green_out MB</b></td>
+END
+  
+if ($netsettings{'CONFIG_TYPE'} =~ /^(4|5|6|7)$/)
+{    
+       print "<td align='center' class='boldbase' nowrap='nowrap'><b>$total_blue_in MB</b></td>";
+       print "<td align='center' class='boldbase' nowrap='nowrap'><b>$total_blue_out MB</b></td>";
+}
+
+if ($netsettings{'CONFIG_TYPE'} =~ /^(1|3|5|7)$/)
+{    
+       print "<td align='center' class='boldbase' nowrap='nowrap'><b>$total_orange_in MB</b></td>";
+       print "<td align='center' class='boldbase' nowrap='nowrap'><b>$total_orange_out MB</b></td>";
+}
+     
+print <<END;
+               <td align='center' class='boldbase' nowrap='nowrap'><b>$total_red_in MB</b></td>
+               <td align='center' class='boldbase' nowrap='nowrap'><b>$total_red_out MB</b></td>
+       </tr>
+       </table>
+END
+
+&Header::closebox();
+
+&Header::closebigbox();
+
+&Header::closepage();
diff --git a/html/html/ipcop_big.gif b/html/html/ipcop_big.gif
deleted file mode 100644 (file)
index 5d393cf..0000000
Binary files a/html/html/ipcop_big.gif and /dev/null differ
index afc8990..6f4d46b 100644 (file)
 'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Sie können nur eine Roadwarrior Verbindung definieren, wenn die Pre-shared Schlüsselauthentifizierung verwendet wird.<br/>Entweder haben Sie bereits eine Roadwarrior Verbindung mit Pre-shared Schlüsselauthentifizierung, oder Sie versuchen gerade eine hinzuzufügen.', 
 'your department' => 'Ihre Abteilung', 
 'your e-mail' => 'Ihre E-mail Adresse', 
+'dial profile' => 'Verbinden mit Profil',
+'quick control' => 'Quick Control',
+'allmsg' => 'zeige alles',
+'selecttraffic' => 'Wähle den Nutzungs Zeitraum:',
+'sstraffic' => 'Net-Traffic',
+'trafficblue' => 'WLAN',
+'trafficdate' => 'Datum',
+'trafficfrom' => 'Von',
+'trafficgreen' => 'Internes Netz',
+'trafficin' => 'Input',
+'trafficorange' => 'DMZ',
+'trafficout' => 'Output',
+'trafficred' => 'Internet',
+'traffics' => 'Nutzungs-überblick:',
+'trafficsum' => 'Gesamt',
+'trafficto' => 'Bis',
+
 ); 
  
\ No newline at end of file
index 0976b3f..966b6fb 100644 (file)
-# English (en) Data File \r
-#\r
-# This file is part of the IPCop Firewall.\r
-# \r
-# IPCop is free software; you can redistribute it and/or modify\r
-# it under the terms of the GNU General Public License as published by\r
-# the Free Software Foundation; either version 2 of the License, or\r
-# (at your option) any later version.\r
-# \r
-# IPCop is distributed in the hope that it will be useful,\r
-# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-# GNU General Public License for more details.\r
-# \r
-# You should have received a copy of the GNU General Public License\r
-# along with IPCop; if not, write to the Free Software\r
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
-# \r
-# (c) The SmoothWall Team\r
-#  \r
-#\r
-\r
-%tr = ( \r
-%tr, \r
\r
-'a ca certificate with this name already exists' => 'A CA Certificate with this name already exists.', \r
-'a connection with this common name already exists' => 'A connection with this common name already exists.', \r
-'a connection with this name already exists' => 'A connection with this name already exists.', \r
-'access allowed' => 'Access allowed from:', \r
-'access refused with this oinkcode' => 'Access refused with this Oink Code', \r
-'action' => 'Action', \r
-'add' => 'Add', \r
-'add a host' => 'Add a host:', \r
-'add a new rule' => 'Add a new rule:', \r
-'add device' => 'Add device', \r
-'add network' => 'Add network', \r
-'add new alias' => 'Add a new alias:', \r
-'add new lease' => 'Add a new fixed lease', \r
-'add service' => 'Add service', \r
-'add xtaccess' => 'Add External Access', \r
-'added from dhcp lease list' => 'added from DHCP lease list', \r
-'admin user password has been changed' => 'Admin user password has been changed.', \r
-'administrator user password' => 'Admin user password:', \r
-'adsl settings' => 'ADSL settings', \r
-'advanced' => 'Advanced', \r
-'again' => 'Again:', \r
-'alcatelusb help' => 'To utilise the Speedtouch 330 or Speedtouch USB modem you must upload the firmware to your IPCop box. Please download the <b>Embedded Firmware</b> package for SpeedTouch 330 from speedtouch.com, unzip and then upload the appropriate file for your modem : KQD6_3.xxx when Rev<4 or ZZZL_3.xxx for Rev=4 using the form below.', \r
-'alcatelusb upload' => 'Upload Speedtouch USB Firmware', \r
-'alias ip' => 'Alias IP', \r
-'aliases' => 'Aliases', \r
-'aliases not active' => 'Aliases will not be active unless your RED interface is STATIC', \r
-'all' => 'All', \r
-'all interfaces' => 'All Interfaces', \r
-'all updates installed' => 'All updates installed', \r
-'alt dialup' => 'Dialup', \r
-'alt home' => 'Home', \r
-'alt information' => 'Information', \r
-'alt logs' => 'Logs', \r
-'alt services' => 'Services', \r
-'alt system' => 'System', \r
-'alt vpn' => 'VPNs', \r
-'and' => 'And', \r
-'ansi t1.483' => 'TO BE REMOVED', \r
-'apply' => 'Apply now', \r
-'april' => 'April', \r
-'archive not exist' => 'Configuration archive does not exist', \r
-'are you sure' => 'Are you sure?', \r
-'arp table entries' => 'ARP Table Entries:', \r
-'august' => 'August', \r
-'authentication' => 'Authentication:', \r
-'automatic' => 'Automatic', \r
-'available updates' => 'Available updates:', \r
-'average' => 'Average', \r
-'avoid dod' => 'Do not use this option with Dial on Demand! Mainly used if your IPCop is behind a router. Your RED IP must be inside one of the three reserved network numbers e.g. 10/8, 172.16/12, 192.168/16', \r
-'back' => 'BACK', \r
-'backup' => 'Backup', \r
-'backup config floppy' => 'Backup Configuration - Floppy Disk', \r
-'backup configuration' => 'Backup Configuration:', \r
-'backup sets' => 'Backup Sets', \r
-'backup to floppy' => 'Backup to floppy', \r
-'backupprofile' => 'In case reconnection fails, switch to profile', \r
-'bad characters in script field' => 'Bad characters in script field', \r
-'bad characters in the telephone number field' => 'Bad characters in the telephone number field.', \r
-'bad destination range' => 'The Destination port range has a first value that is greater than or equal to the second value.', \r
-'bad ignore filter' => 'Bad ignore filter:', \r
-'bad return code' => 'Helper program returned error code', \r
-'bad source range' => 'The Source port range has a first value that is greater than or equal to the second value.', \r
-'beep when ppp connects or disconnects' => 'Beep when IPCop connects or disconnects', \r
-'behind a proxy' => 'Behind a proxy:', \r
-'bewan adsl pci st' => 'TO BE REMOVED', \r
-'bewan adsl usb' => 'TO BE REMOVED', \r
-'blue' => 'BLUE', \r
-'blue access' => 'Blue Access', \r
-'blue interface' => 'Blue Interface', \r
-'broadcast' => 'Broadcast', \r
-'broken pipe' => 'Broken pipe', \r
-'buffered memory' => 'Buffered Memory', \r
-'buffers' => 'buffers', \r
-'bytes per second' => 'Bytes per Second', \r
-'ca certificate' => 'CA Certificate', \r
-'ca name' => 'CA Name', \r
-'cache management' => 'Cache management', \r
-'cache size' => 'Cache size (MB):', \r
-'cached' => 'cached', \r
-'cached memory' => 'Cached Memory', \r
-'cancel' => 'Cancel', \r
-'cannot enable both nat traversal and compression' => 'Cannot enable both NAT Traversal and Compression.', \r
-'cannot enable ntp without specifying primary' => 'Cannot enable NTP without specifying primary.', \r
-'cannot specify secondary dns without specifying primary' => 'Cannot specify secondary DNS without specifying primary.', \r
-'cannot specify secondary ntp without specifying primary' => 'Cannot specify Secondary NTP Server without specifying Primary', \r
-'cannot specify secondary wins without specifying primary' => 'Cannot specify secondary WINS without specifying primary.', \r
-'cant change certificates' => 'Can\'t change certificates.', \r
-'cant enable xtaccess' => 'The associated port forwarding rule is disabled, therefore you cannot enable external access for this rule.', \r
-'cant start openssl' => 'Can\'t start OpenSSL', \r
-'caps all' => 'ALL', \r
-'capsclosed' => 'CLOSED', \r
-'capsopen' => 'OPEN', \r
-'capswarning' => 'WARNING', \r
-'cert' => 'Certificate', \r
-'certificate' => 'Certificate', \r
-'certificate authorities' => 'Certificate Authorities', \r
-'certificate does not have a valid ca associated with it' => 'Certificate does not have a valid CA associated with it.', \r
-'certificate file move failed' => 'Certificate file move failed', \r
-'cfg restart' => 'A reboot is suggested after restoring a configuration archive.', \r
-'chain' => 'Chain', \r
-'change passwords' => 'Change passwords', \r
-'check vpn lr' => 'Check', \r
-'city' => 'City', \r
-'clear cache' => 'Clear Cache', \r
-'clenabled' => 'Provide time to local network', \r
-'click to disable' => 'Enabled (click to disable)', \r
-'click to enable' => 'Disabled (click to enable)', \r
-'clock has not been synchronized' => 'Clock has not been synchronized', \r
-'clock last synchronized at' => 'Clock was last synchronized at', \r
-'common name' => 'Common Name', \r
-'compression' => 'Compression:', \r
-'computer to modem rate' => 'Computer to modem rate:', \r
-'concentrator name' => 'Concentrator name:', \r
-'confirmation' => 'confirmation', \r
-'connect on ipcop restart' => 'Connect on IPCop restart:', \r
-'connect the modem' => 'Connect the modem', \r
-'connect timeout' => 'Connect timeout:', \r
-'connected' => 'Connected', \r
-'connecting' => 'Connecting...', \r
-'connection' => 'Connection', \r
-'connection debugging' => 'Connection debugging', \r
-'connection status and controlc' => 'Connection status and control:', \r
-'connection tracking' => 'IPTables Connection Tracking', \r
-'connection type' => 'Connection Type', \r
-'connection type is invalid' => 'Connection type is invalid.', \r
-'connections' => 'Connections', \r
-'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'connections are associated with this CA.  Deleting the CA will delete these connections as well.', \r
-'could not be opened' => 'could not be opened', \r
-'could not connect to' => 'Could not connect to', \r
-'could not connect to www ipcop org' => 'Could not connect to www.ipcop.org', \r
-'could not create directory' => 'Could not create directory.', \r
-'could not download latest patch list' => 'Could not download latest patch list (not connected).', \r
-'could not download latest updates' => 'Could not download latest updates.', \r
-'could not download the available updates list' => 'Could not download the available updates list.', \r
-'could not open available updates file' => 'Could not open available updates file.', \r
-'could not open installed updates file' => 'Could not open installed updates file', \r
-'could not open update information file' => 'Could not open update information file.  The update file is corrupt.', \r
-'could not retrieve common name from certificate' => 'Could not retrieve common name from certificate.', \r
-'country' => 'Country', \r
-'cpu usage per' => 'CPU Usage per', \r
-'create' => 'Create', \r
-'credits' => 'Credits', \r
-'cron server' => 'CRON server', \r
-'current' => 'Current', \r
-'current aliases' => 'Current aliases:', \r
-'current dhcp leases on blue' => 'Current DHCP leases on Blue', \r
-'current dynamic leases' => 'Current dynamic leases', \r
-'current fixed leases' => 'Current fixed leases', \r
-'current hosts' => 'Current hosts:', \r
-'current profile' => 'Current profile:', \r
-'current rules' => 'Current rules:', \r
-'custom networks' => 'Custom networks', \r
-'custom services' => 'Custom services', \r
-'dat without key' => 'An encrypted archive cannot be restored without the key.', \r
-'date' => 'Date', \r
-'date not in logs' => 'No (or only partial) logs exist for the day queried', \r
-'day' => 'Day', \r
-'day after' => 'Day after', \r
-'day before' => 'Day before', \r
-'days' => 'days', \r
-'ddns hostname added' => 'Dynamic DNS hostname added', \r
-'ddns hostname modified' => 'Dynamic DNS hostname modified', \r
-'ddns hostname removed' => 'Dynamic DNS hostname removed', \r
-'ddns minimize updates' => 'Minimize updates: before an update, compares the dns IP for hostname "[host.]domain" against RED IP.', \r
-'ddns noip prefix' => 'To use no-ip in group mode, prefix hostname with <b>%</b>', \r
-'december' => 'December', \r
-'def lease time' => 'Default Lease Time', \r
-'default lease time' => 'Default lease time (mins):', \r
-'default networks' => 'Default networks', \r
-'default renewal time' => 'Default Renewal Time', \r
-'default services' => 'Default services', \r
-'delete' => 'Delete', \r
-'demon login script' => 'Demon login script', \r
-'description' => 'Description', \r
-'dest ip and port' => 'Dest. IP:Port', \r
-'destination' => 'Destination', \r
-'destination ip' => 'Destination IP', \r
-'destination ip bad' => 'Invalid destination IP', \r
-'destination ip or net' => 'Destination IP or Net', \r
-'destination net' => 'Destination Net', \r
-'destination port' => 'Destination port', \r
-'destination port numbers' => 'Destination port must be a valid port number or port range.', \r
-'destination port overlaps' => 'Destination port range overlaps an existing port range.', \r
-'detail level' => 'Detail level', \r
-'device' => 'Device', \r
-'devices on blue' => 'Devices on Blue', \r
-'dhcp advopt add' => 'Add a DHCP Option', \r
-'dhcp advopt added' => 'DHCP Option added', \r
-'dhcp advopt blank value' => 'DHCP Option value cannot be empty.', \r
-'dhcp advopt custom definition' => 'Your custom option definition', \r
-'dhcp advopt definition' => 'Definition', \r
-'dhcp advopt definition exists' => 'Definition option already exists. You can only edit or remove it.', \r
-'dhcp advopt edit' => 'Edit a DHCP Option', \r
-'dhcp advopt help' => 'List options', \r
-'dhcp advopt list' => 'Additional DHCP Options', \r
-'dhcp advopt modified' => 'DHCP Option modified', \r
-'dhcp advopt name' => 'Option name', \r
-'dhcp advopt removed' => 'DHCP Option removed', \r
-'dhcp advopt scope' => 'Option scope', \r
-'dhcp advopt scope global' => 'Global', \r
-'dhcp advopt scope help' => 'Global scope or limit scope to checked interfaces.', \r
-'dhcp advopt unknown' => 'DHCP Option name not recognized', \r
-'dhcp advopt value' => 'Option value', \r
-'dhcp allow bootp' => 'Allow bootp clients', \r
-'dhcp configuration' => 'DHCP configuration', \r
-'dhcp mode' => 'DHCP', \r
-'dhcp server' => 'DHCP Server', \r
-'dhcp server disabled' => 'DHCP server disabled.  Stopped.', \r
-'dhcp server disabled on blue interface' => 'DHCP server disabled on BLUE interface', \r
-'dhcp server enabled' => 'DHCP server enabled.  Restarting.', \r
-'dhcp server enabled on blue interface' => 'DHCP server enabled on BLUE interface', \r
-'dial' => 'Connect', \r
-'dial user password' => 'Dial user password:', \r
-'dial user password has been changed' => 'Dial user password has been changed.', \r
-'dialing mode' => 'Dialing mode:', \r
-'dialup settings' => 'Dialup Settings', \r
-'disk access per' => 'Disk Access per', \r
-'disk usage' => 'Disk usage:', \r
-'display' => 'Display', \r
-'display hostname in window title' => 'Display hostname in window title', \r
-'dmz' => 'DMZ', \r
-'dmz pinhole configuration' => 'DMZ pinhole configuration', \r
-'dmz pinhole rule added' => 'DMZ pinhole rule added; restarting DMZ pinhole', \r
-'dmz pinhole rule removed' => 'DMZ pinhole rule removed; restarting DMZ pinhole', \r
-'dmzpinholes for same net not necessary' => 'DMZ Pinholes are not necessary for same net. Select different source or destination net.', \r
-'dns check failed' => 'DNS check failed', \r
-'dns proxy server' => 'DNS proxy server', \r
-'do not log this port list' => 'Drop this port list just before they are logged (reduces log size)', \r
-'dod' => 'Dial on Demand', \r
-'dod for dns' => 'Dial on Demand for DNS:', \r
-'dod not compatible with ddns' => 'Dial on demand is not compatible with dynamic dns services', \r
-'dod waiting' => 'Dial on Demand waiting', \r
-'domain' => 'Domain', \r
-'domain name' => 'Domain name', \r
-'domain name suffix' => 'Domain name suffix:', \r
-'domain not set' => 'Domain not set.', \r
-'downlink speed' => 'Downlink speed (kbit/sec)', \r
-'download ca certificate' => 'Download CA Certificate', \r
-'download certificate' => 'Download Certificate', \r
-'download host certificate' => 'Download Host Certificate', \r
-'download new ruleset' => 'Download new ruleset', \r
-'download pkcs12 file' => 'Download PKCS12 File', \r
-'download root certificate' => 'Download Root Certificate', \r
-'dpd action' => 'Dead Peer Detection action', \r
-'driver' => 'Driver', \r
-'dst port' => 'Dst Port', \r
-'dstprt range overlaps' => 'Destination port range overlaps an already defined port.', \r
-'dstprt within existing' => 'Destination port is within an already defined port range.', \r
-'duplicate ip' => 'Duplicate IP address entered', \r
-'duplicate ip bold' => 'Duplicate addresses are in <b>bold</b>', \r
-'duplicate mac' => 'Duplicate MAC address entered', \r
-'duplicate name' => 'That name is already being used, please choose another.', \r
-'dyn dns source choice' => 'Dynamic DNS provider(s) will receive an IP address for this IPCop from:', \r
-'dynamic dns' => 'Dynamic DNS', \r
-'dynamic dns client' => 'Dynamic DNS Client', \r
-'e-mail address too long' => 'E-mail address is too long; it should not be longer than 40 characters.', \r
-'eciadsl help' => 'To utilise the ECI ADSL modem you must upload a synch.bin file to your IPCop box. Please download the file from the ECIADSL website and then upload the file <b>synch.bin</b> using the form below.', \r
-'eciadsl upload' => 'Upload ECI ADSL Synch.bin File', \r
-'edit' => 'Edit', \r
-'edit a rule' => 'Edit an existing rule:', \r
-'edit advanced settings when done' => 'Edit advanced settings when done.', \r
-'edit an existing alias' => 'Edit an existing alias', \r
-'edit an existing host' => 'Edit an existing host', \r
-'edit an existing lease' => 'Edit an existing lease', \r
-'edit device' => 'Edit device', \r
-'edit hosts' => 'Edit Hosts', \r
-'edit network' => 'Edit network', \r
-'edit service' => 'Edit service', \r
-'eg' => 'e.g:',\r
-'empty' => 'Empty', \r
-'enable ignore filter' => 'Enable ignore filter', \r
-'enable javascript' => 'Enable Javascript', \r
-'enable wildcards' => 'Enable wildcards:', \r
-'enabled' => 'Enabled:', \r
-'enabled on' => 'Enabled on', \r
-'enabledtitle' => 'Enabled', \r
-'encapsulation' => 'Encapsulation', \r
-'encrypted' => 'Encrypted', \r
-'end address' => 'End address:', \r
-'err bk 1' => 'Error creating archive', \r
-'err bk 2 key' => 'Error creating key file', \r
-'err bk 3 tar' => 'Error appending files to archive', \r
-'err bk 4 gz' => 'Error compressing archive', \r
-'err bk 5 encrypt' => 'Error encrypting archive', \r
-'err rs 1' => 'Error restoring archive', \r
-'err rs 6 decrypt' => 'Error decrypting archive', \r
-'err rs 7 untartst' => 'Invalid decrypted archive', \r
-'err rs 8 untar' => 'Error untarring archive', \r
-'error messages' => 'Error messages:', \r
-'esp encryption' => 'ESP Encryption:', \r
-'esp grouptype' => 'ESP Grouptype:', \r
-'esp integrity' => 'ESP Integrity:', \r
-'esp keylife' => 'ESP Keylife:', \r
-'esp keylife should be between 1 and 24 hours' => 'ESP Keylife should be between 1 and 24 hours.', \r
-'every' => 'Every', \r
-'excluding buffers and cache' => '-/+ buffers/cache', \r
-'expected' => 'Expected', \r
-'expires' => 'Expires', \r
-'export' => 'Export', \r
-'external access' => 'External Access', \r
-'external access configuration' => 'External access configuration', \r
-'external access rule added' => 'External access rule added; restarting access controller', \r
-'external access rule removed' => ' External access rule removed; restarting access controller', \r
-'external aliases configuration' => 'External aliases configuration', \r
-'february' => 'February', \r
-'fetch ip from' => 'Guess the real public IP with help of an external server', \r
-'filename' => 'Filename', \r
-'filesystem full' => 'Filesystem full', \r
-'firewall' => 'Firewall', \r
-'firewall hits' => 'Total number of firewall hits for', \r
-'firewall log' => 'Firewall log', \r
-'firewall log viewer' => 'Firewall Log Viewer', \r
-'firewall logs' => 'Firewall Logs', \r
-'firmware' => 'Firmware', \r
-'firmware upload' => 'Upload Firmware/Drivers', \r
-'fixed ip lease added' => 'Fixed IP lease added', \r
-'fixed ip lease modified' => 'Fixed IP lease modified', \r
-'fixed ip lease removed' => 'Fixed IP lease removed', \r
-'force update' => 'Force update', \r
-'forwarding rule added' => 'Forwarding rule added; restarting forwarder', \r
-'forwarding rule removed' => 'Forwarding rule removed; restarting forwarder', \r
-'forwarding rule updated' => 'Forwarding rule updated; restarting forwarder', \r
-'free' => 'Free', \r
-'free memory' => 'Free Memory', \r
-'free swap' => 'Free Swap', \r
-'friday' => 'Friday', \r
-'fritzdsl help' => 'To utilise one of Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modem, you must upload a package to your IPCop box. Please download the tarball corresponding to your version from the IPCop Website and then upload the entire <b>fcdsl-(your_version).tgz</b> using the form below.', \r
-'fritzdsl upload' => 'Upload Fritz!DSL Driver', \r
-'from' => 'From', \r
-'g.dtm' => 'TO BE REMOVED', \r
-'g.lite' => 'TO BE REMOVED', \r
-'gateway' => 'Gateway', \r
-'gateway ip' => 'Gateway IP', \r
-'generate a certificate' => 'Generate a certificate:', \r
-'generate root/host certificates' => 'Generate Root/Host Certificates', \r
-'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generating the root and host certificates may take a long time.  It can take up to several minutes on older hardware. Please be patient.', \r
-'global settings' => 'Global settings', \r
-'graph' => 'Graph', \r
-'graph per' => 'Graph per', \r
-'green' => 'GREEN', \r
-'green interface' => 'Green Interface', \r
-'gui settings' => 'GUI Settings', \r
-'gz with key' => 'Only an encrypted archive can be restored on this machine.', \r
-'hangup' => 'Disconnect', \r
-'hangup string' => 'Hangup:', \r
-'high' => 'High', \r
-'high memory usage' => 'High memory usage', \r
-'holdoff' => 'Holdoff time (in seconds)', \r
-'host' => 'Host', \r
-'host certificate' => 'Host Certificate', \r
-'host configuration' => 'Host Configuration', \r
-'host ip' => 'Host IP address', \r
-'host to net vpn' => 'Host-to-Net Virtual Private Network (RoadWarrior)', \r
-'hostname' => 'Hostname', \r
-'hostname and domain already in use' => 'Hostname and domain already in use.', \r
-'hostname cant be empty' => 'Hostname can\'t be empty.', \r
-'hostname not set' => 'Hostname not set.', \r
-'hosts config added' => 'hosts config added', \r
-'hosts config changed' => 'hosts config changed', \r
-'hours' => 'hours', \r
-'hours2' => 'Hours', \r
-'ibod for dual isdn only' => 'iBOD can only be used with Dual ISDN.', \r
-'icmp selected but no type' => 'ICMP selected for protocol, but no ICMP type specified.', \r
-'icmp type' => 'ICMP Type', \r
-'id' => 'ID', \r
-'idle' => 'Idle', \r
-'idle cpu' => 'Idle CPU', \r
-'idle cpu usage' => 'Idle CPU Usage', \r
-'idle timeout' => 'Idle timeout (mins; 0 to disable):', \r
-'idle timeout not set' => 'Idle timeout not set.', \r
-'ids log viewer' => 'IDS log viewer', \r
-'ids logs' => 'IDS Logs', \r
-'ids rules license' => 'To utilize Sourcefire VRT Certified Rules, you need to register on', \r
-'ids rules license2' => 'Acknowledge the license, receive your password by email, and connect to the site. Go to', \r
-'ids rules license3' => 'press the \'Get Code\' button at the bottom and copy the 40 character Oink Code into the field below.', \r
-'ids rules update' => 'Snort rules update', \r
-'iface' => 'Iface', \r
-'ignore filter' => 'Ignore filter', \r
-'ike encryption' => 'IKE Encryption:', \r
-'ike grouptype' => 'IKE Grouptype:', \r
-'ike integrity' => 'IKE Integrity:', \r
-'ike lifetime' => 'IKE Lifetime:', \r
-'ike lifetime should be between 1 and 8 hours' => 'IKE lifetime should be between 1 and 8 hours.', \r
-'import' => 'Import', \r
-'in' => 'In', \r
-'incoming traffic in bytes per second' => 'Incoming Traffic in Bytes per Second', \r
-'info' => 'Info', \r
-'init string' => 'Init:', \r
-'insert floppy' => 'To backup to floppy, insert a formatted floppy into the drive on IPCop and click <i>Backup to floppy</i> to backup the system configuration. Please examine the results carefully to make sure the backup completed successfully. This can take a while to complete, so please be patient.<p>', \r
-'install new update' => 'Install new update:', \r
-'installed' => 'Installed', \r
-'installed updates' => 'Installed updates:', \r
-'instant update' => 'Instant Update', \r
-'interface' => 'Interface', \r
-'interfaces' => 'Interfaces:', \r
-'internet' => 'INTERNET', \r
-'intrusion detection' => 'Intrusion Detection', \r
-'intrusion detection system' => 'Intrusion Detection System', \r
-'intrusion detection system log viewer' => 'Intrusion Detection System Log Viewer', \r
-'intrusion detection system2' => 'Intrusion Detection System:', \r
-'invalid broadcast ip' => 'Invalid broadcast IP', \r
-'invalid cache size' => 'Invalid cache size.', \r
-'invalid characters found in pre-shared key' => 'Invalid characters found in pre-shared key.', \r
-'invalid date entered' => 'Invalid date entered.', \r
-'invalid default lease time' => 'Invalid default lease time.', \r
-'invalid domain name' => 'Invalid domain name.', \r
-'invalid downlink speed' => 'Invalid downlink speed.', \r
-'invalid end address' => 'Invalid end address.', \r
-'invalid fixed ip address' => 'Invalid fixed IP address', \r
-'invalid fixed mac address' => 'Invalid fixed MAC address', \r
-'invalid hostname' => 'Invalid hostname.', \r
-'invalid input' => 'Invalid input', \r
-'invalid input for authentication method' => 'Invalid input for authentication method.', \r
-'invalid input for city' => 'Invalid input for city.', \r
-'invalid input for country' => 'Invalid input for country.', \r
-'invalid input for department' => 'Invalid input for department.', \r
-'invalid input for e-mail address' => 'Invalid input for e-mail address.', \r
-'invalid input for esp keylife' => 'Invalid input for ESP Keylife', \r
-'invalid input for hostname' => 'Invalid input for hostname.', \r
-'invalid input for ike lifetime' => 'Invalid input for IKE lifetime', \r
-'invalid input for name' => 'Invalid input for user\'s full name or system hostname', \r
-'invalid input for oink code' => 'Invalid input for Oink code', \r
-'invalid input for organization' => 'Invalid input for organization', \r
-'invalid input for remote host/ip' => 'Invalid input for remote host/ip.', \r
-'invalid input for state or province' => 'Invalid input for state or province.', \r
-'invalid ip' => 'Invalid IP Address', \r
-'invalid keep time' => 'Keep time must be a valid number', \r
-'invalid key' => 'Invalid key.', \r
-'invalid loaded file' => 'Invalid loaded file', \r
-'invalid logserver address' => 'Invalid syslogd server address', \r
-'invalid max lease time' => 'Invalid max lease time.', \r
-'invalid maximum incoming size' => 'Invalid maximum incoming size.', \r
-'invalid maximum object size' => 'Invalid maximum object size.', \r
-'invalid maximum outgoing size' => 'Invalid maximum outgoing size.', \r
-'invalid md5sum' => 'Invalid MD5Sum.', \r
-'invalid minimum object size' => 'Invalid minimum object size.', \r
-'invalid netmask' => 'Invalid netmask', \r
-'invalid port' => 'Invalid port. Must be a valid port number.', \r
-'invalid port list' => 'Port list syntax is: port[,port]... where port is in /etc/services or number', \r
-'invalid primary dns' => 'Invalid primary DNS.', \r
-'invalid primary ntp' => 'Invalid Primary NTP server address', \r
-'invalid secondary dns' => 'Invalid secondary DNS.', \r
-'invalid secondary ntp' => 'Invalid Secondary NTP server address', \r
-'invalid start address' => 'Invalid start address.', \r
-'invalid time entered' => 'Invalid time entered.', \r
-'invalid time period' => 'Invalid time period', \r
-'invalid uplink speed' => 'Invalid uplink speed.', \r
-'invalid upstream proxy username or password setting' => 'Invalid upstream proxy username or password setting.', \r
-'invalid vpi vpci' => 'Invalid VPI/VPCI settings', \r
-'invalid wins address' => 'Invalid WINS Server address.', \r
-'invert' => 'Invert', \r
-'ip address' => 'IP Address', \r
-'ip address in use' => 'IP address already in use', \r
-'ip alias added' => 'External IP alias added', \r
-'ip alias changed' => 'External IP alias changed', \r
-'ip alias removed' => 'External IP alias removed', \r
-'ip info' => 'IP Information', \r
-'ipcop has now rebooted' => 'IPCop has now rebooted.', \r
-'ipcop has now shutdown' => 'IPCop has now shutdown.', \r
-'ipcop side' => 'IPCop side:', \r
-'ipcop side is invalid' => 'IPCop Side is invalid.', \r
-'ipcops hostname' => 'IPCop\'s Hostname', \r
-'ipinfo' => 'IP info', \r
-'isdn' => 'ISDN', \r
-'isdn settings' => 'Additional ISDN settings:', \r
-'isdn1' => 'Single ISDN', \r
-'isdn2' => 'Dual ISDN', \r
-'january' => 'January', \r
-'javascript menu error1' => 'If the drop down menus aren\'t working, disable Javascript on the', \r
-'javascript menu error2' => 'page.', \r
-'july' => 'July', \r
-'june' => 'June', \r
-'kernel' => 'Kernel', \r
-'kernel logging server' => 'Kernel logging server', \r
-'kernel version' => 'Kernel version:', \r
-'lan' => 'LAN', \r
-'languagepurpose' => 'Select the language you wish IPCop to display in:', \r
-'lease expires' => 'Lease expires', \r
-'legend' => 'Legend', \r
-'line' => 'Line', \r
-'loaded modules' => 'Loaded modules:', \r
-'local ntp server specified but not enabled' => 'Local NTP server specified but not enabled', \r
-'local subnet' => 'Local Subnet:', \r
-'local subnet is invalid' => 'Local subnet is invalid.', \r
-'local vpn hostname/ip' => 'Local VPN Hostname/IP', \r
-'log' => 'Log:', \r
-'log enabled' => 'Log Enabled', \r
-'log lines per page' => 'Lines per page', \r
-'log server address' => 'Syslog server', \r
-'log settings' => 'Log Settings', \r
-'log summaries' => 'Log summaries', \r
-'log summary' => 'Log Summary', \r
-'log viewer' => 'Log viewer', \r
-'log viewing options' => 'Log viewing options', \r
-'logging server' => 'Logging server', \r
-'loginlogout' => 'Login/Logout', \r
-'lookup failed' => 'Reverse lookup failed', \r
-'low' => 'Low', \r
-'ls_dhcpd' => 'DHCP Server:', \r
-'ls_disk space' => 'Disk space:', \r
-'ls_free/swan' => 'VPN:', \r
-'ls_httpd' => 'HTTP Server:', \r
-'ls_init' => 'Init:', \r
-'ls_kernel' => 'Kernel and Firewall:', \r
-'ls_modprobe' => 'Module loader:', \r
-'ls_pam_unix' => 'Local user logins:', \r
-'ls_sshd' => 'Remote user logins:', \r
-'ls_syslogd' => 'Syslogd:', \r
-'mac address' => 'MAC Address', \r
-'mac address in use' => 'MAC address already in use', \r
-'main page' => 'Main page', \r
-'manual' => 'Manual', \r
-'manual control and status' => 'Manual control and status:', \r
-'manually' => 'Manually', \r
-'march' => 'March', \r
-'marked' => 'Marked', \r
-'max incoming size' => 'Max incoming size (KB):', \r
-'max lease time' => 'Max lease time (mins):', \r
-'max outgoing size' => 'Max outgoing size (KB):', \r
-'max renewal time' => 'Maximum Renewal Time', \r
-'max retries not set' => 'Max retries not set.', \r
-'max size' => 'Max object size (KB):', \r
-'maximal' => 'Maximal', \r
-'maximum retries' => 'Maximum retries:', \r
-'may' => 'May', \r
-'medium' => 'Medium', \r
-'memory' => 'Memory:', \r
-'memory usage per' => 'Memory Usage per', \r
-'method' => 'Method:', \r
-'min size' => 'Min object size (KB):', \r
-'minutes' => 'Minutes', \r
-'missing dat' => 'Encrypted archive not found', \r
-'missing gz' => 'Unencrypted archive not found', \r
-'modem' => 'Modem', \r
-'modem configuration' => 'Modem configuration', \r
-'modem on com1' => 'Modem on COM1', \r
-'modem on com2' => 'Modem on COM2', \r
-'modem on com3' => 'Modem on COM3', \r
-'modem on com4' => 'Modem on COM4', \r
-'modem on com5' => 'Modem on COM5', \r
-'modem settings have errors' => 'Modem settings have errors', \r
-'modem speaker on' => 'Modem speaker on:', \r
-'modulation' => 'Modulation', \r
-'monday' => 'Monday', \r
-'month' => 'Month', \r
-'months' => 'months', \r
-'mounted on' => 'Mounted on', \r
-'name' => 'Name', \r
-'name is invalid' => 'Name is invalid', \r
-'name must only contain characters' => 'Name must only contain characters.', \r
-'name too long' => 'User\'s full name or system hostname is too long', \r
-'nat-traversal' => 'Nat Traversal:', \r
-'net' => 'Net', \r
-'net to net vpn' => 'Net-to-Net Virtual Private Network', \r
-'netmask' => 'Netmask', \r
-'network' => 'Network', \r
-'network added' => 'Custom Network added', \r
-'network configuration' => 'Network Configuration', \r
-'network removed' => 'Custom Network removed', \r
-'network status information' => 'Network Status Information', \r
-'network time' => 'Use a Network Time Server:', \r
-'network time from' => 'Obtain time from a Network Time Server', \r
-'network traffic graphs' => 'Network traffic graphs', \r
-'network updated' => 'Custom Network updated', \r
-'networks settings' => 'Firewall - Network settings', \r
-'new optionsfw later' => 'Your modification(s) will be active on next restart', \r
-'new optionsfw must boot' => 'You must reboot your IPCop', \r
-'newer' => 'Newer', \r
-'no' => 'No', \r
-'no alcatelusb firmware' => 'No Alcatel USB firmware. Please upload.', \r
-'no cfg upload' => 'No data was uploaded', \r
-'no dhcp lease' => 'No DHCP lease has been acquired', \r
-'no eciadsl synch.bin file' => 'No ECI ADSL synch.bin file. Please upload.', \r
-'no fritzdsl driver' => 'No Fritz!DSL driver.  Please upload.', \r
-'no information available' => 'No information available.', \r
-'no modem selected' => 'No modem selected', \r
-'no set selected' => 'No set was selected', \r
-'no time limit' => 'unlimited time', \r
-'none found' => 'none found', \r
-'nonetworkname' => 'No Network Name entered', \r
-'noservicename' => 'No Service Name entered', \r
-'not a valid ca certificate' => 'Not a valid CA certificate.', \r
-'not enough disk space' => 'Not enough disk space', \r
-'not present' => '<b>Not</b> present', \r
-'not running' => 'not running', \r
-'november' => 'November', \r
-'ntp configuration' => 'NTP configuration', \r
-'ntp must be enabled to have clients' => 'NTP must be enabled to have clients.', \r
-'ntp server' => 'NTP Server', \r
-'ntp syncro disabled' => 'NTP synchronization disabled', \r
-'ntp syncro enabled' => 'NTP synchronization enabled', \r
-'ntpd restarted' => 'ntpd restarted', \r
-'number' => 'Number:', \r
-'october' => 'October', \r
-'older' => 'Older', \r
-'online help en' => 'Online Help (in English)', \r
-'only digits allowed in holdoff field' => 'Only digits allowed in holdoff field', \r
-'only digits allowed in max retries field' => 'Only digits allowed in max retries field.', \r
-'only digits allowed in the idle timeout' => 'Only digits allowed in the idle timeout.', \r
-'only red' => 'Only RED', \r
-'open to all' => 'Override external access to ALL', \r
-'openssl produced an error' => 'OpenSSL produced an error', \r
-'options' => 'Options', \r
-'options fw' => 'Firewall options', \r
-'optionsfw portlist hint' => 'The list of ports has to be comma separated (e.g. 137,138). You can specify up to a maximum of 15 ports per protocol.', \r
-'optionsfw warning' => 'Modifying these options implies restart of firewall', \r
-'orange' => 'ORANGE', \r
-'organization cant be empty' => 'Organization can\'t be empty.', \r
-'organization name' => 'Organization Name', \r
-'organization too long' => 'Organization is too long; it should not be longer than 60 characters.', \r
-'original' => 'Original', \r
-'other countries' => 'Other countries', \r
-'other login script' => 'Other login script', \r
-'out' => 'Out', \r
-'outgoing traffic in bytes per second' => 'Outgoing Traffic in Bytes per Second', \r
-'package failed to install' => 'Package failed to install.', \r
-'pap or chap' => 'PAP or CHAP', \r
-'password' => 'Password:', \r
-'password contains illegal characters' => 'Password contains illegal characters.', \r
-'password not set' => 'Password not set.', \r
-'password too short' => 'Password is too short.', \r
-'passwords do not match' => 'Passwords do not match.', \r
-'passwords must be at least 6 characters in length' => 'Passwords must be at least 6 characters in length', \r
-'percentage' => 'Percentage', \r
-'persistent' => 'Persistent', \r
-'pfs yes no' => 'Perfect Forward Secrecy (PFS)', \r
-'phase1 group' => 'Phase1 Group', \r
-'phonebook entry' => 'Phonebook entry:', \r
-'ping disabled' => 'Disable ping response', \r
-'pkcs12 file password' => 'PKCS12 File Password', \r
-'port' => 'Port', \r
-'port forwarding configuration' => 'Port forwarding configuration', \r
-'ports' => 'Ports', \r
-'pots' => 'Analog classic line', \r
-'ppp setup' => 'PPP setup', \r
-'pppoe' => 'PPPoE', \r
-'pppoe settings' => 'Additional PPPoE settings:', \r
-'pptp settings' => 'Additional PPTP settings:', \r
-'pre-shared key is too short' => 'Pre-shared key is too short.', \r
-'present' => 'Present', \r
-'primary dns' => 'Primary DNS:', \r
-'primary ntp server' => 'Primary NTP Server', \r
-'primary wins server address' => 'Primary WINS Server address', \r
-'priority' => 'Priority', \r
-'profile' => 'Profile', \r
-'profile deleted' => 'Profile deleted: ', \r
-'profile has errors' => 'Profile has errors', \r
-'profile made current' => 'Profile made current: ', \r
-'profile name' => 'Profile name:', \r
-'profile name not given' => 'Profile name not given.', \r
-'profile saved' => 'Profile saved: ', \r
-'profiles' => 'Profiles:', \r
-'proto' => 'Proto', \r
-'protocol' => 'Protocol', \r
-'proxy' => 'Proxy', \r
-'proxy access graphs' => 'Proxy access graphs', \r
-'proxy log viewer' => 'Proxy log viewer', \r
-'proxy logs' => 'Proxy Logs', \r
-'proxy port' => 'Proxy Port', \r
-'psk' => 'PSK', \r
-'pulse' => 'Pulse', \r
-'pulse dial' => 'Pulse dial:', \r
-'ram' => 'RAM', \r
-'read sectors' => 'Read Sectors', \r
-'reboot' => 'Reboot', \r
-'reboot schedule' => 'Schedule IPCop reboots', \r
-'rebooting' => 'Rebooting', \r
-'rebooting ipcop' => 'Rebooting IPCop', \r
-'reconnection' => 'Reconnection', \r
-'references' => 'References', \r
-'refresh' => 'Refresh', \r
-'refresh index page while connected' => 'Refresh index.cgi page whilst connected', \r
-'refresh update list' => 'Refresh update list', \r
-'registered user rules' => 'Sourcefire VRT rules for registered users', \r
-'released' => 'Released', \r
-'remark' => 'Remark', \r
-'remark title' => 'Remark:', \r
-'remote access' => 'Remote access', \r
-'remote host/ip' => 'Remote Host/IP', \r
-'remote logging' => 'Remote logging', \r
-'remote subnet' => 'Remote subnet:', \r
-'remote subnet is invalid' => 'Remote subnet is invalid.', \r
-'remove' => 'Remove', \r
-'remove ca certificate' => 'Remove CA Certificate', \r
-'reserved dst port' => 'Destination port is reserved for IPCop use only:', \r
-'reserved src port' => 'Source port is reserved for IPCop use only:', \r
-'reset' => 'Reset', \r
-'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Resetting the VPN configuration will remove the root CA, the host certificate and all certificate based connections', \r
-'restart' => 'Restart', \r
-'restore' => 'Restore', \r
-'restore defaults' => 'Restore defaults', \r
-'restore hardware settings' => 'Restore hardware settings', \r
-'reverse sort' => 'Sort in reverse chronological order', \r
-'root certificate' => 'Root Certificate', \r
-'router ip' => 'Router IP Address:', \r
-'routing table entries' => 'Routing Table Entries:', \r
-'rsvd dst port overlap' => 'Destination Port Range overlaps a port reserved for IPCop:', \r
-'rsvd src port overlap' => 'Source Port Range overlaps a port reserved for IPCop:', \r
-'rules already up to date' => 'Rules already up to date', \r
-'running' => 'RUNNING', \r
-'saturday' => 'Saturday', \r
-'save' => 'Save', \r
-'save error' => 'Unable to save configuration archive file', \r
-'script name' => 'Script name:', \r
-'secondary dns' => 'Secondary DNS:', \r
-'secondary ntp server' => 'Secondary NTP Server', \r
-'secondary wins server address' => 'Secondary WINS Server address', \r
-'seconds' => 'Secs', \r
-'section' => 'Section', \r
-'sectors read from disk per second' => 'Sectors read from disk per second', \r
-'sectors written to disk per second' => 'Sectors written to disk per second', \r
-'secure shell server' => 'Secure shell server', \r
-'select' => 'Select', \r
-'select dest net' => 'Select a destination net.', \r
-'select source net' => 'Select a source net. If you have no Orange or Blue net configured, you need no DMZ Pinholes.', \r
-'send cr' => 'ISP requires Carriage Return:', \r
-'september' => 'September', \r
-'serial' => 'Serial', \r
-'service' => 'Service', \r
-'service added' => 'Custom Network Service added', \r
-'service name' => 'Service name:', \r
-'service removed' => 'Custom Network Service removed', \r
-'service updated' => 'Custom Network Service updated', \r
-'servicename' => 'Service Name', \r
-'services' => 'Services:', \r
-'services settings' => 'Firewall - Services settings', \r
-'set time now' => 'Set Time Now', \r
-'set time now help' => 'To queue a synchronization event at any time (even while using a repeating schedule), press the <i>Set Time Now</i> button. Please note that you may have to wait for five minutes, or more, before a sync event occurs.', \r
-'settings' => 'Settings', \r
-'shaping add options' => 'Add service', \r
-'shaping list options' => 'Traffic shaping services', \r
-'shared' => 'shared', \r
-'shared memory' => 'Shared Memory', \r
-'show ca certificate' => 'Show CA Certificate', \r
-'show certificate' => 'Show Certificate', \r
-'show host certificate' => 'Show Host Certificate', \r
-'show root certificate' => 'Show Root Certificate', \r
-'shutdown' => 'Shutdown', \r
-'shutdown control' => 'Shutdown control', \r
-'shutdown2' => 'Shutdown:', \r
-'shutting down' => 'Shutting down', \r
-'shutting down ipcop' => 'Shutting down IPCop', \r
-'size' => 'Size', \r
-'snort hits' => 'Total of number of Intrusion rules activated for', \r
-'sort ascending' => 'Sort Ascending', \r
-'sort descending' => 'Sort Descending', \r
-'sound' => 'Sound', \r
-'source' => 'Source', \r
-'source ip' => 'Source IP', \r
-'source ip and port' => 'Source IP:Port', \r
-'source ip bad' => 'Not a valid IP address or a network address.', \r
-'source ip in use' => 'Source IP in use:', \r
-'source ip or net' => 'Source IP or Net', \r
-'source net' => 'Source Net', \r
-'source network' => 'Source IP, or network (blank for "ALL"):', \r
-'source port' => 'Source port', \r
-'source port in use' => 'Source port in use:', \r
-'source port numbers' => 'Source port must be a valid port number or port range.', \r
-'source port overlaps' => 'Source port range overlaps an existing port range.', \r
-'speaker off' => 'Speaker off:', \r
-'speaker on' => 'Speaker on:', \r
-'src port' => 'Src Port', \r
-'srcprt range overlaps' => 'Source port range overlaps an already defined port.', \r
-'srcprt within existing' => 'Source port is within an already defined port range.', \r
-'ssdmz pinholes' => 'DMZ Pinholes', \r
-'ssh access' => 'SSH Access', \r
-'ssh fingerprint' => 'Fingerprint', \r
-'ssh host keys' => 'SSH Host Keys', \r
-'ssh is disabled' => 'SSH is disabled.  Stopping.', \r
-'ssh is enabled' => 'SSH is enabled.  Restarting.', \r
-'ssh key' => 'Key', \r
-'ssh key size' => 'Size (bits)', \r
-'ssh keys' => 'Allow public key based authentication', \r
-'ssh no auth' => 'You have not allowed any authentication methods; this will stop you logging in', \r
-'ssh passwords' => 'Allow password based authentication', \r
-'ssh portfw' => 'Allow TCP Forwarding', \r
-'ssh1 disabled' => 'SSHv1 is disabled, a version 2 client will be required.', \r
-'ssh1 enabled' => 'SSHv1 is enabled, old clients will be supported.', \r
-'ssh1 support' => 'Support SSH protocol version 1 (required only for old clients)', \r
-'ssnetwork status' => 'Network Status', \r
-'sspasswords' => 'Passwords', \r
-'ssport forwarding' => 'Port Forwarding', \r
-'ssproxy graphs' => 'Proxy Graphs', \r
-'sssystem status' => 'System Status', \r
-'sstraffic graphs' => 'Traffic Graphs', \r
-'standard login script' => 'Standard login script', \r
-'start address' => 'Start address:', \r
-'state or province' => 'State or Province', \r
-'static ip' => 'Static IP', \r
-'status' => 'Status', \r
-'status information' => 'Status information', \r
-'stopped' => 'STOPPED', \r
-'subject' => 'Subject', \r
-'subnet is invalid' => 'Netmask is invalid', \r
-'subscripted user rules' => 'Sourcefire VRT rules with subscription', \r
-'successfully refreshed updates list' => 'Successfully refreshed updates list.', \r
-'summaries kept' => 'Keep summaries for', \r
-'sunday' => 'Sunday', \r
-'swap' => 'Swap', \r
-'swap usage per' => 'Swap Usage per', \r
-'system cpu' => 'System CPU', \r
-'system cpu usage' => 'System CPU Usage', \r
-'system graphs' => 'System Graphs', \r
-'system log viewer' => 'System Log Viewer', \r
-'system logs' => 'System Logs', \r
-'system status information' => 'System Status Information', \r
-'telephone not set' => 'Telephone not set.', \r
-'the following update was successfully installed' => 'The following update was successfully installed', \r
-'the statistics were last updated at' => 'The statistics were last updated at', \r
-'there are updates' => 'There are updates available for your system. Please go to the "Updates" section for more information.', \r
-'there are updates available' => 'There are updates available for your system. It is strongly urged that you install them as soon as possible.', \r
-'there was no file upload' => 'There was no file upload.', \r
-'this feature has been sponsored by' => 'This feature has been sponsored by', \r
-'this field may be blank' => 'This field may be blank.', \r
-'this is not a valid archive' => 'This is not a valid archive.', \r
-'this is not an authorised update' => 'This is not an authorised update.', \r
-'this update is already installed' => 'This update is already installed.', \r
-'thursday' => 'Thursday', \r
-'time' => 'Time', \r
-'time date manually reset' => 'Time/Date manually reset.', \r
-'time server' => 'Time Server', \r
-'timeout must be a number' => 'Timeout must be a number.', \r
-'title' => 'Title', \r
-'to' => 'To', \r
-'to install an update' => 'To install an update please upload the .tgz.gpg file below:', \r
-'toggle enable disable' => 'Enable or Disable', \r
-'tone' => 'Tone', \r
-'tone dial' => 'Tone dial:', \r
-'total hits for log section' => 'Total Hits for Log Section', \r
-'traffic on' => 'Traffic on', \r
-'traffic shaping' => 'Traffic Shaping', \r
-'traffic shaping settings' => 'Traffic Shaping Settings', \r
-'transfer limits' => 'Transfer limits', \r
-'transparent on' => 'Transparent on', \r
-'tuesday' => 'Tuesday', \r
-'type' => 'Type', \r
-'unable to alter profiles while red is active' => 'Unable to alter profiles while RED is active.', \r
-'unable to contact' => 'Unable to contact', \r
-'unencrypted' => 'Unencrypted', \r
-'unknown' => 'UNKNOWN', \r
-'unnamed' => 'Unnamed', \r
-'update' => 'Update', \r
-'update time' => 'Update the time:', \r
-'update transcript' => 'Update transcript', \r
-'updates' => 'Updates', \r
-'updates installed' => 'Updates Installed', \r
-'updates is old1' => 'Your update file is ', \r
-'updates is old2' => 'days old. We recommend you update it on the <b>System>Updates</b> page.', \r
-'uplink speed' => 'Uplink speed (kbit/sec)', \r
-'upload' => 'Upload', \r
-'upload a certificate' => 'Upload a certificate:', \r
-'upload a certificate request' => 'Upload a certificate request:', \r
-'upload ca certificate' => 'Upload CA Certificate', \r
-'upload fcdsl.o' => 'TO BE REMOVED', \r
-'upload file' => 'Upload file', \r
-'upload p12 file' => 'Upload PKCS12 file', \r
-'upload successful' => 'Upload successful.', \r
-'upload synch.bin' => 'Upload synch.bin', \r
-'upload update file' => 'Upload update file:', \r
-'upstream password' => 'Upstream password:', \r
-'upstream proxy host:port' => 'Upstream proxy (host:port)', \r
-'upstream username' => 'Upstream username:', \r
-'uptime and users' => 'Uptime and users:', \r
-'usb modem on acm0' => 'USB Modem on ACM0', \r
-'usb modem on acm1' => 'USB Modem on ACM1', \r
-'usb modem on acm2' => 'USB Modem on ACM2', \r
-'usb modem on acm3' => 'USB Modem on ACM3', \r
-'use' => 'Use', \r
-'use a pre-shared key' => 'Use a Pre-Shared Key:', \r
-'use dov' => 'Use DOV (Data Over Voice):', \r
-'use ibod' => 'Use Bandwidth on Demand (iBOD):', \r
-'use ipcop red ip' => 'The classical RED IP used by IPCop during connection', \r
-'use only proposed settings' => 'Use only proposed settings.', \r
-'used' => 'Used', \r
-'used memory' => 'Used Memory', \r
-'used swap' => 'Used Swap', \r
-'user cpu' => 'User CPU', \r
-'user cpu usage' => 'User CPU Usage', \r
-'username' => 'User Name:', \r
-'username not set' => 'Username not set.', \r
-'users department' => 'User\'s Department', \r
-'users email' => 'User\'s E-mail Address', \r
-'users fullname or system hostname' => 'User\'s Full Name or System Hostname', \r
-'valid root certificate already exists' => 'A valid root certificate already exists.', \r
-'vci number' => 'VCI Number:', \r
-'virtual private networking' => 'Virtual Private Networking', \r
-'vpi number' => 'VPI Number:', \r
-'vpn' => 'VPN', \r
-'vpn configuration main' => 'VPN configuration - Main', \r
-'vpn delayed start' => 'Delay before launching VPN (seconds)', \r
-'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.', \r
-'vpn on blue' => 'VPN on BLUE', \r
-'waiting to synchronize clock' => 'Waiting to synchronize clock', \r
-'warning messages' => 'Warning messages', \r
-'web hits' => 'Total number of websites matching selected criteria for', \r
-'web proxy' => 'Web proxy', \r
-'web proxy configuration' => 'Web proxy configuration', \r
-'web server' => 'Web server', \r
-'website' => 'Website', \r
-'wednesday' => 'Wednesday', \r
-'week' => 'Week', \r
-'weeks' => 'weeks', \r
-'wildcards' => 'Wildcards', \r
-'wireless' => 'Wireless', \r
-'wireless config added' => 'Wireless config added', \r
-'wireless config changed' => 'Wireless config changed', \r
-'wireless configuration' => 'Wireless Configuration', \r
-'written sectors' => 'Written Sectors', \r
-'xtaccess all error' => 'You cannot set an external access to ALL, that is done in the port forwarding record.', \r
-'year' => 'Year', \r
-'yes' => 'Yes', \r
-'you can only define one roadwarrior connection when using pre-shared key authentication' => 'You can only define one Roadwarrior connection when using pre-shared key authentication.<br />Either you already have a Roadwarrior connection with pre-shared key authentication, or you\'re trying to add one now.', \r
-'your department' => 'Your Department', \r
-'your e-mail' => 'Your E-mail Address',  \r
-'backup archive'=> 'Backup File (.dat)',\r
-'backup clear archive'=> 'Clear Backup File (.gz)',\r
-'backup key'          => 'Backup Encryption Key',\r
-'backup key file'     => 'Backup key file',\r
-'backup generate key'   => 'Generate key',\r
-'backup import key'   => 'Import key',\r
-'backup extract key'  => 'Extract key',\r
-'backup erase key'    => 'Erase key',\r
-'backup missing key'  => 'Need the backup key to restore a set',\r
-'backup export key'   => 'Export key',\r
-'backup explain key'  => 'Backup are encrypted using a key. To avoid illegal backup manipulations, IPCop only restores a backup that is encrypted with the key you will specify here. You have three options available to you',\r
-'backup explain key li1'  => 'let IPCop create key for you.',\r
-'backup explain key li2'  => 'import a saved key (possibly password protected).',\r
-'backup explain key li3'  => 'extract a key from a non-encrypted 1.4.10 backup only.' ,\r
-'backup explain key no1'  => 'you should save this key if you plan to restore new machines, IPCop accepts only once key creation/import.' , \r
-'backup explain key no2'  => 'legacy floppy backups are not concerned with this key.',\r
-'backup protect key password' => 'Backup key password',\r
-'backup import dat file' => 'Import a backup (.dat) file',\r
-'backup key info' => 'IPcop restricts access to the backup key, thus you must know root password. You have possibility to protect this key outside of IPCop with a password.',\r
-'backup media info'   => 'Floppy and/or unformatted media may display stranges partitions sizes. In this case, select the whole device. Remenber to mount harddisk before removing device. Note: floppy created here are not usable with IPCop installer program!',\r
-'notes'   => 'Notes',\r
-'current media' => 'Current media', \r
-'choose media'        => 'Choose media',\r
-'local hard disk'     => 'Hard disk',\r
-'insert removable device' => 'Insert a removable device',\r
-'mount'=>'Mount',\r
-'done'=>'Do it',\r
-'incorrect password'=>'Incorrect password',\r
-'root user password'=>'root password',\r
-'ip address outside subnets' => 'IP Address outside subnets',\r
-'dhcp bootp pxe data' => 'Enter optional bootp pxe data for this fixed lease',\r
-'invalid local-remote id' => 'When used, local & remote id must not be equal and begin with a "@" sign. These are leftid and rightid in openswan terminology.',\r
-'override mtu' => 'Override default MTU',\r
-'vpn mtu invalid' => 'MTU must be a numeric value!',\r
-'squid extension methods'=>'Your <tt>extension_methods</tt> list',\r
-'squid extension methods invalid' => 'Your \'extension_methods\' list can only contain uppercase words of letters and digits, separated with a space. '\r
-);\r
+# English (en) Data File 
+#
+# This file is part of the IPCop Firewall.
+# 
+# IPCop 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 2 of the License, or
+# (at your option) any later version.
+# 
+# IPCop 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 IPCop; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+# 
+# (c) The SmoothWall Team
+#  
+#
+
+%tr = ( 
+%tr, 
+'a ca certificate with this name already exists' => 'A CA Certificate with this name already exists.', 
+'a connection with this common name already exists' => 'A connection with this common name already exists.', 
+'a connection with this name already exists' => 'A connection with this name already exists.', 
+'access allowed' => 'Access allowed from:', 
+'access refused with this oinkcode' => 'Access refused with this Oink Code', 
+'action' => 'Action', 
+'add' => 'Add', 
+'add a host' => 'Add a host:', 
+'add a new rule' => 'Add a new rule:', 
+'add device' => 'Add device', 
+'add network' => 'Add network', 
+'add new alias' => 'Add a new alias:', 
+'add new lease' => 'Add a new fixed lease', 
+'add service' => 'Add service', 
+'add xtaccess' => 'Add External Access', 
+'added from dhcp lease list' => 'added from DHCP lease list', 
+'admin user password has been changed' => 'Admin user password has been changed.', 
+'administrator user password' => 'Admin user password:', 
+'adsl settings' => 'ADSL settings', 
+'advanced' => 'Advanced', 
+'again' => 'Again:', 
+'alcatelusb help' => 'To utilise the Speedtouch 330 or Speedtouch USB modem you must upload the firmware to your IPCop box. Please download the <b>Embedded Firmware</b> package for SpeedTouch 330 from speedtouch.com, unzip and then upload the appropriate file for your modem : KQD6_3.xxx when Rev<4 or ZZZL_3.xxx for Rev=4 using the form below.', 
+'alcatelusb upload' => 'Upload Speedtouch USB Firmware', 
+'alias ip' => 'Alias IP', 
+'aliases' => 'Aliases', 
+'aliases not active' => 'Aliases will not be active unless your RED interface is STATIC', 
+'all' => 'All', 
+'all interfaces' => 'All Interfaces', 
+'all updates installed' => 'All updates installed', 
+'alt dialup' => 'Dialup', 
+'alt home' => 'Home', 
+'alt information' => 'Information', 
+'alt logs' => 'Logs', 
+'alt services' => 'Services', 
+'alt system' => 'System', 
+'alt vpn' => 'VPNs', 
+'and' => 'And', 
+'ansi t1.483' => 'TO BE REMOVED', 
+'apply' => 'Apply now', 
+'april' => 'April', 
+'archive not exist' => 'Configuration archive does not exist', 
+'are you sure' => 'Are you sure?', 
+'arp table entries' => 'ARP Table Entries:', 
+'august' => 'August', 
+'authentication' => 'Authentication:', 
+'automatic' => 'Automatic', 
+'available updates' => 'Available updates:', 
+'average' => 'Average', 
+'avoid dod' => 'Do not use this option with Dial on Demand! Mainly used if your IPCop is behind a router. Your RED IP must be inside one of the three reserved network numbers e.g. 10/8, 172.16/12, 192.168/16', 
+'back' => 'BACK', 
+'backup' => 'Backup', 
+'backup config floppy' => 'Backup Configuration - Floppy Disk', 
+'backup configuration' => 'Backup Configuration:', 
+'backup sets' => 'Backup Sets', 
+'backup to floppy' => 'Backup to floppy', 
+'backupprofile' => 'In case reconnection fails, switch to profile', 
+'bad characters in script field' => 'Bad characters in script field', 
+'bad characters in the telephone number field' => 'Bad characters in the telephone number field.', 
+'bad destination range' => 'The Destination port range has a first value that is greater than or equal to the second value.', 
+'bad ignore filter' => 'Bad ignore filter:', 
+'bad return code' => 'Helper program returned error code', 
+'bad source range' => 'The Source port range has a first value that is greater than or equal to the second value.', 
+'beep when ppp connects or disconnects' => 'Beep when IPCop connects or disconnects', 
+'behind a proxy' => 'Behind a proxy:', 
+'bewan adsl pci st' => 'TO BE REMOVED', 
+'bewan adsl usb' => 'TO BE REMOVED', 
+'blue' => 'BLUE', 
+'blue access' => 'Blue Access', 
+'blue interface' => 'Blue Interface', 
+'broadcast' => 'Broadcast', 
+'broken pipe' => 'Broken pipe', 
+'buffered memory' => 'Buffered Memory', 
+'buffers' => 'buffers', 
+'bytes per second' => 'Bytes per Second', 
+'ca certificate' => 'CA Certificate', 
+'ca name' => 'CA Name', 
+'cache management' => 'Cache management', 
+'cache size' => 'Cache size (MB):', 
+'cached' => 'cached', 
+'cached memory' => 'Cached Memory', 
+'cancel' => 'Cancel', 
+'cannot enable both nat traversal and compression' => 'Cannot enable both NAT Traversal and Compression.', 
+'cannot enable ntp without specifying primary' => 'Cannot enable NTP without specifying primary.', 
+'cannot specify secondary dns without specifying primary' => 'Cannot specify secondary DNS without specifying primary.', 
+'cannot specify secondary ntp without specifying primary' => 'Cannot specify Secondary NTP Server without specifying Primary', 
+'cannot specify secondary wins without specifying primary' => 'Cannot specify secondary WINS without specifying primary.', 
+'cant change certificates' => 'Can\'t change certificates.', 
+'cant enable xtaccess' => 'The associated port forwarding rule is disabled, therefore you cannot enable external access for this rule.', 
+'cant start openssl' => 'Can\'t start OpenSSL', 
+'caps all' => 'ALL', 
+'capsclosed' => 'CLOSED', 
+'capsopen' => 'OPEN', 
+'capswarning' => 'WARNING', 
+'cert' => 'Certificate', 
+'certificate' => 'Certificate', 
+'certificate authorities' => 'Certificate Authorities', 
+'certificate does not have a valid ca associated with it' => 'Certificate does not have a valid CA associated with it.', 
+'certificate file move failed' => 'Certificate file move failed', 
+'cfg restart' => 'A reboot is suggested after restoring a configuration archive.', 
+'chain' => 'Chain', 
+'change passwords' => 'Change passwords', 
+'check vpn lr' => 'Check', 
+'city' => 'City', 
+'clear cache' => 'Clear Cache', 
+'clenabled' => 'Provide time to local network', 
+'click to disable' => 'Enabled (click to disable)', 
+'click to enable' => 'Disabled (click to enable)', 
+'clock has not been synchronized' => 'Clock has not been synchronized', 
+'clock last synchronized at' => 'Clock was last synchronized at', 
+'common name' => 'Common Name', 
+'compression' => 'Compression:', 
+'computer to modem rate' => 'Computer to modem rate:', 
+'concentrator name' => 'Concentrator name:', 
+'confirmation' => 'confirmation', 
+'connect on ipcop restart' => 'Connect on IPCop restart:', 
+'connect the modem' => 'Connect the modem', 
+'connect timeout' => 'Connect timeout:', 
+'connected' => 'Connected', 
+'connecting' => 'Connecting...', 
+'connection' => 'Connection', 
+'connection debugging' => 'Connection debugging', 
+'connection status and controlc' => 'Connection status and control:', 
+'connection tracking' => 'IPTables Connection Tracking', 
+'connection type' => 'Connection Type', 
+'connection type is invalid' => 'Connection type is invalid.', 
+'connections' => 'Connections', 
+'connections are associated with this ca.  deleting the ca will delete these connections as well.' => 'connections are associated with this CA.  Deleting the CA will delete these connections as well.', 
+'could not be opened' => 'could not be opened', 
+'could not connect to' => 'Could not connect to', 
+'could not connect to www ipcop org' => 'Could not connect to www.ipcop.org', 
+'could not create directory' => 'Could not create directory.', 
+'could not download latest patch list' => 'Could not download latest patch list (not connected).', 
+'could not download latest updates' => 'Could not download latest updates.', 
+'could not download the available updates list' => 'Could not download the available updates list.', 
+'could not open available updates file' => 'Could not open available updates file.', 
+'could not open installed updates file' => 'Could not open installed updates file', 
+'could not open update information file' => 'Could not open update information file.  The update file is corrupt.', 
+'could not retrieve common name from certificate' => 'Could not retrieve common name from certificate.', 
+'country' => 'Country', 
+'cpu usage per' => 'CPU Usage per', 
+'create' => 'Create', 
+'credits' => 'Credits', 
+'cron server' => 'CRON server', 
+'current' => 'Current', 
+'current aliases' => 'Current aliases:', 
+'current dhcp leases on blue' => 'Current DHCP leases on Blue', 
+'current dynamic leases' => 'Current dynamic leases', 
+'current fixed leases' => 'Current fixed leases', 
+'current hosts' => 'Current hosts:', 
+'current profile' => 'Current profile:', 
+'current rules' => 'Current rules:', 
+'custom networks' => 'Custom networks', 
+'custom services' => 'Custom services', 
+'dat without key' => 'An encrypted archive cannot be restored without the key.', 
+'date' => 'Date', 
+'date not in logs' => 'No (or only partial) logs exist for the day queried', 
+'day' => 'Day', 
+'day after' => 'Day after', 
+'day before' => 'Day before', 
+'days' => 'days', 
+'ddns hostname added' => 'Dynamic DNS hostname added', 
+'ddns hostname modified' => 'Dynamic DNS hostname modified', 
+'ddns hostname removed' => 'Dynamic DNS hostname removed', 
+'ddns minimize updates' => 'Minimize updates: before an update, compares the dns IP for hostname "[host.]domain" against RED IP.', 
+'ddns noip prefix' => 'To use no-ip in group mode, prefix hostname with <b>%</b>', 
+'december' => 'December', 
+'def lease time' => 'Default Lease Time', 
+'default lease time' => 'Default lease time (mins):', 
+'default networks' => 'Default networks', 
+'default renewal time' => 'Default Renewal Time', 
+'default services' => 'Default services', 
+'delete' => 'Delete', 
+'demon login script' => 'Demon login script', 
+'description' => 'Description', 
+'dest ip and port' => 'Dest. IP:Port', 
+'destination' => 'Destination', 
+'destination ip' => 'Destination IP', 
+'destination ip bad' => 'Invalid destination IP', 
+'destination ip or net' => 'Destination IP or Net', 
+'destination net' => 'Destination Net', 
+'destination port' => 'Destination port', 
+'destination port numbers' => 'Destination port must be a valid port number or port range.', 
+'destination port overlaps' => 'Destination port range overlaps an existing port range.', 
+'detail level' => 'Detail level', 
+'device' => 'Device', 
+'devices on blue' => 'Devices on Blue', 
+'dhcp advopt add' => 'Add a DHCP Option', 
+'dhcp advopt added' => 'DHCP Option added', 
+'dhcp advopt blank value' => 'DHCP Option value cannot be empty.', 
+'dhcp advopt custom definition' => 'Your custom option definition', 
+'dhcp advopt definition' => 'Definition', 
+'dhcp advopt definition exists' => 'Definition option already exists. You can only edit or remove it.', 
+'dhcp advopt edit' => 'Edit a DHCP Option', 
+'dhcp advopt help' => 'List options', 
+'dhcp advopt list' => 'Additional DHCP Options', 
+'dhcp advopt modified' => 'DHCP Option modified', 
+'dhcp advopt name' => 'Option name', 
+'dhcp advopt removed' => 'DHCP Option removed', 
+'dhcp advopt scope' => 'Option scope', 
+'dhcp advopt scope global' => 'Global', 
+'dhcp advopt scope help' => 'Global scope or limit scope to checked interfaces.', 
+'dhcp advopt unknown' => 'DHCP Option name not recognized', 
+'dhcp advopt value' => 'Option value', 
+'dhcp allow bootp' => 'Allow bootp clients', 
+'dhcp configuration' => 'DHCP configuration', 
+'dhcp mode' => 'DHCP', 
+'dhcp server' => 'DHCP Server', 
+'dhcp server disabled' => 'DHCP server disabled.  Stopped.', 
+'dhcp server disabled on blue interface' => 'DHCP server disabled on BLUE interface', 
+'dhcp server enabled' => 'DHCP server enabled.  Restarting.', 
+'dhcp server enabled on blue interface' => 'DHCP server enabled on BLUE interface', 
+'dial' => 'Connect', 
+'dial user password' => 'Dial user password:', 
+'dial user password has been changed' => 'Dial user password has been changed.', 
+'dialing mode' => 'Dialing mode:', 
+'dialup settings' => 'Dialup Settings', 
+'disk access per' => 'Disk Access per', 
+'disk usage' => 'Disk usage:', 
+'display' => 'Display', 
+'display hostname in window title' => 'Display hostname in window title', 
+'dmz' => 'DMZ', 
+'dmz pinhole configuration' => 'DMZ pinhole configuration', 
+'dmz pinhole rule added' => 'DMZ pinhole rule added; restarting DMZ pinhole', 
+'dmz pinhole rule removed' => 'DMZ pinhole rule removed; restarting DMZ pinhole', 
+'dmzpinholes for same net not necessary' => 'DMZ Pinholes are not necessary for same net. Select different source or destination net.', 
+'dns check failed' => 'DNS check failed', 
+'dns proxy server' => 'DNS proxy server', 
+'do not log this port list' => 'Drop this port list just before they are logged (reduces log size)', 
+'dod' => 'Dial on Demand', 
+'dod for dns' => 'Dial on Demand for DNS:', 
+'dod not compatible with ddns' => 'Dial on demand is not compatible with dynamic dns services', 
+'dod waiting' => 'Dial on Demand waiting', 
+'domain' => 'Domain', 
+'domain name' => 'Domain name', 
+'domain name suffix' => 'Domain name suffix:', 
+'domain not set' => 'Domain not set.', 
+'downlink speed' => 'Downlink speed (kbit/sec)', 
+'download ca certificate' => 'Download CA Certificate', 
+'download certificate' => 'Download Certificate', 
+'download host certificate' => 'Download Host Certificate', 
+'download new ruleset' => 'Download new ruleset', 
+'download pkcs12 file' => 'Download PKCS12 File', 
+'download root certificate' => 'Download Root Certificate', 
+'dpd action' => 'Dead Peer Detection action', 
+'driver' => 'Driver', 
+'dst port' => 'Dst Port', 
+'dstprt range overlaps' => 'Destination port range overlaps an already defined port.', 
+'dstprt within existing' => 'Destination port is within an already defined port range.', 
+'duplicate ip' => 'Duplicate IP address entered', 
+'duplicate ip bold' => 'Duplicate addresses are in <b>bold</b>', 
+'duplicate mac' => 'Duplicate MAC address entered', 
+'duplicate name' => 'That name is already being used, please choose another.', 
+'dyn dns source choice' => 'Dynamic DNS provider(s) will receive an IP address for this IPCop from:', 
+'dynamic dns' => 'Dynamic DNS', 
+'dynamic dns client' => 'Dynamic DNS Client', 
+'e-mail address too long' => 'E-mail address is too long; it should not be longer than 40 characters.', 
+'eciadsl help' => 'To utilise the ECI ADSL modem you must upload a synch.bin file to your IPCop box. Please download the file from the ECIADSL website and then upload the file <b>synch.bin</b> using the form below.', 
+'eciadsl upload' => 'Upload ECI ADSL Synch.bin File', 
+'edit' => 'Edit', 
+'edit a rule' => 'Edit an existing rule:', 
+'edit advanced settings when done' => 'Edit advanced settings when done.', 
+'edit an existing alias' => 'Edit an existing alias', 
+'edit an existing host' => 'Edit an existing host', 
+'edit an existing lease' => 'Edit an existing lease', 
+'edit device' => 'Edit device', 
+'edit hosts' => 'Edit Hosts', 
+'edit network' => 'Edit network', 
+'edit service' => 'Edit service', 
+'eg' => 'e.g:',
+'empty' => 'Empty', 
+'enable ignore filter' => 'Enable ignore filter', 
+'enable javascript' => 'Enable Javascript', 
+'enable wildcards' => 'Enable wildcards:', 
+'enabled' => 'Enabled:', 
+'enabled on' => 'Enabled on', 
+'enabledtitle' => 'Enabled', 
+'encapsulation' => 'Encapsulation', 
+'encrypted' => 'Encrypted', 
+'end address' => 'End address:', 
+'err bk 1' => 'Error creating archive', 
+'err bk 2 key' => 'Error creating key file', 
+'err bk 3 tar' => 'Error appending files to archive', 
+'err bk 4 gz' => 'Error compressing archive', 
+'err bk 5 encrypt' => 'Error encrypting archive', 
+'err rs 1' => 'Error restoring archive', 
+'err rs 6 decrypt' => 'Error decrypting archive', 
+'err rs 7 untartst' => 'Invalid decrypted archive', 
+'err rs 8 untar' => 'Error untarring archive', 
+'error messages' => 'Error messages:', 
+'esp encryption' => 'ESP Encryption:', 
+'esp grouptype' => 'ESP Grouptype:', 
+'esp integrity' => 'ESP Integrity:', 
+'esp keylife' => 'ESP Keylife:', 
+'esp keylife should be between 1 and 24 hours' => 'ESP Keylife should be between 1 and 24 hours.', 
+'every' => 'Every', 
+'excluding buffers and cache' => '-/+ buffers/cache', 
+'expected' => 'Expected', 
+'expires' => 'Expires', 
+'export' => 'Export', 
+'external access' => 'External Access', 
+'external access configuration' => 'External access configuration', 
+'external access rule added' => 'External access rule added; restarting access controller', 
+'external access rule removed' => ' External access rule removed; restarting access controller', 
+'external aliases configuration' => 'External aliases configuration', 
+'february' => 'February', 
+'fetch ip from' => 'Guess the real public IP with help of an external server', 
+'filename' => 'Filename', 
+'filesystem full' => 'Filesystem full', 
+'firewall' => 'Firewall', 
+'firewall hits' => 'Total number of firewall hits for', 
+'firewall log' => 'Firewall log', 
+'firewall log viewer' => 'Firewall Log Viewer', 
+'firewall logs' => 'Firewall Logs', 
+'firmware' => 'Firmware', 
+'firmware upload' => 'Upload Firmware/Drivers', 
+'fixed ip lease added' => 'Fixed IP lease added', 
+'fixed ip lease modified' => 'Fixed IP lease modified', 
+'fixed ip lease removed' => 'Fixed IP lease removed', 
+'force update' => 'Force update', 
+'forwarding rule added' => 'Forwarding rule added; restarting forwarder', 
+'forwarding rule removed' => 'Forwarding rule removed; restarting forwarder', 
+'forwarding rule updated' => 'Forwarding rule updated; restarting forwarder', 
+'free' => 'Free', 
+'free memory' => 'Free Memory', 
+'free swap' => 'Free Swap', 
+'friday' => 'Friday', 
+'fritzdsl help' => 'To utilise one of Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modem, you must upload a package to your IPCop box. Please download the tarball corresponding to your version from the IPCop Website and then upload the entire <b>fcdsl-(your_version).tgz</b> using the form below.', 
+'fritzdsl upload' => 'Upload Fritz!DSL Driver', 
+'from' => 'From', 
+'g.dtm' => 'TO BE REMOVED', 
+'g.lite' => 'TO BE REMOVED', 
+'gateway' => 'Gateway', 
+'gateway ip' => 'Gateway IP', 
+'generate a certificate' => 'Generate a certificate:', 
+'generate root/host certificates' => 'Generate Root/Host Certificates', 
+'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generating the root and host certificates may take a long time.  It can take up to several minutes on older hardware. Please be patient.', 
+'global settings' => 'Global settings', 
+'graph' => 'Graph', 
+'graph per' => 'Graph per', 
+'green' => 'GREEN', 
+'green interface' => 'Green Interface', 
+'gui settings' => 'GUI Settings', 
+'gz with key' => 'Only an encrypted archive can be restored on this machine.', 
+'hangup' => 'Disconnect', 
+'hangup string' => 'Hangup:', 
+'high' => 'High', 
+'high memory usage' => 'High memory usage', 
+'holdoff' => 'Holdoff time (in seconds)', 
+'host' => 'Host', 
+'host certificate' => 'Host Certificate', 
+'host configuration' => 'Host Configuration', 
+'host ip' => 'Host IP address', 
+'host to net vpn' => 'Host-to-Net Virtual Private Network (RoadWarrior)', 
+'hostname' => 'Hostname', 
+'hostname and domain already in use' => 'Hostname and domain already in use.', 
+'hostname cant be empty' => 'Hostname can\'t be empty.', 
+'hostname not set' => 'Hostname not set.', 
+'hosts config added' => 'hosts config added', 
+'hosts config changed' => 'hosts config changed', 
+'hours' => 'hours', 
+'hours2' => 'Hours', 
+'ibod for dual isdn only' => 'iBOD can only be used with Dual ISDN.', 
+'icmp selected but no type' => 'ICMP selected for protocol, but no ICMP type specified.', 
+'icmp type' => 'ICMP Type', 
+'id' => 'ID', 
+'idle' => 'Idle', 
+'idle cpu' => 'Idle CPU', 
+'idle cpu usage' => 'Idle CPU Usage', 
+'idle timeout' => 'Idle timeout (mins; 0 to disable):', 
+'idle timeout not set' => 'Idle timeout not set.', 
+'ids log viewer' => 'IDS log viewer', 
+'ids logs' => 'IDS Logs', 
+'ids rules license' => 'To utilize Sourcefire VRT Certified Rules, you need to register on', 
+'ids rules license2' => 'Acknowledge the license, receive your password by email, and connect to the site. Go to', 
+'ids rules license3' => 'press the \'Get Code\' button at the bottom and copy the 40 character Oink Code into the field below.', 
+'ids rules update' => 'Snort rules update', 
+'iface' => 'Iface', 
+'ignore filter' => 'Ignore filter', 
+'ike encryption' => 'IKE Encryption:', 
+'ike grouptype' => 'IKE Grouptype:', 
+'ike integrity' => 'IKE Integrity:', 
+'ike lifetime' => 'IKE Lifetime:', 
+'ike lifetime should be between 1 and 8 hours' => 'IKE lifetime should be between 1 and 8 hours.', 
+'import' => 'Import', 
+'in' => 'In', 
+'incoming traffic in bytes per second' => 'Incoming Traffic in Bytes per Second', 
+'info' => 'Info', 
+'init string' => 'Init:', 
+'insert floppy' => 'To backup to floppy, insert a formatted floppy into the drive on IPCop and click <i>Backup to floppy</i> to backup the system configuration. Please examine the results carefully to make sure the backup completed successfully. This can take a while to complete, so please be patient.<p>', 
+'install new update' => 'Install new update:', 
+'installed' => 'Installed', 
+'installed updates' => 'Installed updates:', 
+'instant update' => 'Instant Update', 
+'interface' => 'Interface', 
+'interfaces' => 'Interfaces:', 
+'internet' => 'INTERNET', 
+'intrusion detection' => 'Intrusion Detection', 
+'intrusion detection system' => 'Intrusion Detection System', 
+'intrusion detection system log viewer' => 'Intrusion Detection System Log Viewer', 
+'intrusion detection system2' => 'Intrusion Detection System:', 
+'invalid broadcast ip' => 'Invalid broadcast IP', 
+'invalid cache size' => 'Invalid cache size.', 
+'invalid characters found in pre-shared key' => 'Invalid characters found in pre-shared key.', 
+'invalid date entered' => 'Invalid date entered.', 
+'invalid default lease time' => 'Invalid default lease time.', 
+'invalid domain name' => 'Invalid domain name.', 
+'invalid downlink speed' => 'Invalid downlink speed.', 
+'invalid end address' => 'Invalid end address.', 
+'invalid fixed ip address' => 'Invalid fixed IP address', 
+'invalid fixed mac address' => 'Invalid fixed MAC address', 
+'invalid hostname' => 'Invalid hostname.', 
+'invalid input' => 'Invalid input', 
+'invalid input for authentication method' => 'Invalid input for authentication method.', 
+'invalid input for city' => 'Invalid input for city.', 
+'invalid input for country' => 'Invalid input for country.', 
+'invalid input for department' => 'Invalid input for department.', 
+'invalid input for e-mail address' => 'Invalid input for e-mail address.', 
+'invalid input for esp keylife' => 'Invalid input for ESP Keylife', 
+'invalid input for hostname' => 'Invalid input for hostname.', 
+'invalid input for ike lifetime' => 'Invalid input for IKE lifetime', 
+'invalid input for name' => 'Invalid input for user\'s full name or system hostname', 
+'invalid input for oink code' => 'Invalid input for Oink code', 
+'invalid input for organization' => 'Invalid input for organization', 
+'invalid input for remote host/ip' => 'Invalid input for remote host/ip.', 
+'invalid input for state or province' => 'Invalid input for state or province.', 
+'invalid ip' => 'Invalid IP Address', 
+'invalid keep time' => 'Keep time must be a valid number', 
+'invalid key' => 'Invalid key.', 
+'invalid loaded file' => 'Invalid loaded file', 
+'invalid logserver address' => 'Invalid syslogd server address', 
+'invalid max lease time' => 'Invalid max lease time.', 
+'invalid maximum incoming size' => 'Invalid maximum incoming size.', 
+'invalid maximum object size' => 'Invalid maximum object size.', 
+'invalid maximum outgoing size' => 'Invalid maximum outgoing size.', 
+'invalid md5sum' => 'Invalid MD5Sum.', 
+'invalid minimum object size' => 'Invalid minimum object size.', 
+'invalid netmask' => 'Invalid netmask', 
+'invalid port' => 'Invalid port. Must be a valid port number.', 
+'invalid port list' => 'Port list syntax is: port[,port]... where port is in /etc/services or number', 
+'invalid primary dns' => 'Invalid primary DNS.', 
+'invalid primary ntp' => 'Invalid Primary NTP server address', 
+'invalid secondary dns' => 'Invalid secondary DNS.', 
+'invalid secondary ntp' => 'Invalid Secondary NTP server address', 
+'invalid start address' => 'Invalid start address.', 
+'invalid time entered' => 'Invalid time entered.', 
+'invalid time period' => 'Invalid time period', 
+'invalid uplink speed' => 'Invalid uplink speed.', 
+'invalid upstream proxy username or password setting' => 'Invalid upstream proxy username or password setting.', 
+'invalid vpi vpci' => 'Invalid VPI/VPCI settings', 
+'invalid wins address' => 'Invalid WINS Server address.', 
+'invert' => 'Invert', 
+'ip address' => 'IP Address', 
+'ip address in use' => 'IP address already in use', 
+'ip alias added' => 'External IP alias added', 
+'ip alias changed' => 'External IP alias changed', 
+'ip alias removed' => 'External IP alias removed', 
+'ip info' => 'IP Information', 
+'ipcop has now rebooted' => 'IPCop has now rebooted.', 
+'ipcop has now shutdown' => 'IPCop has now shutdown.', 
+'ipcop side' => 'IPCop side:', 
+'ipcop side is invalid' => 'IPCop Side is invalid.', 
+'ipcops hostname' => 'IPCop\'s Hostname', 
+'ipinfo' => 'IP info', 
+'isdn' => 'ISDN', 
+'isdn settings' => 'Additional ISDN settings:', 
+'isdn1' => 'Single ISDN', 
+'isdn2' => 'Dual ISDN', 
+'january' => 'January', 
+'javascript menu error1' => 'If the drop down menus aren\'t working, disable Javascript on the', 
+'javascript menu error2' => 'page.', 
+'july' => 'July', 
+'june' => 'June', 
+'kernel' => 'Kernel', 
+'kernel logging server' => 'Kernel logging server', 
+'kernel version' => 'Kernel version:', 
+'lan' => 'LAN', 
+'languagepurpose' => 'Select the language you wish IPCop to display in:', 
+'lease expires' => 'Lease expires', 
+'legend' => 'Legend', 
+'line' => 'Line', 
+'loaded modules' => 'Loaded modules:', 
+'local ntp server specified but not enabled' => 'Local NTP server specified but not enabled', 
+'local subnet' => 'Local Subnet:', 
+'local subnet is invalid' => 'Local subnet is invalid.', 
+'local vpn hostname/ip' => 'Local VPN Hostname/IP', 
+'log' => 'Log:', 
+'log enabled' => 'Log Enabled', 
+'log lines per page' => 'Lines per page', 
+'log server address' => 'Syslog server', 
+'log settings' => 'Log Settings', 
+'log summaries' => 'Log summaries', 
+'log summary' => 'Log Summary', 
+'log viewer' => 'Log viewer', 
+'log viewing options' => 'Log viewing options', 
+'logging server' => 'Logging server', 
+'loginlogout' => 'Login/Logout', 
+'lookup failed' => 'Reverse lookup failed', 
+'low' => 'Low', 
+'ls_dhcpd' => 'DHCP Server:', 
+'ls_disk space' => 'Disk space:', 
+'ls_free/swan' => 'VPN:', 
+'ls_httpd' => 'HTTP Server:', 
+'ls_init' => 'Init:', 
+'ls_kernel' => 'Kernel and Firewall:', 
+'ls_modprobe' => 'Module loader:', 
+'ls_pam_unix' => 'Local user logins:', 
+'ls_sshd' => 'Remote user logins:', 
+'ls_syslogd' => 'Syslogd:', 
+'mac address' => 'MAC Address', 
+'mac address in use' => 'MAC address already in use', 
+'main page' => 'Main page', 
+'manual' => 'Manual', 
+'manual control and status' => 'Manual control and status:', 
+'manually' => 'Manually', 
+'march' => 'March', 
+'marked' => 'Marked', 
+'max incoming size' => 'Max incoming size (KB):', 
+'max lease time' => 'Max lease time (mins):', 
+'max outgoing size' => 'Max outgoing size (KB):', 
+'max renewal time' => 'Maximum Renewal Time', 
+'max retries not set' => 'Max retries not set.', 
+'max size' => 'Max object size (KB):', 
+'maximal' => 'Maximal', 
+'maximum retries' => 'Maximum retries:', 
+'may' => 'May', 
+'medium' => 'Medium', 
+'memory' => 'Memory:', 
+'memory usage per' => 'Memory Usage per', 
+'method' => 'Method:', 
+'min size' => 'Min object size (KB):', 
+'minutes' => 'Minutes', 
+'missing dat' => 'Encrypted archive not found', 
+'missing gz' => 'Unencrypted archive not found', 
+'modem' => 'Modem', 
+'modem configuration' => 'Modem configuration', 
+'modem on com1' => 'Modem on COM1', 
+'modem on com2' => 'Modem on COM2', 
+'modem on com3' => 'Modem on COM3', 
+'modem on com4' => 'Modem on COM4', 
+'modem on com5' => 'Modem on COM5', 
+'modem settings have errors' => 'Modem settings have errors', 
+'modem speaker on' => 'Modem speaker on:', 
+'modulation' => 'Modulation', 
+'monday' => 'Monday', 
+'month' => 'Month', 
+'months' => 'months', 
+'mounted on' => 'Mounted on', 
+'name' => 'Name', 
+'name is invalid' => 'Name is invalid', 
+'name must only contain characters' => 'Name must only contain characters.', 
+'name too long' => 'User\'s full name or system hostname is too long', 
+'nat-traversal' => 'Nat Traversal:', 
+'net' => 'Net', 
+'net to net vpn' => 'Net-to-Net Virtual Private Network', 
+'netmask' => 'Netmask', 
+'network' => 'Network', 
+'network added' => 'Custom Network added', 
+'network configuration' => 'Network Configuration', 
+'network removed' => 'Custom Network removed', 
+'network status information' => 'Network Status Information', 
+'network time' => 'Use a Network Time Server:', 
+'network time from' => 'Obtain time from a Network Time Server', 
+'network traffic graphs' => 'Network traffic graphs', 
+'network updated' => 'Custom Network updated', 
+'networks settings' => 'Firewall - Network settings', 
+'new optionsfw later' => 'Your modification(s) will be active on next restart', 
+'new optionsfw must boot' => 'You must reboot your IPCop', 
+'newer' => 'Newer', 
+'no' => 'No', 
+'no alcatelusb firmware' => 'No Alcatel USB firmware. Please upload.', 
+'no cfg upload' => 'No data was uploaded', 
+'no dhcp lease' => 'No DHCP lease has been acquired', 
+'no eciadsl synch.bin file' => 'No ECI ADSL synch.bin file. Please upload.', 
+'no fritzdsl driver' => 'No Fritz!DSL driver.  Please upload.', 
+'no information available' => 'No information available.', 
+'no modem selected' => 'No modem selected', 
+'no set selected' => 'No set was selected', 
+'no time limit' => 'unlimited time', 
+'none found' => 'none found', 
+'nonetworkname' => 'No Network Name entered', 
+'noservicename' => 'No Service Name entered', 
+'not a valid ca certificate' => 'Not a valid CA certificate.', 
+'not enough disk space' => 'Not enough disk space', 
+'not present' => '<b>Not</b> present', 
+'not running' => 'not running', 
+'november' => 'November', 
+'ntp configuration' => 'NTP configuration', 
+'ntp must be enabled to have clients' => 'NTP must be enabled to have clients.', 
+'ntp server' => 'NTP Server', 
+'ntp syncro disabled' => 'NTP synchronization disabled', 
+'ntp syncro enabled' => 'NTP synchronization enabled', 
+'ntpd restarted' => 'ntpd restarted', 
+'number' => 'Number:', 
+'october' => 'October', 
+'older' => 'Older', 
+'online help en' => 'Online Help (in English)', 
+'only digits allowed in holdoff field' => 'Only digits allowed in holdoff field', 
+'only digits allowed in max retries field' => 'Only digits allowed in max retries field.', 
+'only digits allowed in the idle timeout' => 'Only digits allowed in the idle timeout.', 
+'only red' => 'Only RED', 
+'open to all' => 'Override external access to ALL', 
+'openssl produced an error' => 'OpenSSL produced an error', 
+'options' => 'Options', 
+'options fw' => 'Firewall options', 
+'optionsfw portlist hint' => 'The list of ports has to be comma separated (e.g. 137,138). You can specify up to a maximum of 15 ports per protocol.', 
+'optionsfw warning' => 'Modifying these options implies restart of firewall', 
+'orange' => 'ORANGE', 
+'organization cant be empty' => 'Organization can\'t be empty.', 
+'organization name' => 'Organization Name', 
+'organization too long' => 'Organization is too long; it should not be longer than 60 characters.', 
+'original' => 'Original', 
+'other countries' => 'Other countries', 
+'other login script' => 'Other login script', 
+'out' => 'Out', 
+'outgoing traffic in bytes per second' => 'Outgoing Traffic in Bytes per Second', 
+'package failed to install' => 'Package failed to install.', 
+'pap or chap' => 'PAP or CHAP', 
+'password' => 'Password:', 
+'password contains illegal characters' => 'Password contains illegal characters.', 
+'password not set' => 'Password not set.', 
+'password too short' => 'Password is too short.', 
+'passwords do not match' => 'Passwords do not match.', 
+'passwords must be at least 6 characters in length' => 'Passwords must be at least 6 characters in length', 
+'percentage' => 'Percentage', 
+'persistent' => 'Persistent', 
+'pfs yes no' => 'Perfect Forward Secrecy (PFS)', 
+'phase1 group' => 'Phase1 Group', 
+'phonebook entry' => 'Phonebook entry:', 
+'ping disabled' => 'Disable ping response', 
+'pkcs12 file password' => 'PKCS12 File Password', 
+'port' => 'Port', 
+'port forwarding configuration' => 'Port forwarding configuration', 
+'ports' => 'Ports', 
+'pots' => 'Analog classic line', 
+'ppp setup' => 'PPP setup', 
+'pppoe' => 'PPPoE', 
+'pppoe settings' => 'Additional PPPoE settings:', 
+'pptp settings' => 'Additional PPTP settings:', 
+'pre-shared key is too short' => 'Pre-shared key is too short.', 
+'present' => 'Present', 
+'primary dns' => 'Primary DNS:', 
+'primary ntp server' => 'Primary NTP Server', 
+'primary wins server address' => 'Primary WINS Server address', 
+'priority' => 'Priority', 
+'profile' => 'Profile', 
+'profile deleted' => 'Profile deleted: ', 
+'profile has errors' => 'Profile has errors', 
+'profile made current' => 'Profile made current: ', 
+'profile name' => 'Profile name:', 
+'profile name not given' => 'Profile name not given.', 
+'profile saved' => 'Profile saved: ', 
+'profiles' => 'Profiles:', 
+'proto' => 'Proto', 
+'protocol' => 'Protocol', 
+'proxy' => 'Proxy', 
+'proxy access graphs' => 'Proxy access graphs', 
+'proxy log viewer' => 'Proxy log viewer', 
+'proxy logs' => 'Proxy Logs', 
+'proxy port' => 'Proxy Port', 
+'psk' => 'PSK', 
+'pulse' => 'Pulse', 
+'pulse dial' => 'Pulse dial:', 
+'ram' => 'RAM', 
+'read sectors' => 'Read Sectors', 
+'reboot' => 'Reboot', 
+'reboot schedule' => 'Schedule IPCop reboots', 
+'rebooting' => 'Rebooting', 
+'rebooting ipcop' => 'Rebooting IPCop', 
+'reconnection' => 'Reconnection', 
+'references' => 'References', 
+'refresh' => 'Refresh', 
+'refresh index page while connected' => 'Refresh index.cgi page whilst connected', 
+'refresh update list' => 'Refresh update list', 
+'registered user rules' => 'Sourcefire VRT rules for registered users', 
+'released' => 'Released', 
+'remark' => 'Remark', 
+'remark title' => 'Remark:', 
+'remote access' => 'Remote access', 
+'remote host/ip' => 'Remote Host/IP', 
+'remote logging' => 'Remote logging', 
+'remote subnet' => 'Remote subnet:', 
+'remote subnet is invalid' => 'Remote subnet is invalid.', 
+'remove' => 'Remove', 
+'remove ca certificate' => 'Remove CA Certificate', 
+'reserved dst port' => 'Destination port is reserved for IPCop use only:', 
+'reserved src port' => 'Source port is reserved for IPCop use only:', 
+'reset' => 'Reset', 
+'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Resetting the VPN configuration will remove the root CA, the host certificate and all certificate based connections', 
+'restart' => 'Restart', 
+'restore' => 'Restore', 
+'restore defaults' => 'Restore defaults', 
+'restore hardware settings' => 'Restore hardware settings', 
+'reverse sort' => 'Sort in reverse chronological order', 
+'root certificate' => 'Root Certificate', 
+'router ip' => 'Router IP Address:', 
+'routing table entries' => 'Routing Table Entries:', 
+'rsvd dst port overlap' => 'Destination Port Range overlaps a port reserved for IPCop:', 
+'rsvd src port overlap' => 'Source Port Range overlaps a port reserved for IPCop:', 
+'rules already up to date' => 'Rules already up to date', 
+'running' => 'RUNNING', 
+'saturday' => 'Saturday', 
+'save' => 'Save', 
+'save error' => 'Unable to save configuration archive file', 
+'script name' => 'Script name:', 
+'secondary dns' => 'Secondary DNS:', 
+'secondary ntp server' => 'Secondary NTP Server', 
+'secondary wins server address' => 'Secondary WINS Server address', 
+'seconds' => 'Secs', 
+'section' => 'Section', 
+'sectors read from disk per second' => 'Sectors read from disk per second', 
+'sectors written to disk per second' => 'Sectors written to disk per second', 
+'secure shell server' => 'Secure shell server', 
+'select' => 'Select', 
+'select dest net' => 'Select a destination net.', 
+'select source net' => 'Select a source net. If you have no Orange or Blue net configured, you need no DMZ Pinholes.', 
+'send cr' => 'ISP requires Carriage Return:', 
+'september' => 'September', 
+'serial' => 'Serial', 
+'service' => 'Service', 
+'service added' => 'Custom Network Service added', 
+'service name' => 'Service name:', 
+'service removed' => 'Custom Network Service removed', 
+'service updated' => 'Custom Network Service updated', 
+'servicename' => 'Service Name', 
+'services' => 'Services:', 
+'services settings' => 'Firewall - Services settings', 
+'set time now' => 'Set Time Now', 
+'set time now help' => 'To queue a synchronization event at any time (even while using a repeating schedule), press the <i>Set Time Now</i> button. Please note that you may have to wait for five minutes, or more, before a sync event occurs.', 
+'settings' => 'Settings', 
+'shaping add options' => 'Add service', 
+'shaping list options' => 'Traffic shaping services', 
+'shared' => 'shared', 
+'shared memory' => 'Shared Memory', 
+'show ca certificate' => 'Show CA Certificate', 
+'show certificate' => 'Show Certificate', 
+'show host certificate' => 'Show Host Certificate', 
+'show root certificate' => 'Show Root Certificate', 
+'shutdown' => 'Shutdown', 
+'shutdown control' => 'Shutdown control', 
+'shutdown2' => 'Shutdown:', 
+'shutting down' => 'Shutting down', 
+'shutting down ipcop' => 'Shutting down IPCop', 
+'size' => 'Size', 
+'snort hits' => 'Total of number of Intrusion rules activated for', 
+'sort ascending' => 'Sort Ascending', 
+'sort descending' => 'Sort Descending', 
+'sound' => 'Sound', 
+'source' => 'Source', 
+'source ip' => 'Source IP', 
+'source ip and port' => 'Source IP:Port', 
+'source ip bad' => 'Not a valid IP address or a network address.', 
+'source ip in use' => 'Source IP in use:', 
+'source ip or net' => 'Source IP or Net', 
+'source net' => 'Source Net', 
+'source network' => 'Source IP, or network (blank for "ALL"):', 
+'source port' => 'Source port', 
+'source port in use' => 'Source port in use:', 
+'source port numbers' => 'Source port must be a valid port number or port range.', 
+'source port overlaps' => 'Source port range overlaps an existing port range.', 
+'speaker off' => 'Speaker off:', 
+'speaker on' => 'Speaker on:', 
+'src port' => 'Src Port', 
+'srcprt range overlaps' => 'Source port range overlaps an already defined port.', 
+'srcprt within existing' => 'Source port is within an already defined port range.', 
+'ssdmz pinholes' => 'DMZ Pinholes', 
+'ssh access' => 'SSH Access', 
+'ssh fingerprint' => 'Fingerprint', 
+'ssh host keys' => 'SSH Host Keys', 
+'ssh is disabled' => 'SSH is disabled.  Stopping.', 
+'ssh is enabled' => 'SSH is enabled.  Restarting.', 
+'ssh key' => 'Key', 
+'ssh key size' => 'Size (bits)', 
+'ssh keys' => 'Allow public key based authentication', 
+'ssh no auth' => 'You have not allowed any authentication methods; this will stop you logging in', 
+'ssh passwords' => 'Allow password based authentication', 
+'ssh portfw' => 'Allow TCP Forwarding', 
+'ssh1 disabled' => 'SSHv1 is disabled, a version 2 client will be required.', 
+'ssh1 enabled' => 'SSHv1 is enabled, old clients will be supported.', 
+'ssh1 support' => 'Support SSH protocol version 1 (required only for old clients)', 
+'ssnetwork status' => 'Network Status', 
+'sspasswords' => 'Passwords', 
+'ssport forwarding' => 'Port Forwarding', 
+'ssproxy graphs' => 'Proxy Graphs', 
+'sssystem status' => 'System Status', 
+'sstraffic graphs' => 'Traffic Graphs', 
+'standard login script' => 'Standard login script', 
+'start address' => 'Start address:', 
+'state or province' => 'State or Province', 
+'static ip' => 'Static IP', 
+'status' => 'Status', 
+'status information' => 'Status information', 
+'stopped' => 'STOPPED', 
+'subject' => 'Subject', 
+'subnet is invalid' => 'Netmask is invalid', 
+'subscripted user rules' => 'Sourcefire VRT rules with subscription', 
+'successfully refreshed updates list' => 'Successfully refreshed updates list.', 
+'summaries kept' => 'Keep summaries for', 
+'sunday' => 'Sunday', 
+'swap' => 'Swap', 
+'swap usage per' => 'Swap Usage per', 
+'system cpu' => 'System CPU', 
+'system cpu usage' => 'System CPU Usage', 
+'system graphs' => 'System Graphs', 
+'system log viewer' => 'System Log Viewer', 
+'system logs' => 'System Logs', 
+'system status information' => 'System Status Information', 
+'telephone not set' => 'Telephone not set.', 
+'the following update was successfully installed' => 'The following update was successfully installed', 
+'the statistics were last updated at' => 'The statistics were last updated at', 
+'there are updates' => 'There are updates available for your system. Please go to the "Updates" section for more information.', 
+'there are updates available' => 'There are updates available for your system. It is strongly urged that you install them as soon as possible.', 
+'there was no file upload' => 'There was no file upload.', 
+'this feature has been sponsored by' => 'This feature has been sponsored by', 
+'this field may be blank' => 'This field may be blank.', 
+'this is not a valid archive' => 'This is not a valid archive.', 
+'this is not an authorised update' => 'This is not an authorised update.', 
+'this update is already installed' => 'This update is already installed.', 
+'thursday' => 'Thursday', 
+'time' => 'Time', 
+'time date manually reset' => 'Time/Date manually reset.', 
+'time server' => 'Time Server', 
+'timeout must be a number' => 'Timeout must be a number.', 
+'title' => 'Title', 
+'to' => 'To', 
+'to install an update' => 'To install an update please upload the .tgz.gpg file below:', 
+'toggle enable disable' => 'Enable or Disable', 
+'tone' => 'Tone', 
+'tone dial' => 'Tone dial:', 
+'total hits for log section' => 'Total Hits for Log Section', 
+'traffic on' => 'Traffic on', 
+'traffic shaping' => 'Traffic Shaping', 
+'traffic shaping settings' => 'Traffic Shaping Settings', 
+'transfer limits' => 'Transfer limits', 
+'transparent on' => 'Transparent on', 
+'tuesday' => 'Tuesday', 
+'type' => 'Type', 
+'unable to alter profiles while red is active' => 'Unable to alter profiles while RED is active.', 
+'unable to contact' => 'Unable to contact', 
+'unencrypted' => 'Unencrypted', 
+'unknown' => 'UNKNOWN', 
+'unnamed' => 'Unnamed', 
+'update' => 'Update', 
+'update time' => 'Update the time:', 
+'update transcript' => 'Update transcript', 
+'updates' => 'Updates', 
+'updates installed' => 'Updates Installed', 
+'updates is old1' => 'Your update file is ', 
+'updates is old2' => 'days old. We recommend you update it on the <b>System>Updates</b> page.', 
+'uplink speed' => 'Uplink speed (kbit/sec)', 
+'upload' => 'Upload', 
+'upload a certificate' => 'Upload a certificate:', 
+'upload a certificate request' => 'Upload a certificate request:', 
+'upload ca certificate' => 'Upload CA Certificate', 
+'upload fcdsl.o' => 'TO BE REMOVED', 
+'upload file' => 'Upload file', 
+'upload p12 file' => 'Upload PKCS12 file', 
+'upload successful' => 'Upload successful.', 
+'upload synch.bin' => 'Upload synch.bin', 
+'upload update file' => 'Upload update file:', 
+'upstream password' => 'Upstream password:', 
+'upstream proxy host:port' => 'Upstream proxy (host:port)', 
+'upstream username' => 'Upstream username:', 
+'uptime and users' => 'Uptime and users:', 
+'usb modem on acm0' => 'USB Modem on ACM0', 
+'usb modem on acm1' => 'USB Modem on ACM1', 
+'usb modem on acm2' => 'USB Modem on ACM2', 
+'usb modem on acm3' => 'USB Modem on ACM3', 
+'use' => 'Use', 
+'use a pre-shared key' => 'Use a Pre-Shared Key:', 
+'use dov' => 'Use DOV (Data Over Voice):', 
+'use ibod' => 'Use Bandwidth on Demand (iBOD):', 
+'use ipcop red ip' => 'The classical RED IP used by IPCop during connection', 
+'use only proposed settings' => 'Use only proposed settings.', 
+'used' => 'Used', 
+'used memory' => 'Used Memory', 
+'used swap' => 'Used Swap', 
+'user cpu' => 'User CPU', 
+'user cpu usage' => 'User CPU Usage', 
+'username' => 'User Name:', 
+'username not set' => 'Username not set.', 
+'users department' => 'User\'s Department', 
+'users email' => 'User\'s E-mail Address', 
+'users fullname or system hostname' => 'User\'s Full Name or System Hostname', 
+'valid root certificate already exists' => 'A valid root certificate already exists.', 
+'vci number' => 'VCI Number:', 
+'virtual private networking' => 'Virtual Private Networking', 
+'vpi number' => 'VPI Number:', 
+'vpn' => 'VPN', 
+'vpn configuration main' => 'VPN configuration - Main', 
+'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 on blue' => 'VPN on BLUE', 
+'waiting to synchronize clock' => 'Waiting to synchronize clock', 
+'warning messages' => 'Warning messages', 
+'web hits' => 'Total number of websites matching selected criteria for', 
+'web proxy' => 'Web proxy', 
+'web proxy configuration' => 'Web proxy configuration', 
+'web server' => 'Web server', 
+'website' => 'Website', 
+'wednesday' => 'Wednesday', 
+'week' => 'Week', 
+'weeks' => 'weeks', 
+'wildcards' => 'Wildcards', 
+'wireless' => 'Wireless', 
+'wireless config added' => 'Wireless config added', 
+'wireless config changed' => 'Wireless config changed', 
+'wireless configuration' => 'Wireless Configuration', 
+'written sectors' => 'Written Sectors', 
+'xtaccess all error' => 'You cannot set an external access to ALL, that is done in the port forwarding record.', 
+'year' => 'Year', 
+'yes' => 'Yes', 
+'you can only define one roadwarrior connection when using pre-shared key authentication' => 'You can only define one Roadwarrior connection when using pre-shared key authentication.<br />Either you already have a Roadwarrior connection with pre-shared key authentication, or you\'re trying to add one now.', 
+'your department' => 'Your Department', 
+'your e-mail' => 'Your E-mail Address',  
+'backup archive'=> 'Backup File (.dat)',
+'backup clear archive'=> 'Clear Backup File (.gz)',
+'backup key'          => 'Backup Encryption Key',
+'backup key file'     => 'Backup key file',
+'backup generate key'   => 'Generate key',
+'backup import key'   => 'Import key',
+'backup extract key'  => 'Extract key',
+'backup erase key'    => 'Erase key',
+'backup missing key'  => 'Need the backup key to restore a set',
+'backup export key'   => 'Export key',
+'backup explain key'  => 'Backup are encrypted using a key. To avoid illegal backup manipulations, IPCop only restores a backup that is encrypted with the key you will specify here. You have three options available to you',
+'backup explain key li1'  => 'let IPCop create key for you.',
+'backup explain key li2'  => 'import a saved key (possibly password protected).',
+'backup explain key li3'  => 'extract a key from a non-encrypted 1.4.10 backup only.' ,
+'backup explain key no1'  => 'you should save this key if you plan to restore new machines, IPCop accepts only once key creation/import.' , 
+'backup explain key no2'  => 'legacy floppy backups are not concerned with this key.',
+'backup protect key password' => 'Backup key password',
+'backup import dat file' => 'Import a backup (.dat) file',
+'backup key info' => 'IPcop restricts access to the backup key, thus you must know root password. You have possibility to protect this key outside of IPCop with a password.',
+'backup media info'   => 'Floppy and/or unformatted media may display stranges partitions sizes. In this case, select the whole device. Remenber to mount harddisk before removing device. Note: floppy created here are not usable with IPCop installer program!',
+'notes'   => 'Notes',
+'current media' => 'Current media', 
+'choose media'        => 'Choose media',
+'local hard disk'     => 'Hard disk',
+'insert removable device' => 'Insert a removable device',
+'mount'=>'Mount',
+'done'=>'Do it',
+'incorrect password'=>'Incorrect password',
+'root user password'=>'root password',
+'ip address outside subnets' => 'IP Address outside subnets',
+'dhcp bootp pxe data' => 'Enter optional bootp pxe data for this fixed lease',
+'invalid local-remote id' => 'When used, local & remote id must not be equal and begin with a "@" sign. These are leftid and rightid in openswan terminology.',
+'override mtu' => 'Override default MTU',
+'vpn mtu invalid' => 'MTU must be a numeric value!',
+'squid extension methods'=>'Your <tt>extension_methods</tt> list',
+'squid extension methods invalid' => 'Your \'extension_methods\' list can only contain uppercase words of letters and digits, separated with a space. '
+'dial profile' => 'Connect with Profile',
+'quick control' => 'Quick Control',
+'allmsg' => 'show all',
+'selecttraffic' => 'Select utilization-overview:',
+'sstraffic' => 'net-traffic',
+'trafficblue' => 'WLAN',
+'trafficdate' => 'Date',
+'trafficfrom' => 'From',
+'trafficgreen' => 'Internal net',
+'trafficin' => 'Input',
+'trafficorange' => 'DMZ',
+'trafficout' => 'Output',
+'trafficred' => 'Internet',
+'traffics' => 'Utilization-overview:',
+'trafficsum' => 'Totals',
+'trafficto' => 'To',
+
+);
index 601e766..f40347b 100644 (file)
@@ -81,7 +81,7 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 md5 : $(subst %,%_MD5,$(objects))
 
 dist: 
-       make-packages.sh asterisk $(THISAPP)
+       make-packages.sh asterisk $(THISAPP)-ipfire-beta-1
 
 ###############################################################################
 # Downloading, checking, md5sum
index 3fca1a2..64610dd 100644 (file)
@@ -85,6 +85,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP)/capiinit && ./configure
        cd $(DIR_APP)/capiinit && make
        cd $(DIR_APP)/capiinit && make install
+       cd $(DIR_APP)/capiinfo && ./configure
+       cd $(DIR_APP)/capiinfo && make
+       cd $(DIR_APP)/capiinfo && make install
        cd $(DIR_APP)/capi20 && SED=sed ./configure
        cd $(DIR_APP)/capi20 && SED=sed make
        cd $(DIR_APP)/capi20 && make install
index 57f9925..376a4c7 100644 (file)
@@ -57,7 +57,7 @@ $(TARGET) :
 
        # Create all directories
        for i in addon-lang alcatelusb auth backup backup/sets ca certs cnx_pci crls ddns dhcp dhcpc dmzholes \
-           eagle-usb eciadsl ethernet isdn key langs logging main modem optionsfw patches pakfire portfw \
+           eagle-usb eciadsl ethernet isdn key langs logging main modem net-traffic optionsfw patches pakfire portfw \
            ppp private proxy red remote shaping snort time uplinks vpn wireless xtaccess ; do \
                mkdir -p $(CONFIG_ROOT)/$$i; \
        done
@@ -85,6 +85,7 @@ $(TARGET) :
        cp $(DIR_SRC)/config/cfgroot/advoptions-list            $(CONFIG_ROOT)/dhcp/advoptions-list
        cp $(DIR_SRC)/config/cfgroot/modem-defaults             $(CONFIG_ROOT)/modem/defaults
        cp $(DIR_SRC)/config/cfgroot/modem-settings             $(CONFIG_ROOT)/modem/settings
+       cp $(DIR_SRC)/config/cfgroot/net-traffic-lib.pl         $(CONFIG_ROOT)/net-traffic/net-traffic-lib.pl
        cp $(DIR_SRC)/config/cfgroot/proxy-acl                  $(CONFIG_ROOT)/proxy/acl-1.4
        cp $(DIR_SRC)/config/cfgroot/xtaccess-config            $(CONFIG_ROOT)/xtaccess/config
        cp $(DIR_SRC)/config/cfgroot/time-settings              $(CONFIG_ROOT)/time/settings
index 77f7302..1c42c25 100644 (file)
@@ -53,5 +53,5 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && cp -fRv src/pakfire $(DIR_APP)
        cd $(DIR_APP) && mv -vf pakfire.conf /etc
        cd $(DIR_APP) && chown root.root $(DIR_APP) -R && chmod 755 pakfire lib/*
-       cd $(DIR_APP) && find $(DIR_APP) -name .svn -exec rm -rf {} \;
+       cd $(DIR_APP) && find $(DIR_APP) -name .svn -exec rm -rf {} \;
        @$(POSTBUILD)
\ No newline at end of file
index a8088a2..5639359 100644 (file)
@@ -21022,6 +21022,9 @@ home/httpd/cgi-bin/upload.cgi
 home/httpd/cgi-bin/vpnmain.cgi
 home/httpd/cgi-bin/wireless.cgi
 home/httpd/cgi-bin/xtaccess.cgi
+home/httpd/cgi-bin/traffic.cgi
+home/httpd/cgi-bin/traffics.cgi
+home/httpd/cgi-bin/pakfire.cgi
 #home/httpd/htdocs
 #home/httpd/htdocs/apache_pb.gif
 #home/httpd/htdocs/index.html.ca
@@ -21742,6 +21745,8 @@ usr/lib/libcapi20.so
 #usr/lib/libcapi20.la
 #usr/lib/libcapi20.a
 usr/sbin/capiinit
+usr/bin/capiinfo
+#usr/share/man/man8/capiinfo.8
 #usr/share/man/man8/avmcapictrl.8
 #usr/share/man/man8/capiplugin.8
 #sbin/avmcapictrl