Merge remote-tracking branch 'ms/modem-status' into next
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 21 Apr 2014 12:02:17 +0000 (14:02 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 21 Apr 2014 12:02:17 +0000 (14:02 +0200)
Conflicts:
doc/language_issues.es
doc/language_issues.fr
doc/language_issues.nl
doc/language_issues.pl
doc/language_issues.ru
doc/language_issues.tr
doc/language_missings

102 files changed:
config/cfgroot/header.pl
config/cfgroot/modem-lib.pl [new file with mode: 0644]
config/firewall/firewall-lib.pl
config/firewall/rules.pl
config/menu/20-status.menu
config/menu/50-firewall.menu
config/rootfiles/common/apache2
config/rootfiles/common/configroot
config/rootfiles/common/perl-Device-Modem [new file with mode: 0644]
config/rootfiles/common/perl-Device-SerialPort [new file with mode: 0644]
config/rootfiles/core/77/exclude [moved from config/rootfiles/core/76/exclude with 100% similarity]
config/rootfiles/core/77/filelists/Net_SSLeay [moved from config/rootfiles/core/76/filelists/Net_SSLeay with 100% similarity]
config/rootfiles/core/77/filelists/apache2 [moved from config/rootfiles/core/76/filelists/apache2 with 100% similarity]
config/rootfiles/core/77/filelists/armv5tel/binutils [moved from config/rootfiles/core/76/filelists/armv5tel/binutils with 100% similarity]
config/rootfiles/core/77/filelists/armv5tel/dracut [moved from config/rootfiles/core/76/filelists/armv5tel/dracut with 100% similarity]
config/rootfiles/core/77/filelists/armv5tel/gcc [moved from config/rootfiles/core/76/filelists/armv5tel/gcc with 100% similarity]
config/rootfiles/core/77/filelists/armv5tel/glibc [moved from config/rootfiles/core/76/filelists/armv5tel/glibc with 100% similarity]
config/rootfiles/core/77/filelists/armv5tel/initscripts [moved from config/rootfiles/core/76/filelists/armv5tel/initscripts with 100% similarity]
config/rootfiles/core/77/filelists/armv5tel/linux-kirkwood [moved from config/rootfiles/core/76/filelists/armv5tel/linux-kirkwood with 100% similarity]
config/rootfiles/core/77/filelists/armv5tel/linux-multi [moved from config/rootfiles/core/76/filelists/armv5tel/linux-multi with 100% similarity]
config/rootfiles/core/77/filelists/armv5tel/linux-rpi [moved from config/rootfiles/core/76/filelists/armv5tel/linux-rpi with 100% similarity]
config/rootfiles/core/77/filelists/armv5tel/lm_sensors [moved from config/rootfiles/core/76/filelists/armv5tel/lm_sensors with 100% similarity]
config/rootfiles/core/77/filelists/armv5tel/rpi-firmware [moved from config/rootfiles/core/76/filelists/armv5tel/rpi-firmware with 100% similarity]
config/rootfiles/core/77/filelists/armv5tel/u-boot [moved from config/rootfiles/core/76/filelists/armv5tel/u-boot with 100% similarity]
config/rootfiles/core/77/filelists/armv5tel/util-linux [moved from config/rootfiles/core/76/filelists/armv5tel/util-linux with 100% similarity]
config/rootfiles/core/77/filelists/beep [moved from config/rootfiles/core/76/filelists/beep with 100% similarity]
config/rootfiles/core/77/filelists/bridge-utils [moved from config/rootfiles/core/76/filelists/bridge-utils with 100% similarity]
config/rootfiles/core/77/filelists/coreutils [moved from config/rootfiles/core/76/filelists/coreutils with 100% similarity]
config/rootfiles/core/77/filelists/cyrus-sasl [moved from config/rootfiles/core/76/filelists/cyrus-sasl with 100% similarity]
config/rootfiles/core/77/filelists/dosfstools [moved from config/rootfiles/core/76/filelists/dosfstools with 100% similarity]
config/rootfiles/core/77/filelists/dvb-firmwares [moved from config/rootfiles/core/76/filelists/dvb-firmwares with 100% similarity]
config/rootfiles/core/77/filelists/e2fsprogs [moved from config/rootfiles/core/76/filelists/e2fsprogs with 100% similarity]
config/rootfiles/core/77/filelists/files [moved from config/rootfiles/core/76/filelists/files with 100% similarity]
config/rootfiles/core/77/filelists/fireinfo [moved from config/rootfiles/core/76/filelists/fireinfo with 100% similarity]
config/rootfiles/core/77/filelists/firewall [moved from config/rootfiles/core/76/filelists/firewall with 100% similarity]
config/rootfiles/core/77/filelists/i586/binutils [moved from config/rootfiles/core/76/filelists/i586/binutils with 100% similarity]
config/rootfiles/core/77/filelists/i586/dracut [moved from config/rootfiles/core/76/filelists/i586/dracut with 100% similarity]
config/rootfiles/core/77/filelists/i586/gcc [moved from config/rootfiles/core/76/filelists/i586/gcc with 100% similarity]
config/rootfiles/core/77/filelists/i586/glibc [moved from config/rootfiles/core/76/filelists/i586/glibc with 100% similarity]
config/rootfiles/core/77/filelists/i586/grub [moved from config/rootfiles/core/76/filelists/i586/grub with 100% similarity]
config/rootfiles/core/77/filelists/i586/initscripts [moved from config/rootfiles/core/76/filelists/i586/initscripts with 100% similarity]
config/rootfiles/core/77/filelists/i586/linux [moved from config/rootfiles/core/76/filelists/i586/linux with 100% similarity]
config/rootfiles/core/77/filelists/i586/lm_sensors [moved from config/rootfiles/core/76/filelists/i586/lm_sensors with 100% similarity]
config/rootfiles/core/77/filelists/i586/strongswan-padlock [moved from config/rootfiles/core/76/filelists/i586/strongswan-padlock with 100% similarity]
config/rootfiles/core/77/filelists/i586/util-linux [moved from config/rootfiles/core/76/filelists/i586/util-linux with 100% similarity]
config/rootfiles/core/77/filelists/iptables [moved from config/rootfiles/core/76/filelists/iptables with 100% similarity]
config/rootfiles/core/77/filelists/iw [moved from config/rootfiles/core/76/filelists/iw with 100% similarity]
config/rootfiles/core/77/filelists/jquery [moved from config/rootfiles/core/76/filelists/jquery with 100% similarity]
config/rootfiles/core/77/filelists/kmod [moved from config/rootfiles/core/76/filelists/kmod with 100% similarity]
config/rootfiles/core/77/filelists/libnl [moved from config/rootfiles/core/76/filelists/libnl with 100% similarity]
config/rootfiles/core/77/filelists/libusbx [moved from config/rootfiles/core/76/filelists/libusbx with 100% similarity]
config/rootfiles/core/77/filelists/libxml2 [moved from config/rootfiles/core/76/filelists/libxml2 with 100% similarity]
config/rootfiles/core/77/filelists/linux-firmware [moved from config/rootfiles/core/76/filelists/linux-firmware with 100% similarity]
config/rootfiles/core/77/filelists/lzo [moved from config/rootfiles/core/76/filelists/lzo with 100% similarity]
config/rootfiles/core/77/filelists/misc-progs [moved from config/rootfiles/core/76/filelists/misc-progs with 100% similarity]
config/rootfiles/core/77/filelists/mysql-libs [moved from config/rootfiles/core/76/filelists/mysql-libs with 100% similarity]
config/rootfiles/core/77/filelists/net-tools [moved from config/rootfiles/core/76/filelists/net-tools with 100% similarity]
config/rootfiles/core/77/filelists/ntp [moved from config/rootfiles/core/76/filelists/ntp with 100% similarity]
config/rootfiles/core/77/filelists/openssh [moved from config/rootfiles/core/76/filelists/openssh with 100% similarity]
config/rootfiles/core/77/filelists/openssl [moved from config/rootfiles/core/76/filelists/openssl with 100% similarity]
config/rootfiles/core/77/filelists/openssl-compat [moved from config/rootfiles/core/76/filelists/openssl-compat with 100% similarity]
config/rootfiles/core/77/filelists/openvpn [moved from config/rootfiles/core/76/filelists/openvpn with 100% similarity]
config/rootfiles/core/77/filelists/pakfire [moved from config/rootfiles/core/76/filelists/pakfire with 100% similarity]
config/rootfiles/core/77/filelists/paxctl [moved from config/rootfiles/core/76/filelists/paxctl with 100% similarity]
config/rootfiles/core/77/filelists/php [moved from config/rootfiles/core/76/filelists/php with 100% similarity]
config/rootfiles/core/77/filelists/rng-tools [moved from config/rootfiles/core/76/filelists/rng-tools with 100% similarity]
config/rootfiles/core/77/filelists/setup [moved from config/rootfiles/core/76/filelists/setup with 100% similarity]
config/rootfiles/core/77/filelists/strongswan [moved from config/rootfiles/core/76/filelists/strongswan with 100% similarity]
config/rootfiles/core/77/filelists/tzdata [moved from config/rootfiles/core/76/filelists/tzdata with 100% similarity]
config/rootfiles/core/77/filelists/udev [moved from config/rootfiles/core/76/filelists/udev with 100% similarity]
config/rootfiles/core/77/filelists/usb_modeswitch [moved from config/rootfiles/core/76/filelists/usb_modeswitch with 100% similarity]
config/rootfiles/core/77/filelists/usb_modeswitch_data [moved from config/rootfiles/core/76/filelists/usb_modeswitch_data with 100% similarity]
config/rootfiles/core/77/filelists/usbutils [moved from config/rootfiles/core/76/filelists/usbutils with 100% similarity]
config/rootfiles/core/77/filelists/vim [moved from config/rootfiles/core/76/filelists/vim with 100% similarity]
config/rootfiles/core/77/filelists/wget [moved from config/rootfiles/core/76/filelists/wget with 100% similarity]
config/rootfiles/core/77/filelists/wpa_supplicant [moved from config/rootfiles/core/76/filelists/wpa_supplicant with 100% similarity]
config/rootfiles/core/77/filelists/xz [moved from config/rootfiles/core/76/filelists/xz with 100% similarity]
config/rootfiles/core/77/meta [moved from config/rootfiles/core/76/meta with 100% similarity]
config/rootfiles/core/77/update.sh [moved from config/rootfiles/core/76/update.sh with 99% similarity]
doc/language_issues.de
doc/language_issues.en
doc/language_issues.es
doc/language_issues.fr
doc/language_issues.nl
doc/language_issues.pl
doc/language_issues.ru
doc/language_issues.tr
doc/language_missings
html/cgi-bin/firewall.cgi
html/cgi-bin/fwhosts.cgi
html/cgi-bin/media.cgi
html/cgi-bin/modem-status.cgi [new file with mode: 0755]
html/cgi-bin/pppsetup.cgi
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl
lfs/configroot
lfs/linux
lfs/perl-Device-Modem [new file with mode: 0644]
lfs/perl-Device-SerialPort [new file with mode: 0644]
lfs/strongswan
make.sh
src/initscripts/init.d/firewall

index 39472a8..bbb7e21 100644 (file)
@@ -153,6 +153,10 @@ sub genmenu {
     if (&General::RedIsWireless()) {
         $menu->{'01.system'}{'subMenu'}->{'21.wlan'}{'enabled'} = 1;
     }
+
+    if ($ethsettings{'RED_TYPE'} eq "PPPOE") {
+        $menu->{'02.status'}{'subMenu'}->{'74.modem-status'}{'enabled'} = 1;
+    }
 }
 
 sub showhttpheaders
diff --git a/config/cfgroot/modem-lib.pl b/config/cfgroot/modem-lib.pl
new file mode 100644 (file)
index 0000000..51b6d68
--- /dev/null
@@ -0,0 +1,276 @@
+#!/usr/bin/perl
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2014 IPFire Team  <info@ipfire.org>                           #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+use Device::Modem;
+
+package Modem;
+
+sub new() {
+       my $class = shift;
+
+       my $port = shift;
+       my $baud = shift;
+
+       my $self = {};
+       bless $self, $class;
+
+       # Initialize the connetion to the modem.
+       $self->_initialize($port, $baud);
+
+       if ($self->_is_working()) {
+               return $self;
+       }
+
+       return undef;
+}
+
+sub DESTROY() {
+       my $self = shift;
+
+       # Close connection to modem.
+       if ($self->{modem}) {
+               $self->{modem}->close();
+       }
+}
+
+sub _initialize() {
+       my ($self, $port, $baud) = @_;
+
+       # Establish connection to the modem.
+       $self->{modem} = new Device::Modem(port => $port);
+       $self->{modem}->connect(baudrate => $baud);
+}
+
+sub _is_working() {
+       my $self = shift;
+
+       # Check if the modem responds to AT commands.
+       $self->{modem}->atsend("AT\r\n");
+
+       my $response = $self->{modem}->answer();
+       return ($response eq "OK");
+}
+
+sub _command() {
+       my $self = shift;
+       my $cmd  = shift;
+
+       # Terminate the AT command with newline.
+       $cmd .= "\r\n";
+
+       $self->{modem}->atsend($cmd);
+
+       my $response = $self->{modem}->answer();
+       my @response = split(/\n/, $response);
+
+       # Trim leading and trailing spaces.
+       foreach my $line (@response) {
+               $line =~ s/^\s+|\s+$//g;
+               chomp($line);
+       }
+
+       my $last_element = pop(@response);
+       unless ($last_element eq "OK") {
+               push(@response, $last_element);
+       }
+
+       $response = join("\n", @response);
+
+       return $self->_trim($response);
+}
+
+sub _trim() {
+       my $self = shift;
+       my $input = shift;
+
+       my $first_char = substr($input, 0, 1);
+       if ($first_char eq "+") {
+               my @output = split(/:/, $input);
+               if ($#output == 1) {
+                       return $output[1];
+               }
+       }
+
+       return $input;
+}
+
+sub get_vendor() {
+       my $self = shift;
+
+       return $self->_command("AT+GMI");
+}
+
+sub get_model() {
+       my $self = shift;
+
+       return $self->_command("AT+GMM");
+}
+
+sub get_software_version() {
+       my $self = shift;
+
+       return $self->_command("AT+GMR");
+}
+
+sub get_imei() {
+       my $self = shift;
+
+       return $self->_command("AT+GSN");
+}
+
+sub get_capabilities() {
+       my $self = shift;
+
+       my $output = $self->_command("AT+GCAP");
+       return split(/,/, $output);
+}
+
+sub is_sim_unlocked() {
+       my $self = shift;
+
+       # TODO
+       return 1;
+}
+
+sub get_sim_imsi() {
+       my $self = shift;
+
+       if ($self->is_sim_unlocked()) {
+               return $self->_command("AT+CIMI");
+       }
+}
+
+sub get_network_registration() {
+       my $self = shift;
+
+       my @elements;
+       foreach my $i ([0, 1]) {
+               my $output = $self->_command("AT+CREG?");
+
+               @elements = split(/,/, $output);
+               if ($#elements != 2) {
+                       # Output in wrong format. Resetting.
+                       $self->_command("AT+CREG=0");
+               }
+       }
+
+       if ($elements[0] == 0) {
+               if ($elements[1] == 0) {
+                       return "NOT REGISTERED, NOT SEARCHING";
+               } elsif ($elements[1] == 1) {
+                       return "REGISTERED TO HOME NETWORK";
+               } elsif ($elements[1] == 2) {
+                       return "NOT REGISTERED, SEARCHING";
+               } elsif ($elements[1] == 3) {
+                       return "REGISTRATION DENIED";
+               } elsif ($elements[1] == 5) {
+                       return "REGISTERED, ROAMING";
+               } else {
+                       return "UNKNOWN";
+               }
+       }
+}
+
+sub _get_network_operator() {
+       my $self = shift;
+
+       my $output = $self->_command("AT+COPS?");
+       $output =~ s/\"//g;
+
+       my @elements = split(/,/, $output);
+       if ($#elements == 3) {
+               return @elements;
+       }
+}
+
+sub get_network_operator() {
+       my $self = shift;
+
+       my ($mode, $format, $operator, $act) = $self->_get_network_operator();
+
+       return $operator;
+}
+
+sub get_network_mode() {
+       my $self = shift;
+
+       my ($mode, $format, $operator, $act) = $self->_get_network_operator();
+
+       if ($act == 0) {
+               return "GSM";
+       } elsif ($act == 1) {
+               return "Compact GSM";
+       } elsif ($act == 2) {
+               return "UMTS";
+       } elsif ($act == 3) {
+               return "GSM WITH EGPRS";
+       } elsif ($act == 4) {
+               return "UMTS WITH HSDPA";
+       } elsif ($act == 5) {
+               return "UMTS WITH HSUPA";
+       } elsif ($act == 6) {
+               return "UMTS WITH HSDPA+HSUPA";
+       } elsif ($act == 7) {
+               return "LTE";
+       } else {
+               return "UNKNOWN ($act)";
+       }
+}
+
+sub _get_signal_quality() {
+       my $self = shift;
+
+       my $output = $self->_command("AT+CSQ");
+
+       my @elements = split(/,/, $output);
+       if ($#elements == 1) {
+               return @elements;
+       }
+}
+
+sub get_signal_quality() {
+       my $self = shift;
+
+       my ($rssi, $ber) = $self->_get_signal_quality();
+
+       # 99 equals unknown.
+       unless ($rssi == 99) {
+               my $dbm = ($rssi * 2) - 113;
+               return $dbm;
+       }
+
+       return undef;
+}
+
+sub get_bit_error_rate() {
+       my $self = shift;
+
+       my ($rssi, $ber) = $self->_get_signal_quality();
+
+       # 99 indicates unknown.
+       unless ($ber == 99) {
+               return $ber;
+       }
+
+       return undef;
+}
+
+1;
index 9f546a9..c4a19e5 100755 (executable)
@@ -520,6 +520,9 @@ sub get_internal_firewall_ip_address
                return 0;
        }
 
+       # Convert net mask into correct format for &General::IpInSubnet().
+       $net_mask = &General::iporsubtodec($net_mask);
+
        my @addresses = &get_internal_firewall_ip_addresses($use_orange);
        foreach my $zone_address (@addresses) {
                if (&General::IpInSubnet($zone_address, $net_address, $net_mask)) {
index 92f1c0a..2c314d1 100755 (executable)
@@ -47,6 +47,7 @@ my @PROTOCOLS_WITH_PORTS = ("tcp", "udp");
 my @VALID_TARGETS = ("ACCEPT", "DROP", "REJECT");
 
 my %fwdfwsettings=();
+my %fwoptions = ();
 my %defaultNetworks=();
 my %configfwdfw=();;
 my %customgrp=();
@@ -63,6 +64,7 @@ my $configgrp         = "${General::swroot}/fwhosts/customgroups";
 my $netsettings                = "${General::swroot}/ethernet/settings";
 
 &General::readhash("${General::swroot}/firewall/settings", \%fwdfwsettings);
+&General::readhash("${General::swroot}/optionsfw/settings", \%fwoptions);
 &General::readhash("$netsettings", \%defaultNetworks);
 &General::readhasharray($configfwdfw, \%configfwdfw);
 &General::readhasharray($configinput, \%configinputfw);
@@ -71,6 +73,14 @@ my $netsettings              = "${General::swroot}/ethernet/settings";
 
 my @log_limit_options = &make_log_limit_options();
 
+my $POLICY_INPUT_ALLOWED   = 0;
+my $POLICY_FORWARD_ALLOWED = ($fwdfwsettings{"POLICY"} eq "MODE2");
+my $POLICY_OUTPUT_ALLOWED  = ($fwdfwsettings{"POLICY1"} eq "MODE2");
+
+my $POLICY_INPUT_ACTION    = $fwoptions{"FWPOLICY2"};
+my $POLICY_FORWARD_ACTION  = $fwoptions{"FWPOLICY"};
+my $POLICY_OUTPUT_ACTION   = $fwoptions{"FWPOLICY1"};
+
 # MAIN
 &main();
 
@@ -131,20 +141,47 @@ sub flush {
 }
 
 sub preparerules {
-       if (! -z  "${General::swroot}/firewall/config"){
-               &buildrules(\%configfwdfw);
-       }
        if (! -z  "${General::swroot}/firewall/input"){
                &buildrules(\%configinputfw);
        }
        if (! -z  "${General::swroot}/firewall/outgoing"){
                &buildrules(\%configoutgoingfw);
        }
+       if (! -z  "${General::swroot}/firewall/config"){
+               &buildrules(\%configfwdfw);
+       }
 }
 
 sub buildrules {
        my $hash = shift;
 
+       # Search for targets that need to be specially handled when adding
+       # forwarding rules. Additional rules will automatically get inserted
+       # into the INPUT/OUTPUT chains for these targets.
+       my @special_input_targets = ();
+       if (!$POLICY_FORWARD_ALLOWED) {
+               push(@special_input_targets, "ACCEPT");
+       }
+
+       if ($POLICY_INPUT_ACTION eq "DROP") {
+               push(@special_input_targets, "REJECT");
+       } elsif ($POLICY_INPUT_ACTION eq "REJECT") {
+               push(@special_input_targets, "DROP");
+       }
+
+       my @special_output_targets = ();
+       if ($POLICY_OUTPUT_ALLOWED) {
+               push(@special_output_targets, ("DROP", "REJECT"));
+       } else {
+               push(@special_output_targets, "ACCEPT");
+
+               if ($POLICY_OUTPUT_ACTION eq "DROP") {
+                       push(@special_output_targets, "REJECT");
+               } elsif ($POLICY_OUTPUT_ACTION eq "REJECT") {
+                       push(@special_output_targets, "DROP");
+               }
+       }
+
        foreach my $key (sort {$a <=> $b} keys %$hash) {
                # Skip disabled rules.
                next unless ($$hash{$key}[2] eq 'ON');
@@ -297,11 +334,16 @@ sub buildrules {
                                        # Add time constraint options.
                                        push(@options, @time_options);
 
-                                       my $firewall_is_in_source_subnet = 0;
+                                       my $firewall_is_in_source_subnet = 1;
                                        if ($source) {
                                                $firewall_is_in_source_subnet = &firewall_is_in_subnet($source);
                                        }
 
+                                       my $firewall_is_in_destination_subnet = 1;
+                                       if ($destination) {
+                                               $firewall_is_in_destination_subnet = &firewall_is_in_subnet($destination);
+                                       }
+
                                        # Process NAT rules.
                                        if ($NAT) {
                                                my $nat_address = &fwlib::get_nat_address($$hash{$key}[29], $source);
@@ -380,14 +422,6 @@ sub buildrules {
                                        }
 
                                        push(@options, @source_options);
-
-                                       if ($firewall_is_in_source_subnet && ($fwdfwsettings{"POLICY"} eq "MODE1") && ($chain eq $CHAIN_FORWARD)) {
-                                               if ($LOG && !$NAT) {
-                                                       run("$IPTABLES -A $CHAIN_INPUT @options @log_limit_options -j LOG --log-prefix '$CHAIN_INPUT '");
-                                               }
-                                               run("$IPTABLES -A $CHAIN_INPUT @options -j $target");
-                                       }
-
                                        push(@options, @destination_options);
 
                                        # Insert firewall rule.
@@ -395,6 +429,27 @@ sub buildrules {
                                                run("$IPTABLES -A $chain @options @log_limit_options -j LOG --log-prefix '$chain '");
                                        }
                                        run("$IPTABLES -A $chain @options -j $target");
+
+                                       # Handle forwarding rules and add corresponding rules for firewall access.
+                                       if ($chain eq $CHAIN_FORWARD) {
+                                               # If the firewall is part of the destination subnet and access to the destination network
+                                               # is granted/forbidden for any network that the firewall itself is part of, we grant/forbid access
+                                               # for the firewall, too.
+                                               if ($firewall_is_in_destination_subnet && ($target ~~ @special_input_targets)) {
+                                                       if ($LOG && !$NAT) {
+                                                               run("$IPTABLES -A $CHAIN_INPUT @options @log_limit_options -j LOG --log-prefix '$CHAIN_INPUT '");
+                                                       }
+                                                       run("$IPTABLES -A $CHAIN_INPUT @options -j $target");
+                                               }
+
+                                               # Likewise.
+                                               if ($firewall_is_in_source_subnet && ($target ~~ @special_output_targets)) {
+                                                       if ($LOG && !$NAT) {
+                                                               run("$IPTABLES -A $CHAIN_OUTPUT @options @log_limit_options -j LOG --log-prefix '$CHAIN_OUTPUT '");
+                                                       }
+                                                       run("$IPTABLES -A $CHAIN_OUTPUT @options -j $target");
+                                               }
+                                       }
                                }
                        }
                }
@@ -440,29 +495,29 @@ sub time_convert_to_minutes {
 }
 
 sub p2pblock {
-       my $P2PSTRING = "";
-       my $DO;
-       open( FILE, "< $p2pfile" ) or die "Unable to read $p2pfile";
-       @p2ps = <FILE>;
-       close FILE;
-       my $CMD = "-m ipp2p";
-       foreach my $p2pentry (sort @p2ps) {
-               my @p2pline = split( /\;/, $p2pentry );
-               if ( $fwdfwsettings{'POLICY'} eq 'MODE1' ) {
-                       $DO = "ACCEPT";
-                       if ("$p2pline[2]" eq "on") {
-                               $P2PSTRING = "$P2PSTRING --$p2pline[1]";
-                       }
-               }else {
-                       $DO = "RETURN";
-                       if ("$p2pline[2]" eq "off") {
-                               $P2PSTRING = "$P2PSTRING --$p2pline[1]";
-                       }
-               }
+       my $search_action;
+       my $target;
+
+       if ($fwdfwsettings{"POLICY"} eq "MODE1") {
+               $search_action = "on";
+               $target = "ACCEPT";
+       } else {
+               $search_action = "off";
+               $target = "DROP";
        }
 
-       if($P2PSTRING) {
-               run("$IPTABLES -A FORWARDFW $CMD $P2PSTRING -j $DO");
+       open(FILE, "<$p2pfile") or die "Unable to read $p2pfile";
+       my @protocols = ();
+       foreach my $p2pentry (<FILE>) {
+               my @p2pline = split(/\;/, $p2pentry);
+               next unless ($p2pline[2] eq $search_action);
+
+               push(@protocols, "--$p2pline[1]");
+       }
+       close(FILE);
+
+       if (@protocols) {
+               run("$IPTABLES -A FORWARDFW -m ipp2p @protocols -j $target");
        }
 }
 
@@ -675,4 +730,3 @@ sub firewall_is_in_subnet {
 
        return 0;
 }
-
index 8899310..b159ed6 100644 (file)
                                'title' => "$Lang::tr{'qos graphs'}",
                                'enabled' => 1,
                                };
+    $substatus->{'74.modem-status'} = {'caption' => $Lang::tr{'modem status'},
+                                 'uri' => '/cgi-bin/modem-status.cgi',
+                                 'title' => $Lang::tr{'modem status'},
+                                 'enabled' => 0,
+                                 };
     $substatus->{'75.atm-status'} = {'caption' => 'Atm-status',
                                  'uri' => '/cgi-bin/atm-status.cgi',
                                  'title' => 'Atm-status',
index ce6fd9d..e872e64 100644 (file)
@@ -1,7 +1,7 @@
-    $subfirewall->{'10.forward'} = {
-                               'caption' => $Lang::tr{'fwdfw menu'},
+    $subfirewall->{'10.firewall'} = {
+                               'caption' => $Lang::tr{'firewall rules'},
                                'uri' => '/cgi-bin/firewall.cgi',
-                               'title' => "$Lang::tr{'fwdfw menu'}",
+                               'title' => "$Lang::tr{'firewall rules'}",
                                'enabled' => 1,
                                };
        $subfirewall->{'20.fwhost'} = {
index 2dd14cc..474e7a7 100644 (file)
@@ -1415,6 +1415,7 @@ srv/web/ipfire/cgi-bin/mac.cgi
 srv/web/ipfire/cgi-bin/media.cgi
 srv/web/ipfire/cgi-bin/memory.cgi
 srv/web/ipfire/cgi-bin/modem.cgi
+srv/web/ipfire/cgi-bin/modem-status.cgi
 srv/web/ipfire/cgi-bin/netexternal.cgi
 srv/web/ipfire/cgi-bin/netinternal.cgi
 srv/web/ipfire/cgi-bin/netother.cgi
index b5de989..6afe6cd 100644 (file)
@@ -116,6 +116,7 @@ var/ipfire/menu.d/70-log.menu
 var/ipfire/modem
 #var/ipfire/modem/defaults
 #var/ipfire/modem/settings
+var/ipfire/modem-lib.pl
 var/ipfire/net-traffic
 #var/ipfire/net-traffic/net-traffic-admin.pl
 #var/ipfire/net-traffic/net-traffic-lib.pl
diff --git a/config/rootfiles/common/perl-Device-Modem b/config/rootfiles/common/perl-Device-Modem
new file mode 100644 (file)
index 0000000..9e8da1c
--- /dev/null
@@ -0,0 +1,18 @@
+#usr/lib/perl5/site_perl/5.12.3/Device
+#usr/lib/perl5/site_perl/5.12.3/Device/Modem
+usr/lib/perl5/site_perl/5.12.3/Device/Modem.pm
+#usr/lib/perl5/site_perl/5.12.3/Device/Modem/FAQ.pod
+#usr/lib/perl5/site_perl/5.12.3/Device/Modem/Log
+usr/lib/perl5/site_perl/5.12.3/Device/Modem/Log/File.pm
+usr/lib/perl5/site_perl/5.12.3/Device/Modem/Log/Syslog.pm
+#usr/lib/perl5/site_perl/5.12.3/Device/Modem/Protocol
+usr/lib/perl5/site_perl/5.12.3/Device/Modem/Protocol/Xmodem.pm
+usr/lib/perl5/site_perl/5.12.3/Device/Modem/UsRobotics.pm
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Device/Modem
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Device/Modem/.packlist
+#usr/share/man/man3/Device::Modem.3
+#usr/share/man/man3/Device::Modem::FAQ.3
+#usr/share/man/man3/Device::Modem::Log::File.3
+#usr/share/man/man3/Device::Modem::Log::Syslog.3
+#usr/share/man/man3/Device::Modem::Protocol::Xmodem.3
+#usr/share/man/man3/Device::Modem::UsRobotics.3
diff --git a/config/rootfiles/common/perl-Device-SerialPort b/config/rootfiles/common/perl-Device-SerialPort
new file mode 100644 (file)
index 0000000..dccc425
--- /dev/null
@@ -0,0 +1,10 @@
+#usr/bin/modemtest
+usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Device
+usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/Device/SerialPort.pm
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Device
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Device/SerialPort
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Device/SerialPort/.packlist
+#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Device/SerialPort/SerialPort.bs
+usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Device/SerialPort/SerialPort.so
+#usr/share/man/man1/modemtest.1
+#usr/share/man/man3/Device::SerialPort.3
similarity index 99%
rename from config/rootfiles/core/76/update.sh
rename to config/rootfiles/core/77/update.sh
index db8271a..0078abd 100644 (file)
@@ -35,7 +35,7 @@ function add_to_backup ()
 
 #
 # Remove old core updates from pakfire cache to save space...
-core=76
+core=77
 for (( i=1; i<=${core}; i++ ))
 do
        rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
index 93920ef..8dbfc90 100644 (file)
@@ -4,7 +4,6 @@ WARNING: translation string unused: ConnSched select profile
 WARNING: translation string unused: HDD temperature
 WARNING: translation string unused: Level7 rule
 WARNING: translation string unused: Local VPN IP
-WARNING: translation string unused: MB written
 WARNING: translation string unused: Ping
 WARNING: translation string unused: Queuelenght
 WARNING: translation string unused: Remote IP
@@ -182,6 +181,7 @@ WARNING: translation string unused: esp keylife
 WARNING: translation string unused: expected
 WARNING: translation string unused: expertoptions
 WARNING: translation string unused: exportkey
+WARNING: translation string unused: external access
 WARNING: translation string unused: external access configuration
 WARNING: translation string unused: external access rule added
 WARNING: translation string unused: external access rule changed
@@ -217,6 +217,7 @@ WARNING: translation string unused: fwdfw final_rule
 WARNING: translation string unused: fwdfw from
 WARNING: translation string unused: fwdfw ipsec network
 WARNING: translation string unused: fwdfw man port
+WARNING: translation string unused: fwdfw menu
 WARNING: translation string unused: fwdfw natport used
 WARNING: translation string unused: fwdfw p2p txt
 WARNING: translation string unused: fwdfw rule action
@@ -379,6 +380,7 @@ WARNING: translation string unused: or
 WARNING: translation string unused: original
 WARNING: translation string unused: our donors
 WARNING: translation string unused: out
+WARNING: translation string unused: outgoing firewall
 WARNING: translation string unused: outgoing firewall add ip group
 WARNING: translation string unused: outgoing firewall add mac group
 WARNING: translation string unused: outgoing firewall edit ip group
@@ -611,6 +613,7 @@ WARNING: untranslated string: dead peer detection
 WARNING: untranslated string: emerging rules
 WARNING: untranslated string: firewall logs country
 WARNING: untranslated string: fwhost err hostip
+WARNING: untranslated string: monitor interface
 WARNING: untranslated string: qos add subclass
 WARNING: untranslated string: route config changed
 WARNING: untranslated string: routing config added
index 22ee27a..79dafe5 100644 (file)
@@ -4,7 +4,6 @@ WARNING: translation string unused: ConnSched select profile
 WARNING: translation string unused: HDD temperature
 WARNING: translation string unused: Level7 rule
 WARNING: translation string unused: Local VPN IP
-WARNING: translation string unused: MB written
 WARNING: translation string unused: Ping
 WARNING: translation string unused: Queuelenght
 WARNING: translation string unused: Remote IP
@@ -204,6 +203,7 @@ WARNING: translation string unused: esp keylife
 WARNING: translation string unused: expected
 WARNING: translation string unused: expertoptions
 WARNING: translation string unused: exportkey
+WARNING: translation string unused: external access
 WARNING: translation string unused: external access configuration
 WARNING: translation string unused: external access rule added
 WARNING: translation string unused: external access rule changed
@@ -239,6 +239,7 @@ WARNING: translation string unused: fwdfw final_rule
 WARNING: translation string unused: fwdfw from
 WARNING: translation string unused: fwdfw ipsec network
 WARNING: translation string unused: fwdfw man port
+WARNING: translation string unused: fwdfw menu
 WARNING: translation string unused: fwdfw natport used
 WARNING: translation string unused: fwdfw p2p txt
 WARNING: translation string unused: fwdfw rule action
@@ -405,6 +406,7 @@ WARNING: translation string unused: or
 WARNING: translation string unused: original
 WARNING: translation string unused: our donors
 WARNING: translation string unused: out
+WARNING: translation string unused: outgoing firewall
 WARNING: translation string unused: outgoing firewall add ip group
 WARNING: translation string unused: outgoing firewall add mac group
 WARNING: translation string unused: outgoing firewall edit ip group
@@ -641,6 +643,7 @@ WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: bytes
 WARNING: untranslated string: fwhost err hostip
+WARNING: untranslated string: monitor interface
 WARNING: untranslated string: route config changed
 WARNING: untranslated string: routing config added
 WARNING: untranslated string: routing config changed
index 5e72298..f7649af 100644 (file)
@@ -196,6 +196,7 @@ WARNING: translation string unused: esp keylife
 WARNING: translation string unused: expected
 WARNING: translation string unused: expertoptions
 WARNING: translation string unused: exportkey
+WARNING: translation string unused: external access
 WARNING: translation string unused: external access configuration
 WARNING: translation string unused: external access rule added
 WARNING: translation string unused: external access rule changed
@@ -360,6 +361,7 @@ WARNING: translation string unused: optionsfw warning
 WARNING: translation string unused: or
 WARNING: translation string unused: original
 WARNING: translation string unused: out
+WARNING: translation string unused: outgoing firewall
 WARNING: translation string unused: outgoing firewall mode0
 WARNING: translation string unused: outgoing firewall mode1
 WARNING: translation string unused: outgoing firewall mode2
@@ -576,6 +578,7 @@ WARNING: untranslated string: ConnSched hangup
 WARNING: untranslated string: ConnSched reboot
 WARNING: untranslated string: ConnSched shutdown
 WARNING: untranslated string: MB read
+WARNING: untranslated string: MB written
 WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: Set time on boot
@@ -588,6 +591,7 @@ WARNING: untranslated string: advproxy proxy port transparent
 WARNING: untranslated string: attention
 WARNING: untranslated string: bit
 WARNING: untranslated string: bytes
+WARNING: untranslated string: capabilities
 WARNING: untranslated string: ccd add
 WARNING: untranslated string: ccd choose net
 WARNING: untranslated string: ccd client options
@@ -720,7 +724,6 @@ WARNING: untranslated string: fwdfw iface
 WARNING: untranslated string: fwdfw log
 WARNING: untranslated string: fwdfw log rule
 WARNING: untranslated string: fwdfw many
-WARNING: untranslated string: fwdfw menu
 WARNING: untranslated string: fwdfw movedown
 WARNING: untranslated string: fwdfw moveup
 WARNING: untranslated string: fwdfw newrule
@@ -825,6 +828,9 @@ WARNING: untranslated string: gen dh
 WARNING: untranslated string: generate dh key
 WARNING: untranslated string: grouptype
 WARNING: untranslated string: hardware support
+WARNING: untranslated string: imei
+WARNING: untranslated string: imsi
+WARNING: untranslated string: incoming firewall access
 WARNING: untranslated string: integrity
 WARNING: untranslated string: invalid input for dpd delay
 WARNING: untranslated string: invalid input for dpd timeout
@@ -837,6 +843,20 @@ WARNING: untranslated string: mac filter
 WARNING: untranslated string: maximum
 WARNING: untranslated string: minimum
 WARNING: untranslated string: minute
+WARNING: untranslated string: model
+WARNING: untranslated string: modem hardware details
+WARNING: untranslated string: modem information
+WARNING: untranslated string: modem network bit error rate
+WARNING: untranslated string: modem network information
+WARNING: untranslated string: modem network mode
+WARNING: untranslated string: modem network operator
+WARNING: untranslated string: modem network registration
+WARNING: untranslated string: modem network signal quality
+WARNING: untranslated string: modem no connection
+WARNING: untranslated string: modem no connection message
+WARNING: untranslated string: modem sim information
+WARNING: untranslated string: modem status
+WARNING: untranslated string: monitor interface
 WARNING: untranslated string: most preferred
 WARNING: untranslated string: no hardware random number generator
 WARNING: untranslated string: not a valid dh key
@@ -851,6 +871,7 @@ WARNING: untranslated string: openvpn prefix openvpn subnet
 WARNING: untranslated string: openvpn prefix remote subnet
 WARNING: untranslated string: openvpn subnet is used
 WARNING: untranslated string: other
+WARNING: untranslated string: outgoing firewall access
 WARNING: untranslated string: outgoing firewall p2p allow
 WARNING: untranslated string: outgoing firewall p2p deny
 WARNING: untranslated string: ovpn crypt options
@@ -890,6 +911,7 @@ WARNING: untranslated string: routing table
 WARNING: untranslated string: server restart
 WARNING: untranslated string: show dh
 WARNING: untranslated string: snat new source ip address
+WARNING: untranslated string: software version
 WARNING: untranslated string: source ip country
 WARNING: untranslated string: ssh
 WARNING: untranslated string: static routes
@@ -949,6 +971,7 @@ WARNING: untranslated string: uplink
 WARNING: untranslated string: upload dh key
 WARNING: untranslated string: uptime load average
 WARNING: untranslated string: urlfilter redirect template
+WARNING: untranslated string: vendor
 WARNING: untranslated string: visit us at
 WARNING: untranslated string: vpn keyexchange
 WARNING: untranslated string: wlan client
index 564a6b1..a3084e8 100644 (file)
@@ -196,6 +196,7 @@ WARNING: translation string unused: esp keylife
 WARNING: translation string unused: expected
 WARNING: translation string unused: expertoptions
 WARNING: translation string unused: exportkey
+WARNING: translation string unused: external access
 WARNING: translation string unused: external access configuration
 WARNING: translation string unused: external access rule added
 WARNING: translation string unused: external access rule changed
@@ -360,6 +361,7 @@ WARNING: translation string unused: optionsfw warning
 WARNING: translation string unused: or
 WARNING: translation string unused: original
 WARNING: translation string unused: out
+WARNING: translation string unused: outgoing firewall
 WARNING: translation string unused: outgoing firewall add ip group
 WARNING: translation string unused: outgoing firewall add mac group
 WARNING: translation string unused: outgoing firewall edit ip group
@@ -587,6 +589,7 @@ WARNING: untranslated string: ConnSched hangup
 WARNING: untranslated string: ConnSched reboot
 WARNING: untranslated string: ConnSched shutdown
 WARNING: untranslated string: MB read
+WARNING: untranslated string: MB written
 WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: addons
@@ -598,6 +601,7 @@ WARNING: untranslated string: advproxy proxy port transparent
 WARNING: untranslated string: attention
 WARNING: untranslated string: bit
 WARNING: untranslated string: bytes
+WARNING: untranslated string: capabilities
 WARNING: untranslated string: ccd add
 WARNING: untranslated string: ccd choose net
 WARNING: untranslated string: ccd client options
@@ -731,7 +735,6 @@ WARNING: untranslated string: fwdfw iface
 WARNING: untranslated string: fwdfw log
 WARNING: untranslated string: fwdfw log rule
 WARNING: untranslated string: fwdfw many
-WARNING: untranslated string: fwdfw menu
 WARNING: untranslated string: fwdfw movedown
 WARNING: untranslated string: fwdfw moveup
 WARNING: untranslated string: fwdfw newrule
@@ -836,6 +839,9 @@ WARNING: untranslated string: gen dh
 WARNING: untranslated string: generate dh key
 WARNING: untranslated string: grouptype
 WARNING: untranslated string: hardware support
+WARNING: untranslated string: imei
+WARNING: untranslated string: imsi
+WARNING: untranslated string: incoming firewall access
 WARNING: untranslated string: integrity
 WARNING: untranslated string: invalid input for dpd delay
 WARNING: untranslated string: invalid input for dpd timeout
@@ -848,6 +854,20 @@ WARNING: untranslated string: mac filter
 WARNING: untranslated string: maximum
 WARNING: untranslated string: minimum
 WARNING: untranslated string: minute
+WARNING: untranslated string: model
+WARNING: untranslated string: modem hardware details
+WARNING: untranslated string: modem information
+WARNING: untranslated string: modem network bit error rate
+WARNING: untranslated string: modem network information
+WARNING: untranslated string: modem network mode
+WARNING: untranslated string: modem network operator
+WARNING: untranslated string: modem network registration
+WARNING: untranslated string: modem network signal quality
+WARNING: untranslated string: modem no connection
+WARNING: untranslated string: modem no connection message
+WARNING: untranslated string: modem sim information
+WARNING: untranslated string: modem status
+WARNING: untranslated string: monitor interface
 WARNING: untranslated string: most preferred
 WARNING: untranslated string: no hardware random number generator
 WARNING: untranslated string: not a valid dh key
@@ -864,6 +884,7 @@ WARNING: untranslated string: openvpn prefix openvpn subnet
 WARNING: untranslated string: openvpn prefix remote subnet
 WARNING: untranslated string: openvpn subnet is used
 WARNING: untranslated string: other
+WARNING: untranslated string: outgoing firewall access
 WARNING: untranslated string: ovpn crypt options
 WARNING: untranslated string: ovpn dh
 WARNING: untranslated string: ovpn dh name
@@ -898,6 +919,7 @@ WARNING: untranslated string: server restart
 WARNING: untranslated string: show dh
 WARNING: untranslated string: snat new source ip address
 WARNING: untranslated string: snort working
+WARNING: untranslated string: software version
 WARNING: untranslated string: source ip country
 WARNING: untranslated string: ssh
 WARNING: untranslated string: static routes
@@ -960,6 +982,7 @@ WARNING: untranslated string: uptime load average
 WARNING: untranslated string: urlfilter file ext block
 WARNING: untranslated string: urlfilter mode block
 WARNING: untranslated string: urlfilter redirect template
+WARNING: untranslated string: vendor
 WARNING: untranslated string: visit us at
 WARNING: untranslated string: vpn keyexchange
 WARNING: untranslated string: wlan client
index 8e74e43..747f406 100644 (file)
@@ -198,6 +198,7 @@ WARNING: translation string unused: esp keylife
 WARNING: translation string unused: expected
 WARNING: translation string unused: expertoptions
 WARNING: translation string unused: exportkey
+WARNING: translation string unused: external access
 WARNING: translation string unused: external access configuration
 WARNING: translation string unused: external access rule added
 WARNING: translation string unused: external access rule changed
@@ -365,6 +366,7 @@ WARNING: translation string unused: or
 WARNING: translation string unused: original
 WARNING: translation string unused: our donors
 WARNING: translation string unused: out
+WARNING: translation string unused: outgoing firewall
 WARNING: translation string unused: outgoing firewall add ip group
 WARNING: translation string unused: outgoing firewall add mac group
 WARNING: translation string unused: outgoing firewall edit ip group
@@ -591,6 +593,7 @@ WARNING: untranslated string: ConnSched hangup
 WARNING: untranslated string: ConnSched reboot
 WARNING: untranslated string: ConnSched shutdown
 WARNING: untranslated string: MB read
+WARNING: untranslated string: MB written
 WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: addons
@@ -599,6 +602,7 @@ WARNING: untranslated string: advproxy errmsg proxy ports equal
 WARNING: untranslated string: advproxy proxy port transparent
 WARNING: untranslated string: bit
 WARNING: untranslated string: bytes
+WARNING: untranslated string: capabilities
 WARNING: untranslated string: ccd err isipsecrw
 WARNING: untranslated string: ccd err isovpnn2n
 WARNING: untranslated string: ccd iroute2
@@ -678,7 +682,6 @@ WARNING: untranslated string: fwdfw iface
 WARNING: untranslated string: fwdfw log
 WARNING: untranslated string: fwdfw log rule
 WARNING: untranslated string: fwdfw many
-WARNING: untranslated string: fwdfw menu
 WARNING: untranslated string: fwdfw movedown
 WARNING: untranslated string: fwdfw moveup
 WARNING: untranslated string: fwdfw newrule
@@ -783,6 +786,9 @@ WARNING: untranslated string: gen dh
 WARNING: untranslated string: generate dh key
 WARNING: untranslated string: grouptype
 WARNING: untranslated string: hardware support
+WARNING: untranslated string: imei
+WARNING: untranslated string: imsi
+WARNING: untranslated string: incoming firewall access
 WARNING: untranslated string: integrity
 WARNING: untranslated string: invalid input for dpd delay
 WARNING: untranslated string: invalid input for dpd timeout
@@ -794,11 +800,26 @@ WARNING: untranslated string: lifetime
 WARNING: untranslated string: mac filter
 WARNING: untranslated string: maximum
 WARNING: untranslated string: minimum
+WARNING: untranslated string: model
+WARNING: untranslated string: modem hardware details
+WARNING: untranslated string: modem information
+WARNING: untranslated string: modem network bit error rate
+WARNING: untranslated string: modem network information
+WARNING: untranslated string: modem network mode
+WARNING: untranslated string: modem network operator
+WARNING: untranslated string: modem network registration
+WARNING: untranslated string: modem network signal quality
+WARNING: untranslated string: modem no connection
+WARNING: untranslated string: modem no connection message
+WARNING: untranslated string: modem sim information
+WARNING: untranslated string: modem status
+WARNING: untranslated string: monitor interface
 WARNING: untranslated string: most preferred
 WARNING: untranslated string: no hardware random number generator
 WARNING: untranslated string: not a valid dh key
 WARNING: untranslated string: notice
 WARNING: untranslated string: openvpn network
+WARNING: untranslated string: outgoing firewall access
 WARNING: untranslated string: ovpn crypt options
 WARNING: untranslated string: ovpn dh
 WARNING: untranslated string: ovpn dh name
@@ -818,6 +839,7 @@ WARNING: untranslated string: routing config changed
 WARNING: untranslated string: routing table
 WARNING: untranslated string: show dh
 WARNING: untranslated string: snat new source ip address
+WARNING: untranslated string: software version
 WARNING: untranslated string: source ip country
 WARNING: untranslated string: ssh
 WARNING: untranslated string: support donation
@@ -875,6 +897,7 @@ WARNING: untranslated string: uplink
 WARNING: untranslated string: upload dh key
 WARNING: untranslated string: uptime load average
 WARNING: untranslated string: urlfilter redirect template
+WARNING: untranslated string: vendor
 WARNING: untranslated string: wlan client
 WARNING: untranslated string: wlan client advanced settings
 WARNING: untranslated string: wlan client and
index 5e72298..f7649af 100644 (file)
@@ -196,6 +196,7 @@ WARNING: translation string unused: esp keylife
 WARNING: translation string unused: expected
 WARNING: translation string unused: expertoptions
 WARNING: translation string unused: exportkey
+WARNING: translation string unused: external access
 WARNING: translation string unused: external access configuration
 WARNING: translation string unused: external access rule added
 WARNING: translation string unused: external access rule changed
@@ -360,6 +361,7 @@ WARNING: translation string unused: optionsfw warning
 WARNING: translation string unused: or
 WARNING: translation string unused: original
 WARNING: translation string unused: out
+WARNING: translation string unused: outgoing firewall
 WARNING: translation string unused: outgoing firewall mode0
 WARNING: translation string unused: outgoing firewall mode1
 WARNING: translation string unused: outgoing firewall mode2
@@ -576,6 +578,7 @@ WARNING: untranslated string: ConnSched hangup
 WARNING: untranslated string: ConnSched reboot
 WARNING: untranslated string: ConnSched shutdown
 WARNING: untranslated string: MB read
+WARNING: untranslated string: MB written
 WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: Set time on boot
@@ -588,6 +591,7 @@ WARNING: untranslated string: advproxy proxy port transparent
 WARNING: untranslated string: attention
 WARNING: untranslated string: bit
 WARNING: untranslated string: bytes
+WARNING: untranslated string: capabilities
 WARNING: untranslated string: ccd add
 WARNING: untranslated string: ccd choose net
 WARNING: untranslated string: ccd client options
@@ -720,7 +724,6 @@ WARNING: untranslated string: fwdfw iface
 WARNING: untranslated string: fwdfw log
 WARNING: untranslated string: fwdfw log rule
 WARNING: untranslated string: fwdfw many
-WARNING: untranslated string: fwdfw menu
 WARNING: untranslated string: fwdfw movedown
 WARNING: untranslated string: fwdfw moveup
 WARNING: untranslated string: fwdfw newrule
@@ -825,6 +828,9 @@ WARNING: untranslated string: gen dh
 WARNING: untranslated string: generate dh key
 WARNING: untranslated string: grouptype
 WARNING: untranslated string: hardware support
+WARNING: untranslated string: imei
+WARNING: untranslated string: imsi
+WARNING: untranslated string: incoming firewall access
 WARNING: untranslated string: integrity
 WARNING: untranslated string: invalid input for dpd delay
 WARNING: untranslated string: invalid input for dpd timeout
@@ -837,6 +843,20 @@ WARNING: untranslated string: mac filter
 WARNING: untranslated string: maximum
 WARNING: untranslated string: minimum
 WARNING: untranslated string: minute
+WARNING: untranslated string: model
+WARNING: untranslated string: modem hardware details
+WARNING: untranslated string: modem information
+WARNING: untranslated string: modem network bit error rate
+WARNING: untranslated string: modem network information
+WARNING: untranslated string: modem network mode
+WARNING: untranslated string: modem network operator
+WARNING: untranslated string: modem network registration
+WARNING: untranslated string: modem network signal quality
+WARNING: untranslated string: modem no connection
+WARNING: untranslated string: modem no connection message
+WARNING: untranslated string: modem sim information
+WARNING: untranslated string: modem status
+WARNING: untranslated string: monitor interface
 WARNING: untranslated string: most preferred
 WARNING: untranslated string: no hardware random number generator
 WARNING: untranslated string: not a valid dh key
@@ -851,6 +871,7 @@ WARNING: untranslated string: openvpn prefix openvpn subnet
 WARNING: untranslated string: openvpn prefix remote subnet
 WARNING: untranslated string: openvpn subnet is used
 WARNING: untranslated string: other
+WARNING: untranslated string: outgoing firewall access
 WARNING: untranslated string: outgoing firewall p2p allow
 WARNING: untranslated string: outgoing firewall p2p deny
 WARNING: untranslated string: ovpn crypt options
@@ -890,6 +911,7 @@ WARNING: untranslated string: routing table
 WARNING: untranslated string: server restart
 WARNING: untranslated string: show dh
 WARNING: untranslated string: snat new source ip address
+WARNING: untranslated string: software version
 WARNING: untranslated string: source ip country
 WARNING: untranslated string: ssh
 WARNING: untranslated string: static routes
@@ -949,6 +971,7 @@ WARNING: untranslated string: uplink
 WARNING: untranslated string: upload dh key
 WARNING: untranslated string: uptime load average
 WARNING: untranslated string: urlfilter redirect template
+WARNING: untranslated string: vendor
 WARNING: untranslated string: visit us at
 WARNING: untranslated string: vpn keyexchange
 WARNING: untranslated string: wlan client
index c443cf8..0af9d3c 100644 (file)
@@ -195,6 +195,7 @@ WARNING: translation string unused: esp keylife
 WARNING: translation string unused: expected
 WARNING: translation string unused: expertoptions
 WARNING: translation string unused: exportkey
+WARNING: translation string unused: external access
 WARNING: translation string unused: external access configuration
 WARNING: translation string unused: external access rule added
 WARNING: translation string unused: external access rule changed
@@ -354,6 +355,7 @@ WARNING: translation string unused: optionsfw warning
 WARNING: translation string unused: or
 WARNING: translation string unused: original
 WARNING: translation string unused: out
+WARNING: translation string unused: outgoing firewall
 WARNING: translation string unused: outgoing firewall add ip group
 WARNING: translation string unused: outgoing firewall add mac group
 WARNING: translation string unused: outgoing firewall edit ip group
@@ -580,6 +582,7 @@ WARNING: untranslated string: ConnSched reboot
 WARNING: untranslated string: ConnSched shutdown
 WARNING: untranslated string: Edit an existing route
 WARNING: untranslated string: MB read
+WARNING: untranslated string: MB written
 WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: addons
@@ -591,6 +594,7 @@ WARNING: untranslated string: advproxy proxy port transparent
 WARNING: untranslated string: attention
 WARNING: untranslated string: bit
 WARNING: untranslated string: bytes
+WARNING: untranslated string: capabilities
 WARNING: untranslated string: ccd add
 WARNING: untranslated string: ccd choose net
 WARNING: untranslated string: ccd client options
@@ -715,7 +719,6 @@ WARNING: untranslated string: fwdfw iface
 WARNING: untranslated string: fwdfw log
 WARNING: untranslated string: fwdfw log rule
 WARNING: untranslated string: fwdfw many
-WARNING: untranslated string: fwdfw menu
 WARNING: untranslated string: fwdfw movedown
 WARNING: untranslated string: fwdfw moveup
 WARNING: untranslated string: fwdfw newrule
@@ -820,6 +823,9 @@ WARNING: untranslated string: gen dh
 WARNING: untranslated string: generate dh key
 WARNING: untranslated string: grouptype
 WARNING: untranslated string: hardware support
+WARNING: untranslated string: imei
+WARNING: untranslated string: imsi
+WARNING: untranslated string: incoming firewall access
 WARNING: untranslated string: incoming traffic in bytes per second
 WARNING: untranslated string: integrity
 WARNING: untranslated string: invalid input for dpd delay
@@ -833,6 +839,20 @@ WARNING: untranslated string: mac filter
 WARNING: untranslated string: maximum
 WARNING: untranslated string: minimum
 WARNING: untranslated string: minute
+WARNING: untranslated string: model
+WARNING: untranslated string: modem hardware details
+WARNING: untranslated string: modem information
+WARNING: untranslated string: modem network bit error rate
+WARNING: untranslated string: modem network information
+WARNING: untranslated string: modem network mode
+WARNING: untranslated string: modem network operator
+WARNING: untranslated string: modem network registration
+WARNING: untranslated string: modem network signal quality
+WARNING: untranslated string: modem no connection
+WARNING: untranslated string: modem no connection message
+WARNING: untranslated string: modem sim information
+WARNING: untranslated string: modem status
+WARNING: untranslated string: monitor interface
 WARNING: untranslated string: most preferred
 WARNING: untranslated string: no hardware random number generator
 WARNING: untranslated string: not a valid dh key
@@ -847,6 +867,7 @@ WARNING: untranslated string: openvpn prefix openvpn subnet
 WARNING: untranslated string: openvpn prefix remote subnet
 WARNING: untranslated string: openvpn subnet is used
 WARNING: untranslated string: other
+WARNING: untranslated string: outgoing firewall access
 WARNING: untranslated string: outgoing traffic in bytes per second
 WARNING: untranslated string: ovpn crypt options
 WARNING: untranslated string: ovpn dh
@@ -880,6 +901,7 @@ WARNING: untranslated string: routing table
 WARNING: untranslated string: server restart
 WARNING: untranslated string: show dh
 WARNING: untranslated string: snat new source ip address
+WARNING: untranslated string: software version
 WARNING: untranslated string: source ip country
 WARNING: untranslated string: ssh
 WARNING: untranslated string: static routes
@@ -938,6 +960,7 @@ WARNING: untranslated string: uplink
 WARNING: untranslated string: upload dh key
 WARNING: untranslated string: uptime load average
 WARNING: untranslated string: urlfilter redirect template
+WARNING: untranslated string: vendor
 WARNING: untranslated string: visit us at
 WARNING: untranslated string: vpn keyexchange
 WARNING: untranslated string: wlan client
index 575d54f..bbb832d 100644 (file)
@@ -4,7 +4,6 @@ WARNING: translation string unused: ConnSched select profile
 WARNING: translation string unused: HDD temperature
 WARNING: translation string unused: Level7 rule
 WARNING: translation string unused: Local VPN IP
-WARNING: translation string unused: MB written
 WARNING: translation string unused: Ping
 WARNING: translation string unused: Queuelenght
 WARNING: translation string unused: Remote IP
@@ -204,6 +203,7 @@ WARNING: translation string unused: esp keylife
 WARNING: translation string unused: expected
 WARNING: translation string unused: expertoptions
 WARNING: translation string unused: exportkey
+WARNING: translation string unused: external access
 WARNING: translation string unused: external access configuration
 WARNING: translation string unused: external access rule added
 WARNING: translation string unused: external access rule changed
@@ -239,6 +239,7 @@ WARNING: translation string unused: fwdfw final_rule
 WARNING: translation string unused: fwdfw from
 WARNING: translation string unused: fwdfw ipsec network
 WARNING: translation string unused: fwdfw man port
+WARNING: translation string unused: fwdfw menu
 WARNING: translation string unused: fwdfw natport used
 WARNING: translation string unused: fwdfw p2p txt
 WARNING: translation string unused: fwdfw rule action
@@ -405,6 +406,7 @@ WARNING: translation string unused: or
 WARNING: translation string unused: original
 WARNING: translation string unused: our donors
 WARNING: translation string unused: out
+WARNING: translation string unused: outgoing firewall
 WARNING: translation string unused: outgoing firewall add ip group
 WARNING: translation string unused: outgoing firewall add mac group
 WARNING: translation string unused: outgoing firewall edit ip group
@@ -644,6 +646,7 @@ WARNING: untranslated string: ConnSched shutdown
 WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: bytes
+WARNING: untranslated string: capabilities
 WARNING: untranslated string: count
 WARNING: untranslated string: dh
 WARNING: untranslated string: dh key warn
@@ -653,7 +656,25 @@ WARNING: untranslated string: fwdfw many
 WARNING: untranslated string: fwhost err hostip
 WARNING: untranslated string: gen dh
 WARNING: untranslated string: generate dh key
+WARNING: untranslated string: imei
+WARNING: untranslated string: imsi
+WARNING: untranslated string: incoming firewall access
+WARNING: untranslated string: model
+WARNING: untranslated string: modem hardware details
+WARNING: untranslated string: modem information
+WARNING: untranslated string: modem network bit error rate
+WARNING: untranslated string: modem network information
+WARNING: untranslated string: modem network mode
+WARNING: untranslated string: modem network operator
+WARNING: untranslated string: modem network registration
+WARNING: untranslated string: modem network signal quality
+WARNING: untranslated string: modem no connection
+WARNING: untranslated string: modem no connection message
+WARNING: untranslated string: modem sim information
+WARNING: untranslated string: modem status
+WARNING: untranslated string: monitor interface
 WARNING: untranslated string: not a valid dh key
+WARNING: untranslated string: outgoing firewall access
 WARNING: untranslated string: ovpn crypt options
 WARNING: untranslated string: ovpn dh
 WARNING: untranslated string: ovpn dh name
@@ -665,5 +686,7 @@ WARNING: untranslated string: routing config added
 WARNING: untranslated string: routing config changed
 WARNING: untranslated string: routing table
 WARNING: untranslated string: show dh
+WARNING: untranslated string: software version
 WARNING: untranslated string: source ip country
 WARNING: untranslated string: upload dh key
+WARNING: untranslated string: vendor
index cd37869..6d7bb92 100644 (file)
@@ -25,6 +25,7 @@
 < age ssecond
 < attention
 < bit
+< capabilities
 < ccd add
 < ccd choose net
 < ccd clientip
 < generate dh key
 < grouptype
 < hardware support
+< imei
+< imsi
+< incoming firewall access
 < integrity
 < invalid input for dpd delay
 < invalid input for dpd timeout
 < MB written
 < minimum
 < minute
+< model
+< modem hardware details
+< modem information
+< modem network bit error rate
+< modem network information
+< modem network mode
+< modem network operator
+< modem network registration
+< modem network signal quality
+< modem no connection
+< modem no connection message
+< modem sim information
+< modem status
 < most preferred
 < no hardware random number generator
 < not a valid dh key
 < openvpn subnet is used
 < other
 < our donors
+< outgoing firewall access
 < ovpn crypt options
 < ovpn dh
 < ovpn dh name
 < show dh
 < snat new source ip address
 < snort working
+< software version
 < ssh
 < static routes
 < support donation
 < urlfilter file ext block
 < urlfilter mode block
 < urlfilter redirect template
+< vendor
 < visit us at
 < vpn keyexchange
 < wlanap access point
 < Async logging enabled
 < attention
 < bit
+< capabilities
 < ccd add
 < ccd choose net
 < ccd clientip
 < generate dh key
 < grouptype
 < hardware support
+< imei
+< imsi
+< incoming firewall access
 < integrity
 < invalid input for dpd delay
 < invalid input for dpd timeout
 < MB written
 < minimum
 < minute
+< model
+< modem hardware details
+< modem information
+< modem network bit error rate
+< modem network information
+< modem network mode
+< modem network operator
+< modem network registration
+< modem network signal quality
+< modem no connection
+< modem no connection message
+< modem sim information
+< modem status
 < most preferred
 < no hardware random number generator
 < not a valid dh key
 < openvpn subnet is used
 < other
 < our donors
+< outgoing firewall access
 < outgoing firewall add ip group
 < outgoing firewall add mac group
 < outgoing firewall edit ip group
 < Set time on boot
 < show dh
 < snat new source ip address
+< software version
 < ssh
 < static routes
 < support donation
 < uptime
 < uptime load average
 < urlfilter redirect template
+< vendor
 < visit us at
 < vpn keyexchange
 < wlanap country
 < age ssecond
 < attention
 < bit
+< capabilities
 < ccd add
 < ccd choose net
 < ccd clientip
 < generate dh key
 < grouptype
 < hardware support
+< imei
+< imsi
+< incoming firewall access
 < integrity
 < invalid input for dpd delay
 < invalid input for dpd timeout
 < MB written
 < minimum
 < minute
+< model
+< modem hardware details
+< modem information
+< modem network bit error rate
+< modem network information
+< modem network mode
+< modem network operator
+< modem network registration
+< modem network signal quality
+< modem no connection
+< modem no connection message
+< modem sim information
+< modem status
 < most preferred
 < no hardware random number generator
 < not a valid dh key
 < openvpn subnet is used
 < other
 < our donors
+< outgoing firewall access
 < ovpn crypt options
 < ovpn dh
 < ovpn dh name
 < server restart
 < show dh
 < snat new source ip address
+< software version
 < ssh
 < static routes
 < support donation
 < uptime
 < uptime load average
 < urlfilter redirect template
+< vendor
 < visit us at
 < vpn keyexchange
 < wlanap country
 < age ssecond
 < attention
 < bit
+< capabilities
 < ccd add
 < ccd choose net
 < ccd clientip
 < grouptype
 < hardware support
 < hour-graph
+< imei
+< imsi
+< incoming firewall access
 < incoming traffic in bytes per second
 < integrity
 < invalid input for dpd delay
 < MB written
 < minimum
 < minute
+< model
+< modem hardware details
+< modem information
+< modem network bit error rate
+< modem network information
+< modem network mode
+< modem network operator
+< modem network registration
+< modem network signal quality
+< modem no connection
+< modem no connection message
+< modem sim information
+< modem status
 < month-graph
 < most preferred
 < no hardware random number generator
 < openvpn subnet is used
 < other
 < our donors
+< outgoing firewall access
 < outgoing traffic in bytes per second
 < ovpn crypt options
 < ovpn dh
 < server restart
 < show dh
 < snat new source ip address
+< software version
 < ssh
 < static routes
 < support donation
 < uptime
 < uptime load average
 < urlfilter redirect template
+< vendor
 < visit us at
 < vpn keyexchange
 < week-graph
index 9af97d1..53c7c1c 100644 (file)
@@ -101,7 +101,7 @@ my @protocols;
 &General::readhasharray("$configipsec", \%ipsecconf);
 &Header::showhttpheaders();
 &Header::getcgihash(\%fwdfwsettings);
-&Header::openpage($Lang::tr{'fwdfw menu'}, 1, '');
+&Header::openpage($Lang::tr{'firewall rules'}, 1, '');
 &Header::openbigbox('100%', 'center',$errormessage);
 #### JAVA SCRIPT ####
 print<<END;
@@ -1284,6 +1284,10 @@ sub get_serviceports
                        }
                }
        }
+
+       # Sort protocols alphabetically.
+       @protocols = sort(@protocols);
+
        return @protocols;
 }
 sub getcolor
@@ -2295,8 +2299,8 @@ sub viewtablerule
        &General::readhash("/var/ipfire/ethernet/settings", \%netsettings);
 
        &viewtablenew(\%configfwdfw, $configfwdfw, $Lang::tr{'firewall rules'});
-       &viewtablenew(\%configinputfw, $configinput, $Lang::tr{'external access'});
-       &viewtablenew(\%configoutgoingfw, $configoutgoing, $Lang::tr{'outgoing firewall'});
+       &viewtablenew(\%configinputfw, $configinput, $Lang::tr{'incoming firewall access'});
+       &viewtablenew(\%configoutgoingfw, $configoutgoing, $Lang::tr{'outgoing firewall access'});
 }
 sub viewtablenew
 {
index 53d93ef..e8ddf46 100644 (file)
@@ -1846,7 +1846,7 @@ sub viewtablegrp
                                print "<td align='center' $col>$Lang::tr{'fwhost deleted'}</td><td align='center' $col>$customgrp{$key}[3]</td><td width='1%' $col><form method='post'>";
                        }else{
                                my ($colip,$colsub) = split("/",$ip);
-                               $ip="$colip/".&General::subtocidr($colsub) if ($colsub);
+                               $ip="$colip/".&General::iporsubtocidr($colsub) if ($colsub);
                                print"<td align='center' $col>".&getcolor($ip)."</td><td align='center' $col>$customgrp{$key}[3]</td><td width='1%' $col><form method='post'>";
                        }
                        if ($delflag > 0 && $ip ne ''){
index b231bbf..4c94d1c 100644 (file)
@@ -152,7 +152,7 @@ END
 
        for(my $i = 1; $i <= $#iostat1; $i++){
                if ( $i eq '1' ){
-                       print "<tr><td align='center' class='boldbase'><b>$Lang::tr{'device'}</b></td><td align='center' class='boldbase'><b>$Lang::tr{'MB read'}</b></td><td align='center' class='boldbase'><b>$Lang::{'MB written'}</b></td></tr>";
+                       print "<tr><td align='center' class='boldbase'><b>$Lang::tr{'device'}</b></td><td align='center' class='boldbase'><b>$Lang::tr{'MB read'}</b></td><td align='center' class='boldbase'><b>$Lang::tr{'MB written'}</b></td></tr>";
                }else{
                        print "<tr><td align='center'>$iostat1[$i]</td><td align='center'>$iostat2[$i]</td><td align='center'>$iostat3[$i]</td></tr>";
                }
diff --git a/html/cgi-bin/modem-status.cgi b/html/cgi-bin/modem-status.cgi
new file mode 100755 (executable)
index 0000000..d278c77
--- /dev/null
@@ -0,0 +1,211 @@
+#!/usr/bin/perl
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2008  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+use strict;
+
+# enable only the following on debugging purpose
+use warnings;
+use CGI::Carp 'fatalsToBrowser';
+
+require '/var/ipfire/general-functions.pl';
+require "${General::swroot}/lang.pl";
+require "${General::swroot}/header.pl";
+require "${General::swroot}/modem-lib.pl";
+
+my $modem;
+my %ethsettings = {};
+my %pppsettings = {};
+
+&General::readhash("${General::swroot}/ethernet/settings", \%ethsettings);
+
+if ($ethsettings{"RED_TYPE"} eq "PPPOE") {
+       &General::readhash("${General::swroot}/ppp/settings", \%pppsettings);
+
+       # Establish the connection to the modem.
+       my $port = $pppsettings{'MONPORT'};
+       if ($port) {
+               $port = "/dev/$port";
+               $modem = Modem->new($port, $pppsettings{"DTERATE"});
+       }
+}
+
+&Header::showhttpheaders();
+&Header::openpage($Lang::tr{'modem information'}, 1, '');
+&Header::openbigbox('100%', 'left');
+
+if ($modem) {
+       &Header::openbox("100%", "center", $Lang::tr{'modem hardware details'});
+
+       print <<END;
+               <table width="100%">
+                       <tbody>
+END
+
+       my $vendor = $modem->get_vendor();
+       if ($vendor) {
+               print <<END;
+                       <tr>
+                               <td width="33%">$Lang::tr{'vendor'}</td>
+                               <td>$vendor</td>
+                       </tr>
+END
+       }
+
+       my $model = $modem->get_model();
+       if ($model) {
+               print <<END;
+                       <tr>
+                               <td width="33%">$Lang::tr{'model'}</td>
+                               <td>$model</td>
+                       </tr>
+END
+       }
+
+       my $software_version = $modem->get_software_version();
+       if ($software_version) {
+               print <<END;
+                       <tr>
+                               <td width="33%">$Lang::tr{'software version'}</td>
+                               <td>$software_version</td>
+                       </tr>
+END
+       }
+
+       my $imei = $modem->get_imei();
+       if ($imei) {
+               print <<END;
+                       <tr>
+                               <td width="33%">$Lang::tr{'imei'}</td>
+                               <td>$imei</td>
+                       </tr>
+END
+       }
+
+       my @caps = $modem->get_capabilities();
+       if (@caps) {
+               my $caps_string = join(", ", @caps);
+
+               print <<END;
+                       <tr>
+                               <td width="33%">$Lang::tr{'capabilities'}</td>
+                               <td>$caps_string</td>
+                       </tr>
+END
+       }
+
+       print <<END;
+                       </tbody>
+               </table>
+END
+       &Header::closebox();
+
+
+       &Header::openbox("100%", "center", $Lang::tr{'modem sim information'});
+       print <<END;
+               <table width="100%">
+                       <tbody>
+END
+
+       my $imsi = $modem->get_sim_imsi();
+       if ($imsi) {
+               print <<END;
+                       <tr>
+                               <td width="33%">$Lang::tr{'imsi'}</td>
+                               <td>$imsi</td>
+                       </tr>
+END
+       }
+
+       print <<END;
+                       </tbody>
+               </table>
+END
+       &Header::closebox();
+
+       &Header::openbox("100%", "center", $Lang::tr{'modem network information'});
+       print <<END;
+               <table width="100%">
+                       <tbody>
+END
+
+       my $network_registration = $modem->get_network_registration();
+       if ($network_registration) {
+               print <<END;
+                       <tr>
+                               <td width="33%">$Lang::tr{'modem network registration'}</td>
+                               <td>$network_registration</td>
+                       </tr>
+END
+       }
+
+       my $network_operator = $modem->get_network_operator();
+       if ($network_operator) {
+               print <<END;
+                       <tr>
+                               <td width="33%">$Lang::tr{'modem network operator'}</td>
+                               <td>$network_operator</td>
+                       </tr>
+END
+       }
+
+       my $network_mode = $modem->get_network_mode();
+       if ($network_mode) {
+               print <<END;
+                       <tr>
+                               <td width="33%">$Lang::tr{'modem network mode'}</td>
+                               <td>$network_mode</td>
+                       </tr>
+END
+       }
+
+       my $signal_quality = $modem->get_signal_quality();
+       if ($signal_quality) {
+               print <<END;
+                       <tr>
+                               <td width="33%">$Lang::tr{'modem network signal quality'}</td>
+                               <td>$signal_quality dBm</td>
+                       </tr>
+END
+       }
+
+       my $bit_error_rate = $modem->get_bit_error_rate();
+       if ($bit_error_rate) {
+               print <<END;
+                       <tr>
+                               <td width="33%">$Lang::tr{'modem network bit error rate'}</td>
+                               <td>$bit_error_rate</td>
+                       </tr>
+END
+       }
+       print <<END;
+                       </tbody>
+               </table>
+END
+
+       &Header::closebox();
+} else {
+       &Header::openbox("100%", "center", $Lang::tr{'modem no connection'});
+       print "<p>$Lang::tr{'modem no connection message'}</p>";
+       &Header::closebox();
+}
+
+&Header::closebigbox();
+&Header::closepage();
index edec826..563d0eb 100644 (file)
@@ -73,6 +73,9 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'})
         if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/ && $pppsettings{'COMPORT'} !~ /^(ttyS0|ttyS1|ttyS2|ttyS3|ttyS4|ttyACM0|ttyACM1|ttyACM2|ttyACM3|ttyUSB0|ttyUSB1|ttyUSB2|ttyUSB3|rfcomm0|rfcomm1|isdn1|isdn2)$/) {
                 $errormessage = $Lang::tr{'invalid input'};
                 goto ERROR; }
+        if ($pppsettings{'TYPE'} =~ /^(modem|serial|isdn)$/ && $pppsettings{'MONPORT'} !~ /^(ttyUSB0|ttyUSB1|ttyUSB2|ttyUSB3)$/) {
+                $errormessage = $Lang::tr{'invalid input'};
+                goto ERROR; }
         if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ && $pppsettings{'DTERATE'} !~ /^(9600|19200|38400|57600|115200|230400|460800|921600)$/) {
                 $errormessage = $Lang::tr{'invalid input'};
                 goto ERROR; }
@@ -335,6 +338,13 @@ $selected{'COMPORT'}{'rfcomm0'} = '';
 $selected{'COMPORT'}{'rfcomm1'} = '';
 $selected{'COMPORT'}{$pppsettings{'COMPORT'}} = "selected='selected'";
 
+$selected{'MONPORT'}{''} = '';
+$selected{'MONPORT'}{'ttyUSB0'} = '';
+$selected{'MONPORT'}{'ttyUSB1'} = '';
+$selected{'MONPORT'}{'ttyUSB2'} = '';
+$selected{'MONPORT'}{'ttyUSB3'} = '';
+$selected{'MONPORT'}{$pppsettings{'MONPORT'}} = "selected='selected'";
+
 $selected{'DTERATE'}{'9600'} = '';
 $selected{'DTERATE'}{'19200'} = '';
 $selected{'DTERATE'}{'38400'} = '';
@@ -583,6 +593,24 @@ END
 ;
                 }
     print "</select></td>       "}
+
+       if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/) {
+               print <<END;
+                       <tr>
+                               <td colspan='3' width='75%'>$Lang::tr{'monitor interface'}:</td>
+                               <td width='25%'>
+                                       <select name="MONPORT" style="width: 165px;">
+                                               <option value="" $selected{'MONPORT'}{''}>---</option>
+                                               <option value="ttyUSB0" $selected{'MONPORT'}{'ttyUSB0'}>ttyUSB0</option>
+                                               <option value="ttyUSB1" $selected{'MONPORT'}{'ttyUSB1'}>ttyUSB1</option>
+                                               <option value="ttyUSB2" $selected{'MONPORT'}{'ttyUSB2'}>ttyUSB2</option>
+                                               <option value="ttyUSB3" $selected{'MONPORT'}{'ttyUSB3'}>ttyUSB3</option>
+                                       </select>
+                               </td>
+                       </tr>
+END
+       }
+
                 if ($pppsettings{'TYPE'} =~ /^(modem|serial)$/ ) {
                         print <<END
   <tr>
@@ -926,6 +954,7 @@ sub initprofile
 {
         $pppsettings{'PROFILENAME'} = $Lang::tr{'unnamed'};
         $pppsettings{'COMPORT'} = 'ttyS0';
+        $pppsettings{'MONPORT'} = '';
         $pppsettings{'DTERATE'} = 115200;
         $pppsettings{'SPEAKER'} = 'off';
         $pppsettings{'RECONNECTION'} = 'persistent';
index 5605210..720cce1 100644 (file)
 'cant change certificates' => 'Kann Zertifikate nicht ändern.',
 'cant enable xtaccess' => 'Die zugehörige Port-Weiterleitungsregel ist deaktiviert, daher können Sie den externen Zugang für diese Regel nicht aktivieren.',
 'cant start openssl' => 'Kann OpenSSL nicht starten',
+'capabilities' => 'Unterstützte Features',
 'caps all' => 'ALLE',
 'capsclosed' => 'GETRENNT',
 'capsinactive' => 'INAKTIV',
 'from email server' => 'Von Email Server',
 'from email user' => 'Von Email Benutzer',
 'from warn email bad' => 'Von Email Adresse ist nicht gültig',
-'fw blue' => 'Firewall-Optionen für das Blaue Interface',
+'fw blue' => 'Firewalloptionen für das Blaue Interface',
 'fw default drop' => 'Firewall Policy',
 'fw logging' => 'Firewall-Logging',
 'fw settings' => 'Firewall-Einstellungen',
 'ike integrity' => 'IKE Integrität:',
 'ike lifetime' => 'IKE Lebensdauer:',
 'ike lifetime should be between 1 and 8 hours' => 'IKE Lebensdauer sollte zwischen 1 und 8 Stunden betragen.',
+'imei' => 'IMEI',
 'import' => 'Import',
 'importkey' => 'PSK importieren',
+'imsi' => 'IMSI',
 'in' => 'Ein',
 'inactive' => 'inaktiv',
 'include logfiles' => 'mit Logdateien',
 'incoming' => 'eingehend',
+'incoming firewall access' => 'Eingehender Firewallzugang',
 'incoming traffic in bytes per second' => 'Eingehender Verkehr',
 'incorrect password' => 'Fehlerhaftes Passwort',
 'info' => 'Info',
 'missing dat' => 'Verschlüsseltes Archiv wurde nicht gefunden',
 'missing gz' => 'Nichtverschlüsseltes Archiv wurde nicht gefunden',
 'mode' => 'Modus',
+'model' => 'Modell',
 'modem' => 'Modem',
 'modem configuration' => 'Modem-Konfiguration',
+'modem hardware details' => 'Modem-Hardware',
+'modem information' => 'Modem-Informationen',
+'modem network bit error rate' => 'Bit-Fehlerrate',
+'modem network information' => 'Netzwerkinformationen',
+'modem network mode' => 'Netzwerkmodus',
+'modem network operator' => 'Netzbetreiber',
+'modem network registration' => 'Netzregistrierung',
+'modem network signal quality' => 'Signalqualität',
+'modem no connection' => 'Keine Verbindung',
+'modem no connection message' => 'Es konnte keine Verbindung zum Modem aufgebaut werden.',
 'modem on com1' => 'Modem an COM1',
 'modem on com2' => 'Modem an COM2',
 'modem on com3' => 'Modem an COM3',
 'modem on com4' => 'Modem an COM4',
 'modem on com5' => 'Modem an COM5',
 'modem settings have errors' => 'Modemeinstellungen fehlerhaft',
+'modem sim information' => 'SIM-Informationen',
 'modem speaker on' => 'Modemlautsprecher an:',
+'modem status' => 'Modem-Status',
 'modify' => 'Ändern',
 'modulation' => 'Modulation',
 'monday' => 'Montag',
 'optional at cmd' => 'zusätzlicher Modembefehl',
 'optional data' => '3. Optionale Einstellungen',
 'options' => 'Optionen',
-'options fw' => 'Firewall-Optionen',
+'options fw' => 'Firewalloptionen',
 'optionsfw portlist hint' => 'Die Liste der Ports muss durch ein Komma getrennt werden (z.B. 137,138). Sie können maximal bis zu 15 Ports pro Protokoll angeben.',
 'optionsfw warning' => 'Verändern dieser Optionen bedingt einen Neustart der Firewall',
 'or' => 'oder',
 'out' => 'Aus',
 'outgoing' => 'ausgehend',
 'outgoing firewall' => 'Ausgehende Firewall',
+'outgoing firewall access' => 'Ausgehender Firewallzugang',
 'outgoing firewall add ip group' => 'IP Adressgruppen hinzufügen',
 'outgoing firewall add mac group' => 'MAC Adressgruppen hinzufügen',
 'outgoing firewall edit ip group' => 'IP Adressgruppen bearbeiten',
 'snort hits' => 'Gesamtanzahl der aktivierten Intrusion-Regeln für',
 'snort working' => 'Snort führt gerade eine Aufgabe aus... Bitte warten Sie, bis diese erfolgreich beendet wurde.',
 'socket options' => 'Socket Options',
+'software version' => 'Software-Version',
 'sort ascending' => 'Sortiere aufsteigend',
 'sort descending' => 'Sortiere absteigend',
 'sound' => 'Klang',
 'valid root certificate already exists' => 'Ein gültiges Root-Zertifikat existiert bereits.',
 'valid till' => 'Gültig bis',
 'vci number' => 'VCI-Nummer:',
+'vendor' => 'Hersteller',
 'view log' => 'Log anzeigen',
 'virtual address' => 'Virtuelle Addresse',
 'virtual private networking' => 'Virtuelles Privates Netzwerk',
index 8f2062f..d41a7ad 100644 (file)
 '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',
+'capabilities' => 'Capabilities',
 'caps all' => 'ALL',
 'capsclosed' => 'DISCONNECTED',
 'capsinactive' => 'INACTIVE',
 '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.',
+'imei' => 'IMEI',
 'import' => 'Import',
 'importkey' => 'Import PSK',
+'imsi' => 'IMSI',
 'in' => 'In',
 'inactive' => 'inactive',
 'include logfiles' => 'Include logfiles',
 'incoming' => 'incoming',
+'incoming firewall access' => 'Incoming Firewall Access',
 'incoming traffic in bytes per second' => 'Incoming Traffic',
 'incorrect password' => 'Incorrect password',
 'info' => 'Info',
 'missing dat' => 'Encrypted archive not found',
 'missing gz' => 'Unencrypted archive not found',
 'mode' => 'Mode',
+'model' => 'Model',
 'modem' => 'Modem',
 'modem configuration' => 'Modem configuration',
+'modem hardware details' => 'Modem Hardware',
+'modem information' => 'Modem Information',
+'modem network bit error rate' => 'Bit Error Rate',
+'modem network information' => 'Network Information',
+'modem network mode' => 'Network Mode',
+'modem network operator' => 'Network Operator',
+'modem network registration' => 'Network Registration',
+'modem network signal quality' => 'Signal Quality',
+'modem no connection' => 'No Connection',
+'modem no connection message' => 'No connection to the modem could be established.',
 '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 sim information' => 'SIM Information',
 'modem speaker on' => 'Modem speaker on:',
+'modem status' => 'Modem Status',
 'modify' => 'Modify',
 'modulation' => 'Modulation',
 'monday' => 'Monday',
 'out' => 'Out',
 'outgoing' => 'outgoing',
 'outgoing firewall' => 'Outgoing Firewall',
+'outgoing firewall access' => 'Outgoing Firewall Access',
 'outgoing firewall add ip group' => 'Add IP Address Group',
 'outgoing firewall add mac group' => 'Add MAC Address Group',
 'outgoing firewall edit ip group' => 'Edit IP Address Group',
 'snort hits' => 'Total of number of Intrusion rules activated for',
 'snort working' => 'Snort is working ... Please wait until all operations have completed successfully.',
 'socket options' => 'Socket options',
+'software version' => 'Software Version',
 'sort ascending' => 'Sort ascending',
 'sort descending' => 'Sort descending',
 'sound' => 'Sound',
 'valid root certificate already exists' => 'A valid root certificate already exists.',
 'valid till' => 'Valid till',
 'vci number' => 'VCI number:',
+'vendor' => 'Vendor',
 'view log' => 'view log',
 'virtual address' => 'Virtual Address',
 'virtual private networking' => 'Virtual Private Networking',
index 3232d38..fcb08b0 100644 (file)
@@ -80,6 +80,7 @@ $(TARGET) :
        cp $(DIR_SRC)/config/cfgroot/lang.pl                    $(CONFIG_ROOT)/
        cp $(DIR_SRC)/config/cfgroot/countries.pl               $(CONFIG_ROOT)/
        cp $(DIR_SRC)/config/cfgroot/graphs.pl                  $(CONFIG_ROOT)/
+       cp $(DIR_SRC)/config/cfgroot/modem-lib.pl               $(CONFIG_ROOT)/
        cp $(DIR_SRC)/config/cfgroot/advoptions-list            $(CONFIG_ROOT)/dhcp/advoptions-list
        cp $(DIR_SRC)/config/cfgroot/connscheduler-lib.pl       $(CONFIG_ROOT)/connscheduler/lib.pl
        cp $(DIR_SRC)/config/cfgroot/connscheduler.conf         $(CONFIG_ROOT)/connscheduler
index e5f12d2..948d056 100644 (file)
--- a/lfs/linux
+++ b/lfs/linux
 
 include Config
 
-VER        = 3.10.36
+VER        = 3.10.37
 
 RPI_PATCHES = linux-3.10.34-grsec-dea8280
-GRS_PATCHES = grsecurity-2.9.1-3.10.36-ipfire1.patch.xz
+GRS_PATCHES = grsecurity-2.9.1-3.10.37-ipfire1.patch.xz
 
 THISAPP    = linux-$(VER)
 DL_FILE    = linux-$(VER).tar.xz
@@ -36,7 +36,7 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 CFLAGS     =
 CXXFLAGS   =
 
-PAK_VER    = 41
+PAK_VER    = 42
 DEPS      = ""
 
 VERSUFIX=ipfire$(KCFG)
@@ -74,9 +74,9 @@ $(DL_FILE)                            = $(URL_IPFIRE)/$(DL_FILE)
 rpi-patches-$(RPI_PATCHES).patch.xz    = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).patch.xz
 $(GRS_PATCHES)                         = $(URL_IPFIRE)/$(GRS_PATCHES)
 
-$(DL_FILE)_MD5                         = 721f76050755ec8ec88876ee350a2726
+$(DL_FILE)_MD5                         = a08a10ffc31b07d9422af1cd2baa3274
 rpi-patches-$(RPI_PATCHES).patch.xz_MD5        = 522683db031f7033b1b5dfe1b1f30e67
-$(GRS_PATCHES)_MD5                     = 85717c4d6643ea52eef443ee7bc873e2
+$(GRS_PATCHES)_MD5                     = 7b0f44571974217d79dbcdf5d7e33976
 
 install : $(TARGET)
 
diff --git a/lfs/perl-Device-Modem b/lfs/perl-Device-Modem
new file mode 100644 (file)
index 0000000..f0609b9
--- /dev/null
@@ -0,0 +1,77 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2014 IPFire Team  <info@ipfire.org>                           #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.56
+
+THISAPP    = Device-Modem-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = a0ec45c3e313bea27ccb476d3b725955
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && perl Makefile.PL
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/lfs/perl-Device-SerialPort b/lfs/perl-Device-SerialPort
new file mode 100644 (file)
index 0000000..3eebc07
--- /dev/null
@@ -0,0 +1,77 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2014 IPFire Team  <info@ipfire.org>                           #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.000002
+
+THISAPP    = Device-SerialPort-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = f53db3733679adc5d05d06fa530444b6
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && perl Makefile.PL
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 600a16f..f9f6e78 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 5.1.2
+VER        = 5.1.3
 
 THISAPP    = strongswan-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d45a2e89c624bceaf2e53c9b9cdddf83
+$(DL_FILE)_MD5 = 1d1c108775242743cd8699215b2918c3
 
 install : $(TARGET)
 
diff --git a/make.sh b/make.sh
index 39a54f4..d280d9c 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -25,8 +25,8 @@
 NAME="IPFire"                                                  # Software name
 SNAME="ipfire"                                                 # Short name
 VERSION="2.15"                                                 # Version number
-CORE="76-rc1"                                                  # Core Level (Filename)
-PAKFIRE_CORE="76"                                              # Core Level (PAKFIRE)
+CORE="77-rc1"                                                  # Core Level (Filename)
+PAKFIRE_CORE="77"                                              # Core Level (PAKFIRE)
 GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`                   # Git Branch
 SLOGAN="www.ipfire.org"                                                # Software slogan
 CONFIG_ROOT=/var/ipfire                                                # Configuration rootdir
@@ -514,6 +514,8 @@ buildipfire() {
   ipfiremake perl-GD
   ipfiremake GD-Graph
   ipfiremake GD-TextUtil
+  ipfiremake perl-Device-SerialPort
+  ipfiremake perl-Device-Modem
   ipfiremake gnupg
   ipfiremake hdparm
   ipfiremake sdparm
index 31aa2c9..f0d9c49 100644 (file)
@@ -107,7 +107,6 @@ iptables_init() {
        # Block OpenVPN transfer networks
        iptables -N OVPNBLOCK
        iptables -A INPUT   -i tun+ -j OVPNBLOCK
-       iptables -A OUTPUT  -o tun+ -j OVPNBLOCK
        iptables -A FORWARD -i tun+ -j OVPNBLOCK
        iptables -A FORWARD -o tun+ -j OVPNBLOCK