mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-13 04:22:58 +02:00
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into asterisk-update
This commit is contained in:
@@ -217,7 +217,7 @@ sub get_std_net_ip
|
||||
}elsif($val eq 'BLUE'){
|
||||
return "$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}";
|
||||
}elsif($val eq 'RED'){
|
||||
return "0.0.0.0/0 -o $con";
|
||||
return "0.0.0.0/0";
|
||||
}elsif($val =~ /OpenVPN/i){
|
||||
return "$ovpnsettings{'DOVPN_SUBNET'}";
|
||||
}elsif($val =~ /IPsec/i){
|
||||
@@ -226,6 +226,23 @@ sub get_std_net_ip
|
||||
return ;
|
||||
}
|
||||
}
|
||||
sub get_interface
|
||||
{
|
||||
my $net=shift;
|
||||
if($net eq "$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}"){
|
||||
return "$netsettings{'GREEN_DEV'}";
|
||||
}
|
||||
if($net eq "$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}"){
|
||||
return "$netsettings{'ORANGE_DEV'}";
|
||||
}
|
||||
if($net eq "$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}"){
|
||||
return "$netsettings{'BLUE_DEV'}";
|
||||
}
|
||||
if($net eq "0.0.0.0/0") {
|
||||
return &get_external_interface();
|
||||
}
|
||||
return "";
|
||||
}
|
||||
sub get_net_ip
|
||||
{
|
||||
my $val=shift;
|
||||
@@ -305,9 +322,9 @@ sub get_address
|
||||
# address. Otherwise, we assume that it is an IP address.
|
||||
if ($key ~~ ["src_addr", "tgt_addr"]) {
|
||||
if (&General::validmac($value)) {
|
||||
push(@ret, "-m mac --mac-source $value");
|
||||
push(@ret, ["-m mac --mac-source $value", ""]);
|
||||
} else {
|
||||
push(@ret, $value);
|
||||
push(@ret, [$value, ""]);
|
||||
}
|
||||
|
||||
# If a default network interface (GREEN, BLUE, etc.) is selected, we
|
||||
@@ -316,88 +333,90 @@ sub get_address
|
||||
my $external_interface = &get_external_interface();
|
||||
|
||||
my $network_address = &get_std_net_ip($value, $external_interface);
|
||||
|
||||
if ($network_address) {
|
||||
push(@ret, $network_address);
|
||||
my $interface = &get_interface($network_address);
|
||||
push(@ret, [$network_address, $interface]);
|
||||
}
|
||||
|
||||
# Custom networks.
|
||||
} elsif ($key ~~ ["cust_net_src", "cust_net_tgt", "Custom Network"]) {
|
||||
my $network_address = &get_net_ip($value);
|
||||
if ($network_address) {
|
||||
push(@ret, $network_address);
|
||||
push(@ret, [$network_address, ""]);
|
||||
}
|
||||
|
||||
# Custom hosts.
|
||||
} elsif ($key ~~ ["cust_host_src", "cust_host_tgt", "Custom Host"]) {
|
||||
my $host_address = &get_host_ip($value, $type);
|
||||
if ($host_address) {
|
||||
push(@ret, $host_address);
|
||||
push(@ret, [$host_address, ""]);
|
||||
}
|
||||
|
||||
# OpenVPN networks.
|
||||
} elsif ($key ~~ ["ovpn_net_src", "ovpn_net_tgt", "OpenVPN static network"]) {
|
||||
my $network_address = &get_ovpn_net_ip($value, 1);
|
||||
if ($network_address) {
|
||||
push(@ret, $network_address);
|
||||
push(@ret, [$network_address, ""]);
|
||||
}
|
||||
|
||||
# OpenVPN hosts.
|
||||
} elsif ($key ~~ ["ovpn_host_src", "ovpn_host_tgt", "OpenVPN static host"]) {
|
||||
my $host_address = &get_ovpn_host_ip($value, 33);
|
||||
if ($host_address) {
|
||||
push(@ret, $host_address);
|
||||
push(@ret, [$host_address, ""]);
|
||||
}
|
||||
|
||||
# OpenVPN N2N.
|
||||
} elsif ($key ~~ ["ovpn_n2n_src", "ovpn_n2n_tgt", "OpenVPN N-2-N"]) {
|
||||
my $network_address = &get_ovpn_n2n_ip($value, 11);
|
||||
if ($network_address) {
|
||||
push(@ret, $network_address);
|
||||
push(@ret, [$network_address, ""]);
|
||||
}
|
||||
|
||||
# IPsec networks.
|
||||
} elsif ($key ~~ ["ipsec_net_src", "ipsec_net_tgt", "IpSec Network"]) {
|
||||
my $network_address = &get_ipsec_net_ip($value, 11);
|
||||
if ($network_address) {
|
||||
push(@ret, $network_address);
|
||||
push(@ret, [$network_address, ""]);
|
||||
}
|
||||
|
||||
# The firewall's own IP addresses.
|
||||
} elsif ($key ~~ ["ipfire", "ipfire_src"]) {
|
||||
# ALL
|
||||
if ($value eq "ALL") {
|
||||
push(@ret, "0/0");
|
||||
push(@ret, ["0/0", ""]);
|
||||
|
||||
# GREEN
|
||||
} elsif ($value eq "GREEN") {
|
||||
push(@ret, $netsettings{"GREEN_ADDRESS"});
|
||||
push(@ret, [$netsettings{"GREEN_ADDRESS"}, ""]);
|
||||
|
||||
# BLUE
|
||||
} elsif ($value eq "BLUE") {
|
||||
push(@ret, $netsettings{"BLUE_ADDRESS"});
|
||||
push(@ret, [$netsettings{"BLUE_ADDRESS"}, ""]);
|
||||
|
||||
# ORANGE
|
||||
} elsif ($value eq "ORANGE") {
|
||||
push(@ret, $netsettings{"ORANGE_ADDRESS"});
|
||||
push(@ret, [$netsettings{"ORANGE_ADDRESS"}, ""]);
|
||||
|
||||
# RED
|
||||
} elsif ($value ~~ ["RED", "RED1"]) {
|
||||
my $address = &get_external_address();
|
||||
if ($address) {
|
||||
push(@ret, $address);
|
||||
push(@ret, [$address, ""]);
|
||||
}
|
||||
|
||||
# Aliases
|
||||
} else {
|
||||
my $alias = &get_alias($value);
|
||||
if ($alias) {
|
||||
push(@ret, $alias);
|
||||
push(@ret, [$alias, ""]);
|
||||
}
|
||||
}
|
||||
|
||||
# If nothing was selected, we assume "any".
|
||||
} else {
|
||||
push(@ret, "0/0");
|
||||
push(@ret, ["0/0", ""]);
|
||||
}
|
||||
|
||||
return @ret;
|
||||
|
||||
@@ -131,6 +131,12 @@ sub print_rule {
|
||||
print "\n";
|
||||
}
|
||||
|
||||
sub count_elements {
|
||||
my $hash = shift;
|
||||
|
||||
return scalar @$hash;
|
||||
}
|
||||
|
||||
sub flush {
|
||||
run("$IPTABLES -F $CHAIN_INPUT");
|
||||
run("$IPTABLES -F $CHAIN_FORWARD");
|
||||
@@ -186,6 +192,9 @@ sub buildrules {
|
||||
# Skip disabled rules.
|
||||
next unless ($$hash{$key}[2] eq 'ON');
|
||||
|
||||
# Count number of elements in this line
|
||||
my $elements = &count_elements($$hash{$key});
|
||||
|
||||
if ($DEBUG) {
|
||||
print_rule($$hash{$key});
|
||||
}
|
||||
@@ -268,6 +277,34 @@ sub buildrules {
|
||||
}
|
||||
}
|
||||
|
||||
# Concurrent connection limit
|
||||
my @ratelimit_options = ();
|
||||
|
||||
if (($elements gt 34) && ($$hash{$key}[32] eq 'ON')) {
|
||||
my $conn_limit = $$hash{$key}[33];
|
||||
|
||||
if ($conn_limit ge 1) {
|
||||
push(@ratelimit_options, ("-m", "connlimit"));
|
||||
|
||||
# Use the the entire source IP address
|
||||
push(@ratelimit_options, "--connlimit-saddr");
|
||||
push(@ratelimit_options, ("--connlimit-mask", "32"));
|
||||
|
||||
# Apply the limit
|
||||
push(@ratelimit_options, ("--connlimit-upto", $conn_limit));
|
||||
}
|
||||
}
|
||||
|
||||
# Ratelimit
|
||||
if (($elements gt 37) && ($$hash{$key}[34] eq 'ON')) {
|
||||
my $rate_limit = "$$hash{$key}[35]/$$hash{$key}[36]";
|
||||
|
||||
if ($rate_limit) {
|
||||
push(@ratelimit_options, ("-m", "limit"));
|
||||
push(@ratelimit_options, ("--limit", $rate_limit));
|
||||
}
|
||||
}
|
||||
|
||||
# Check which protocols are used in this rule and so that we can
|
||||
# later group rules by protocols.
|
||||
my @protocols = &get_protocols($hash, $key);
|
||||
@@ -295,22 +332,26 @@ sub buildrules {
|
||||
next unless ($src);
|
||||
|
||||
# Sanitize source.
|
||||
my $source = $src;
|
||||
my $source = @$src[0];
|
||||
if ($source ~~ @ANY_ADDRESSES) {
|
||||
$source = "";
|
||||
}
|
||||
|
||||
my $source_intf = @$src[1];
|
||||
|
||||
foreach my $dst (@destinations) {
|
||||
# Skip invalid rules.
|
||||
next unless (defined $dst);
|
||||
next if (!$dst || ($dst eq "none"));
|
||||
|
||||
# Sanitize destination.
|
||||
my $destination = $dst;
|
||||
my $destination = @$dst[0];
|
||||
if ($destination ~~ @ANY_ADDRESSES) {
|
||||
$destination = "";
|
||||
}
|
||||
|
||||
my $destination_intf = @$dst[1];
|
||||
|
||||
# Array with iptables arguments.
|
||||
my @options = ();
|
||||
|
||||
@@ -327,15 +368,26 @@ sub buildrules {
|
||||
push(@source_options, ("-s", $source));
|
||||
}
|
||||
|
||||
if ($source_intf) {
|
||||
push(@source_options, ("-i", $source_intf));
|
||||
}
|
||||
|
||||
# Prepare destination options.
|
||||
my @destination_options = ();
|
||||
if ($destination) {
|
||||
push(@destination_options, ("-d", $destination));
|
||||
}
|
||||
|
||||
if ($destination_intf) {
|
||||
push(@destination_options, ("-o", $destination_intf));
|
||||
}
|
||||
|
||||
# Add time constraint options.
|
||||
push(@options, @time_options);
|
||||
|
||||
# Add ratelimiting option
|
||||
push(@options, @ratelimit_options);
|
||||
|
||||
my $firewall_is_in_source_subnet = 1;
|
||||
if ($source) {
|
||||
$firewall_is_in_source_subnet = &firewall_is_in_subnet($source);
|
||||
@@ -366,7 +418,7 @@ sub buildrules {
|
||||
# Make port-forwardings useable from the internal networks.
|
||||
my @internal_addresses = &fwlib::get_internal_firewall_ip_addresses(1);
|
||||
unless ($nat_address ~~ @internal_addresses) {
|
||||
&add_dnat_mangle_rules($nat_address, @nat_options);
|
||||
&add_dnat_mangle_rules($nat_address, $source_intf, @nat_options);
|
||||
}
|
||||
|
||||
push(@nat_options, @source_options);
|
||||
@@ -457,6 +509,10 @@ sub buildrules {
|
||||
}
|
||||
}
|
||||
}
|
||||
#Reload firewall.local if present
|
||||
if ( -f '/etc/sysconfig/firewall.local'){
|
||||
run("/etc/sysconfig/firewall.local reload");
|
||||
}
|
||||
}
|
||||
|
||||
# Formats the given timestamp into the iptables format which is "hh:mm" UTC.
|
||||
@@ -683,6 +739,7 @@ sub get_dnat_target_port {
|
||||
|
||||
sub add_dnat_mangle_rules {
|
||||
my $nat_address = shift;
|
||||
my $interface = shift;
|
||||
my @options = @_;
|
||||
|
||||
my $mark = 0;
|
||||
@@ -693,6 +750,8 @@ sub add_dnat_mangle_rules {
|
||||
next unless (exists $defaultNetworks{$zone . "_NETADDRESS"});
|
||||
next unless (exists $defaultNetworks{$zone . "_NETMASK"});
|
||||
|
||||
next if ($interface && $interface ne $defaultNetworks{$zone . "_DEV"});
|
||||
|
||||
my @mangle_options = @options;
|
||||
|
||||
my $netaddress = $defaultNetworks{$zone . "_NETADDRESS"};
|
||||
|
||||
@@ -1,6 +1,73 @@
|
||||
bin/sh
|
||||
bin/bash
|
||||
#bin/bashbug
|
||||
#usr/share/doc/bash
|
||||
#usr/share/doc/bash/CHANGES
|
||||
#usr/share/doc/bash/COMPAT
|
||||
#usr/share/doc/bash/FAQ
|
||||
#usr/share/doc/bash/INTRO
|
||||
#usr/share/doc/bash/NEWS
|
||||
#usr/share/doc/bash/POSIX
|
||||
#usr/share/doc/bash/RBASH
|
||||
#usr/share/doc/bash/README
|
||||
#usr/share/doc/bash/bash.html
|
||||
#usr/share/doc/bash/bashref.html
|
||||
#usr/share/info/bash.info
|
||||
#usr/share/locale/af
|
||||
#usr/share/locale/af/LC_MESSAGES
|
||||
#usr/share/locale/af/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/bg/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/ca/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/cs/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/da/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/de/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/el/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/en@boldquot
|
||||
#usr/share/locale/en@boldquot/LC_MESSAGES
|
||||
#usr/share/locale/en@boldquot/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/en@quot
|
||||
#usr/share/locale/en@quot/LC_MESSAGES
|
||||
#usr/share/locale/en@quot/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/eo
|
||||
#usr/share/locale/eo/LC_MESSAGES
|
||||
#usr/share/locale/eo/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/es/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/et
|
||||
#usr/share/locale/et/LC_MESSAGES
|
||||
#usr/share/locale/et/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/fi/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/fr/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/ga
|
||||
#usr/share/locale/ga/LC_MESSAGES
|
||||
#usr/share/locale/ga/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/gl/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/hr/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/hu/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/id/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/it/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/ja/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/lt/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/nl/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/pl/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/pt_BR/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/ro
|
||||
#usr/share/locale/ro/LC_MESSAGES
|
||||
#usr/share/locale/ro/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/ru/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/sk/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/sl
|
||||
#usr/share/locale/sl/LC_MESSAGES
|
||||
#usr/share/locale/sl/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/sr
|
||||
#usr/share/locale/sr/LC_MESSAGES
|
||||
#usr/share/locale/sr/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/sv/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/tr/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/uk
|
||||
#usr/share/locale/uk/LC_MESSAGES
|
||||
#usr/share/locale/uk/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/vi/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/zh_CN/LC_MESSAGES/bash.mo
|
||||
#usr/share/locale/zh_TW/LC_MESSAGES/bash.mo
|
||||
#usr/share/man/man1/bash.1
|
||||
#usr/share/man/man1/bashbug.1
|
||||
bin/sh
|
||||
bin/bash
|
||||
|
||||
@@ -9,10 +9,14 @@
|
||||
#usr/include/readline/tilde.h
|
||||
#usr/lib/libhistory.so
|
||||
usr/lib/libhistory.so.6
|
||||
usr/lib/libhistory.so.6.2
|
||||
usr/lib/libhistory.so.6.3
|
||||
#usr/lib/libreadline.so
|
||||
usr/lib/libreadline.so.6
|
||||
usr/lib/libreadline.so.6.2
|
||||
usr/lib/libreadline.so.6.3
|
||||
#usr/share/doc/readline
|
||||
#usr/share/doc/readline/CHANGES
|
||||
#usr/share/doc/readline/INSTALL
|
||||
#usr/share/doc/readline/README
|
||||
#usr/share/info/history.info
|
||||
#usr/share/info/readline.info
|
||||
#usr/share/info/rluserman.info
|
||||
|
||||
3
config/rootfiles/core/85/filelists/files
Normal file
3
config/rootfiles/core/85/filelists/files
Normal file
@@ -0,0 +1,3 @@
|
||||
etc/system-release
|
||||
etc/issue
|
||||
var/ipfire/langs
|
||||
1
config/rootfiles/core/85/filelists/openssl
Symbolic link
1
config/rootfiles/core/85/filelists/openssl
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../common/openssl
|
||||
1
config/rootfiles/core/85/filelists/openssl-compat
Symbolic link
1
config/rootfiles/core/85/filelists/openssl-compat
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../common/openssl-compat
|
||||
56
config/rootfiles/core/85/update.sh
Normal file
56
config/rootfiles/core/85/update.sh
Normal file
@@ -0,0 +1,56 @@
|
||||
#!/bin/bash
|
||||
############################################################################
|
||||
# #
|
||||
# This file is part of the IPFire Firewall. #
|
||||
# #
|
||||
# IPFire is free software; you can redistribute it and/or modify #
|
||||
# it under the terms of the GNU General Public License as published by #
|
||||
# the Free Software Foundation; either version 3 of the License, or #
|
||||
# (at your option) any later version. #
|
||||
# #
|
||||
# IPFire is distributed in the hope that it will be useful, #
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
||||
# GNU General Public License for more details. #
|
||||
# #
|
||||
# You should have received a copy of the GNU General Public License #
|
||||
# along with IPFire; if not, write to the Free Software #
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
# #
|
||||
# Copyright (C) 2014 IPFire-Team <info@ipfire.org>. #
|
||||
# #
|
||||
############################################################################
|
||||
#
|
||||
. /opt/pakfire/lib/functions.sh
|
||||
/usr/local/bin/backupctrl exclude >/dev/null 2>&1
|
||||
|
||||
# Remove old core updates from pakfire cache to save space...
|
||||
core=85
|
||||
for (( i=1; i<=$core; i++ ))
|
||||
do
|
||||
rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
|
||||
done
|
||||
|
||||
# Stop services
|
||||
|
||||
# Remove old files
|
||||
|
||||
# Extract files
|
||||
extract_files
|
||||
|
||||
# Start services
|
||||
|
||||
# Update Language cache
|
||||
perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
|
||||
|
||||
sync
|
||||
|
||||
# This update need a reboot...
|
||||
touch /var/run/need_reboot
|
||||
|
||||
# Finish
|
||||
/etc/init.d/fireinfo start
|
||||
sendprofile
|
||||
|
||||
# Don't report the exitcode last command
|
||||
exit 0
|
||||
20
config/rootfiles/oldcore/82/exclude
Normal file
20
config/rootfiles/oldcore/82/exclude
Normal file
@@ -0,0 +1,20 @@
|
||||
boot/config.txt
|
||||
etc/collectd.custom
|
||||
etc/ipsec.conf
|
||||
etc/ipsec.secrets
|
||||
etc/ipsec.user.conf
|
||||
etc/ipsec.user.secrets
|
||||
etc/localtime
|
||||
etc/shadow
|
||||
etc/ssh/ssh_config
|
||||
etc/ssh/sshd_config
|
||||
etc/ssl/openssl.cnf
|
||||
etc/sudoers
|
||||
etc/sysconfig/firewall.local
|
||||
etc/sysconfig/rc.local
|
||||
etc/udev/rules.d/30-persistent-network.rules
|
||||
srv/web/ipfire/html/proxy.pac
|
||||
var/ipfire/ovpn
|
||||
var/log/cache
|
||||
var/state/dhcp/dhcpd.leases
|
||||
var/updatecache
|
||||
1
config/rootfiles/oldcore/82/filelists/iputils
Symbolic link
1
config/rootfiles/oldcore/82/filelists/iputils
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../common/iputils
|
||||
1
config/rootfiles/oldcore/82/filelists/openssl-compat
Symbolic link
1
config/rootfiles/oldcore/82/filelists/openssl-compat
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../common/openssl-compat
|
||||
1
config/rootfiles/oldcore/82/meta
Normal file
1
config/rootfiles/oldcore/82/meta
Normal file
@@ -0,0 +1 @@
|
||||
DEPS=""
|
||||
20
config/rootfiles/oldcore/83/exclude
Normal file
20
config/rootfiles/oldcore/83/exclude
Normal file
@@ -0,0 +1,20 @@
|
||||
boot/config.txt
|
||||
etc/collectd.custom
|
||||
etc/ipsec.conf
|
||||
etc/ipsec.secrets
|
||||
etc/ipsec.user.conf
|
||||
etc/ipsec.user.secrets
|
||||
etc/localtime
|
||||
etc/shadow
|
||||
etc/ssh/ssh_config
|
||||
etc/ssh/sshd_config
|
||||
etc/ssl/openssl.cnf
|
||||
etc/sudoers
|
||||
etc/sysconfig/firewall.local
|
||||
etc/sysconfig/rc.local
|
||||
etc/udev/rules.d/30-persistent-network.rules
|
||||
srv/web/ipfire/html/proxy.pac
|
||||
var/ipfire/ovpn
|
||||
var/log/cache
|
||||
var/state/dhcp/dhcpd.leases
|
||||
var/updatecache
|
||||
1
config/rootfiles/oldcore/83/filelists/bash
Symbolic link
1
config/rootfiles/oldcore/83/filelists/bash
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../common/bash
|
||||
6
config/rootfiles/oldcore/83/filelists/files
Normal file
6
config/rootfiles/oldcore/83/filelists/files
Normal file
@@ -0,0 +1,6 @@
|
||||
etc/system-release
|
||||
etc/issue
|
||||
srv/web/ipfire/cgi-bin/logs.cgi/ids.dat
|
||||
srv/web/ipfire/cgi-bin/proxy.cgi
|
||||
srv/web/ipfire/cgi-bin/urlfilter.cgi
|
||||
var/ipfire/general-functions.pl
|
||||
1
config/rootfiles/oldcore/83/filelists/findutils
Symbolic link
1
config/rootfiles/oldcore/83/filelists/findutils
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../common/findutils
|
||||
1
config/rootfiles/oldcore/83/filelists/squid
Symbolic link
1
config/rootfiles/oldcore/83/filelists/squid
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../common/squid
|
||||
1
config/rootfiles/oldcore/83/meta
Normal file
1
config/rootfiles/oldcore/83/meta
Normal file
@@ -0,0 +1 @@
|
||||
DEPS=""
|
||||
59
config/rootfiles/oldcore/83/update.sh
Normal file
59
config/rootfiles/oldcore/83/update.sh
Normal file
@@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
############################################################################
|
||||
# #
|
||||
# This file is part of the IPFire Firewall. #
|
||||
# #
|
||||
# IPFire is free software; you can redistribute it and/or modify #
|
||||
# it under the terms of the GNU General Public License as published by #
|
||||
# the Free Software Foundation; either version 3 of the License, or #
|
||||
# (at your option) any later version. #
|
||||
# #
|
||||
# IPFire is distributed in the hope that it will be useful, #
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
||||
# GNU General Public License for more details. #
|
||||
# #
|
||||
# You should have received a copy of the GNU General Public License #
|
||||
# along with IPFire; if not, write to the Free Software #
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
# #
|
||||
# Copyright (C) 2014 IPFire-Team <info@ipfire.org>. #
|
||||
# #
|
||||
############################################################################
|
||||
#
|
||||
. /opt/pakfire/lib/functions.sh
|
||||
/usr/local/bin/backupctrl exclude >/dev/null 2>&1
|
||||
|
||||
# Remove old core updates from pakfire cache to save space...
|
||||
core=83
|
||||
for (( i=1; i<=$core; i++ ))
|
||||
do
|
||||
rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
|
||||
done
|
||||
|
||||
# Stop services
|
||||
|
||||
# Remove old files
|
||||
|
||||
# Extract files
|
||||
extract_files
|
||||
|
||||
# reload init because glibc/linker changed
|
||||
telinit -u
|
||||
|
||||
# Start services
|
||||
|
||||
# Update Language cache
|
||||
perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
|
||||
|
||||
sync
|
||||
|
||||
# This update need a reboot...
|
||||
touch /var/run/need_reboot
|
||||
|
||||
# Finish
|
||||
/etc/init.d/fireinfo start
|
||||
sendprofile
|
||||
|
||||
# Don't report the exitcode last command
|
||||
exit 0
|
||||
20
config/rootfiles/oldcore/84/exclude
Normal file
20
config/rootfiles/oldcore/84/exclude
Normal file
@@ -0,0 +1,20 @@
|
||||
boot/config.txt
|
||||
etc/collectd.custom
|
||||
etc/ipsec.conf
|
||||
etc/ipsec.secrets
|
||||
etc/ipsec.user.conf
|
||||
etc/ipsec.user.secrets
|
||||
etc/localtime
|
||||
etc/shadow
|
||||
etc/ssh/ssh_config
|
||||
etc/ssh/sshd_config
|
||||
etc/ssl/openssl.cnf
|
||||
etc/sudoers
|
||||
etc/sysconfig/firewall.local
|
||||
etc/sysconfig/rc.local
|
||||
etc/udev/rules.d/30-persistent-network.rules
|
||||
srv/web/ipfire/html/proxy.pac
|
||||
var/ipfire/ovpn
|
||||
var/log/cache
|
||||
var/state/dhcp/dhcpd.leases
|
||||
var/updatecache
|
||||
1
config/rootfiles/oldcore/84/filelists/bash
Symbolic link
1
config/rootfiles/oldcore/84/filelists/bash
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../common/bash
|
||||
1
config/rootfiles/oldcore/84/filelists/dnsmasq
Symbolic link
1
config/rootfiles/oldcore/84/filelists/dnsmasq
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../common/dnsmasq
|
||||
11
config/rootfiles/oldcore/84/filelists/files
Normal file
11
config/rootfiles/oldcore/84/filelists/files
Normal file
@@ -0,0 +1,11 @@
|
||||
etc/system-release
|
||||
etc/issue
|
||||
etc/rc.d/init.d/firewall
|
||||
etc/rc.d/init.d/network
|
||||
srv/web/ipfire/cgi-bin/firewall.cgi
|
||||
srv/web/ipfire/cgi-bin/fwhosts.cgi
|
||||
srv/web/ipfire/cgi-bin/urlfilter.cgi
|
||||
usr/lib/firewall/firewall-lib.pl
|
||||
usr/lib/firewall/rules.pl
|
||||
usr/local/bin/update-lang-cache
|
||||
var/ipfire/langs
|
||||
1
config/rootfiles/oldcore/84/filelists/readline
Symbolic link
1
config/rootfiles/oldcore/84/filelists/readline
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../common/readline
|
||||
1
config/rootfiles/oldcore/84/filelists/squid
Symbolic link
1
config/rootfiles/oldcore/84/filelists/squid
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../common/squid
|
||||
1
config/rootfiles/oldcore/84/meta
Normal file
1
config/rootfiles/oldcore/84/meta
Normal file
@@ -0,0 +1 @@
|
||||
DEPS=""
|
||||
60
config/rootfiles/oldcore/84/update.sh
Normal file
60
config/rootfiles/oldcore/84/update.sh
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
############################################################################
|
||||
# #
|
||||
# This file is part of the IPFire Firewall. #
|
||||
# #
|
||||
# IPFire is free software; you can redistribute it and/or modify #
|
||||
# it under the terms of the GNU General Public License as published by #
|
||||
# the Free Software Foundation; either version 3 of the License, or #
|
||||
# (at your option) any later version. #
|
||||
# #
|
||||
# IPFire is distributed in the hope that it will be useful, #
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
||||
# GNU General Public License for more details. #
|
||||
# #
|
||||
# You should have received a copy of the GNU General Public License #
|
||||
# along with IPFire; if not, write to the Free Software #
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
# #
|
||||
# Copyright (C) 2014 IPFire-Team <info@ipfire.org>. #
|
||||
# #
|
||||
############################################################################
|
||||
#
|
||||
. /opt/pakfire/lib/functions.sh
|
||||
/usr/local/bin/backupctrl exclude >/dev/null 2>&1
|
||||
|
||||
# Remove old core updates from pakfire cache to save space...
|
||||
core=84
|
||||
for (( i=1; i<=$core; i++ ))
|
||||
do
|
||||
rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
|
||||
done
|
||||
|
||||
# Stop services
|
||||
/etc/init.d/squid stop
|
||||
/etc/init.d/dnsmasq stop
|
||||
|
||||
# Remove old files
|
||||
|
||||
# Extract files
|
||||
extract_files
|
||||
|
||||
# Start services
|
||||
/etc/init.d/dnsmasq start
|
||||
/etc/init.d/squid start
|
||||
|
||||
# Update Language cache
|
||||
perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
|
||||
|
||||
sync
|
||||
|
||||
# This update need a reboot...
|
||||
touch /var/run/need_reboot
|
||||
|
||||
# Finish
|
||||
/etc/init.d/fireinfo start
|
||||
sendprofile
|
||||
|
||||
# Don't report the exitcode last command
|
||||
exit 0
|
||||
@@ -10,11 +10,16 @@
|
||||
#usr/include/parted/parted.h
|
||||
#usr/include/parted/timer.h
|
||||
#usr/include/parted/unit.h
|
||||
#usr/lib/libparted-fs-resize.a
|
||||
#usr/lib/libparted-fs-resize.la
|
||||
#usr/lib/libparted-fs-resize.so
|
||||
usr/lib/libparted-fs-resize.so.0
|
||||
usr/lib/libparted-fs-resize.so.0.0.0
|
||||
#usr/lib/libparted.a
|
||||
#usr/lib/libparted.la
|
||||
#usr/lib/libparted.so
|
||||
usr/lib/libparted.so.0
|
||||
usr/lib/libparted.so.0.0.1
|
||||
usr/lib/libparted.so.2
|
||||
usr/lib/libparted.so.2.0.0
|
||||
#usr/lib/pkgconfig/libparted.pc
|
||||
usr/sbin/parted
|
||||
usr/sbin/partprobe
|
||||
@@ -38,6 +43,8 @@ usr/sbin/partprobe
|
||||
#usr/share/locale/ru/LC_MESSAGES/parted.mo
|
||||
#usr/share/locale/rw/LC_MESSAGES/parted.mo
|
||||
#usr/share/locale/sk/LC_MESSAGES/parted.mo
|
||||
#usr/share/locale/sl/LC_MESSAGES/parted.mo
|
||||
#usr/share/locale/sr/LC_MESSAGES/parted.mo
|
||||
#usr/share/locale/sv/LC_MESSAGES/parted.mo
|
||||
#usr/share/locale/tr/LC_MESSAGES/parted.mo
|
||||
#usr/share/locale/uk/LC_MESSAGES/parted.mo
|
||||
|
||||
@@ -129,9 +129,9 @@ usr/lib/perl5/site_perl/5.12.3/PDF/API2/Resource/uniglyph.txt
|
||||
usr/lib/perl5/site_perl/5.12.3/PDF/API2/UniWrap.pm
|
||||
usr/lib/perl5/site_perl/5.12.3/PDF/API2/Util.pm
|
||||
usr/lib/perl5/site_perl/5.12.3/PDF/API2/Win32.pm
|
||||
#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/PDF
|
||||
#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/PDF/API2
|
||||
#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/PDF/API2/.packlist
|
||||
#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/PDF
|
||||
#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/PDF/API2
|
||||
#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/PDF/API2/.packlist
|
||||
#usr/share/man/man3/PDF::API2.3
|
||||
#usr/share/man/man3/PDF::API2::Annotation.3
|
||||
#usr/share/man/man3/PDF::API2::Basic::PDF::Array.3
|
||||
|
||||
@@ -19,6 +19,7 @@ other usefull commands from the Dom0:
|
||||
- reset the fire: "xm destroy ipfire-xen"
|
||||
- look what is going on: "xm top" or "xm list"
|
||||
|
||||
This script can also build a Citrix XenCenter xva image.
|
||||
This script can also build a Citrix XenCenter xva image. (Need xz-aware
|
||||
xen version. Tested with Citrix Xen Server 6.2.5 beta)
|
||||
- run "XEN_IMG_TYPE=xva sh xen-image-maker.sh" to build an xva image.
|
||||
- import the vm with "xe vm-import file=ipfire.xfa"
|
||||
|
||||
@@ -43,7 +43,6 @@ WARNING: translation string unused: advproxy no cre groups
|
||||
WARNING: translation string unused: advproxy ssadvanced proxy
|
||||
WARNING: translation string unused: advproxy update notification
|
||||
WARNING: translation string unused: again
|
||||
WARNING: translation string unused: age second
|
||||
WARNING: translation string unused: age seconds
|
||||
WARNING: translation string unused: age shour
|
||||
WARNING: translation string unused: age sminute
|
||||
@@ -247,6 +246,7 @@ WARNING: translation string unused: fwhost changeremark
|
||||
WARNING: translation string unused: fwhost err addrgrp
|
||||
WARNING: translation string unused: fwhost err hostorip
|
||||
WARNING: translation string unused: fwhost err mac
|
||||
WARNING: translation string unused: fwhost err partofnet
|
||||
WARNING: translation string unused: fwhost green
|
||||
WARNING: translation string unused: fwhost hosts
|
||||
WARNING: translation string unused: fwhost ipadr
|
||||
|
||||
@@ -43,7 +43,6 @@ WARNING: translation string unused: advproxy ssadvanced proxy
|
||||
WARNING: translation string unused: advproxy update information
|
||||
WARNING: translation string unused: advproxy update notification
|
||||
WARNING: translation string unused: again
|
||||
WARNING: translation string unused: age second
|
||||
WARNING: translation string unused: age seconds
|
||||
WARNING: translation string unused: age shour
|
||||
WARNING: translation string unused: age sminute
|
||||
@@ -270,6 +269,7 @@ WARNING: translation string unused: fwhost changeremark
|
||||
WARNING: translation string unused: fwhost err addrgrp
|
||||
WARNING: translation string unused: fwhost err hostorip
|
||||
WARNING: translation string unused: fwhost err mac
|
||||
WARNING: translation string unused: fwhost err partofnet
|
||||
WARNING: translation string unused: fwhost green
|
||||
WARNING: translation string unused: fwhost hosts
|
||||
WARNING: translation string unused: fwhost ipadr
|
||||
|
||||
@@ -606,6 +606,7 @@ WARNING: untranslated string: advproxy errmsg proxy ports equal
|
||||
WARNING: untranslated string: advproxy group access control
|
||||
WARNING: untranslated string: advproxy group required
|
||||
WARNING: untranslated string: advproxy proxy port transparent
|
||||
WARNING: untranslated string: age second
|
||||
WARNING: untranslated string: atm device
|
||||
WARNING: untranslated string: attention
|
||||
WARNING: untranslated string: bit
|
||||
@@ -730,9 +731,11 @@ WARNING: untranslated string: fwdfw dnat nochoice
|
||||
WARNING: untranslated string: fwdfw dnat porterr
|
||||
WARNING: untranslated string: fwdfw dnat porterr2
|
||||
WARNING: untranslated string: fwdfw edit
|
||||
WARNING: untranslated string: fwdfw err concon
|
||||
WARNING: untranslated string: fwdfw err nosrc
|
||||
WARNING: untranslated string: fwdfw err notgt
|
||||
WARNING: untranslated string: fwdfw err prot_port
|
||||
WARNING: untranslated string: fwdfw err ratecon
|
||||
WARNING: untranslated string: fwdfw err remark
|
||||
WARNING: untranslated string: fwdfw err ruleexists
|
||||
WARNING: untranslated string: fwdfw err same
|
||||
@@ -748,12 +751,15 @@ WARNING: untranslated string: fwdfw hint ip1
|
||||
WARNING: untranslated string: fwdfw hint ip2
|
||||
WARNING: untranslated string: fwdfw hint mac
|
||||
WARNING: untranslated string: fwdfw iface
|
||||
WARNING: untranslated string: fwdfw limitconcon
|
||||
WARNING: untranslated string: fwdfw log
|
||||
WARNING: untranslated string: fwdfw log rule
|
||||
WARNING: untranslated string: fwdfw many
|
||||
WARNING: untranslated string: fwdfw maxconcon
|
||||
WARNING: untranslated string: fwdfw movedown
|
||||
WARNING: untranslated string: fwdfw moveup
|
||||
WARNING: untranslated string: fwdfw newrule
|
||||
WARNING: untranslated string: fwdfw numcon
|
||||
WARNING: untranslated string: fwdfw pol allow
|
||||
WARNING: untranslated string: fwdfw pol block
|
||||
WARNING: untranslated string: fwdfw pol text
|
||||
@@ -761,6 +767,7 @@ WARNING: untranslated string: fwdfw pol text1
|
||||
WARNING: untranslated string: fwdfw pol title
|
||||
WARNING: untranslated string: fwdfw prot41
|
||||
WARNING: untranslated string: fwdfw prot41 short
|
||||
WARNING: untranslated string: fwdfw ratelimit
|
||||
WARNING: untranslated string: fwdfw red
|
||||
WARNING: untranslated string: fwdfw reread
|
||||
WARNING: untranslated string: fwdfw rule activate
|
||||
@@ -826,7 +833,6 @@ WARNING: untranslated string: fwhost err name
|
||||
WARNING: untranslated string: fwhost err name1
|
||||
WARNING: untranslated string: fwhost err net
|
||||
WARNING: untranslated string: fwhost err netexist
|
||||
WARNING: untranslated string: fwhost err partofnet
|
||||
WARNING: untranslated string: fwhost err port
|
||||
WARNING: untranslated string: fwhost err remark
|
||||
WARNING: untranslated string: fwhost err srv exists
|
||||
|
||||
@@ -616,6 +616,7 @@ WARNING: untranslated string: advproxy errmsg proxy ports equal
|
||||
WARNING: untranslated string: advproxy group access control
|
||||
WARNING: untranslated string: advproxy group required
|
||||
WARNING: untranslated string: advproxy proxy port transparent
|
||||
WARNING: untranslated string: age second
|
||||
WARNING: untranslated string: atm device
|
||||
WARNING: untranslated string: attention
|
||||
WARNING: untranslated string: bit
|
||||
@@ -741,9 +742,11 @@ WARNING: untranslated string: fwdfw dnat nochoice
|
||||
WARNING: untranslated string: fwdfw dnat porterr
|
||||
WARNING: untranslated string: fwdfw dnat porterr2
|
||||
WARNING: untranslated string: fwdfw edit
|
||||
WARNING: untranslated string: fwdfw err concon
|
||||
WARNING: untranslated string: fwdfw err nosrc
|
||||
WARNING: untranslated string: fwdfw err notgt
|
||||
WARNING: untranslated string: fwdfw err prot_port
|
||||
WARNING: untranslated string: fwdfw err ratecon
|
||||
WARNING: untranslated string: fwdfw err remark
|
||||
WARNING: untranslated string: fwdfw err ruleexists
|
||||
WARNING: untranslated string: fwdfw err same
|
||||
@@ -759,12 +762,15 @@ WARNING: untranslated string: fwdfw hint ip1
|
||||
WARNING: untranslated string: fwdfw hint ip2
|
||||
WARNING: untranslated string: fwdfw hint mac
|
||||
WARNING: untranslated string: fwdfw iface
|
||||
WARNING: untranslated string: fwdfw limitconcon
|
||||
WARNING: untranslated string: fwdfw log
|
||||
WARNING: untranslated string: fwdfw log rule
|
||||
WARNING: untranslated string: fwdfw many
|
||||
WARNING: untranslated string: fwdfw maxconcon
|
||||
WARNING: untranslated string: fwdfw movedown
|
||||
WARNING: untranslated string: fwdfw moveup
|
||||
WARNING: untranslated string: fwdfw newrule
|
||||
WARNING: untranslated string: fwdfw numcon
|
||||
WARNING: untranslated string: fwdfw pol allow
|
||||
WARNING: untranslated string: fwdfw pol block
|
||||
WARNING: untranslated string: fwdfw pol text
|
||||
@@ -772,6 +778,7 @@ WARNING: untranslated string: fwdfw pol text1
|
||||
WARNING: untranslated string: fwdfw pol title
|
||||
WARNING: untranslated string: fwdfw prot41
|
||||
WARNING: untranslated string: fwdfw prot41 short
|
||||
WARNING: untranslated string: fwdfw ratelimit
|
||||
WARNING: untranslated string: fwdfw red
|
||||
WARNING: untranslated string: fwdfw reread
|
||||
WARNING: untranslated string: fwdfw rule activate
|
||||
@@ -837,7 +844,6 @@ WARNING: untranslated string: fwhost err name
|
||||
WARNING: untranslated string: fwhost err name1
|
||||
WARNING: untranslated string: fwhost err net
|
||||
WARNING: untranslated string: fwhost err netexist
|
||||
WARNING: untranslated string: fwhost err partofnet
|
||||
WARNING: untranslated string: fwhost err port
|
||||
WARNING: untranslated string: fwhost err remark
|
||||
WARNING: untranslated string: fwhost err srv exists
|
||||
|
||||
@@ -43,7 +43,6 @@ WARNING: translation string unused: advproxy ssadvanced proxy
|
||||
WARNING: translation string unused: advproxy update information
|
||||
WARNING: translation string unused: advproxy update notification
|
||||
WARNING: translation string unused: again
|
||||
WARNING: translation string unused: age second
|
||||
WARNING: translation string unused: age seconds
|
||||
WARNING: translation string unused: age shour
|
||||
WARNING: translation string unused: age sminute
|
||||
@@ -269,6 +268,7 @@ WARNING: translation string unused: fwhost changeremark
|
||||
WARNING: translation string unused: fwhost err addrgrp
|
||||
WARNING: translation string unused: fwhost err hostorip
|
||||
WARNING: translation string unused: fwhost err mac
|
||||
WARNING: translation string unused: fwhost err partofnet
|
||||
WARNING: translation string unused: fwhost green
|
||||
WARNING: translation string unused: fwhost hosts
|
||||
WARNING: translation string unused: fwhost ipadr
|
||||
@@ -684,6 +684,12 @@ WARNING: untranslated string: dnssec validating
|
||||
WARNING: untranslated string: download tls-auth key
|
||||
WARNING: untranslated string: drop outgoing
|
||||
WARNING: untranslated string: firewall logs country
|
||||
WARNING: untranslated string: fwdfw err concon
|
||||
WARNING: untranslated string: fwdfw err ratecon
|
||||
WARNING: untranslated string: fwdfw limitconcon
|
||||
WARNING: untranslated string: fwdfw maxconcon
|
||||
WARNING: untranslated string: fwdfw numcon
|
||||
WARNING: untranslated string: fwdfw ratelimit
|
||||
WARNING: untranslated string: fwhost err hostip
|
||||
WARNING: untranslated string: gen dh
|
||||
WARNING: untranslated string: generate dh key
|
||||
|
||||
@@ -606,6 +606,7 @@ WARNING: untranslated string: advproxy errmsg proxy ports equal
|
||||
WARNING: untranslated string: advproxy group access control
|
||||
WARNING: untranslated string: advproxy group required
|
||||
WARNING: untranslated string: advproxy proxy port transparent
|
||||
WARNING: untranslated string: age second
|
||||
WARNING: untranslated string: atm device
|
||||
WARNING: untranslated string: attention
|
||||
WARNING: untranslated string: bit
|
||||
@@ -730,9 +731,11 @@ WARNING: untranslated string: fwdfw dnat nochoice
|
||||
WARNING: untranslated string: fwdfw dnat porterr
|
||||
WARNING: untranslated string: fwdfw dnat porterr2
|
||||
WARNING: untranslated string: fwdfw edit
|
||||
WARNING: untranslated string: fwdfw err concon
|
||||
WARNING: untranslated string: fwdfw err nosrc
|
||||
WARNING: untranslated string: fwdfw err notgt
|
||||
WARNING: untranslated string: fwdfw err prot_port
|
||||
WARNING: untranslated string: fwdfw err ratecon
|
||||
WARNING: untranslated string: fwdfw err remark
|
||||
WARNING: untranslated string: fwdfw err ruleexists
|
||||
WARNING: untranslated string: fwdfw err same
|
||||
@@ -748,12 +751,15 @@ WARNING: untranslated string: fwdfw hint ip1
|
||||
WARNING: untranslated string: fwdfw hint ip2
|
||||
WARNING: untranslated string: fwdfw hint mac
|
||||
WARNING: untranslated string: fwdfw iface
|
||||
WARNING: untranslated string: fwdfw limitconcon
|
||||
WARNING: untranslated string: fwdfw log
|
||||
WARNING: untranslated string: fwdfw log rule
|
||||
WARNING: untranslated string: fwdfw many
|
||||
WARNING: untranslated string: fwdfw maxconcon
|
||||
WARNING: untranslated string: fwdfw movedown
|
||||
WARNING: untranslated string: fwdfw moveup
|
||||
WARNING: untranslated string: fwdfw newrule
|
||||
WARNING: untranslated string: fwdfw numcon
|
||||
WARNING: untranslated string: fwdfw pol allow
|
||||
WARNING: untranslated string: fwdfw pol block
|
||||
WARNING: untranslated string: fwdfw pol text
|
||||
@@ -761,6 +767,7 @@ WARNING: untranslated string: fwdfw pol text1
|
||||
WARNING: untranslated string: fwdfw pol title
|
||||
WARNING: untranslated string: fwdfw prot41
|
||||
WARNING: untranslated string: fwdfw prot41 short
|
||||
WARNING: untranslated string: fwdfw ratelimit
|
||||
WARNING: untranslated string: fwdfw red
|
||||
WARNING: untranslated string: fwdfw reread
|
||||
WARNING: untranslated string: fwdfw rule activate
|
||||
@@ -826,7 +833,6 @@ WARNING: untranslated string: fwhost err name
|
||||
WARNING: untranslated string: fwhost err name1
|
||||
WARNING: untranslated string: fwhost err net
|
||||
WARNING: untranslated string: fwhost err netexist
|
||||
WARNING: untranslated string: fwhost err partofnet
|
||||
WARNING: untranslated string: fwhost err port
|
||||
WARNING: untranslated string: fwhost err remark
|
||||
WARNING: untranslated string: fwhost err srv exists
|
||||
|
||||
@@ -609,6 +609,7 @@ WARNING: untranslated string: advproxy errmsg proxy ports equal
|
||||
WARNING: untranslated string: advproxy group access control
|
||||
WARNING: untranslated string: advproxy group required
|
||||
WARNING: untranslated string: advproxy proxy port transparent
|
||||
WARNING: untranslated string: age second
|
||||
WARNING: untranslated string: atm device
|
||||
WARNING: untranslated string: attention
|
||||
WARNING: untranslated string: bit
|
||||
@@ -725,9 +726,11 @@ WARNING: untranslated string: fwdfw dnat nochoice
|
||||
WARNING: untranslated string: fwdfw dnat porterr
|
||||
WARNING: untranslated string: fwdfw dnat porterr2
|
||||
WARNING: untranslated string: fwdfw edit
|
||||
WARNING: untranslated string: fwdfw err concon
|
||||
WARNING: untranslated string: fwdfw err nosrc
|
||||
WARNING: untranslated string: fwdfw err notgt
|
||||
WARNING: untranslated string: fwdfw err prot_port
|
||||
WARNING: untranslated string: fwdfw err ratecon
|
||||
WARNING: untranslated string: fwdfw err remark
|
||||
WARNING: untranslated string: fwdfw err ruleexists
|
||||
WARNING: untranslated string: fwdfw err same
|
||||
@@ -743,12 +746,15 @@ WARNING: untranslated string: fwdfw hint ip1
|
||||
WARNING: untranslated string: fwdfw hint ip2
|
||||
WARNING: untranslated string: fwdfw hint mac
|
||||
WARNING: untranslated string: fwdfw iface
|
||||
WARNING: untranslated string: fwdfw limitconcon
|
||||
WARNING: untranslated string: fwdfw log
|
||||
WARNING: untranslated string: fwdfw log rule
|
||||
WARNING: untranslated string: fwdfw many
|
||||
WARNING: untranslated string: fwdfw maxconcon
|
||||
WARNING: untranslated string: fwdfw movedown
|
||||
WARNING: untranslated string: fwdfw moveup
|
||||
WARNING: untranslated string: fwdfw newrule
|
||||
WARNING: untranslated string: fwdfw numcon
|
||||
WARNING: untranslated string: fwdfw pol allow
|
||||
WARNING: untranslated string: fwdfw pol block
|
||||
WARNING: untranslated string: fwdfw pol text
|
||||
@@ -756,6 +762,7 @@ WARNING: untranslated string: fwdfw pol text1
|
||||
WARNING: untranslated string: fwdfw pol title
|
||||
WARNING: untranslated string: fwdfw prot41
|
||||
WARNING: untranslated string: fwdfw prot41 short
|
||||
WARNING: untranslated string: fwdfw ratelimit
|
||||
WARNING: untranslated string: fwdfw red
|
||||
WARNING: untranslated string: fwdfw reread
|
||||
WARNING: untranslated string: fwdfw rule activate
|
||||
@@ -821,7 +828,6 @@ WARNING: untranslated string: fwhost err name
|
||||
WARNING: untranslated string: fwhost err name1
|
||||
WARNING: untranslated string: fwhost err net
|
||||
WARNING: untranslated string: fwhost err netexist
|
||||
WARNING: untranslated string: fwhost err partofnet
|
||||
WARNING: untranslated string: fwhost err port
|
||||
WARNING: untranslated string: fwhost err remark
|
||||
WARNING: untranslated string: fwhost err srv exists
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
WARNING: translation string unused: Client status and controlc
|
||||
WARNING: translation string unused: ConnSched scheduler
|
||||
WARNING: translation string unused: ConnSched select profile
|
||||
WARNING: translation string unused: HDD temperature
|
||||
@@ -21,6 +20,7 @@ WARNING: translation string unused: add xtaccess
|
||||
WARNING: translation string unused: add-route
|
||||
WARNING: translation string unused: admin user password has been changed
|
||||
WARNING: translation string unused: administrator user password
|
||||
WARNING: translation string unused: adsl settings
|
||||
WARNING: translation string unused: advproxy LDAP auth
|
||||
WARNING: translation string unused: advproxy NTLM auth
|
||||
WARNING: translation string unused: advproxy advanced proxy
|
||||
@@ -43,7 +43,6 @@ WARNING: translation string unused: advproxy ssadvanced proxy
|
||||
WARNING: translation string unused: advproxy update information
|
||||
WARNING: translation string unused: advproxy update notification
|
||||
WARNING: translation string unused: again
|
||||
WARNING: translation string unused: age second
|
||||
WARNING: translation string unused: age seconds
|
||||
WARNING: translation string unused: age shour
|
||||
WARNING: translation string unused: age sminute
|
||||
@@ -151,6 +150,7 @@ WARNING: translation string unused: destination ip bad
|
||||
WARNING: translation string unused: destination ip or net
|
||||
WARNING: translation string unused: destination net
|
||||
WARNING: translation string unused: destination port overlaps
|
||||
WARNING: translation string unused: dh name is invalid
|
||||
WARNING: translation string unused: dhcp base ip fixed lease
|
||||
WARNING: translation string unused: dhcp create fixed leases
|
||||
WARNING: translation string unused: dhcp fixed lease err1
|
||||
@@ -174,6 +174,7 @@ WARNING: translation string unused: do not log this port list
|
||||
WARNING: translation string unused: domain not set
|
||||
WARNING: translation string unused: donation-link
|
||||
WARNING: translation string unused: done
|
||||
WARNING: translation string unused: download dh parameter
|
||||
WARNING: translation string unused: driver
|
||||
WARNING: translation string unused: dstprt range overlaps
|
||||
WARNING: translation string unused: dstprt within existing
|
||||
@@ -268,6 +269,7 @@ WARNING: translation string unused: fwhost changeremark
|
||||
WARNING: translation string unused: fwhost err addrgrp
|
||||
WARNING: translation string unused: fwhost err hostorip
|
||||
WARNING: translation string unused: fwhost err mac
|
||||
WARNING: translation string unused: fwhost err partofnet
|
||||
WARNING: translation string unused: fwhost green
|
||||
WARNING: translation string unused: fwhost hosts
|
||||
WARNING: translation string unused: fwhost ipadr
|
||||
@@ -395,6 +397,7 @@ WARNING: translation string unused: network time
|
||||
WARNING: translation string unused: network traffic graphs
|
||||
WARNING: translation string unused: network updated
|
||||
WARNING: translation string unused: networks settings
|
||||
WARNING: translation string unused: never
|
||||
WARNING: translation string unused: new optionsfw must boot
|
||||
WARNING: translation string unused: no alcatelusb firmware
|
||||
WARNING: translation string unused: no cfg upload
|
||||
@@ -442,9 +445,10 @@ WARNING: translation string unused: outgoing firewall warning
|
||||
WARNING: translation string unused: override mtu
|
||||
WARNING: translation string unused: ovpn config
|
||||
WARNING: translation string unused: ovpn dl
|
||||
WARNING: translation string unused: ovpn engines
|
||||
WARNING: translation string unused: ovpn log
|
||||
WARNING: translation string unused: ovpn reneg sec
|
||||
WARNING: translation string unused: ovpn_fastio
|
||||
WARNING: translation string unused: ovpn_fragment
|
||||
WARNING: translation string unused: ovpn_mssfix
|
||||
WARNING: translation string unused: ovpn_mtudisc
|
||||
WARNING: translation string unused: ovpn_processprio
|
||||
@@ -556,6 +560,7 @@ WARNING: translation string unused: successfully refreshed updates list
|
||||
WARNING: translation string unused: system graphs
|
||||
WARNING: translation string unused: system log viewer
|
||||
WARNING: translation string unused: system status information
|
||||
WARNING: translation string unused: teovpn_fragment
|
||||
WARNING: translation string unused: test
|
||||
WARNING: translation string unused: test email could not be sent
|
||||
WARNING: translation string unused: test email was sent
|
||||
@@ -634,10 +639,6 @@ WARNING: translation string unused: urlfilter update information
|
||||
WARNING: translation string unused: urlfilter update notification
|
||||
WARNING: translation string unused: urlfilter update results
|
||||
WARNING: translation string unused: urlfilter upload background
|
||||
WARNING: translation string unused: usb modem on acm0
|
||||
WARNING: translation string unused: usb modem on acm1
|
||||
WARNING: translation string unused: usb modem on acm2
|
||||
WARNING: translation string unused: usb modem on acm3
|
||||
WARNING: translation string unused: use
|
||||
WARNING: translation string unused: use dov
|
||||
WARNING: translation string unused: use ibod
|
||||
@@ -660,76 +661,16 @@ WARNING: translation string unused: xtaccess all error
|
||||
WARNING: translation string unused: xtaccess bad transfert
|
||||
WARNING: translation string unused: year-graph
|
||||
WARNING: translation string unused: yearly firewallhits
|
||||
WARNING: untranslated string: MTU settings
|
||||
WARNING: untranslated string: Number of Countries for the pie chart
|
||||
WARNING: untranslated string: Scan for Songs
|
||||
WARNING: untranslated string: administrator password
|
||||
WARNING: untranslated string: administrator username
|
||||
WARNING: untranslated string: advproxy AUTH method ntlm
|
||||
WARNING: untranslated string: advproxy AUTH method ntlm auth
|
||||
WARNING: untranslated string: advproxy basic authentication
|
||||
WARNING: untranslated string: advproxy group access control
|
||||
WARNING: untranslated string: advproxy group required
|
||||
WARNING: untranslated string: bytes
|
||||
WARNING: untranslated string: capabilities
|
||||
WARNING: untranslated string: default
|
||||
WARNING: untranslated string: dh
|
||||
WARNING: untranslated string: dh key move failed
|
||||
WARNING: untranslated string: dh key warn
|
||||
WARNING: untranslated string: dh key warn1
|
||||
WARNING: untranslated string: dh parameter
|
||||
WARNING: untranslated string: dnssec aware
|
||||
WARNING: untranslated string: dnssec information
|
||||
WARNING: untranslated string: dnssec not supported
|
||||
WARNING: untranslated string: dnssec validating
|
||||
WARNING: untranslated string: download tls-auth key
|
||||
WARNING: untranslated string: firewall logs country
|
||||
WARNING: untranslated string: fwdfw err concon
|
||||
WARNING: untranslated string: fwdfw err ratecon
|
||||
WARNING: untranslated string: fwdfw limitconcon
|
||||
WARNING: untranslated string: fwdfw maxconcon
|
||||
WARNING: untranslated string: fwdfw numcon
|
||||
WARNING: untranslated string: fwdfw ratelimit
|
||||
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: masquerade blue
|
||||
WARNING: untranslated string: masquerade green
|
||||
WARNING: untranslated string: masquerade orange
|
||||
WARNING: untranslated string: masquerading
|
||||
WARNING: untranslated string: masquerading disabled
|
||||
WARNING: untranslated string: masquerading enabled
|
||||
WARNING: untranslated string: messages
|
||||
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: nameserver
|
||||
WARNING: untranslated string: not a valid dh key
|
||||
WARNING: untranslated string: ovpn crypt options
|
||||
WARNING: untranslated string: ovpn dh
|
||||
WARNING: untranslated string: ovpn dh new key
|
||||
WARNING: untranslated string: ovpn dh parameters
|
||||
WARNING: untranslated string: ovpn dh upload
|
||||
WARNING: untranslated string: ovpn generating the root and host certificates
|
||||
WARNING: untranslated string: ovpn ha
|
||||
WARNING: untranslated string: ovpn hmac
|
||||
WARNING: untranslated string: route config changed
|
||||
WARNING: untranslated string: routing config added
|
||||
WARNING: untranslated string: routing config changed
|
||||
WARNING: untranslated string: routing table
|
||||
WARNING: untranslated string: samba join a domain
|
||||
WARNING: untranslated string: samba join domain
|
||||
WARNING: untranslated string: show dh
|
||||
WARNING: untranslated string: show tls-auth key
|
||||
WARNING: untranslated string: software version
|
||||
WARNING: untranslated string: source ip country
|
||||
WARNING: untranslated string: ta key
|
||||
WARNING: untranslated string: upload dh key
|
||||
WARNING: untranslated string: vendor
|
||||
|
||||
@@ -159,12 +159,14 @@
|
||||
< fwdfw dnat porterr2
|
||||
< fwdfw DROP
|
||||
< fwdfw edit
|
||||
< fwdfw err concon
|
||||
< fwdfw err nosrc
|
||||
< fwdfw err nosrcip
|
||||
< fwdfw err notgt
|
||||
< fwdfw err notgtip
|
||||
< fwdfw err prot_port
|
||||
< fwdfw err prot_port1
|
||||
< fwdfw err ratecon
|
||||
< fwdfw err remark
|
||||
< fwdfw err ruleexists
|
||||
< fwdfw err same
|
||||
@@ -183,10 +185,12 @@
|
||||
< fwdfw hint mac
|
||||
< fwdfw iface
|
||||
< fwdfw ipsec network
|
||||
< fwdfw limitconcon
|
||||
< fwdfw log
|
||||
< fwdfw log rule
|
||||
< fwdfw man port
|
||||
< fwdfw many
|
||||
< fwdfw maxconcon
|
||||
< fwdfw menu
|
||||
< fwdfw MODE1
|
||||
< fwdfw MODE2
|
||||
@@ -194,6 +198,7 @@
|
||||
< fwdfw moveup
|
||||
< fwdfw natport used
|
||||
< fwdfw newrule
|
||||
< fwdfw numcon
|
||||
< fwdfw p2p txt
|
||||
< fwdfw pol allow
|
||||
< fwdfw pol block
|
||||
@@ -202,6 +207,7 @@
|
||||
< fwdfw pol title
|
||||
< fwdfw prot41
|
||||
< fwdfw prot41 short
|
||||
< fwdfw ratelimit
|
||||
< fwdfw red
|
||||
< fwdfw REJECT
|
||||
< fwdfw reread
|
||||
@@ -707,12 +713,14 @@
|
||||
< fwdfw dnat porterr2
|
||||
< fwdfw DROP
|
||||
< fwdfw edit
|
||||
< fwdfw err concon
|
||||
< fwdfw err nosrc
|
||||
< fwdfw err nosrcip
|
||||
< fwdfw err notgt
|
||||
< fwdfw err notgtip
|
||||
< fwdfw err prot_port
|
||||
< fwdfw err prot_port1
|
||||
< fwdfw err ratecon
|
||||
< fwdfw err remark
|
||||
< fwdfw err ruleexists
|
||||
< fwdfw err same
|
||||
@@ -731,10 +739,12 @@
|
||||
< fwdfw hint mac
|
||||
< fwdfw iface
|
||||
< fwdfw ipsec network
|
||||
< fwdfw limitconcon
|
||||
< fwdfw log
|
||||
< fwdfw log rule
|
||||
< fwdfw man port
|
||||
< fwdfw many
|
||||
< fwdfw maxconcon
|
||||
< fwdfw menu
|
||||
< fwdfw MODE1
|
||||
< fwdfw MODE2
|
||||
@@ -742,6 +752,7 @@
|
||||
< fwdfw moveup
|
||||
< fwdfw natport used
|
||||
< fwdfw newrule
|
||||
< fwdfw numcon
|
||||
< fwdfw p2p txt
|
||||
< fwdfw pol allow
|
||||
< fwdfw pol block
|
||||
@@ -750,6 +761,7 @@
|
||||
< fwdfw pol title
|
||||
< fwdfw prot41
|
||||
< fwdfw prot41 short
|
||||
< fwdfw ratelimit
|
||||
< fwdfw red
|
||||
< fwdfw REJECT
|
||||
< fwdfw reread
|
||||
@@ -1239,12 +1251,14 @@
|
||||
< fwdfw dnat porterr2
|
||||
< fwdfw DROP
|
||||
< fwdfw edit
|
||||
< fwdfw err concon
|
||||
< fwdfw err nosrc
|
||||
< fwdfw err nosrcip
|
||||
< fwdfw err notgt
|
||||
< fwdfw err notgtip
|
||||
< fwdfw err prot_port
|
||||
< fwdfw err prot_port1
|
||||
< fwdfw err ratecon
|
||||
< fwdfw err remark
|
||||
< fwdfw err ruleexists
|
||||
< fwdfw err same
|
||||
@@ -1263,10 +1277,12 @@
|
||||
< fwdfw hint mac
|
||||
< fwdfw iface
|
||||
< fwdfw ipsec network
|
||||
< fwdfw limitconcon
|
||||
< fwdfw log
|
||||
< fwdfw log rule
|
||||
< fwdfw man port
|
||||
< fwdfw many
|
||||
< fwdfw maxconcon
|
||||
< fwdfw menu
|
||||
< fwdfw MODE1
|
||||
< fwdfw MODE2
|
||||
@@ -1274,6 +1290,7 @@
|
||||
< fwdfw moveup
|
||||
< fwdfw natport used
|
||||
< fwdfw newrule
|
||||
< fwdfw numcon
|
||||
< fwdfw p2p txt
|
||||
< fwdfw pol allow
|
||||
< fwdfw pol block
|
||||
@@ -1282,6 +1299,7 @@
|
||||
< fwdfw pol title
|
||||
< fwdfw prot41
|
||||
< fwdfw prot41 short
|
||||
< fwdfw ratelimit
|
||||
< fwdfw red
|
||||
< fwdfw REJECT
|
||||
< fwdfw reread
|
||||
@@ -1760,12 +1778,14 @@
|
||||
< fwdfw dnat porterr2
|
||||
< fwdfw DROP
|
||||
< fwdfw edit
|
||||
< fwdfw err concon
|
||||
< fwdfw err nosrc
|
||||
< fwdfw err nosrcip
|
||||
< fwdfw err notgt
|
||||
< fwdfw err notgtip
|
||||
< fwdfw err prot_port
|
||||
< fwdfw err prot_port1
|
||||
< fwdfw err ratecon
|
||||
< fwdfw err remark
|
||||
< fwdfw err ruleexists
|
||||
< fwdfw err same
|
||||
@@ -1784,10 +1804,12 @@
|
||||
< fwdfw hint mac
|
||||
< fwdfw iface
|
||||
< fwdfw ipsec network
|
||||
< fwdfw limitconcon
|
||||
< fwdfw log
|
||||
< fwdfw log rule
|
||||
< fwdfw man port
|
||||
< fwdfw many
|
||||
< fwdfw maxconcon
|
||||
< fwdfw menu
|
||||
< fwdfw MODE1
|
||||
< fwdfw MODE2
|
||||
@@ -1795,6 +1817,7 @@
|
||||
< fwdfw moveup
|
||||
< fwdfw natport used
|
||||
< fwdfw newrule
|
||||
< fwdfw numcon
|
||||
< fwdfw p2p txt
|
||||
< fwdfw pol allow
|
||||
< fwdfw pol block
|
||||
@@ -1803,6 +1826,7 @@
|
||||
< fwdfw pol title
|
||||
< fwdfw prot41
|
||||
< fwdfw prot41 short
|
||||
< fwdfw ratelimit
|
||||
< fwdfw red
|
||||
< fwdfw REJECT
|
||||
< fwdfw reread
|
||||
|
||||
@@ -161,6 +161,22 @@ print<<END;
|
||||
\$("#TIME_CONSTRAINTS").toggle();
|
||||
});
|
||||
|
||||
// Limit concurrent connections per ip
|
||||
if(!\$("#USE_LIMIT_CONCURRENT_CONNECTIONS_PER_IP").attr("checked")) {
|
||||
\$("#LIMIT_CON").hide();
|
||||
}
|
||||
\$("#USE_LIMIT_CONCURRENT_CONNECTIONS_PER_IP").change(function() {
|
||||
\$("#LIMIT_CON").toggle();
|
||||
});
|
||||
|
||||
// Rate-limit new connections
|
||||
if(!\$("#USE_RATELIMIT").attr("checked")) {
|
||||
\$("#RATELIMIT").hide();
|
||||
}
|
||||
\$("#USE_RATELIMIT").change(function() {
|
||||
\$("#RATELIMIT").toggle();
|
||||
});
|
||||
|
||||
// Automatically select radio buttons when corresponding
|
||||
// dropdown menu changes.
|
||||
\$("select").change(function() {
|
||||
@@ -222,8 +238,8 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule')
|
||||
#check if we have an identical rule already
|
||||
if($fwdfwsettings{'oldrulenumber'} eq $fwdfwsettings{'rulepos'}){
|
||||
foreach my $key (sort keys %configinputfw){
|
||||
if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}"
|
||||
eq "$configinputfw{$key}[0],$configinputfw{$key}[2],$configinputfw{$key}[3],$configinputfw{$key}[4],$configinputfw{$key}[5],$configinputfw{$key}[6],$configinputfw{$key}[7],$configinputfw{$key}[8],$configinputfw{$key}[9],$configinputfw{$key}[10],$configinputfw{$key}[11],$configinputfw{$key}[12],$configinputfw{$key}[13],$configinputfw{$key}[14],$configinputfw{$key}[15],$configinputfw{$key}[17],$configinputfw{$key}[18],$configinputfw{$key}[19],$configinputfw{$key}[20],$configinputfw{$key}[21],$configinputfw{$key}[22],$configinputfw{$key}[23],$configinputfw{$key}[24],$configinputfw{$key}[25],$configinputfw{$key}[26],$configinputfw{$key}[27],$configinputfw{$key}[28],$configinputfw{$key}[29],$configinputfw{$key}[30],$configinputfw{$key}[31]"){
|
||||
if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'},$fwdfwsettings{'LIMIT_CON_CON'},$fwdfwsettings{'concon'},$fwdfwsettings{'RATE_LIMIT'},$fwdfwsettings{'ratecon'},$fwdfwsettings{'RATETIME'}"
|
||||
eq "$configinputfw{$key}[0],$configinputfw{$key}[2],$configinputfw{$key}[3],$configinputfw{$key}[4],$configinputfw{$key}[5],$configinputfw{$key}[6],$configinputfw{$key}[7],$configinputfw{$key}[8],$configinputfw{$key}[9],$configinputfw{$key}[10],$configinputfw{$key}[11],$configinputfw{$key}[12],$configinputfw{$key}[13],$configinputfw{$key}[14],$configinputfw{$key}[15],$configinputfw{$key}[17],$configinputfw{$key}[18],$configinputfw{$key}[19],$configinputfw{$key}[20],$configinputfw{$key}[21],$configinputfw{$key}[22],$configinputfw{$key}[23],$configinputfw{$key}[24],$configinputfw{$key}[25],$configinputfw{$key}[26],$configinputfw{$key}[27],$configinputfw{$key}[28],$configinputfw{$key}[29],$configinputfw{$key}[30],$configinputfw{$key}[31],$configinputfw{$key}[32],$configinputfw{$key}[33],$configinputfw{$key}[34],$configinputfw{$key}[35],$configinputfw{$key}[36]"){
|
||||
$errormessage.=$Lang::tr{'fwdfw err ruleexists'};
|
||||
if($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' && $fwdfwsettings{'ruleremark'} ne '' && !&validremark($fwdfwsettings{'ruleremark'})){
|
||||
$errormessage=$Lang::tr{'fwdfw err remark'}."<br>";
|
||||
@@ -241,14 +257,14 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule')
|
||||
if($fwdfwsettings{'rulepos'} > 0 && !$fwdfwsettings{'oldrulenumber'}){
|
||||
$fwdfwsettings{'oldrulenumber'}=$maxkey;
|
||||
foreach my $key (sort keys %configinputfw){
|
||||
if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}"
|
||||
eq "$configinputfw{$key}[0],$configinputfw{$key}[2],$configinputfw{$key}[3],$configinputfw{$key}[4],$configinputfw{$key}[5],$configinputfw{$key}[6],$configinputfw{$key}[7],$configinputfw{$key}[8],$configinputfw{$key}[9],$configinputfw{$key}[10],$configinputfw{$key}[11],$configinputfw{$key}[12],$configinputfw{$key}[13],$configinputfw{$key}[14],$configinputfw{$key}[15],$configinputfw{$key}[17],$configinputfw{$key}[18],$configinputfw{$key}[19],$configinputfw{$key}[20],$configinputfw{$key}[21],$configinputfw{$key}[22],$configinputfw{$key}[23],$configinputfw{$key}[24],$configinputfw{$key}[25],$configinputfw{$key}[26],$configinputfw{$key}[27],$configinputfw{$key}[28],$configinputfw{$key}[29],$configinputfw{$key}[30],$configinputfw{$key}[31]"){
|
||||
if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'},$fwdfwsettings{'LIMIT_CON_CON'},$fwdfwsettings{'concon'},$fwdfwsettings{'RATE_LIMIT'},$fwdfwsettings{'ratecon'},$fwdfwsettings{'RATETIME'}"
|
||||
eq "$configinputfw{$key}[0],$configinputfw{$key}[2],$configinputfw{$key}[3],$configinputfw{$key}[4],$configinputfw{$key}[5],$configinputfw{$key}[6],$configinputfw{$key}[7],$configinputfw{$key}[8],$configinputfw{$key}[9],$configinputfw{$key}[10],$configinputfw{$key}[11],$configinputfw{$key}[12],$configinputfw{$key}[13],$configinputfw{$key}[14],$configinputfw{$key}[15],$configinputfw{$key}[17],$configinputfw{$key}[18],$configinputfw{$key}[19],$configinputfw{$key}[20],$configinputfw{$key}[21],$configinputfw{$key}[22],$configinputfw{$key}[23],$configinputfw{$key}[24],$configinputfw{$key}[25],$configinputfw{$key}[26],$configinputfw{$key}[27],$configinputfw{$key}[28],$configinputfw{$key}[29],$configinputfw{$key}[30],$configinputfw{$key}[31],$configinputfw{$key}[32],$configinputfw{$key}[33],$configinputfw{$key}[34],$configinputfw{$key}[35],$configinputfw{$key}[36]"){
|
||||
$errormessage.=$Lang::tr{'fwdfw err ruleexists'};
|
||||
}
|
||||
}
|
||||
}
|
||||
#check if we just close a rule
|
||||
if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'}) {
|
||||
if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'} ) {
|
||||
if($fwdfwsettings{'nosave'} eq 'on' && $fwdfwsettings{'updatefwrule'} eq 'on'){
|
||||
$errormessage='';
|
||||
$fwdfwsettings{'nosave2'} = 'on';
|
||||
@@ -266,8 +282,8 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule')
|
||||
my $maxkey=&General::findhasharraykey(\%configoutgoingfw);
|
||||
if($fwdfwsettings{'oldrulenumber'} eq $fwdfwsettings{'rulepos'}){
|
||||
foreach my $key (sort keys %configoutgoingfw){
|
||||
if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}"
|
||||
eq "$configoutgoingfw{$key}[0],$configoutgoingfw{$key}[2],$configoutgoingfw{$key}[3],$configoutgoingfw{$key}[4],$configoutgoingfw{$key}[5],$configoutgoingfw{$key}[6],$configoutgoingfw{$key}[7],$configoutgoingfw{$key}[8],$configoutgoingfw{$key}[9],$configoutgoingfw{$key}[10],$configoutgoingfw{$key}[11],$configoutgoingfw{$key}[12],$configoutgoingfw{$key}[13],$configoutgoingfw{$key}[14],$configoutgoingfw{$key}[15],$configoutgoingfw{$key}[17],$configoutgoingfw{$key}[18],$configoutgoingfw{$key}[19],$configoutgoingfw{$key}[20],$configoutgoingfw{$key}[21],$configoutgoingfw{$key}[22],$configoutgoingfw{$key}[23],$configoutgoingfw{$key}[24],$configoutgoingfw{$key}[25],$configoutgoingfw{$key}[26],$configoutgoingfw{$key}[27],$configoutgoingfw{$key}[28],$configoutgoingfw{$key}[29],$configoutgoingfw{$key}[30],$configoutgoingfw{$key}[31]"){
|
||||
if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'},$fwdfwsettings{'LIMIT_CON_CON'},$fwdfwsettings{'concon'},$fwdfwsettings{'RATE_LIMIT'},$fwdfwsettings{'ratecon'},$fwdfwsettings{'RATETIME'}"
|
||||
eq "$configoutgoingfw{$key}[0],$configoutgoingfw{$key}[2],$configoutgoingfw{$key}[3],$configoutgoingfw{$key}[4],$configoutgoingfw{$key}[5],$configoutgoingfw{$key}[6],$configoutgoingfw{$key}[7],$configoutgoingfw{$key}[8],$configoutgoingfw{$key}[9],$configoutgoingfw{$key}[10],$configoutgoingfw{$key}[11],$configoutgoingfw{$key}[12],$configoutgoingfw{$key}[13],$configoutgoingfw{$key}[14],$configoutgoingfw{$key}[15],$configoutgoingfw{$key}[17],$configoutgoingfw{$key}[18],$configoutgoingfw{$key}[19],$configoutgoingfw{$key}[20],$configoutgoingfw{$key}[21],$configoutgoingfw{$key}[22],$configoutgoingfw{$key}[23],$configoutgoingfw{$key}[24],$configoutgoingfw{$key}[25],$configoutgoingfw{$key}[26],$configoutgoingfw{$key}[27],$configoutgoingfw{$key}[28],$configoutgoingfw{$key}[29],$configoutgoingfw{$key}[30],$configoutgoingfw{$key}[31],$configoutgoingfw{$key}[32],$configoutgoingfw{$key}[33],$configoutgoingfw{$key}[34],$configoutgoingfw{$key}[35],$configoutgoingfw{$key}[36]"){
|
||||
$errormessage.=$Lang::tr{'fwdfw err ruleexists'};
|
||||
if($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' && $fwdfwsettings{'ruleremark'} ne '' && !&validremark($fwdfwsettings{'ruleremark'})){
|
||||
$errormessage=$Lang::tr{'fwdfw err remark'}."<br>";
|
||||
@@ -285,14 +301,14 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule')
|
||||
if($fwdfwsettings{'rulepos'} > 0 && !$fwdfwsettings{'oldrulenumber'}){
|
||||
$fwdfwsettings{'oldrulenumber'}=$maxkey;
|
||||
foreach my $key (sort keys %configoutgoingfw){
|
||||
if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}"
|
||||
eq "$configoutgoingfw{$key}[0],$configoutgoingfw{$key}[2],$configoutgoingfw{$key}[3],$configoutgoingfw{$key}[4],$configoutgoingfw{$key}[5],$configoutgoingfw{$key}[6],$configoutgoingfw{$key}[7],$configoutgoingfw{$key}[8],$configoutgoingfw{$key}[9],$configoutgoingfw{$key}[10],$configoutgoingfw{$key}[11],$configoutgoingfw{$key}[12],$configoutgoingfw{$key}[13],$configoutgoingfw{$key}[14],$configoutgoingfw{$key}[15],$configoutgoingfw{$key}[17],$configoutgoingfw{$key}[18],$configoutgoingfw{$key}[19],$configoutgoingfw{$key}[20],$configoutgoingfw{$key}[21],$configoutgoingfw{$key}[22],$configoutgoingfw{$key}[23],$configoutgoingfw{$key}[24],$configoutgoingfw{$key}[25],$configoutgoingfw{$key}[26],$configoutgoingfw{$key}[27],$configoutgoingfw{$key}[28],$configoutgoingfw{$key}[29],$configoutgoingfw{$key}[30],$configoutgoingfw{$key}[31]"){
|
||||
if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'LOG'},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'},$fwdfwsettings{'LIMIT_CON_CON'},$fwdfwsettings{'concon'},$fwdfwsettings{'RATE_LIMIT'},$fwdfwsettings{'ratecon'},$fwdfwsettings{'RATETIME'}"
|
||||
eq "$configoutgoingfw{$key}[0],$configoutgoingfw{$key}[2],$configoutgoingfw{$key}[3],$configoutgoingfw{$key}[4],$configoutgoingfw{$key}[5],$configoutgoingfw{$key}[6],$configoutgoingfw{$key}[7],$configoutgoingfw{$key}[8],$configoutgoingfw{$key}[9],$configoutgoingfw{$key}[10],$configoutgoingfw{$key}[11],$configoutgoingfw{$key}[12],$configoutgoingfw{$key}[13],$configoutgoingfw{$key}[14],$configoutgoingfw{$key}[15],$configoutgoingfw{$key}[17],$configoutgoingfw{$key}[18],$configoutgoingfw{$key}[19],$configoutgoingfw{$key}[20],$configoutgoingfw{$key}[21],$configoutgoingfw{$key}[22],$configoutgoingfw{$key}[23],$configoutgoingfw{$key}[24],$configoutgoingfw{$key}[25],$configoutgoingfw{$key}[26],$configoutgoingfw{$key}[27],$configoutgoingfw{$key}[28],$configoutgoingfw{$key}[29],$configoutgoingfw{$key}[30],$configoutgoingfw{$key}[31],$configoutgoingfw{$key}[32],$configoutgoingfw{$key}[33],$configoutgoingfw{$key}[34],$configoutgoingfw{$key}[35],$configoutgoingfw{$key}[36]"){
|
||||
$errormessage.=$Lang::tr{'fwdfw err ruleexists'};
|
||||
}
|
||||
}
|
||||
}
|
||||
#check if we just close a rule
|
||||
if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'}) {
|
||||
if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'} ) {
|
||||
if($fwdfwsettings{'nosave'} eq 'on' && $fwdfwsettings{'updatefwrule'} eq 'on'){
|
||||
$fwdfwsettings{'nosave2'} = 'on';
|
||||
$errormessage='';
|
||||
@@ -312,8 +328,8 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule')
|
||||
if($fwdfwsettings{'oldrulenumber'} eq $fwdfwsettings{'rulepos'}){
|
||||
#check if we have an identical rule already
|
||||
foreach my $key (sort keys %configfwdfw){
|
||||
if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}"
|
||||
eq "$configfwdfw{$key}[0],$configfwdfw{$key}[2],$configfwdfw{$key}[3],$configfwdfw{$key}[4],$configfwdfw{$key}[5],$configfwdfw{$key}[6],$configfwdfw{$key}[7],$configfwdfw{$key}[8],$configfwdfw{$key}[9],$configfwdfw{$key}[10],$configfwdfw{$key}[11],$configfwdfw{$key}[12],$configfwdfw{$key}[13],$configfwdfw{$key}[14],$configfwdfw{$key}[15],$configfwdfw{$key}[18],$configfwdfw{$key}[19],$configfwdfw{$key}[20],$configfwdfw{$key}[21],$configfwdfw{$key}[22],$configfwdfw{$key}[23],$configfwdfw{$key}[24],$configfwdfw{$key}[25],$configfwdfw{$key}[26],$configfwdfw{$key}[27],$configfwdfw{$key}[28],$configfwdfw{$key}[29],$configfwdfw{$key}[30],$configfwdfw{$key}[31]"){
|
||||
if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'},$fwdfwsettings{'LIMIT_CON_CON'},$fwdfwsettings{'concon'},$fwdfwsettings{'RATE_LIMIT'},$fwdfwsettings{'ratecon'},$fwdfwsettings{'RATETIME'}"
|
||||
eq "$configfwdfw{$key}[0],$configfwdfw{$key}[2],$configfwdfw{$key}[3],$configfwdfw{$key}[4],$configfwdfw{$key}[5],$configfwdfw{$key}[6],$configfwdfw{$key}[7],$configfwdfw{$key}[8],$configfwdfw{$key}[9],$configfwdfw{$key}[10],$configfwdfw{$key}[11],$configfwdfw{$key}[12],$configfwdfw{$key}[13],$configfwdfw{$key}[14],$configfwdfw{$key}[15],$configfwdfw{$key}[18],$configfwdfw{$key}[19],$configfwdfw{$key}[20],$configfwdfw{$key}[21],$configfwdfw{$key}[22],$configfwdfw{$key}[23],$configfwdfw{$key}[24],$configfwdfw{$key}[25],$configfwdfw{$key}[26],$configfwdfw{$key}[27],$configfwdfw{$key}[28],$configfwdfw{$key}[29],$configfwdfw{$key}[30],$configfwdfw{$key}[31],$configfwdfw{$key}[32],$configfwdfw{$key}[33],$configfwdfw{$key}[34],$configfwdfw{$key}[35],$configfwdfw{$key}[36]"){
|
||||
$errormessage.=$Lang::tr{'fwdfw err ruleexists'};
|
||||
if($fwdfwsettings{'oldruleremark'} ne $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'updatefwrule'} eq 'on' && $fwdfwsettings{'ruleremark'} ne '' && !&validremark($fwdfwsettings{'ruleremark'})){
|
||||
$errormessage=$Lang::tr{'fwdfw err remark'}."<br>";
|
||||
@@ -331,19 +347,35 @@ if ($fwdfwsettings{'ACTION'} eq 'saverule')
|
||||
if($fwdfwsettings{'rulepos'} > 0 && !$fwdfwsettings{'oldrulenumber'}){
|
||||
$fwdfwsettings{'oldrulenumber'}=$maxkey;
|
||||
foreach my $key (sort keys %configfwdfw){
|
||||
if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'}"
|
||||
eq "$configfwdfw{$key}[0],$configfwdfw{$key}[2],$configfwdfw{$key}[3],$configfwdfw{$key}[4],$configfwdfw{$key}[5],$configfwdfw{$key}[6],$configfwdfw{$key}[7],$configfwdfw{$key}[8],$configfwdfw{$key}[9],$configfwdfw{$key}[10],$configfwdfw{$key}[11],$configfwdfw{$key}[12],$configfwdfw{$key}[13],$configfwdfw{$key}[14],$configfwdfw{$key}[15],$configfwdfw{$key}[18],$configfwdfw{$key}[19],$configfwdfw{$key}[20],$configfwdfw{$key}[21],$configfwdfw{$key}[22],$configfwdfw{$key}[23],$configfwdfw{$key}[24],$configfwdfw{$key}[25],$configfwdfw{$key}[26],$configfwdfw{$key}[27],$configfwdfw{$key}[28],$configfwdfw{$key}[29],$configfwdfw{$key}[30],$configfwdfw{$key}[31]"){
|
||||
if ( "$fwdfwsettings{'RULE_ACTION'},$fwdfwsettings{'ACTIVE'},$fwdfwsettings{'grp1'},$fwdfwsettings{$fwdfwsettings{'grp1'}},$fwdfwsettings{'grp2'},$fwdfwsettings{$fwdfwsettings{'grp2'}},$fwdfwsettings{'USE_SRC_PORT'},$fwdfwsettings{'PROT'},$fwdfwsettings{'ICMP_TYPES'},$fwdfwsettings{'SRC_PORT'},$fwdfwsettings{'USESRV'},$fwdfwsettings{'TGT_PROT'},$fwdfwsettings{'ICMP_TGT'},$fwdfwsettings{'grp3'},$fwdfwsettings{$fwdfwsettings{'grp3'}},$fwdfwsettings{'TIME'},$fwdfwsettings{'TIME_MON'},$fwdfwsettings{'TIME_TUE'},$fwdfwsettings{'TIME_WED'},$fwdfwsettings{'TIME_THU'},$fwdfwsettings{'TIME_FRI'},$fwdfwsettings{'TIME_SAT'},$fwdfwsettings{'TIME_SUN'},$fwdfwsettings{'TIME_FROM'},$fwdfwsettings{'TIME_TO'},$fwdfwsettings{'USE_NAT'},$fwdfwsettings{$fwdfwsettings{'nat'}},$fwdfwsettings{'dnatport'},$fwdfwsettings{'nat'},$fwdfwsettings{'LIMIT_CON_CON'},$fwdfwsettings{'concon'},$fwdfwsettings{'RATE_LIMIT'},$fwdfwsettings{'ratecon'},$fwdfwsettings{'RATETIME'}"
|
||||
eq "$configfwdfw{$key}[0],$configfwdfw{$key}[2],$configfwdfw{$key}[3],$configfwdfw{$key}[4],$configfwdfw{$key}[5],$configfwdfw{$key}[6],$configfwdfw{$key}[7],$configfwdfw{$key}[8],$configfwdfw{$key}[9],$configfwdfw{$key}[10],$configfwdfw{$key}[11],$configfwdfw{$key}[12],$configfwdfw{$key}[13],$configfwdfw{$key}[14],$configfwdfw{$key}[15],$configfwdfw{$key}[18],$configfwdfw{$key}[19],$configfwdfw{$key}[20],$configfwdfw{$key}[21],$configfwdfw{$key}[22],$configfwdfw{$key}[23],$configfwdfw{$key}[24],$configfwdfw{$key}[25],$configfwdfw{$key}[26],$configfwdfw{$key}[27],$configfwdfw{$key}[28],$configfwdfw{$key}[29],$configfwdfw{$key}[30],$configfwdfw{$key}[31],$configfwdfw{$key}[32],$configfwdfw{$key}[33],$configfwdfw{$key}[34],$configfwdfw{$key}[35],$configfwdfw{$key}[36]"){
|
||||
$errormessage.=$Lang::tr{'fwdfw err ruleexists'};
|
||||
}
|
||||
}
|
||||
}
|
||||
#check if we just close a rule
|
||||
if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'}) {
|
||||
if( $fwdfwsettings{'oldgrp1a'} eq $fwdfwsettings{'grp1'} && $fwdfwsettings{'oldgrp1b'} eq $fwdfwsettings{$fwdfwsettings{'grp1'}} && $fwdfwsettings{'oldgrp2a'} eq $fwdfwsettings{'grp2'} && $fwdfwsettings{'oldgrp2b'} eq $fwdfwsettings{$fwdfwsettings{'grp2'}} && $fwdfwsettings{'oldgrp3a'} eq $fwdfwsettings{'grp3'} && $fwdfwsettings{'oldgrp3b'} eq $fwdfwsettings{$fwdfwsettings{'grp3'}} && $fwdfwsettings{'oldusesrv'} eq $fwdfwsettings{'USESRV'} && $fwdfwsettings{'oldruleremark'} eq $fwdfwsettings{'ruleremark'} && $fwdfwsettings{'oldruletype'} eq $fwdfwsettings{'chain'}){
|
||||
if($fwdfwsettings{'nosave'} eq 'on' && $fwdfwsettings{'updatefwrule'} eq 'on'){
|
||||
$fwdfwsettings{'nosave2'} = 'on';
|
||||
$errormessage='';
|
||||
}
|
||||
}
|
||||
#check max concurrent connections per ip address
|
||||
if ($fwdfwsettings{'LIMIT_CON_CON'} eq 'ON'){
|
||||
if (!($fwdfwsettings{'concon'} =~ /^(\d+)$/)) {
|
||||
$errormessage.=$Lang::tr{'fwdfw err concon'};
|
||||
}
|
||||
}else{
|
||||
$fwdfwsettings{'concon'}='';
|
||||
}
|
||||
#check ratelimit value
|
||||
if ($fwdfwsettings{'RATE_LIMIT'} eq 'ON'){
|
||||
if (!($fwdfwsettings{'ratecon'} =~ /^(\d+)$/)) {
|
||||
$errormessage.=$Lang::tr{'fwdfw err ratecon'};
|
||||
}
|
||||
}else{
|
||||
$fwdfwsettings{'ratecon'}='';
|
||||
}
|
||||
#increase counters
|
||||
if (!$errormessage){
|
||||
if ($fwdfwsettings{'nosave2'} ne 'on'){
|
||||
@@ -1064,7 +1096,6 @@ print<<END;
|
||||
END
|
||||
foreach my $network (sort keys %defaultNetworks)
|
||||
{
|
||||
next if($defaultNetworks{$network}{'NAME'} eq "RED" && $srctgt eq 'src');
|
||||
next if($defaultNetworks{$network}{'NAME'} eq "IPFire");
|
||||
print "<option value='$defaultNetworks{$network}{'NAME'}'";
|
||||
print " selected='selected'" if ($fwdfwsettings{$fwdfwsettings{$grp}} eq $defaultNetworks{$network}{'NAME'});
|
||||
@@ -1517,6 +1548,11 @@ sub newrule
|
||||
$fwdfwsettings{'nat'} = $hash{$key}[31]; #changed order
|
||||
$fwdfwsettings{$fwdfwsettings{'nat'}} = $hash{$key}[29];
|
||||
$fwdfwsettings{'dnatport'} = $hash{$key}[30];
|
||||
$fwdfwsettings{'LIMIT_CON_CON'} = $hash{$key}[32];
|
||||
$fwdfwsettings{'concon'} = $hash{$key}[33];
|
||||
$fwdfwsettings{'RATE_LIMIT'} = $hash{$key}[34];
|
||||
$fwdfwsettings{'ratecon'} = $hash{$key}[35];
|
||||
$fwdfwsettings{'RATETIME'} = $hash{$key}[36];
|
||||
$checked{'grp1'}{$fwdfwsettings{'grp1'}} = 'CHECKED';
|
||||
$checked{'grp2'}{$fwdfwsettings{'grp2'}} = 'CHECKED';
|
||||
$checked{'grp3'}{$fwdfwsettings{'grp3'}} = 'CHECKED';
|
||||
@@ -1534,12 +1570,15 @@ sub newrule
|
||||
$checked{'TIME_SUN'}{$fwdfwsettings{'TIME_SUN'}} = 'CHECKED';
|
||||
$checked{'USE_NAT'}{$fwdfwsettings{'USE_NAT'}} = 'CHECKED';
|
||||
$checked{'nat'}{$fwdfwsettings{'nat'}} = 'CHECKED';
|
||||
$checked{'LIMIT_CON_CON'}{$fwdfwsettings{'LIMIT_CON_CON'}} = 'CHECKED';
|
||||
$checked{'RATE_LIMIT'}{$fwdfwsettings{'RATE_LIMIT'}} = 'CHECKED';
|
||||
$selected{'TIME_FROM'}{$fwdfwsettings{'TIME_FROM'}} = 'selected';
|
||||
$selected{'TIME_TO'}{$fwdfwsettings{'TIME_TO'}} = 'selected';
|
||||
$selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp2'}}} ='selected';
|
||||
$selected{'ipfire_src'}{$fwdfwsettings{$fwdfwsettings{'grp1'}}} ='selected';
|
||||
$selected{'dnat'}{$fwdfwsettings{'dnat'}} ='selected';
|
||||
$selected{'snat'}{$fwdfwsettings{'snat'}} ='selected';
|
||||
$selected{'RATETIME'}{$fwdfwsettings{'RATETIME'}} ='selected';
|
||||
}
|
||||
}
|
||||
$fwdfwsettings{'oldgrp1a'}=$fwdfwsettings{'grp1'};
|
||||
@@ -1552,6 +1591,11 @@ sub newrule
|
||||
$fwdfwsettings{'oldruleremark'}=$fwdfwsettings{'ruleremark'};
|
||||
$fwdfwsettings{'oldnat'}=$fwdfwsettings{'USE_NAT'};
|
||||
$fwdfwsettings{'oldruletype'}=$fwdfwsettings{'chain'};
|
||||
$fwdfwsettings{'oldconcon'}=$fwdfwsettings{'LIMIT_CON_CON'};
|
||||
$fwdfwsettings{'olduseratelimit'}=$fwdfwsettings{'RATE_LIMIT'};
|
||||
$fwdfwsettings{'olduseratelimitamount'}=$fwdfwsettings{'ratecon'};
|
||||
$fwdfwsettings{'oldratelimittime'}=$fwdfwsettings{'RATETIME'};
|
||||
|
||||
#check if manual ip (source) is orange network
|
||||
if ($fwdfwsettings{'grp1'} eq 'src_addr'){
|
||||
my ($sip,$scidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp1'}});
|
||||
@@ -1573,6 +1617,7 @@ sub newrule
|
||||
$fwdfwsettings{'oldusesrv'}=$fwdfwsettings{'USESRV'};
|
||||
$fwdfwsettings{'oldruleremark'}=$fwdfwsettings{'ruleremark'};
|
||||
$fwdfwsettings{'oldnat'}=$fwdfwsettings{'USE_NAT'};
|
||||
$fwdfwsettings{'oldconcon'}=$fwdfwsettings{'LIMIT_CON_CON'};
|
||||
#check if manual ip (source) is orange network
|
||||
if ($fwdfwsettings{'grp1'} eq 'src_addr'){
|
||||
my ($sip,$scidr) = split("/",$fwdfwsettings{$fwdfwsettings{'grp1'}});
|
||||
@@ -2012,6 +2057,44 @@ END
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='1%'>
|
||||
<input type='checkbox' name='LIMIT_CON_CON' id="USE_LIMIT_CONCURRENT_CONNECTIONS_PER_IP" value='ON' $checked{'LIMIT_CON_CON'}{'ON'}>
|
||||
</td>
|
||||
<td>$Lang::tr{'fwdfw limitconcon'}</td>
|
||||
</tr>
|
||||
<tr id="LIMIT_CON">
|
||||
<td colspan='2'>
|
||||
<table width='66%' border='0'>
|
||||
<tr>
|
||||
<td width="20em"> </td>
|
||||
<td>$Lang::tr{'fwdfw maxconcon'}: <input type='text' name='concon' size='2' value="$fwdfwsettings{'concon'}"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='1%'>
|
||||
<input type='checkbox' name='RATE_LIMIT' id="USE_RATELIMIT" value='ON' $checked{'RATE_LIMIT'}{'ON'}>
|
||||
</td>
|
||||
<td>$Lang::tr{'fwdfw ratelimit'}</td>
|
||||
</tr>
|
||||
<tr id="RATELIMIT">
|
||||
<td colspan='2'>
|
||||
<table width='66%' border='0'>
|
||||
<tr>
|
||||
<td width="20em"> </td>
|
||||
<td>$Lang::tr{'fwdfw numcon'}: <input type='text' name='ratecon' size='2' value="$fwdfwsettings{'ratecon'}"> /
|
||||
<select name='RATETIME' style='width:100px;'>
|
||||
<option value='second' $selected{'RATETIME'}{'second'}>$Lang::tr{'age second'}</option>
|
||||
<option value='minute' $selected{'RATETIME'}{'minute'}>$Lang::tr{'minute'}</option>
|
||||
<option value='hour' $selected{'RATETIME'}{'hour'}>$Lang::tr{'hour'}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
END
|
||||
@@ -2044,6 +2127,7 @@ END
|
||||
<input type='hidden' name='oldorange' value='$fwdfwsettings{'oldorange'}' />
|
||||
<input type='hidden' name='oldnat' value='$fwdfwsettings{'oldnat'}' />
|
||||
<input type='hidden' name='oldruletype' value='$fwdfwsettings{'oldruletype'}' />
|
||||
<input type='hidden' name='oldconcon' value='$fwdfwsettings{'oldconcon'}' />
|
||||
<input type='hidden' name='ACTION' value='saverule' ></form><form method='post' style='display:inline'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'><input type='hidden' name='ACTION' value'reset'></td></td>
|
||||
</table></form>
|
||||
END
|
||||
@@ -2180,6 +2264,11 @@ sub saverule
|
||||
$$hash{$key}[29] = $fwdfwsettings{$fwdfwsettings{'nat'}};
|
||||
$$hash{$key}[30] = $fwdfwsettings{'dnatport'};
|
||||
$$hash{$key}[31] = $fwdfwsettings{'nat'};
|
||||
$$hash{$key}[32] = $fwdfwsettings{'LIMIT_CON_CON'};
|
||||
$$hash{$key}[33] = $fwdfwsettings{'concon'};
|
||||
$$hash{$key}[34] = $fwdfwsettings{'RATE_LIMIT'};
|
||||
$$hash{$key}[35] = $fwdfwsettings{'ratecon'};
|
||||
$$hash{$key}[36] = $fwdfwsettings{'RATETIME'};
|
||||
&General::writehasharray("$config", $hash);
|
||||
}else{
|
||||
foreach my $key (sort {$a <=> $b} keys %$hash){
|
||||
@@ -2216,6 +2305,11 @@ sub saverule
|
||||
$$hash{$key}[29] = $fwdfwsettings{$fwdfwsettings{'nat'}};
|
||||
$$hash{$key}[30] = $fwdfwsettings{'dnatport'};
|
||||
$$hash{$key}[31] = $fwdfwsettings{'nat'};
|
||||
$$hash{$key}[32] = $fwdfwsettings{'LIMIT_CON_CON'};
|
||||
$$hash{$key}[33] = $fwdfwsettings{'concon'};
|
||||
$$hash{$key}[34] = $fwdfwsettings{'RATE_LIMIT'};
|
||||
$$hash{$key}[35] = $fwdfwsettings{'ratecon'};
|
||||
$$hash{$key}[36] = $fwdfwsettings{'RATETIME'};
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -291,42 +291,13 @@ if ($fwhostsettings{'ACTION'} eq 'savenet' )
|
||||
$errormessage=$errormessage.$Lang::tr{'fwhost err sub32'};
|
||||
}
|
||||
if($fwhostsettings{'error'} ne 'on'){
|
||||
#check if we use one of ipfire's networks (green,orange,blue)
|
||||
if (($ownnet{'GREEN_NETADDRESS'} ne '' && $ownnet{'GREEN_NETADDRESS'} ne '0.0.0.0') && ($fwhostsettings{'IP'} eq $ownnet{'GREEN_NETADDRESS'} && $fwhostsettings{'SUBNET'} eq $ownnet{'GREEN_NETMASK'}))
|
||||
{
|
||||
$errormessage=$errormessage.$Lang::tr{'ccd err green'}."<br>";
|
||||
$fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'};
|
||||
if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}='editnet';}
|
||||
}
|
||||
if (($ownnet{'ORANGE_NETADDRESS'} ne '' && $ownnet{'ORANGE_NETADDRESS'} ne '0.0.0.0') && ($fwhostsettings{'IP'} eq $ownnet{'ORANGE_NETADDRESS'} && $fwhostsettings{'SUBNET'} eq $ownnet{'ORANGE_NETMASK'}))
|
||||
{
|
||||
$errormessage=$errormessage.$Lang::tr{'ccd err orange'}."<br>";
|
||||
$fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'};
|
||||
if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}='editnet';}
|
||||
}
|
||||
if (($ownnet{'BLUE_NETADDRESS'} ne '' && $ownnet{'BLUE_NETADDRESS'} ne '0.0.0.0') && ($fwhostsettings{'IP'} eq $ownnet{'BLUE_NETADDRESS'} && $fwhostsettings{'SUBNET'} eq $ownnet{'BLUE_NETMASK'}))
|
||||
{
|
||||
$errormessage=$errormessage.$Lang::tr{'ccd err blue'}."<br>";
|
||||
$fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'};
|
||||
if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}='editnet';}
|
||||
}
|
||||
if (($ownnet{'RED_NETADDRESS'} ne '' && $ownnet{'RED_NETADDRESS'} ne '0.0.0.0') && ($fwhostsettings{'IP'} eq $ownnet{'RED_NETADDRESS'} && $fwhostsettings{'SUBNET'} eq $ownnet{'RED_NETMASK'}))
|
||||
{
|
||||
$errormessage=$errormessage.$Lang::tr{'ccd err red'}."<br>";
|
||||
$fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'};
|
||||
if ($fwhostsettings{'update'} eq 'on'){$fwhostsettings{'ACTION'}='editnet';}
|
||||
}
|
||||
my $fullip="$fwhostsettings{'IP'}/".&General::iporsubtocidr($fwhostsettings{'SUBNET'});
|
||||
$errormessage=$errormessage.&General::checksubnets($fwhostsettings{'HOSTNAME'},$fullip,"");
|
||||
}
|
||||
#only check plausi when no error till now
|
||||
if (!$errormessage){
|
||||
&plausicheck("editnet");
|
||||
}
|
||||
#check if network ip is part of an already used one
|
||||
if(&checksubnet(\%customnetwork))
|
||||
{
|
||||
$errormessage=$errormessage.$Lang::tr{'fwhost err partofnet'};
|
||||
$fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'};
|
||||
}
|
||||
if($fwhostsettings{'actualize'} eq 'on' && $fwhostsettings{'newnet'} ne 'on' && $errormessage)
|
||||
{
|
||||
$fwhostsettings{'actualize'} = '';
|
||||
@@ -338,9 +309,8 @@ if ($fwhostsettings{'ACTION'} eq 'savenet' )
|
||||
$customnetwork{$key}[3] = $fwhostsettings{'orgnetremark'};
|
||||
&General::writehasharray("$confignet", \%customnetwork);
|
||||
undef %customnetwork;
|
||||
}
|
||||
}
|
||||
if (!$errormessage){
|
||||
|
||||
&General::readhasharray("$confignet", \%customnetwork);
|
||||
if ($fwhostsettings{'ACTION'} eq 'updatenet'){
|
||||
if ($fwhostsettings{'update'} == '0'){
|
||||
@@ -392,7 +362,7 @@ if ($fwhostsettings{'ACTION'} eq 'savenet' )
|
||||
&General::writehasharray("$fwconfiginp", \%fwinp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
my $key = &General::findhasharraykey (\%customnetwork);
|
||||
foreach my $i (0 .. 3) { $customnetwork{$key}[$i] = "";}
|
||||
$fwhostsettings{'SUBNET'} = &General::iporsubtocidr($fwhostsettings{'SUBNET'});
|
||||
@@ -416,7 +386,8 @@ if ($fwhostsettings{'ACTION'} eq 'savenet' )
|
||||
}
|
||||
&addnet;
|
||||
&viewtablenet;
|
||||
}else {
|
||||
}else{
|
||||
$fwhostsettings{'HOSTNAME'} = $fwhostsettings{'orgname'};
|
||||
&addnet;
|
||||
&viewtablenet;
|
||||
}
|
||||
@@ -1644,7 +1615,10 @@ sub getcolor
|
||||
$tdcolor="<font style='color: $Header::colourblue;'>$c</font>";
|
||||
return $tdcolor;
|
||||
}
|
||||
|
||||
if ("$sip/$scidr" eq "0.0.0.0/0"){
|
||||
$tdcolor="<font style='color: $Header::colourred;'>$c</font>";
|
||||
return $tdcolor;
|
||||
}
|
||||
#Check if IP is part of OpenVPN N2N subnet
|
||||
foreach my $key (sort keys %ccdhost){
|
||||
if ($ccdhost{$key}[3] eq 'net'){
|
||||
@@ -2501,6 +2475,9 @@ sub getipforgroup
|
||||
&General::readhash("${General::swroot}/vpn/settings",\%hash);
|
||||
return $hash{'RW_NET'};
|
||||
}
|
||||
if ($name eq 'RED'){
|
||||
return "0.0.0.0/0";
|
||||
}
|
||||
}
|
||||
}
|
||||
sub decrease
|
||||
|
||||
@@ -336,7 +336,7 @@ print <<END
|
||||
END
|
||||
;
|
||||
if ($sid ne "n/a") {
|
||||
print "<a href='http://www.snort.org/search/sid/$sid' ";
|
||||
print "<a href='https://www.snort.org/rule_docs/$sid' ";
|
||||
print "target='_blank'>$sid</a></td>\n";
|
||||
} else {
|
||||
print $sid;
|
||||
|
||||
@@ -935,7 +935,7 @@ if (($besettings{'ACTION'} eq $Lang::tr{'urlfilter install blacklist'}) && ($bes
|
||||
close FILE;
|
||||
|
||||
system("rm -f $dbdir/$besettings{'BE_NAME'}/*.db");
|
||||
system("/usr/sbin/squidGuard -c $editdir/install.conf -C all");
|
||||
system("/usr/bin/squidGuard -c $editdir/install.conf -C all");
|
||||
system("chmod a+w $dbdir/$besettings{'BE_NAME'}/*.db");
|
||||
|
||||
&readblockcategories;
|
||||
@@ -2722,9 +2722,9 @@ sub setpermissions
|
||||
|
||||
sub writeconfigfile
|
||||
{
|
||||
my $executables = "\\.\(ade|adp|asx|bas|bat|chm|com|cmd|cpl|crt|dll|eml|exe|hiv|hlp|hta|inc|inf|ins|isp|jse|jtd|lnk|msc|msh|msi|msp|mst|nws|ocx|oft|ops|pcd|pif|plx|reg|scr|sct|sha|shb|shm|shs|sys|tlb|tsp|url|vbe|vbs|vxd|wsc|wsf|wsh\)\$";
|
||||
my $audiovideo = "\\.\(aiff|asf|avi|dif|divx|mov|movie|mp3|mpe?g?|mpv2|ogg|ra?m|snd|qt|wav|wma|wmf|wmv\)\$";
|
||||
my $archives = "\\.\(bin|bz2|cab|cdr|dmg|gz|hqx|rar|smi|sit|sea|tar|tgz|zip\)\$";
|
||||
my $executables = "/[^/]*\\.\(ade|adp|asx|bas|bat|chm|com|cmd|cpl|crt|dll|eml|exe|hiv|hlp|hta|inc|inf|ins|isp|jse|jtd|lnk|msc|msh|msi|msp|mst|nws|ocx|oft|ops|pcd|pif|plx|reg|scr|sct|sha|shb|shm|shs|sys|tlb|tsp|url|vbe|vbs|vxd|wsc|wsf|wsh\)\$";
|
||||
my $audiovideo = "/[^/]*\\.\(aiff|asf|avi|dif|divx|flv|mkv|mov|movie|mp3|mp4|mpe?g?|mpv2|ogg|ra?m|snd|qt|wav|wma|wmf|wmv\)\$";
|
||||
my $archives = "/[^/]*\\.\(7z|bin|bz2|cab|cdr|dmg|gz|hqx|rar|smi|sit|sea|tar|tgz|zip\)\$";
|
||||
|
||||
my $ident = " anonymous";
|
||||
|
||||
@@ -2854,11 +2854,13 @@ sub writeconfigfile
|
||||
if ($filtersettings{'ENABLE_SAFESEARCH'} eq 'on')
|
||||
{
|
||||
print FILE " # rewrite safesearch\n";
|
||||
print FILE " s@(.*\\Wgoogle\\.\\w+/(webhp|search|imghp|images|grphp|groups|frghp|froogle)\\?)(.*)(\\bsafe=\\w+)(.*)\@\\1\\3safe=strict\\5\@i\n";
|
||||
print FILE " s@(.*\\Wgoogle\\.\\w+/(webhp|search|imghp|images|grphp|groups|frghp|froogle)\\?)(.*)\@\\1safe=strict\\\&\\3\@i\n";
|
||||
print FILE " s@(.*\\Wgoogle\\.\\w+/(webhp|search|imghp|images|grphp|groups|nwshp|frghp|froogle)\\?)(.*)(\\bsafe=\\w+)(.*)\@\\1\\3safe=strict\\5\@i\n";
|
||||
print FILE " s@(.*\\Wgoogle\\.\\w+/(webhp|search|imghp|images|grphp|groups|nwshp|frghp|froogle)\\?)(.*)\@\\1safe=strict\\\&\\3\@i\n";
|
||||
print FILE " s@(.*\\Wsearch\\.yahoo\\.\\w+/search\\W)(.*)(\\bvm=\\w+)(.*)\@\\1\\2vm=r\\4\@i\n";
|
||||
print FILE " s@(.*\\Wsearch\\.yahoo\\.\\w+/search\\W.*)\@\\1\\\&vm=r\@i\n";
|
||||
print FILE " s@(.*\\Walltheweb\\.com/customize\\?)(.*)(\\bcopt_offensive=\\w+)(.*)\@\\1\\2copt_offensive=on\\4\@i\n";
|
||||
print FILE " s@(.*\\Wbing\\.\\w+/)(.*)(\\badlt=\\w+)(.*)\@\\1\\2adlt=strict\\4\@i\n";
|
||||
print FILE " s@(.*\\Wbing\\.\\w+/.*)\@\\1\\\&adlt=strict\@i\n";
|
||||
}
|
||||
|
||||
print FILE "}\n\n";
|
||||
|
||||
@@ -982,12 +982,14 @@
|
||||
'fwdfw dnat porterr' => 'Für NAT-Regeln muss ein einzelner Port oder Portbereich angegeben werden.',
|
||||
'fwdfw dnat porterr2' => 'Externer Port (NAT) darf nur angegeben werden, wenn ein Ziel-Port definiert ist.',
|
||||
'fwdfw edit' => 'Bearbeiten',
|
||||
'fwdfw err concon' => 'Ungültige Zahl für gleichzeitige Verbindungen',
|
||||
'fwdfw err nosrc' => 'Keine Quelle ausgewählt',
|
||||
'fwdfw err nosrcip' => 'Bitte Quell-IP-Adresse angeben',
|
||||
'fwdfw err notgt' => 'Kein Ziel ausgewählt',
|
||||
'fwdfw err notgtip' => 'Bitte Ziel-IP-Adresse angeben',
|
||||
'fwdfw err prot_port' => 'Bei dem gewählten Protokoll sind Quell- und Zielport nicht erlaubt',
|
||||
'fwdfw err prot_port1' => 'Bei Nutzung von Quell- oder Zielport muss als Protokoll TCP oder UDP gewählt werden.',
|
||||
'fwdfw err ratecon' => 'Ungültiger Wert bei Anzahl der Verbindungen für Ratenlimitierung',
|
||||
'fwdfw err remark' => 'Die Bemerkung enthält ungültige Zeichen',
|
||||
'fwdfw err ruleexists' => 'Eine identische Regel existiert bereits',
|
||||
'fwdfw err same' => 'Quelle und Ziel sind identisch',
|
||||
@@ -1006,15 +1008,18 @@
|
||||
'fwdfw hint mac' => 'Sie nutzen MAC-Adressen in der Zielgruppe. Diese werden bei der Regelerstellung übersprungen.',
|
||||
'fwdfw iface' => 'Interface',
|
||||
'fwdfw ipsec network' => 'IPsec-Netzwerke:',
|
||||
'fwdfw limitconcon' => 'Beschränke gleichzeitige Verbindungen je IP-Adresse',
|
||||
'fwdfw log' => 'Log',
|
||||
'fwdfw log rule' => 'Logging aktivieren',
|
||||
'fwdfw man port' => 'Port(s):',
|
||||
'fwdfw many' => 'Diverse',
|
||||
'fwdfw maxconcon' => 'Max. gleichzeitige Verbindungen',
|
||||
'fwdfw menu' => 'Firewall',
|
||||
'fwdfw movedown' => 'Herunter',
|
||||
'fwdfw moveup' => 'Herauf',
|
||||
'fwdfw natport used' => 'Der eingegebene Port wird bereits von einer anderen DNAT-Regel benutzt.',
|
||||
'fwdfw newrule' => 'Neue Regel erstellen',
|
||||
'fwdfw numcon' => 'Anzahl der Verbindungen',
|
||||
'fwdfw p2p txt' => 'P2P-Netzwerke erlauben/verbieten.',
|
||||
'fwdfw pol allow' => 'Zugelassen',
|
||||
'fwdfw pol block' => 'Blockiert',
|
||||
@@ -1023,6 +1028,7 @@
|
||||
'fwdfw pol title' => 'Standardverhalten der Firewall',
|
||||
'fwdfw prot41' => 'IPv6 Encapsulation (Protokoll 41)',
|
||||
'fwdfw prot41 short' => 'IPv6 Encap',
|
||||
'fwdfw ratelimit' => 'Ratenlimitierung für neue Verbindungen',
|
||||
'fwdfw red' => 'ROT',
|
||||
'fwdfw reread' => 'Änderungen übernehmen',
|
||||
'fwdfw rule action' => 'Regelaktion:',
|
||||
@@ -1111,7 +1117,7 @@
|
||||
'fwhost err remark' => 'Ungültige Bemerkung. Erlaubte Zeichen: Klein- und Großbuchstaben, Bindestrich, Unterstrich, Runde Klammern, Semikolon, Punkt.',
|
||||
'fwhost err srv exists' => 'Ein Service mit diesem Namen existiert bereits',
|
||||
'fwhost err srvexist' => 'Dieser Dienst ist bereits in der Gruppe',
|
||||
'fwhost err sub32' => 'Bitte einen einzelnen Host hinzufügen, keine Netzwerke',
|
||||
'fwhost err sub32' => 'Bitte Netzwerke hinzufügen, keinen einzelnen Host',
|
||||
'fwhost green' => 'Grün',
|
||||
'fwhost hint' => 'Hinweis',
|
||||
'fwhost hosts' => 'Firewall-Hosts',
|
||||
|
||||
@@ -1009,12 +1009,14 @@
|
||||
'fwdfw dnat porterr' => 'You have to select a single port or portrange (tcp/udp) for NAT',
|
||||
'fwdfw dnat porterr2' => 'Cannot use external port (NAT) when no destination port is defined.',
|
||||
'fwdfw edit' => 'Edit',
|
||||
'fwdfw err concon' => 'Invalid number for concurrent connections',
|
||||
'fwdfw err nosrc' => 'No source selected.',
|
||||
'fwdfw err nosrcip' => 'Please provide a source IP address.',
|
||||
'fwdfw err notgt' => 'No destination selected.',
|
||||
'fwdfw err notgtip' => 'Please provide a destination IP address.',
|
||||
'fwdfw err prot_port' => 'Source- or targetport are not allowed with selected protocol',
|
||||
'fwdfw err prot_port1' => 'When using Source- or targetport you have to select TCP or UDP for protocol',
|
||||
'fwdfw err ratecon' => 'Invalid value for connections in Rate-limit',
|
||||
'fwdfw err remark' => 'Invalid characters in remark.',
|
||||
'fwdfw err ruleexists' => 'This rule already exists.',
|
||||
'fwdfw err same' => 'Source and destination are identical.',
|
||||
@@ -1033,15 +1035,18 @@
|
||||
'fwdfw hint mac' => 'The destination group contains MAC addresses, which will be skipped during rule creation.',
|
||||
'fwdfw iface' => 'Interface',
|
||||
'fwdfw ipsec network' => 'IPsec networks:',
|
||||
'fwdfw limitconcon' => 'Limit concurrent connections per IP address',
|
||||
'fwdfw log' => 'Log',
|
||||
'fwdfw log rule' => 'Log rule',
|
||||
'fwdfw man port' => 'Port(s):',
|
||||
'fwdfw many' => 'Many',
|
||||
'fwdfw maxconcon' => 'Max. concurrent connections',
|
||||
'fwdfw menu' => 'Firewall',
|
||||
'fwdfw movedown' => 'Move down',
|
||||
'fwdfw moveup' => 'Move up',
|
||||
'fwdfw natport used' => 'The given port for NAPT is already in use by an other DNAT rule.',
|
||||
'fwdfw newrule' => 'New rule',
|
||||
'fwdfw numcon' => 'Number of connections',
|
||||
'fwdfw p2p txt' => 'Grant/deny access to P2P networks.',
|
||||
'fwdfw pol allow' => 'Allowed',
|
||||
'fwdfw pol block' => 'Blocked',
|
||||
@@ -1050,6 +1055,7 @@
|
||||
'fwdfw pol title' => 'Default firewall behaviour',
|
||||
'fwdfw prot41' => 'IPv6 Encapsulation (Protocol 41)',
|
||||
'fwdfw prot41 short' => 'IPv6 Encap',
|
||||
'fwdfw ratelimit' => 'Rate-limit new connections',
|
||||
'fwdfw red' => 'RED',
|
||||
'fwdfw reread' => 'Apply changes',
|
||||
'fwdfw rule action' => 'Rule action:',
|
||||
@@ -1138,7 +1144,7 @@
|
||||
'fwhost err remark' => 'Invalid remark. Allowed characters: Upper- and lowercase letters, digits, space, dash, braces, semicolon, pipe and dot.',
|
||||
'fwhost err srv exists' => 'A service with the same name already exists',
|
||||
'fwhost err srvexist' => 'This service already exists in the group',
|
||||
'fwhost err sub32' => 'Please add a single host, not a network.',
|
||||
'fwhost err sub32' => 'Please add a network, not a single host',
|
||||
'fwhost green' => 'Green',
|
||||
'fwhost hint' => 'Note',
|
||||
'fwhost hosts' => 'Firewall Hosts',
|
||||
@@ -2108,8 +2114,8 @@
|
||||
'swap usage per' => 'Swap usage per',
|
||||
'system' => 'System',
|
||||
'system graphs' => 'System Graphs',
|
||||
'system has hwrng' => 'This system has got a hardware random number generator.',
|
||||
'system has rdrand' => 'This system has got support for Intel(R) RDRAND.',
|
||||
'system has hwrng' => 'This system has a hardware random number generator.',
|
||||
'system has rdrand' => 'This system has support for Intel(R) RDRAND.',
|
||||
'system information' => 'System Information',
|
||||
'system log viewer' => 'System Log Viewer',
|
||||
'system logs' => 'System Logs',
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
'Choose Rule' => 'Aşağıdaki kurallardan <u>birini</u> seçin.',
|
||||
'Class' => 'Sınıf',
|
||||
'Class was deleted' => 'with potential subclasses was deleted',
|
||||
'Client status and controlc' => 'İstemci durum ve kontrolü:',
|
||||
'ConnSched action' => 'Eylem:',
|
||||
'ConnSched add action' => 'Eylem ekle',
|
||||
'ConnSched change profile title' => 'Profili değitirin:',
|
||||
@@ -40,6 +39,8 @@
|
||||
'MB read' => 'Okunan MB',
|
||||
'MB written' => 'Yazılan MB',
|
||||
'MTU' => 'MTU boyutu:',
|
||||
'MTU settings' => 'MTU ayarları:',
|
||||
'Number of Countries for the pie chart' => 'Pasta grafiği için ülkelerin sayısı',
|
||||
'Number of IPs for the pie chart' => 'Pasta grafiği için IP numarası',
|
||||
'Number of Ports for the pie chart' => 'Pasta grafiği için bağlantı noktası sayısı',
|
||||
'OVPN' => 'OpenVPN',
|
||||
@@ -98,7 +99,10 @@
|
||||
'addons' => 'Eklentiler',
|
||||
'admin user password has been changed' => 'Yönetici kullanıcı şifresi değiştirildi.',
|
||||
'admin users' => 'Yetkili kullanıcı hakları ile kullanıcı',
|
||||
'administrator password' => 'Admin parolası',
|
||||
'administrator user password' => 'Admin kullanıcı parolası:',
|
||||
'administrator username' => 'Admin kullanıcısı',
|
||||
'adsl settings' => 'ADSL ayarları',
|
||||
'advanced' => 'Gelişmiş',
|
||||
'advanced server' => 'Gelişmiş Sunucu Seçenekleri',
|
||||
'advproxy AUTH always required' => 'Sınırsız kaynak adresleri için kimlik doğrulaması iste',
|
||||
@@ -110,6 +114,8 @@
|
||||
'advproxy AUTH method ldap' => 'LDAP',
|
||||
'advproxy AUTH method ncsa' => 'Yerel',
|
||||
'advproxy AUTH method none' => 'Yok',
|
||||
'advproxy AUTH method ntlm' => 'Windows',
|
||||
'advproxy AUTH method ntlm auth' => 'Windows Aktif Dizini',
|
||||
'advproxy AUTH method radius' => 'RADIUS',
|
||||
'advproxy AUTH no auth' => 'Kimlik doğrulaması olmayan hedefler (her satırda bir tane)',
|
||||
'advproxy AUTH number of auth processes' => 'Kimlik doğrulama işlemlerinin sayısı',
|
||||
@@ -190,6 +196,7 @@
|
||||
'advproxy back to main page' => 'Ana Sayfaya Geri Dön',
|
||||
'advproxy banned ip clients' => 'Yasaklanan IP adresleri (her satırda bir tane)',
|
||||
'advproxy banned mac clients' => 'Yasaklanan MAC adresleri (her satırda bir tane)',
|
||||
'advproxy basic authentication' => 'Temel HTTP kimlik doğrulama izni',
|
||||
'advproxy cache management' => 'Önbellek yönetimi',
|
||||
'advproxy cache replacement policy' => 'Önbellek değiştirme kuralı',
|
||||
'advproxy cache-digest' => 'Önbellek-özeti üretimini aktifleştir',
|
||||
@@ -260,6 +267,8 @@
|
||||
'advproxy fake useragent' => 'Sahte yönlendiriciyi harici sitelere gönder',
|
||||
'advproxy friday' => 'Cum',
|
||||
'advproxy from' => 'Başlangıç',
|
||||
'advproxy group access control' => 'Grup tabanlı erişim kontrolü',
|
||||
'advproxy group required' => 'Gerekli grup',
|
||||
'advproxy hdd cache size' => 'Sabit disk önbellek boyutu (MB)',
|
||||
'advproxy invalid num of children' => 'Filtre işlemleri geçersiz sayıda',
|
||||
'advproxy log enabled' => 'Günlük aktif',
|
||||
@@ -486,6 +495,7 @@
|
||||
'cant change certificates' => 'Sertikalar değiştirilemiyor.',
|
||||
'cant enable xtaccess' => 'İlgili bağlantı noktası yönlendirme kuralı devre dışı, bu nedenle bu kural için harici erişimi aktifleştirmelisiniz.',
|
||||
'cant start openssl' => 'OpenSSH başlatılamıyor',
|
||||
'capabilities' => 'Kapasite',
|
||||
'caps all' => 'TÜMÜ',
|
||||
'capsclosed' => 'BAĞLANTI YOK',
|
||||
'capsinactive' => 'PASİF',
|
||||
@@ -654,6 +664,7 @@
|
||||
'december' => 'Aralık',
|
||||
'deep scan directories' => 'Ardışık tarama',
|
||||
'def lease time' => 'Varsayılan Kira Zamanı',
|
||||
'default' => 'Varsayılan',
|
||||
'default ip' => 'Varsayılan IP adresi',
|
||||
'default lease time' => 'Varsayılan kira zamanı (dakika):',
|
||||
'default networks' => 'Varsayılan ağlar',
|
||||
@@ -681,6 +692,12 @@
|
||||
'details' => 'Detaylar',
|
||||
'device' => 'Aygıt',
|
||||
'devices on blue' => 'Mavi üzerindeki aygıtlar',
|
||||
'dh' => 'Anahtar değişim parametreleri',
|
||||
'dh key move failed' => 'Anahtar değişim parametreleri taşınması başarısız.',
|
||||
'dh key warn' => '1024 veya 2048 bit uzunluğunda anahtar değişim paremetrelerini oluşturma birkaç dakika sürer. 3072 veya 4096 bit uzunluğundaki anahtar oluşturma ise birkaç saat sürebilir. Lütfen sabırlı olun.',
|
||||
'dh key warn1' => 'Küçük entropi veya zayıf sistemler için yükleme fonksiyonu kullanımı ile uzun anahtar değişim parametreleri yüklemesi tavsiye edilir.',
|
||||
'dh name is invalid' => 'Geçersiz ad. Lütfen "dh1024.pem" biçiminde ad kullanın.',
|
||||
'dh parameter' => 'Anahtar değişim parametreleri',
|
||||
'dhcp advopt add' => 'DHCP seçeneği ekle',
|
||||
'dhcp advopt added' => 'DHCP seçeneği eklendi',
|
||||
'dhcp advopt blank value' => 'DHCP seçeneği değeri boş olamaz.',
|
||||
@@ -765,6 +782,10 @@
|
||||
'dnsforward entries' => 'Güncel kayıtlar:',
|
||||
'dnsforward forward_server' => 'Ad sunucusu',
|
||||
'dnsforward zone' => 'Bölge',
|
||||
'dnssec aware' => 'DNSSEC Duyarlılığı',
|
||||
'dnssec information' => 'DNSSEC Bilgisi',
|
||||
'dnssec not supported' => 'DNSSEC desteklenmiyor',
|
||||
'dnssec validating' => 'DNSSEC Doğrulama',
|
||||
'do not log this port list' => 'Otorumdan hemen önce bu bağlantı noktaları listesini bırak (günlük boyutunu küçültür)',
|
||||
'dod' => 'Çevirmeli bağlantı üzerinden talep et',
|
||||
'dod for dns' => 'DNS için çevirmeli bağlantı üzerinden talep et:',
|
||||
@@ -787,10 +808,12 @@
|
||||
'download' => 'İndir',
|
||||
'download ca certificate' => 'CA sertifikası indir',
|
||||
'download certificate' => 'Sertifika indir',
|
||||
'download dh parameter' => 'Anahtar değişimi parametrelerini indir',
|
||||
'download host certificate' => 'Ana bilgisayar belgesi indir',
|
||||
'download new ruleset' => 'Yeni Kural Kümesi İndir',
|
||||
'download pkcs12 file' => 'PKCS12 dosyasını indir',
|
||||
'download root certificate' => 'Root sertifikasını indir',
|
||||
'download tls-auth key' => 'Tls kimlik doğrulama anahtarını indir',
|
||||
'dpd action' => 'Hareketsiz eş algılama eylemi',
|
||||
'dpd delay' => 'Gecikme',
|
||||
'dpd timeout' => 'Zaman Aşımı',
|
||||
@@ -928,6 +951,7 @@
|
||||
'firewall log' => 'Güvenlik duvarı günlüğü',
|
||||
'firewall log viewer' => 'Güvenlik Duvarı Günlük Görüntüleyicisi',
|
||||
'firewall logs' => 'Güvenlik Duvarı Günlükleri',
|
||||
'firewall logs country' => 'Fw günlük grafikleri (Ülke)',
|
||||
'firewall logs ip' => 'Gd-Günlük Grafikleri (IP)',
|
||||
'firewall logs port' => 'Gd-Günlük Grafikleri (Port)',
|
||||
'firewall rules' => 'Güvenlik Duvarı Kuralları',
|
||||
@@ -1147,9 +1171,11 @@
|
||||
'g.lite' => 'KALDIRILACAK',
|
||||
'gateway' => 'Ağ geçidi',
|
||||
'gateway ip' => 'Ağ Geçidi IP Adresi',
|
||||
'gen dh' => 'Yeni anahtar değişimi parametrelerini oluştur',
|
||||
'gen static key' => 'Statik bir anahtar oluştur',
|
||||
'generate' => 'Yönetici/Sunucu Sertifikası Oluştur',
|
||||
'generate a certificate' => 'Sertifika oluştur:',
|
||||
'generate dh key' => 'Anahtar değişimi parametrelerini oluştur',
|
||||
'generate iso' => 'ISO oluştur',
|
||||
'generate root/host certificates' => 'Yönetici/Sunucu Sertifikası Oluştur',
|
||||
'generate tripwire keys and init' => 'tripwire anahtarları ve init oluştur',
|
||||
@@ -1230,8 +1256,10 @@
|
||||
'ike integrity' => 'IKE Bütünlüğü:',
|
||||
'ike lifetime' => 'IKE Yaşam Süresi:',
|
||||
'ike lifetime should be between 1 and 8 hours' => 'IKE yaşam süresi 1 ila 8 saat arasında olmalıdır.',
|
||||
'imei' => 'IMEI',
|
||||
'import' => 'Al',
|
||||
'importkey' => 'PSK Al',
|
||||
'imsi' => 'IMSI',
|
||||
'in' => 'içinde',
|
||||
'inactive' => 'Pasif',
|
||||
'include logfiles' => 'Günlük dosyaları dahil',
|
||||
@@ -1441,6 +1469,12 @@
|
||||
'map to guest' => 'Ziyaretçi haritası',
|
||||
'march' => 'Mart',
|
||||
'marked' => 'İşaretli',
|
||||
'masquerade blue' => 'MAVİ gizli',
|
||||
'masquerade green' => 'YEŞİL gizli',
|
||||
'masquerade orange' => 'TURUNCU gizil',
|
||||
'masquerading' => 'Gizle',
|
||||
'masquerading disabled' => 'Gizlemeyi kapat',
|
||||
'masquerading enabled' => 'Gizlemeyi aç',
|
||||
'max bandwith' => 'En fazla bant genişliği',
|
||||
'max incoming size' => 'En fazla gelen boyut (KB):',
|
||||
'max lease time' => 'En fazla kira süresi (dakika):',
|
||||
@@ -1471,6 +1505,7 @@
|
||||
'memory' => 'Bellek',
|
||||
'memory information' => 'Bellek bilgisi',
|
||||
'memory usage per' => 'bellek başına kullanım - ',
|
||||
'messages' => 'Mesajlar',
|
||||
'messages logging' => '/var/log/messages için günlük ayarları',
|
||||
'method' => 'Yöntem:',
|
||||
'min costs' => 'En az maliyet',
|
||||
@@ -1484,18 +1519,32 @@
|
||||
'missing dat' => 'Şifreli arşiv bulunamadı',
|
||||
'missing gz' => 'Şifrelenmemiş arşiv bulunamadı',
|
||||
'mode' => 'Yöntem',
|
||||
'model' => 'Model',
|
||||
'modem' => 'Modem',
|
||||
'modem configuration' => 'Modem yapılandırması',
|
||||
'modem hardware details' => 'Modem Donanımı',
|
||||
'modem information' => 'Modem Bilgisi',
|
||||
'modem network bit error rate' => 'Bit hata oranı',
|
||||
'modem network information' => 'Ağ bilgisi',
|
||||
'modem network mode' => 'Ağ Yöntemi',
|
||||
'modem network operator' => 'Ağ Oparatörü',
|
||||
'modem network registration' => 'Ağ Kaydı',
|
||||
'modem network signal quality' => 'Sinyal Kalitesi',
|
||||
'modem no connection' => 'Bağlantı Yok',
|
||||
'modem no connection message' => 'Modemle bağlantı kurulamadı.',
|
||||
'modem on com1' => 'COM1 üzerindeki modem',
|
||||
'modem on com2' => 'COM2 üzerindeki modem',
|
||||
'modem on com3' => 'COM3 üzerindeki modem',
|
||||
'modem on com4' => 'COM4 üzerindeki modem',
|
||||
'modem on com5' => 'COM5 üzerindeki modem',
|
||||
'modem settings have errors' => 'Modem ayarları hatalı',
|
||||
'modem sim information' => 'SIM Bilgisi',
|
||||
'modem speaker on' => 'Modem üzerindeki hoparlör:',
|
||||
'modem status' => 'Modem Durumu',
|
||||
'modify' => 'Düzenle',
|
||||
'modulation' => 'Geçiş',
|
||||
'monday' => 'Pazartesi',
|
||||
'monitor interface' => 'Ekran Arabirimi',
|
||||
'month' => 'Ay',
|
||||
'month-graph' => 'ay',
|
||||
'monthly firewallhits' => 'aylık güvenlik duvarı kaydı',
|
||||
@@ -1522,6 +1571,7 @@
|
||||
'name is invalid' => 'Geçersiz ad',
|
||||
'name must only contain characters' => 'Ad sadece karakter içermelidir.',
|
||||
'name too long' => 'Kullanıcının tam adı veya sistem ana bilgisayar adı çok uzun',
|
||||
'nameserver' => 'Sunucu adı',
|
||||
'nat-traversal' => 'Nat Geçişi:',
|
||||
'needreboot' => 'Bu güncelleştirmeden sonra yeniden başlatmak gerekir',
|
||||
'net' => 'Ağ',
|
||||
@@ -1551,6 +1601,7 @@
|
||||
'network traffic graphs others' => 'Ağ (diğer)',
|
||||
'network updated' => 'Özel ağ güncellendi',
|
||||
'networks settings' => 'Güvenlik Duvarı - Ağ Ayarları',
|
||||
'never' => 'Asla',
|
||||
'new optionsfw later' => 'Yaptığınız değişiklikler yeniden başlatıldıktan sonra aktif olacaktır',
|
||||
'new optionsfw must boot' => 'IPFire yeniden başlatmanız gerekir',
|
||||
'newer' => 'Daha yeni',
|
||||
@@ -1572,6 +1623,7 @@
|
||||
'nonetworkname' => 'Ağ adı girilmedi',
|
||||
'noservicename' => 'Hizmet adı girilmedi',
|
||||
'not a valid ca certificate' => 'Geçerli bir CA sertifikası değil.',
|
||||
'not a valid dh key' => 'Geçerli bir anahtar değişim parametre dosyası yok. 1024, 2048, 3072 veya 4096 bit uzunluğunda ve PKCS#3 biçimini kullanın.',
|
||||
'not enough disk space' => 'Yeterli disk alanı yok',
|
||||
'not present' => 'Mevcut <b>değil</b>',
|
||||
'not running' => 'çalışmıyor',
|
||||
@@ -1664,10 +1716,19 @@
|
||||
'ovpn' => 'OpenVPN',
|
||||
'ovpn con stat' => 'OpenVPN Bağlantı İstatistiği',
|
||||
'ovpn config' => 'OVPN-Yapılandırması',
|
||||
'ovpn crypt options' => 'Şifreleme seçenekleri',
|
||||
'ovpn device' => 'OpenVPN aygıtı:',
|
||||
'ovpn dh' => 'Anahtar değişim uzunluğu parametreleri',
|
||||
'ovpn dh new key' => 'Yeni anahtar değişimi parametreleri oluşturun',
|
||||
'ovpn dh parameters' => 'Anahtar değişimi parametre seçenekleri',
|
||||
'ovpn dh upload' => 'Yeni anahtar değişimi parametrelerini yükle',
|
||||
'ovpn dl' => 'OVPN-Yapılandırması İndir',
|
||||
'ovpn engines' => 'kripto motoru',
|
||||
'ovpn errmsg green already pushed' => 'Yeşil ağ için her zaman bir yol ayarla',
|
||||
'ovpn errmsg invalid ip or mask' => 'Geçersiz ağ adresi veya alt ağ maskesi',
|
||||
'ovpn generating the root and host certificates' => 'Root ve ana bilgisayar belge üretimi uzun zaman alabilir.',
|
||||
'ovpn ha' => 'Hash algoritması',
|
||||
'ovpn hmac' => 'HMAC seçenekleri',
|
||||
'ovpn log' => 'OVPN-Günlük',
|
||||
'ovpn mgmt in root range' => 'Bağlantı noktası numarası 1024 ya da daha yüksek bir numara olmalıdır.',
|
||||
'ovpn mtu-disc' => 'MTU algılama',
|
||||
@@ -1682,6 +1743,7 @@
|
||||
'ovpn on orange' => 'TURUNCU üzerindeki OpenVPN',
|
||||
'ovpn on red' => 'KIRMIZI üzerindeki OpenVPN',
|
||||
'ovpn port in root range' => '1024 ya da daha yüksek bir bağlantı noktası numarası gereklidir..',
|
||||
'ovpn reneg sec' => 'Oturum anahtarının kullanım süresi:',
|
||||
'ovpn routes push' => 'Yollar (her satırda bir tane) örneğin 192.168.10.0/255.255.255.0 192.168.20.0/24',
|
||||
'ovpn routes push options' => 'Yol baskı seçenekleri',
|
||||
'ovpn server status' => 'Güncel OpenVPN sunucu durumu:',
|
||||
@@ -1689,7 +1751,6 @@
|
||||
'ovpn subnet is invalid' => 'Geçersiz OpenVPN alt ağı.',
|
||||
'ovpn subnet overlap' => 'OpenVPN alt ağı ile örtüşenler: ',
|
||||
'ovpn_fastio' => 'Hızlı-IO',
|
||||
'ovpn_fragment' => 'Parça boyutu',
|
||||
'ovpn_mssfix' => 'MSSFIX Boyutu',
|
||||
'ovpn_mtudisc' => 'MTU-Keşfi',
|
||||
'ovpn_processprio' => 'İşlem Önceliği',
|
||||
@@ -1882,6 +1943,8 @@
|
||||
'running' => 'ÇALIŞIYOR',
|
||||
'safe removal of umounted device' => 'Bağlantısı kesilen aygıtı güvenli bir şekilde kaldırabilirsiniz',
|
||||
'samba' => 'Samba',
|
||||
'samba join a domain' => 'Bir etki alanına katılın',
|
||||
'samba join domain' => 'Etki alanına üyelik',
|
||||
'samba status' => 'Samba durumu',
|
||||
'saturday' => 'Cumartesi',
|
||||
'save' => 'Kaydet',
|
||||
@@ -1933,11 +1996,13 @@
|
||||
'show ca certificate' => 'CA sertifikalarını göster',
|
||||
'show certificate' => 'Sertifika göster',
|
||||
'show crl' => 'Sertifika İptal Listesini Göster',
|
||||
'show dh' => 'Anahtar değişimi parametrelerini göster',
|
||||
'show host certificate' => 'Ana bilgisayar sertifikalarını göster',
|
||||
'show last x lines' => 'Son x satırlarını göster',
|
||||
'show lines' => 'Satırları göster',
|
||||
'show root certificate' => 'Root sertifikasını göster',
|
||||
'show share options' => 'Paylaşım seçeneklerini göster',
|
||||
'show tls-auth key' => 'Tls kimlik doğrulama anahtarını göster',
|
||||
'shuffle' => 'Karma',
|
||||
'shutdown' => 'Kapat',
|
||||
'shutdown ask' => 'Kapat?',
|
||||
@@ -1963,6 +2028,7 @@
|
||||
'snort hits' => 'Saldırı kuralları için toplam aktif sayı',
|
||||
'snort working' => 'Snort çalışıyor ... Tüm işlemler başarıyla tamamlanana kadar bekleyin.',
|
||||
'socket options' => 'Soket seçenekleri',
|
||||
'software version' => 'Yazılım sürümü',
|
||||
'sort ascending' => 'Artan sıralama',
|
||||
'sort descending' => 'Azalan sıralama',
|
||||
'sound' => 'Ses',
|
||||
@@ -1970,6 +2036,7 @@
|
||||
'source ip' => 'Kaynak IP',
|
||||
'source ip and port' => 'Kaynak IP: Bağlantı noktası numarası',
|
||||
'source ip bad' => 'Geçersiz bir IP adresi ya da ağ adresi.',
|
||||
'source ip country' => 'Kaynak Ip ülke',
|
||||
'source ip in use' => 'Kullanılan kaynak IP:',
|
||||
'source ip or net' => 'Kaynak IP veya Ağ',
|
||||
'source net' => 'Kaynak Ağ',
|
||||
@@ -2047,9 +2114,11 @@
|
||||
'system log viewer' => 'Sistem Günlük Görüntüleyicisi',
|
||||
'system logs' => 'Sistem Günlükleri',
|
||||
'system status information' => 'Sistem Durum Bilgisi',
|
||||
'ta key' => 'Tls kimlik doğrulama anahtarı',
|
||||
'telephone not set' => 'Telefon ayarlanmamış.',
|
||||
'template' => 'Ön Ayar',
|
||||
'template warning' => 'QoS kurmak için iki seçeneğiniz vardır. İlk olarak kaydet düğmesine basıp kendi sınıf ve kurallarınızı oluşturabilirsiniz. İkinci olarak ise ön ayar düğmesine basıp sınıf ve kurallar için bir şablonun kurulmasını sağlayın. ',
|
||||
'teovpn_fragment' => 'Fragment boyutu',
|
||||
'test' => 'test',
|
||||
'test email could not be sent' => 'Test e-posta gönderilemedi',
|
||||
'test email was sent' => 'Test e-posta başarıyla gönderildi.',
|
||||
@@ -2271,6 +2340,7 @@
|
||||
'upload a certificate' => 'Sertifika yükle:',
|
||||
'upload a certificate request' => 'Sertifika isteği yükle:',
|
||||
'upload ca certificate' => 'CA Sertifikası Yükle',
|
||||
'upload dh key' => 'Anahtar değişimi parametrelerini yükle',
|
||||
'upload fcdsl.o' => 'KALDIRILACAK',
|
||||
'upload file' => 'Dosya yükle',
|
||||
'upload new ruleset' => 'Yeni kurallar yükle',
|
||||
@@ -2483,10 +2553,6 @@
|
||||
'urlfilter weekly' => 'Haftalık',
|
||||
'urlfilter whitelist always allowed' => 'Yasaklı istemciler için özel beyaz liste izini',
|
||||
'urlfilter wrong filetype' => 'Uzantısı .tar.gz olan dosya yok',
|
||||
'usb modem on acm0' => 'ACM0 üzerindeki USB Modem',
|
||||
'usb modem on acm1' => 'ACM1 üzerindeki USB Modem',
|
||||
'usb modem on acm2' => 'ACM2 üzerindeki USB Modem',
|
||||
'usb modem on acm3' => 'ACM3 üzerindeki USB Modem',
|
||||
'use' => 'Kullan',
|
||||
'use a pre-shared key' => 'Ön paylaşımlı anahtar kullan:',
|
||||
'use dov' => 'Ses üzerinden veri kullan (DOV):',
|
||||
@@ -2507,6 +2573,7 @@
|
||||
'valid root certificate already exists' => 'Geçerli bir yönetici sertifikası zaten mevcut.',
|
||||
'valid till' => 'Geçerlilik süresi',
|
||||
'vci number' => 'VCI numarası:',
|
||||
'vendor' => 'Sağlayıcı',
|
||||
'view log' => 'günlükleri göster',
|
||||
'virtual address' => 'Sanal Adres',
|
||||
'virtual private networking' => 'Sanal ÖZel Ağ',
|
||||
|
||||
38
lfs/bash
38
lfs/bash
@@ -24,7 +24,7 @@
|
||||
|
||||
include Config
|
||||
|
||||
VER = 3.2
|
||||
VER = 4.3
|
||||
|
||||
THISAPP = bash-$(VER)
|
||||
DL_FILE = $(THISAPP).tar.gz
|
||||
@@ -35,20 +35,15 @@ DIR_APP = $(DIR_SRC)/$(THISAPP)
|
||||
#
|
||||
ifeq "$(ROOT)" ""
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)
|
||||
EXTRA_CONFIG = --prefix=/usr --bindir=/bin \
|
||||
--without-bash-malloc --with-installed-readline \
|
||||
--disable-nls
|
||||
EXTRA_MAKE =
|
||||
EXTRA_INSTALL =
|
||||
CONFIGURE_OPTIONS = --prefix=/usr --bindir=/bin \
|
||||
--with-installed-readline
|
||||
else
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)-tools
|
||||
EXTRA_CONFIG = --prefix=/tools --without-bash-malloc \
|
||||
--disable-nls
|
||||
EXTRA_MAKE =
|
||||
EXTRA_INSTALL =
|
||||
CONFIGURE_OPTIONS = --prefix=/tools
|
||||
endif
|
||||
|
||||
EXTRA_CONFIG += ac_cv_func_working_mktime=yes
|
||||
CONFIGURE_OPTIONS += \
|
||||
--without-bash-malloc
|
||||
|
||||
###############################################################################
|
||||
# Top-level Rules
|
||||
@@ -58,7 +53,7 @@ objects = $(DL_FILE)
|
||||
|
||||
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
||||
|
||||
$(DL_FILE)_MD5 = 00bfa16d58e034e3c2aa27f390390d30
|
||||
$(DL_FILE)_MD5 = 81348932d5da294953e15d4814c74dd1
|
||||
|
||||
install : $(TARGET)
|
||||
|
||||
@@ -87,24 +82,31 @@ $(subst %,%_MD5,$(objects)) :
|
||||
|
||||
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
||||
@$(PREBUILD)
|
||||
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
|
||||
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zaxf $(DIR_DL)/$(DL_FILE)
|
||||
|
||||
for i in $$(seq 1 51); do \
|
||||
cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/bash/bash32-$$(printf "%03d" "$${i}") || exit 1; \
|
||||
sed -e "s/filename, RTLD_LAZY/filename, RTLD_NOW/" \
|
||||
-i $(DIR_APP)/builtins/enable.def
|
||||
|
||||
for i in $$(seq 1 30); do \
|
||||
cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/bash/bash43-$$(printf "%03d" "$${i}") || exit 1; \
|
||||
done
|
||||
|
||||
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-4.0-paths-1.patch
|
||||
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-4.0-profile-1.patch
|
||||
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-3.2-ssh_source_bash.patch
|
||||
cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
|
||||
cd $(DIR_APP) && make $(EXTRA_MAKE)
|
||||
cd $(DIR_APP) && make $(EXTRA_INSTALL) install
|
||||
|
||||
cd $(DIR_APP) && ./configure $(CONFIGURE_OPTIONS)
|
||||
cd $(DIR_APP) && make $(MAKETUNING)
|
||||
cd $(DIR_APP) && make install
|
||||
|
||||
ln -sf bash /bin/sh
|
||||
|
||||
ifneq "$(ROOT)" ""
|
||||
-mkdir -p $(ROOT)/bin
|
||||
-mkdir -p $(ROOT)/usr/bin
|
||||
ln -sf bash /tools/bin/sh
|
||||
-ln -sf /tools/bin/bash $(ROOT)/bin/sh
|
||||
endif
|
||||
|
||||
@rm -rf $(DIR_APP)
|
||||
@$(POSTBUILD)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
include Config
|
||||
|
||||
VER = 2.71
|
||||
VER = 2.72
|
||||
|
||||
THISAPP = dnsmasq-$(VER)
|
||||
DL_FILE = $(THISAPP).tar.xz
|
||||
@@ -42,7 +42,7 @@ objects = $(DL_FILE)
|
||||
|
||||
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
||||
|
||||
$(DL_FILE)_MD5 = 9e2e4d59c75e71ee3ca817ff0f9be69e
|
||||
$(DL_FILE)_MD5 = 0256e0a71e27c8d8a5c89a0d18f3cfe2
|
||||
|
||||
install : $(TARGET)
|
||||
|
||||
@@ -72,9 +72,7 @@ $(subst %,%_MD5,$(objects)) :
|
||||
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
||||
@$(PREBUILD)
|
||||
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
|
||||
cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq-2.71-use-nettle-with-minigmp.patch
|
||||
cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq-2.71-support-nettle-3.0.patch
|
||||
cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq-2.70-Add-support-to-read-ISC-DHCP-lease-file.patch
|
||||
cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dnsmasq-2.72rc2-Add-support-to-read-ISC-DHCP-lease-file.patch
|
||||
cd $(DIR_APP) && sed -i src/config.h \
|
||||
-e 's|/\* #define HAVE_IDN \*/|#define HAVE_IDN|g' \
|
||||
-e 's|/\* #define HAVE_DNSSEC \*/|#define HAVE_DNSSEC|g' \
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
include Config
|
||||
|
||||
VER = 1.0.1i
|
||||
VER = 1.0.1j
|
||||
|
||||
THISAPP = openssl-$(VER)
|
||||
DL_FILE = $(THISAPP).tar.gz
|
||||
@@ -51,7 +51,7 @@ objects = $(DL_FILE)
|
||||
|
||||
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
||||
|
||||
$(DL_FILE)_MD5 = c8dc151a671b9b92ff3e4c118b174972
|
||||
$(DL_FILE)_MD5 = f7175c9cd3c39bb1907ac8bba9df8ed3
|
||||
|
||||
install : $(TARGET)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
###############################################################################
|
||||
# #
|
||||
# IPFire.org - A linux based firewall #
|
||||
# Copyright (C) 2007-2013 IPFire Team <info@ipfire.org> #
|
||||
# Copyright (C) 2007-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 #
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
include Config
|
||||
|
||||
VER = 0.9.8y
|
||||
VER = 0.9.8zc
|
||||
|
||||
THISAPP = openssl-$(VER)
|
||||
DL_FILE = $(THISAPP).tar.gz
|
||||
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
|
||||
|
||||
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
||||
|
||||
$(DL_FILE)_MD5 = 47c7fb37f78c970f1d30aa2f9e9e26d8
|
||||
$(DL_FILE)_MD5 = 1b239eea3a60d67863e7b66700e47a16
|
||||
|
||||
install : $(TARGET)
|
||||
|
||||
|
||||
12
lfs/parted
12
lfs/parted
@@ -1,7 +1,7 @@
|
||||
###############################################################################
|
||||
# #
|
||||
# IPFire.org - A linux based firewall #
|
||||
# Copyright (C) 2007-2011 IPFire Team <info@ipfire.org> #
|
||||
# Copyright (C) 2007-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 #
|
||||
@@ -24,16 +24,16 @@
|
||||
|
||||
include Config
|
||||
|
||||
VER = 2.3
|
||||
VER = 3.1
|
||||
|
||||
THISAPP = parted-$(VER)
|
||||
DL_FILE = $(THISAPP).tar.gz
|
||||
DL_FILE = $(THISAPP).tar.xz
|
||||
DL_FROM = $(URL_IPFIRE)
|
||||
DIR_APP = $(DIR_SRC)/$(THISAPP)
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)
|
||||
|
||||
PROG = parted
|
||||
PAK_VER = 1
|
||||
PAK_VER = 2
|
||||
|
||||
DEPS = ""
|
||||
|
||||
@@ -45,7 +45,7 @@ objects = $(DL_FILE)
|
||||
|
||||
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
||||
|
||||
$(DL_FILE)_MD5 = 30ceb6df7e8681891e865e2fe5a7903d
|
||||
$(DL_FILE)_MD5 = 5d89d64d94bcfefa9ce8f59f4b81bdcb
|
||||
|
||||
install : $(TARGET)
|
||||
|
||||
@@ -77,7 +77,7 @@ $(subst %,%_MD5,$(objects)) :
|
||||
|
||||
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
||||
@$(PREBUILD)
|
||||
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
|
||||
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
|
||||
cd $(DIR_APP) && ./configure --prefix=/usr --disable-device-mapper
|
||||
cd $(DIR_APP) && make $(MAKETUNING)
|
||||
cd $(DIR_APP) && make install
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
include Config
|
||||
|
||||
VER = 6.2
|
||||
VER = 6.3
|
||||
|
||||
THISAPP = readline-$(VER)
|
||||
DL_FILE = $(THISAPP).tar.gz
|
||||
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
|
||||
|
||||
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
||||
|
||||
$(DL_FILE)_MD5 = 67948acb2ca081f23359d0256e9a271c
|
||||
$(DL_FILE)_MD5 = 33c8fb279e981274f485fd91da77e94a
|
||||
|
||||
install : $(TARGET)
|
||||
|
||||
@@ -71,8 +71,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
||||
@$(PREBUILD)
|
||||
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
|
||||
|
||||
for i in $$(seq 1 4); do \
|
||||
cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline62-$$(printf "%03d" "$${i}") || exit 1; \
|
||||
for i in $$(seq 1 6); do \
|
||||
cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline63-$$(printf "%03d" "$${i}") || exit 1; \
|
||||
done
|
||||
|
||||
cd $(DIR_APP) && ./configure --prefix=/usr --disable-static
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
include Config
|
||||
|
||||
VER = 3.1.0
|
||||
VER = 3.1.1
|
||||
|
||||
THISAPP = rsync-$(VER)
|
||||
DL_FILE = $(THISAPP).tar.gz
|
||||
@@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE)
|
||||
DIR_APP = $(DIR_SRC)/$(THISAPP)
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)
|
||||
PROG = rsync
|
||||
PAK_VER = 8
|
||||
PAK_VER = 9
|
||||
|
||||
DEPS = ""
|
||||
|
||||
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
|
||||
|
||||
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
||||
|
||||
$(DL_FILE)_MD5 = 3be148772a33224771a8d4d2a028b132
|
||||
$(DL_FILE)_MD5 = 43bd6676f0b404326eee2d63be3cdcfe
|
||||
|
||||
install : $(TARGET)
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE)
|
||||
DIR_APP = $(DIR_SRC)/$(THISAPP)
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)
|
||||
PROG = samba
|
||||
PAK_VER = 58
|
||||
PAK_VER = 59
|
||||
|
||||
DEPS = "cups krb5"
|
||||
|
||||
|
||||
4
lfs/sane
4
lfs/sane
@@ -33,9 +33,9 @@ DIR_APP = $(DIR_SRC)/sane-backends-$(VER)
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)
|
||||
|
||||
PROG = sane
|
||||
PAK_VER = 3
|
||||
PAK_VER = 4
|
||||
|
||||
DEPS = "libtiff"
|
||||
DEPS = "cups libtiff"
|
||||
|
||||
###############################################################################
|
||||
# Top-level Rules
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
include Config
|
||||
|
||||
VER = 3.4.7
|
||||
VER = 3.4.8
|
||||
|
||||
THISAPP = squid-$(VER)
|
||||
DL_FILE = $(THISAPP).tar.xz
|
||||
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
|
||||
|
||||
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
|
||||
|
||||
$(DL_FILE)_MD5 = 74677634121649ccb87a5655fcd4298d
|
||||
$(DL_FILE)_MD5 = b0c4335447248810169f58ea4d8b204a
|
||||
|
||||
install : $(TARGET)
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ THISAPP = squid-accounting-$(VER)
|
||||
DIR_APP = $(DIR_SRC)/$(THISAPP)
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)
|
||||
PROG = squid-accounting
|
||||
PAK_VER = 2
|
||||
PAK_VER = 3
|
||||
|
||||
DEPS = "perl-DBI perl-DBD-SQLite perl-File-ReadBackwards perl-PDF-API2 sendEmail"
|
||||
|
||||
|
||||
4
make.sh
4
make.sh
@@ -25,8 +25,8 @@
|
||||
NAME="IPFire" # Software name
|
||||
SNAME="ipfire" # Short name
|
||||
VERSION="2.15" # Version number
|
||||
CORE="82" # Core Level (Filename)
|
||||
PAKFIRE_CORE="82" # Core Level (PAKFIRE)
|
||||
CORE="85" # Core Level (Filename)
|
||||
PAKFIRE_CORE="84" # 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
|
||||
|
||||
@@ -402,21 +402,11 @@ case "$1" in
|
||||
boot_mesg "Setting up firewall"
|
||||
iptables_init
|
||||
evaluate_retval
|
||||
|
||||
# run local firewall configuration, if present
|
||||
if [ -x /etc/sysconfig/firewall.local ]; then
|
||||
/etc/sysconfig/firewall.local start
|
||||
fi
|
||||
;;
|
||||
reload|up)
|
||||
boot_mesg "Reloading firewall"
|
||||
iptables_red_up
|
||||
evaluate_retval
|
||||
|
||||
# run local firewall configuration, if present
|
||||
if [ -x /etc/sysconfig/firewall.local ]; then
|
||||
/etc/sysconfig/firewall.local reload
|
||||
fi
|
||||
;;
|
||||
down)
|
||||
boot_mesg "Disabling firewall access to RED"
|
||||
@@ -424,10 +414,6 @@ case "$1" in
|
||||
evaluate_retval
|
||||
;;
|
||||
restart)
|
||||
# run local firewall configuration, if present
|
||||
if [ -x /etc/sysconfig/firewall.local ]; then
|
||||
/etc/sysconfig/firewall.local stop
|
||||
fi
|
||||
$0 start
|
||||
;;
|
||||
*)
|
||||
|
||||
@@ -18,7 +18,6 @@ eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
|
||||
|
||||
init_networking() {
|
||||
/etc/rc.d/init.d/dnsmasq start
|
||||
/etc/rc.d/init.d/static-routes start
|
||||
}
|
||||
|
||||
DO="${1}"
|
||||
@@ -26,7 +25,7 @@ shift
|
||||
|
||||
if [ -n "${1}" ]; then
|
||||
ALL=0
|
||||
for i in green red blue orange; do
|
||||
for i in green red blue orange; do
|
||||
eval "${i}=0"
|
||||
done
|
||||
else
|
||||
@@ -68,7 +67,9 @@ case "${DO}" in
|
||||
rm -f /var/ipfire/red/{active,device,dial-on-demand,dns1,dns2,local-ipaddress,remote-ipaddress,resolv.conf}
|
||||
[ "$AUTOCONNECT" == "off" ] || /etc/rc.d/init.d/networking/red start
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
/etc/rc.d/init.d/static-routes start
|
||||
;;
|
||||
|
||||
stop)
|
||||
|
||||
@@ -31,5 +31,8 @@ if [ ! -f /var/ipfire/accounting/acct.db ]; then
|
||||
chmod 644 /var/ipfire/accounting/acct.db
|
||||
chown nobody.nobody /var/ipfire/accounting/acct.db
|
||||
fi
|
||||
#Set right permissions of directory /srv/web/ipfire/html/accounting
|
||||
chown -R nobody.nobody /srv/web/ipfire/html/accounting
|
||||
chmod 755 -R /srv/web/ipfire/html/accounting
|
||||
rm -f /var/ipfire/accounting/dbinstall.pl
|
||||
/usr/local/bin/update-lang-cache
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
diff -up bash-3.2/config-top.h.ssh_source_bash bash-3.2/config-top.h
|
||||
--- bash-3.2/config-top.h.ssh_source_bash 2008-10-23 15:08:04.000000000 +0200
|
||||
+++ bash-3.2/config-top.h 2008-10-23 15:08:33.000000000 +0200
|
||||
@@ -86,4 +86,4 @@
|
||||
|
||||
/* Define this if you want bash to try to check whether it's being run by
|
||||
sshd and source the .bashrc if so (like the rshd behavior). */
|
||||
diff -up bash-4.0/config-top.h.ssh_source_bash bash-4.0/config-top.h
|
||||
--- bash-4.0/config-top.h.ssh_source_bash 2009-01-21 15:20:06.000000000 +0100
|
||||
+++ bash-4.0/config-top.h 2009-01-21 15:25:46.000000000 +0100
|
||||
@@ -90,7 +90,7 @@
|
||||
sshd and source the .bashrc if so (like the rshd behavior). This checks
|
||||
for the presence of SSH_CLIENT or SSH2_CLIENT in the initial environment,
|
||||
which can be fooled under certain not-uncommon circumstances. */
|
||||
-/* #define SSH_SOURCE_BASHRC */
|
||||
+#define SSH_SOURCE_BASHRC
|
||||
|
||||
/* Define if you want the case-capitalizing operators (~[~]) and the
|
||||
`capcase' variable attribute (declare -c). */
|
||||
|
||||
@@ -1,25 +1,6 @@
|
||||
--- bash-3.0/config.h.in.paths 2004-07-21 21:08:31.000000000 +0100
|
||||
+++ bash-3.0/config.h.in 2004-07-28 09:16:27.257884999 +0100
|
||||
@@ -197,7 +197,7 @@
|
||||
|
||||
/* System paths */
|
||||
|
||||
-#define DEFAULT_MAIL_DIRECTORY "/usr/spool/mail"
|
||||
+#define DEFAULT_MAIL_DIRECTORY "/var/spool/mail"
|
||||
|
||||
/* Characteristics of the system's header files and libraries that affect
|
||||
the compilation environment. */
|
||||
--- bash-3.0/config-top.h.paths 2003-08-05 15:36:12.000000000 +0100
|
||||
+++ bash-3.0/config-top.h 2004-07-28 09:36:27.117205637 +0100
|
||||
@@ -52,14 +52,14 @@
|
||||
/* The default value of the PATH variable. */
|
||||
#ifndef DEFAULT_PATH_VALUE
|
||||
#define DEFAULT_PATH_VALUE \
|
||||
- "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:."
|
||||
+ "/usr/local/bin:/bin:/usr/bin"
|
||||
#endif
|
||||
|
||||
/* The value for PATH when invoking `command -p'. This is only used when
|
||||
@@ -66,7 +66,7 @@
|
||||
the Posix.2 confstr () function, or CS_PATH define are not present. */
|
||||
#ifndef STANDARD_UTILS_PATH
|
||||
#define STANDARD_UTILS_PATH \
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-001
|
||||
|
||||
Bug-Reported-by: Greg Schafer <gschafer@zip.com.au>
|
||||
Bug-Reference-ID: <20061012084940.GA15768@tigers.local>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When using historical ``-style command substitution, bash incorrectly attempts
|
||||
to interpret shell comments while scanning for the closing backquote.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2/parse.y Tue Sep 19 16:37:21 2006
|
||||
--- parse.y Thu Oct 12 10:30:57 2006
|
||||
***************
|
||||
*** 2736,2740 ****
|
||||
count = 1;
|
||||
pass_next_character = backq_backslash = was_dollar = in_comment = 0;
|
||||
! check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
|
||||
|
||||
/* RFLAGS is the set of flags we want to pass to recursive calls. */
|
||||
--- 2736,2740 ----
|
||||
count = 1;
|
||||
pass_next_character = backq_backslash = was_dollar = in_comment = 0;
|
||||
! check_comment = (flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
|
||||
|
||||
/* RFLAGS is the set of flags we want to pass to recursive calls. */
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 0
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 1
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,48 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-002
|
||||
|
||||
Bug-Reported-by: Jim Gifford <jim@jg555.com>
|
||||
Bug-Reference-ID: <12j2pc3aq35mb04@corp.supernews.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00082.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
An incorrect encoding specification in the Content-Type header causes msgfmt
|
||||
to fail, which causes `make install' to fail.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2/po/ru.po Tue Jan 10 17:51:03 2006
|
||||
--- po/ru.po Mon Oct 16 15:13:23 2006
|
||||
***************
|
||||
*** 13,17 ****
|
||||
"Language-Team: Russian <ru@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
! "Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
--- 13,17 ----
|
||||
"Language-Team: Russian <ru@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
! "Content-Type: text/plain; charset=KOI8-R\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 1
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 2
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,147 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-003
|
||||
|
||||
Bug-Reported-by: John Gatewood Ham <zappaman@buraphalinux.org>
|
||||
Bug-Reference-ID: <Pine.LNX.4.64.0610121334140.15558@www.buraphalinux.org>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00045.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When using the conditional command's `=~' operator to match regular
|
||||
expressions, the parser did not skip over shell metacharacters in the
|
||||
regular expression, leading to syntax errors.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/parse.y Tue Oct 17 11:45:20 2006
|
||||
--- parse.y Sat Oct 14 14:56:16 2006
|
||||
***************
|
||||
*** 1029,1034 ****
|
||||
--- 1029,1035 ----
|
||||
#define PST_CMDTOKEN 0x1000 /* command token OK - unused */
|
||||
#define PST_COMPASSIGN 0x2000 /* parsing x=(...) compound assignment */
|
||||
#define PST_ASSIGNOK 0x4000 /* assignment statement ok in this context */
|
||||
+ #define PST_REGEXP 0x8000 /* parsing an ERE/BRE as a single word */
|
||||
|
||||
/* Initial size to allocate for tokens, and the
|
||||
amount to grow them by. */
|
||||
***************
|
||||
*** 2591,2596 ****
|
||||
--- 2592,2600 ----
|
||||
return (character);
|
||||
}
|
||||
|
||||
+ if (parser_state & PST_REGEXP)
|
||||
+ goto tokword;
|
||||
+
|
||||
/* Shell meta-characters. */
|
||||
if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0))
|
||||
{
|
||||
***************
|
||||
*** 2698,2703 ****
|
||||
--- 2702,2708 ----
|
||||
if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND))
|
||||
return (character);
|
||||
|
||||
+ tokword:
|
||||
/* Okay, if we got this far, we have to read a word. Read one,
|
||||
and then check it against the known ones. */
|
||||
result = read_token_word (character);
|
||||
***************
|
||||
*** 3202,3209 ****
|
||||
if (tok == WORD && test_binop (yylval.word->word))
|
||||
op = yylval.word;
|
||||
#if defined (COND_REGEXP)
|
||||
! else if (tok == WORD && STREQ (yylval.word->word,"=~"))
|
||||
! op = yylval.word;
|
||||
#endif
|
||||
else if (tok == '<' || tok == '>')
|
||||
op = make_word_from_token (tok); /* ( */
|
||||
--- 3207,3217 ----
|
||||
if (tok == WORD && test_binop (yylval.word->word))
|
||||
op = yylval.word;
|
||||
#if defined (COND_REGEXP)
|
||||
! else if (tok == WORD && STREQ (yylval.word->word, "=~"))
|
||||
! {
|
||||
! op = yylval.word;
|
||||
! parser_state |= PST_REGEXP;
|
||||
! }
|
||||
#endif
|
||||
else if (tok == '<' || tok == '>')
|
||||
op = make_word_from_token (tok); /* ( */
|
||||
***************
|
||||
*** 3234,3239 ****
|
||||
--- 3242,3248 ----
|
||||
|
||||
/* rhs */
|
||||
tok = read_token (READ);
|
||||
+ parser_state &= ~PST_REGEXP;
|
||||
if (tok == WORD)
|
||||
{
|
||||
tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL);
|
||||
***************
|
||||
*** 3419,3427 ****
|
||||
goto next_character;
|
||||
}
|
||||
|
||||
#ifdef EXTENDED_GLOB
|
||||
/* Parse a ksh-style extended pattern matching specification. */
|
||||
! if (extended_glob && PATTERN_CHAR (character))
|
||||
{
|
||||
peek_char = shell_getc (1);
|
||||
if MBTEST(peek_char == '(') /* ) */
|
||||
--- 3428,3461 ----
|
||||
goto next_character;
|
||||
}
|
||||
|
||||
+ #ifdef COND_REGEXP
|
||||
+ /* When parsing a regexp as a single word inside a conditional command,
|
||||
+ we need to special-case characters special to both the shell and
|
||||
+ regular expressions. Right now, that is only '(' and '|'. */ /*)*/
|
||||
+ if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|')) /*)*/
|
||||
+ {
|
||||
+ if (character == '|')
|
||||
+ goto got_character;
|
||||
+
|
||||
+ push_delimiter (dstack, character);
|
||||
+ ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0);
|
||||
+ pop_delimiter (dstack);
|
||||
+ if (ttok == &matched_pair_error)
|
||||
+ return -1; /* Bail immediately. */
|
||||
+ RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
|
||||
+ token_buffer_size, TOKEN_DEFAULT_GROW_SIZE);
|
||||
+ token[token_index++] = character;
|
||||
+ strcpy (token + token_index, ttok);
|
||||
+ token_index += ttoklen;
|
||||
+ FREE (ttok);
|
||||
+ dollar_present = all_digit_token = 0;
|
||||
+ goto next_character;
|
||||
+ }
|
||||
+ #endif /* COND_REGEXP */
|
||||
+
|
||||
#ifdef EXTENDED_GLOB
|
||||
/* Parse a ksh-style extended pattern matching specification. */
|
||||
! if MBTEST(extended_glob && PATTERN_CHAR (character))
|
||||
{
|
||||
peek_char = shell_getc (1);
|
||||
if MBTEST(peek_char == '(') /* ) */
|
||||
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 2
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 3
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
|
||||
@@ -1,96 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-004
|
||||
|
||||
Bug-Reported-by: Stuart Shelton <srcshelton@gmail.com>
|
||||
Bug-Reference-ID: <619141e40610261203y6cda5aa6i23cb24c7aeba996e@mail.gmail.com>
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
A bug in the parameter pattern substitution implementation treated a pattern
|
||||
whose first character was `/' (after expansion) as specifying global
|
||||
replacement.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2/subst.c Tue Sep 19 08:35:09 2006
|
||||
--- subst.c Thu Oct 26 09:17:50 2006
|
||||
***************
|
||||
*** 5707,5712 ****
|
||||
--- 5707,5717 ----
|
||||
vtype &= ~VT_STARSUB;
|
||||
|
||||
mflags = 0;
|
||||
+ if (patsub && *patsub == '/')
|
||||
+ {
|
||||
+ mflags |= MATCH_GLOBREP;
|
||||
+ patsub++;
|
||||
+ }
|
||||
|
||||
/* Malloc this because expand_string_if_necessary or one of the expansion
|
||||
functions in its call chain may free it on a substitution error. */
|
||||
***************
|
||||
*** 5741,5753 ****
|
||||
}
|
||||
|
||||
/* ksh93 doesn't allow the match specifier to be a part of the expanded
|
||||
! pattern. This is an extension. */
|
||||
p = pat;
|
||||
! if (pat && pat[0] == '/')
|
||||
! {
|
||||
! mflags |= MATCH_GLOBREP|MATCH_ANY;
|
||||
! p++;
|
||||
! }
|
||||
else if (pat && pat[0] == '#')
|
||||
{
|
||||
mflags |= MATCH_BEG;
|
||||
--- 5746,5757 ----
|
||||
}
|
||||
|
||||
/* ksh93 doesn't allow the match specifier to be a part of the expanded
|
||||
! pattern. This is an extension. Make sure we don't anchor the pattern
|
||||
! at the beginning or end of the string if we're doing global replacement,
|
||||
! though. */
|
||||
p = pat;
|
||||
! if (mflags & MATCH_GLOBREP)
|
||||
! mflags |= MATCH_ANY;
|
||||
else if (pat && pat[0] == '#')
|
||||
{
|
||||
mflags |= MATCH_BEG;
|
||||
*** ../bash-3.2/tests/new-exp.right Thu Aug 10 12:00:00 2006
|
||||
--- tests/new-exp.right Sun Oct 29 16:03:36 2006
|
||||
***************
|
||||
*** 430,436 ****
|
||||
Case06---1---A B C::---
|
||||
Case07---3---A:B:C---
|
||||
Case08---3---A:B:C---
|
||||
! ./new-exp.tests: line 506: /${$(($#-1))}: bad substitution
|
||||
argv[1] = <a>
|
||||
argv[2] = <b>
|
||||
argv[3] = <c>
|
||||
--- 430,436 ----
|
||||
Case06---1---A B C::---
|
||||
Case07---3---A:B:C---
|
||||
Case08---3---A:B:C---
|
||||
! ./new-exp.tests: line 506: ${$(($#-1))}: bad substitution
|
||||
argv[1] = <a>
|
||||
argv[2] = <b>
|
||||
argv[3] = <c>
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 3
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 4
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,223 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-005
|
||||
|
||||
Bug-Reported-by: Stuart Shelton <stuart@openobjects.com>
|
||||
Bug-Reference-ID: <453F7CC8.6030907@openobjects.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00127.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
A missing extern declaration for `asprintf' caused `double' arguments to be
|
||||
passed as `0', leading to incorrect results. Additionally, a bug in the
|
||||
replacement asprintf/snprintf function caused an infinite loop when passed
|
||||
0 arguments to the floating point conversions under some circumstances.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2/builtins/printf.def Mon Sep 18 08:48:42 2006
|
||||
--- builtins/printf.def Tue Oct 31 08:19:44 2006
|
||||
***************
|
||||
*** 49,54 ****
|
||||
--- 49,60 ----
|
||||
# define INT_MIN (-2147483647-1)
|
||||
#endif
|
||||
|
||||
+ #if defined (PREFER_STDARG)
|
||||
+ # include <stdarg.h>
|
||||
+ #else
|
||||
+ # include <varargs.h>
|
||||
+ #endif
|
||||
+
|
||||
#include <stdio.h>
|
||||
#include <chartypes.h>
|
||||
|
||||
***************
|
||||
*** 151,156 ****
|
||||
--- 157,166 ----
|
||||
#define SKIP1 "#'-+ 0"
|
||||
#define LENMODS "hjlLtz"
|
||||
|
||||
+ #ifndef HAVE_ASPRINTF
|
||||
+ extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3)));
|
||||
+ #endif
|
||||
+
|
||||
static void printf_erange __P((char *));
|
||||
static int printstr __P((char *, char *, int, int, int));
|
||||
static int tescape __P((char *, char *, int *));
|
||||
|
||||
|
||||
*** ../bash-3.2/lib/sh/snprintf.c Thu Apr 6 09:48:40 2006
|
||||
--- lib/sh/snprintf.c Sat Oct 28 00:00:13 2006
|
||||
***************
|
||||
*** 471,476 ****
|
||||
--- 476,483 ----
|
||||
10^x ~= r
|
||||
* log_10(200) = 2;
|
||||
* log_10(250) = 2;
|
||||
+ *
|
||||
+ * NOTE: do not call this with r == 0 -- an infinite loop results.
|
||||
*/
|
||||
static int
|
||||
log_10(r)
|
||||
***************
|
||||
*** 576,583 ****
|
||||
{
|
||||
integral_part[0] = '0';
|
||||
integral_part[1] = '\0';
|
||||
! fraction_part[0] = '0';
|
||||
! fraction_part[1] = '\0';
|
||||
if (fract)
|
||||
*fract = fraction_part;
|
||||
return integral_part;
|
||||
--- 583,593 ----
|
||||
{
|
||||
integral_part[0] = '0';
|
||||
integral_part[1] = '\0';
|
||||
! /* The fractional part has to take the precision into account */
|
||||
! for (ch = 0; ch < precision-1; ch++)
|
||||
! fraction_part[ch] = '0';
|
||||
! fraction_part[ch] = '0';
|
||||
! fraction_part[ch+1] = '\0';
|
||||
if (fract)
|
||||
*fract = fraction_part;
|
||||
return integral_part;
|
||||
***************
|
||||
*** 805,810 ****
|
||||
--- 815,821 ----
|
||||
PUT_CHAR(*tmp, p);
|
||||
tmp++;
|
||||
}
|
||||
+
|
||||
PAD_LEFT(p);
|
||||
}
|
||||
|
||||
***************
|
||||
*** 972,982 ****
|
||||
if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
|
||||
tmp = t;
|
||||
|
||||
/* calculate the padding. 1 for the dot */
|
||||
p->width = p->width -
|
||||
((d > 0. && p->justify == RIGHT) ? 1:0) -
|
||||
((p->flags & PF_SPACE) ? 1:0) -
|
||||
! strlen(tmp) - p->precision - 1;
|
||||
PAD_RIGHT(p);
|
||||
PUT_PLUS(d, p, 0.);
|
||||
PUT_SPACE(d, p, 0.);
|
||||
--- 983,1003 ----
|
||||
if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
|
||||
tmp = t;
|
||||
|
||||
+ if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
|
||||
+ {
|
||||
+ /* smash the trailing zeros unless altform */
|
||||
+ for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
|
||||
+ tmp2[i] = '\0';
|
||||
+ if (tmp2[0] == '\0')
|
||||
+ p->precision = 0;
|
||||
+ }
|
||||
+
|
||||
/* calculate the padding. 1 for the dot */
|
||||
p->width = p->width -
|
||||
((d > 0. && p->justify == RIGHT) ? 1:0) -
|
||||
((p->flags & PF_SPACE) ? 1:0) -
|
||||
! strlen(tmp) - p->precision -
|
||||
! ((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0); /* radix char */
|
||||
PAD_RIGHT(p);
|
||||
PUT_PLUS(d, p, 0.);
|
||||
PUT_SPACE(d, p, 0.);
|
||||
***************
|
||||
*** 991,1001 ****
|
||||
if (p->precision != 0 || (p->flags & PF_ALTFORM))
|
||||
PUT_CHAR(decpoint, p); /* put the '.' */
|
||||
|
||||
- if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
|
||||
- /* smash the trailing zeros unless altform */
|
||||
- for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
|
||||
- tmp2[i] = '\0';
|
||||
-
|
||||
for (; *tmp2; tmp2++)
|
||||
PUT_CHAR(*tmp2, p); /* the fraction */
|
||||
|
||||
--- 1012,1017 ----
|
||||
***************
|
||||
*** 1011,1024 ****
|
||||
char *tmp, *tmp2;
|
||||
int j, i;
|
||||
|
||||
! if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))
|
||||
return; /* already printed nan or inf */
|
||||
|
||||
GETLOCALEDATA(decpoint, thoussep, grouping);
|
||||
DEF_PREC(p);
|
||||
! j = log_10(d);
|
||||
! d = d / pow_10(j); /* get the Mantissa */
|
||||
! d = ROUND(d, p);
|
||||
tmp = dtoa(d, p->precision, &tmp2);
|
||||
|
||||
/* 1 for unit, 1 for the '.', 1 for 'e|E',
|
||||
--- 1027,1045 ----
|
||||
char *tmp, *tmp2;
|
||||
int j, i;
|
||||
|
||||
! if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)))
|
||||
return; /* already printed nan or inf */
|
||||
|
||||
GETLOCALEDATA(decpoint, thoussep, grouping);
|
||||
DEF_PREC(p);
|
||||
! if (d == 0.)
|
||||
! j = 0;
|
||||
! else
|
||||
! {
|
||||
! j = log_10(d);
|
||||
! d = d / pow_10(j); /* get the Mantissa */
|
||||
! d = ROUND(d, p);
|
||||
! }
|
||||
tmp = dtoa(d, p->precision, &tmp2);
|
||||
|
||||
/* 1 for unit, 1 for the '.', 1 for 'e|E',
|
||||
***************
|
||||
*** 1076,1081 ****
|
||||
--- 1097,1103 ----
|
||||
PUT_CHAR(*tmp, p);
|
||||
tmp++;
|
||||
}
|
||||
+
|
||||
PAD_LEFT(p);
|
||||
}
|
||||
#endif
|
||||
***************
|
||||
*** 1358,1364 ****
|
||||
STAR_ARGS(data);
|
||||
DEF_PREC(data);
|
||||
d = GETDOUBLE(data);
|
||||
! i = log_10(d);
|
||||
/*
|
||||
* for '%g|%G' ANSI: use f if exponent
|
||||
* is in the range or [-4,p] exclusively
|
||||
--- 1380,1386 ----
|
||||
STAR_ARGS(data);
|
||||
DEF_PREC(data);
|
||||
d = GETDOUBLE(data);
|
||||
! i = (d != 0.) ? log_10(d) : -1;
|
||||
/*
|
||||
* for '%g|%G' ANSI: use f if exponent
|
||||
* is in the range or [-4,p] exclusively
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 4
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 5
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,45 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-006
|
||||
|
||||
Bug-Reported-by: ebb9@byu.net
|
||||
Bug-Reference-ID: <45540862.9030900@byu.net>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html
|
||||
http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
In some cases, code that is intended to be used in the presence of multibyte
|
||||
characters is called when no such characters are present, leading to incorrect
|
||||
display position calculations and incorrect redisplay.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006
|
||||
--- lib/readline/display.c Mon Nov 13 17:55:57 2006
|
||||
***************
|
||||
*** 2381,2384 ****
|
||||
--- 2409,2414 ----
|
||||
if (end <= start)
|
||||
return 0;
|
||||
+ if (MB_CUR_MAX == 1 || rl_byte_oriented)
|
||||
+ return (end - start);
|
||||
|
||||
memset (&ps, 0, sizeof (mbstate_t));
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 5
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 6
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,55 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-007
|
||||
|
||||
Bug-Reported-by: jidanni@jidanni.org
|
||||
Bug-Reference-ID: <E1Gkg12-00017D-Fm@jidanni.org>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00039.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When removing the current or previous job from the jobs list, bash incorrectly
|
||||
resets the current job under some circumstances.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/jobs.c Sat Jul 29 16:40:48 2006
|
||||
--- jobs.c Fri Nov 24 14:50:01 2006
|
||||
***************
|
||||
*** 985,990 ****
|
||||
if (temp == 0)
|
||||
return;
|
||||
- if (job_index == js.j_current || job_index == js.j_previous)
|
||||
- reset_current ();
|
||||
|
||||
if ((dflags & DEL_NOBGPID) == 0)
|
||||
--- 985,988 ----
|
||||
***************
|
||||
*** 1029,1032 ****
|
||||
--- 1027,1033 ----
|
||||
else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0)
|
||||
reset_job_indices ();
|
||||
+
|
||||
+ if (job_index == js.j_current || job_index == js.j_previous)
|
||||
+ reset_current ();
|
||||
}
|
||||
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 6
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 7
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-008
|
||||
|
||||
Bug-Reported-by: Linda Walsh <bash@tlinx.org>
|
||||
Bug-Reference-ID: <456041FD.8000605@tlinx.org>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00040.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When checking pathnames from the command hash table (e.g., when the `checkhash'
|
||||
shell option is enabled), a bug causes bash to delete and re-lookup each
|
||||
command.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/findcmd.c Wed Aug 17 16:49:54 2005
|
||||
--- findcmd.c Fri Nov 24 10:48:37 2006
|
||||
***************
|
||||
*** 309,313 ****
|
||||
{
|
||||
st = file_status (hashed_file);
|
||||
! if ((st ^ (FS_EXISTS | FS_EXECABLE)) != 0)
|
||||
{
|
||||
phash_remove (pathname);
|
||||
--- 309,313 ----
|
||||
{
|
||||
st = file_status (hashed_file);
|
||||
! if ((st & (FS_EXISTS|FS_EXECABLE)) != (FS_EXISTS|FS_EXECABLE))
|
||||
{
|
||||
phash_remove (pathname);
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 7
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 8
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,61 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-009
|
||||
|
||||
Bug-Reported-by: James.M.Botte@lowes.com
|
||||
Bug-Reference-ID: <BA9FF90F7E5B424998F98EDA9F1F94BE01FA9853@msexchdb01.lowes.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00000.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When using its built-in replacement for snprintf/asprintf, bash does not
|
||||
treat the %x, %X, and %o format specifiers as unsigned numbers.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/lib/sh/snprintf.c Mon Nov 13 08:58:52 2006
|
||||
--- lib/sh/snprintf.c Wed Dec 6 11:15:04 2006
|
||||
***************
|
||||
*** 669,673 ****
|
||||
|
||||
sd = d; /* signed for ' ' padding in base 10 */
|
||||
! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
|
||||
if (*p->pf == 'X')
|
||||
flags |= FL_HEXUPPER;
|
||||
--- 674,679 ----
|
||||
|
||||
sd = d; /* signed for ' ' padding in base 10 */
|
||||
! flags = 0;
|
||||
! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
|
||||
if (*p->pf == 'X')
|
||||
flags |= FL_HEXUPPER;
|
||||
***************
|
||||
*** 739,743 ****
|
||||
|
||||
sd = d; /* signed for ' ' padding in base 10 */
|
||||
! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
|
||||
if (*p->pf == 'X')
|
||||
flags |= FL_HEXUPPER;
|
||||
--- 745,749 ----
|
||||
|
||||
sd = d; /* signed for ' ' padding in base 10 */
|
||||
! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
|
||||
if (*p->pf == 'X')
|
||||
flags |= FL_HEXUPPER;
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 8
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 9
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,207 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-010
|
||||
|
||||
Bug-Reported-by: Ryan Waldron <rew@erebor.com>
|
||||
Bug-Reference-ID: <20070119065603.546D011E9C@kansas.erebor.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00059.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
The glibc implementation of regcomp/regexec does not allow backslashes to
|
||||
escape "ordinary" pattern characters when matching. Bash used backslashes
|
||||
to quote all characters when the pattern argument to the [[ special
|
||||
command's =~ operator was quoted. This caused the match to fail on Linux
|
||||
and other systems using GNU libc.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2.9/pathexp.h Sat Feb 19 17:23:18 2005
|
||||
--- pathexp.h Wed Jan 31 22:53:16 2007
|
||||
***************
|
||||
*** 1,5 ****
|
||||
/* pathexp.h -- The shell interface to the globbing library. */
|
||||
|
||||
! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
--- 1,5 ----
|
||||
/* pathexp.h -- The shell interface to the globbing library. */
|
||||
|
||||
! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
***************
|
||||
*** 33,36 ****
|
||||
--- 33,37 ----
|
||||
#define QGLOB_CVTNULL 0x01 /* convert QUOTED_NULL strings to '\0' */
|
||||
#define QGLOB_FILENAME 0x02 /* do correct quoting for matching filenames */
|
||||
+ #define QGLOB_REGEXP 0x04 /* quote an ERE for regcomp/regexec */
|
||||
|
||||
#if defined (EXTENDED_GLOB)
|
||||
*** ../bash-3.2.9/pathexp.c Mon May 6 13:43:05 2002
|
||||
--- pathexp.c Mon Feb 26 16:59:23 2007
|
||||
***************
|
||||
*** 1,5 ****
|
||||
/* pathexp.c -- The shell interface to the globbing library. */
|
||||
|
||||
! /* Copyright (C) 1995-2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
--- 1,5 ----
|
||||
/* pathexp.c -- The shell interface to the globbing library. */
|
||||
|
||||
! /* Copyright (C) 1995-2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
***************
|
||||
*** 111,114 ****
|
||||
--- 111,141 ----
|
||||
}
|
||||
|
||||
+ /* Return 1 if C is a character that is `special' in a POSIX ERE and needs to
|
||||
+ be quoted to match itself. */
|
||||
+ static inline int
|
||||
+ ere_char (c)
|
||||
+ int c;
|
||||
+ {
|
||||
+ switch (c)
|
||||
+ {
|
||||
+ case '.':
|
||||
+ case '[':
|
||||
+ case '\\':
|
||||
+ case '(':
|
||||
+ case ')':
|
||||
+ case '*':
|
||||
+ case '+':
|
||||
+ case '?':
|
||||
+ case '{':
|
||||
+ case '|':
|
||||
+ case '^':
|
||||
+ case '$':
|
||||
+ return 1;
|
||||
+ default:
|
||||
+ return 0;
|
||||
+ }
|
||||
+ return (0);
|
||||
+ }
|
||||
+
|
||||
/* PATHNAME can contain characters prefixed by CTLESC; this indicates
|
||||
that the character is to be quoted. We quote it here in the style
|
||||
***************
|
||||
*** 143,146 ****
|
||||
--- 170,175 ----
|
||||
if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/')
|
||||
continue;
|
||||
+ if ((qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
|
||||
+ continue;
|
||||
temp[j++] = '\\';
|
||||
i++;
|
||||
*** ../bash-3.2.9/subst.c Tue Nov 7 16:14:41 2006
|
||||
--- subst.c Wed Jan 31 23:09:58 2007
|
||||
***************
|
||||
*** 5,9 ****
|
||||
beauty, but, hey, you're alright.'' */
|
||||
|
||||
! /* Copyright (C) 1987-2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
--- 5,9 ----
|
||||
beauty, but, hey, you're alright.'' */
|
||||
|
||||
! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
***************
|
||||
*** 2647,2655 ****
|
||||
/* This needs better error handling. */
|
||||
/* Expand W for use as an argument to a unary or binary operator in a
|
||||
! [[...]] expression. If SPECIAL is nonzero, this is the rhs argument
|
||||
to the != or == operator, and should be treated as a pattern. In
|
||||
! this case, we quote the string specially for the globbing code. The
|
||||
! caller is responsible for removing the backslashes if the unquoted
|
||||
! words is needed later. */
|
||||
char *
|
||||
cond_expand_word (w, special)
|
||||
--- 2647,2656 ----
|
||||
/* This needs better error handling. */
|
||||
/* Expand W for use as an argument to a unary or binary operator in a
|
||||
! [[...]] expression. If SPECIAL is 1, this is the rhs argument
|
||||
to the != or == operator, and should be treated as a pattern. In
|
||||
! this case, we quote the string specially for the globbing code. If
|
||||
! SPECIAL is 2, this is an rhs argument for the =~ operator, and should
|
||||
! be quoted appropriately for regcomp/regexec. The caller is responsible
|
||||
! for removing the backslashes if the unquoted word is needed later. */
|
||||
char *
|
||||
cond_expand_word (w, special)
|
||||
***************
|
||||
*** 2659,2662 ****
|
||||
--- 2660,2664 ----
|
||||
char *r, *p;
|
||||
WORD_LIST *l;
|
||||
+ int qflags;
|
||||
|
||||
if (w->word == 0 || w->word[0] == '\0')
|
||||
***************
|
||||
*** 2673,2678 ****
|
||||
else
|
||||
{
|
||||
p = string_list (l);
|
||||
! r = quote_string_for_globbing (p, QGLOB_CVTNULL);
|
||||
free (p);
|
||||
}
|
||||
--- 2675,2683 ----
|
||||
else
|
||||
{
|
||||
+ qflags = QGLOB_CVTNULL;
|
||||
+ if (special == 2)
|
||||
+ qflags |= QGLOB_REGEXP;
|
||||
p = string_list (l);
|
||||
! r = quote_string_for_globbing (p, qflags);
|
||||
free (p);
|
||||
}
|
||||
*** ../bash-3.2.9/execute_cmd.c Sat Aug 26 00:23:17 2006
|
||||
--- execute_cmd.c Wed Jan 31 23:12:06 2007
|
||||
***************
|
||||
*** 1,5 ****
|
||||
/* execute_cmd.c -- Execute a COMMAND structure. */
|
||||
|
||||
! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
--- 1,5 ----
|
||||
/* execute_cmd.c -- Execute a COMMAND structure. */
|
||||
|
||||
! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
***************
|
||||
*** 2547,2551 ****
|
||||
if (arg1 == 0)
|
||||
arg1 = nullstr;
|
||||
! arg2 = cond_expand_word (cond->right->op, patmatch||rmatch);
|
||||
if (arg2 == 0)
|
||||
arg2 = nullstr;
|
||||
--- 2547,2551 ----
|
||||
if (arg1 == 0)
|
||||
arg1 = nullstr;
|
||||
! arg2 = cond_expand_word (cond->right->op, rmatch ? 2 : (patmatch ? 1 : 0));
|
||||
if (arg2 == 0)
|
||||
arg2 = nullstr;
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 9
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 10
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,138 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-011
|
||||
|
||||
Bug-Reported-by: Petr Sumbera <Petr.Sumbera@Sun.COM>
|
||||
Bug-Reference-ID: <45AF5F4B.1020800@sun.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00049.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Under certain circumstances (loopback mounts), the bash getcwd does not
|
||||
return correct results. This patch allows the use of the Solaris libc
|
||||
getcwd even though it doesn't dynamically allocate memory.
|
||||
|
||||
Run `touch configure' to make sure make doesn't try to run autoconf.
|
||||
Then run configure with whatever options you like.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/configure.in Tue Sep 26 11:05:45 2006
|
||||
--- configure.in Wed Jan 31 09:48:00 2007
|
||||
***************
|
||||
*** 6,10 ****
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
! # Copyright (C) 1987-2006 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
--- 6,10 ----
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
! # Copyright (C) 1987-2007 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
***************
|
||||
*** 992,996 ****
|
||||
sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
|
||||
sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
|
||||
! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
|
||||
lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
|
||||
linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
|
||||
--- 992,997 ----
|
||||
sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
|
||||
sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
|
||||
! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
|
||||
! solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
|
||||
lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
|
||||
linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
|
||||
*** ../bash-3.2-patched/config-bot.h Tue Sep 12 16:43:04 2006
|
||||
--- config-bot.h Tue Mar 6 10:41:31 2007
|
||||
***************
|
||||
*** 2,6 ****
|
||||
/* modify settings or make new ones based on what autoconf tells us. */
|
||||
|
||||
! /* Copyright (C) 1989-2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
--- 2,6 ----
|
||||
/* modify settings or make new ones based on what autoconf tells us. */
|
||||
|
||||
! /* Copyright (C) 1989-2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
***************
|
||||
*** 71,77 ****
|
||||
#endif
|
||||
|
||||
! /* If we have a getcwd(3), but it calls popen(), #undef HAVE_GETCWD so
|
||||
! the replacement in getcwd.c will be built. */
|
||||
! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN)
|
||||
# undef HAVE_GETCWD
|
||||
#endif
|
||||
--- 71,79 ----
|
||||
#endif
|
||||
|
||||
! /* If we have a getcwd(3), but one that does not dynamically allocate memory,
|
||||
! #undef HAVE_GETCWD so the replacement in getcwd.c will be built. We do
|
||||
! not do this on Solaris, because their implementation of loopback mounts
|
||||
! breaks the traditional file system assumptions that getcwd uses. */
|
||||
! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN) && !defined (SOLARIS)
|
||||
# undef HAVE_GETCWD
|
||||
#endif
|
||||
*** ../bash-3.2-patched/builtins/common.c Thu Jul 27 09:39:51 2006
|
||||
--- builtins/common.c Tue Mar 6 10:43:27 2007
|
||||
***************
|
||||
*** 1,3 ****
|
||||
! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
--- 1,3 ----
|
||||
! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
***************
|
||||
*** 476,480 ****
|
||||
--- 476,484 ----
|
||||
if (the_current_working_directory == 0)
|
||||
{
|
||||
+ #if defined (GETCWD_BROKEN)
|
||||
+ the_current_working_directory = getcwd (0, PATH_MAX);
|
||||
+ #else
|
||||
the_current_working_directory = getcwd (0, 0);
|
||||
+ #endif
|
||||
if (the_current_working_directory == 0)
|
||||
{
|
||||
*** ../bash-3.2-patched/configure Tue Sep 26 11:06:01 2006
|
||||
--- configure Tue Mar 6 10:59:20 2007
|
||||
***************
|
||||
*** 27317,27321 ****
|
||||
sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
|
||||
sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
|
||||
! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
|
||||
lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
|
||||
linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
|
||||
--- 27317,27322 ----
|
||||
sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
|
||||
sunos4*) LOCAL_CFLAGS=-DSunOS4 ;;
|
||||
! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
|
||||
! solaris2*) LOCAL_CFLAGS=-DSOLARIS ;;
|
||||
lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
|
||||
linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 10
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 11
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,96 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-012
|
||||
|
||||
Bug-Reported-by: John Wyman <JohnWyman@celink.com>
|
||||
Bug-Reference-ID: <5E7DEFC094C35044B87FAE761D9F0EE20143A3B7@exchange2k.celink.com>
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Some systems (AIX 4.x) don't implement the PRI_xxx macros correctly,
|
||||
causing syntax errors when attempting to compile bash on those systems.
|
||||
This patch adds support for the PRI_MACROS_BROKEN define.
|
||||
|
||||
You will need to re-run `configure' after applying the patch. Run
|
||||
`touch configure' so make doesn't try to run autoconf.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2.11/config.h.in Tue Sep 12 16:00:54 2006
|
||||
--- config.h.in Tue Mar 6 11:17:55 2007
|
||||
***************
|
||||
*** 1,5 ****
|
||||
/* config.h -- Configuration file for bash. */
|
||||
|
||||
! /* Copyright (C) 1987-2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
--- 1,5 ----
|
||||
/* config.h -- Configuration file for bash. */
|
||||
|
||||
! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
***************
|
||||
*** 414,417 ****
|
||||
--- 414,419 ----
|
||||
#undef HAVE_DECL_STRTOLD
|
||||
|
||||
+ #undef PRI_MACROS_BROKEN
|
||||
+
|
||||
#undef STRTOLD_BROKEN
|
||||
|
||||
***************
|
||||
*** 1007,1010 ****
|
||||
--- 1009,1015 ----
|
||||
#undef HAVE_DCGETTEXT
|
||||
|
||||
+ /* Define if you have the `localeconv' function. */
|
||||
+ #undef HAVE_LOCALECONV
|
||||
+
|
||||
/* Define if your system has a working `malloc' function. */
|
||||
/* #undef HAVE_MALLOC */
|
||||
*** ../bash-3.2.11/builtins/printf.def Mon Nov 13 08:58:52 2006
|
||||
--- builtins/printf.def Sun Feb 4 13:58:59 2007
|
||||
***************
|
||||
*** 2,6 ****
|
||||
It implements the builtin "printf" in Bash.
|
||||
|
||||
! Copyright (C) 1997-2005 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
--- 2,6 ----
|
||||
It implements the builtin "printf" in Bash.
|
||||
|
||||
! Copyright (C) 1997-2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Bash, the Bourne Again SHell.
|
||||
***************
|
||||
*** 71,74 ****
|
||||
--- 71,78 ----
|
||||
#include "common.h"
|
||||
|
||||
+ #if defined (PRI_MACROS_BROKEN)
|
||||
+ # undef PRIdMAX
|
||||
+ #endif
|
||||
+
|
||||
#if !defined (PRIdMAX)
|
||||
# if HAVE_LONG_LONG
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 11
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 12
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,65 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-013
|
||||
|
||||
Bug-Reported-by: Magnus Svensson <msvensson@mysql.com>
|
||||
Bug-Reference-ID: <45BDC44D.80609@mysql.com>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Readline neglects to reallocate the array it uses to keep track of wrapped
|
||||
screen lines when increasing its size. This will eventually result in
|
||||
segmentation faults when given sufficiently long input.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006
|
||||
--- lib/readline/display.c Fri Feb 2 20:23:17 2007
|
||||
***************
|
||||
*** 561,574 ****
|
||||
--- 561,586 ----
|
||||
wrap_offset = prompt_invis_chars_first_line = 0;
|
||||
}
|
||||
|
||||
+ #if defined (HANDLE_MULTIBYTE)
|
||||
#define CHECK_INV_LBREAKS() \
|
||||
do { \
|
||||
if (newlines >= (inv_lbsize - 2)) \
|
||||
{ \
|
||||
inv_lbsize *= 2; \
|
||||
inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
|
||||
+ _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
|
||||
} \
|
||||
} while (0)
|
||||
+ #else
|
||||
+ #define CHECK_INV_LBREAKS() \
|
||||
+ do { \
|
||||
+ if (newlines >= (inv_lbsize - 2)) \
|
||||
+ { \
|
||||
+ inv_lbsize *= 2; \
|
||||
+ inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
|
||||
+ } \
|
||||
+ } while (0)
|
||||
+ #endif /* HANDLE_MULTIBYTE */
|
||||
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
#define CHECK_LPOS() \
|
||||
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 12
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 13
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,307 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-014
|
||||
|
||||
Bug-Reported-by: Brett Stahlman <brettstahlman@comcast.net>
|
||||
Bug-Reference-ID: <000701c72d29$a227e0e0$5ec7cf47@computerroom>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00065.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Bash mishandles word splitting under certain circumstances when IFS is
|
||||
null (IFS=). Constructs affected include ${param/pat/sub} and others
|
||||
when expanding arrays (array[@]).
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/array.c Wed Jun 1 16:39:22 2005
|
||||
--- array.c Mon Jan 15 22:58:00 2007
|
||||
***************
|
||||
*** 121,125 ****
|
||||
}
|
||||
|
||||
- #ifdef INCLUDE_UNUSED
|
||||
/*
|
||||
* Make and return a new array composed of the elements in array A from
|
||||
--- 121,124 ----
|
||||
***************
|
||||
*** 142,146 ****
|
||||
n = array_create_element (element_index(p), element_value(p));
|
||||
ADD_BEFORE(a->head, n);
|
||||
! mi = element_index(ae);
|
||||
}
|
||||
a->num_elements = i;
|
||||
--- 141,145 ----
|
||||
n = array_create_element (element_index(p), element_value(p));
|
||||
ADD_BEFORE(a->head, n);
|
||||
! mi = element_index(n);
|
||||
}
|
||||
a->num_elements = i;
|
||||
***************
|
||||
*** 148,152 ****
|
||||
return a;
|
||||
}
|
||||
- #endif
|
||||
|
||||
/*
|
||||
--- 147,150 ----
|
||||
***************
|
||||
*** 301,304 ****
|
||||
--- 299,319 ----
|
||||
}
|
||||
|
||||
+ ARRAY *
|
||||
+ array_quote_escapes(array)
|
||||
+ ARRAY *array;
|
||||
+ {
|
||||
+ ARRAY_ELEMENT *a;
|
||||
+ char *t;
|
||||
+
|
||||
+ if (array == 0 || array_head(array) == 0 || array_empty(array))
|
||||
+ return (ARRAY *)NULL;
|
||||
+ for (a = element_forw(array->head); a != array->head; a = element_forw(a)) {
|
||||
+ t = quote_escapes (a->value);
|
||||
+ FREE(a->value);
|
||||
+ a->value = t;
|
||||
+ }
|
||||
+ return array;
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* Return a string whose elements are the members of array A beginning at
|
||||
***************
|
||||
*** 312,318 ****
|
||||
int starsub, quoted;
|
||||
{
|
||||
ARRAY_ELEMENT *h, *p;
|
||||
arrayind_t i;
|
||||
! char *ifs, sep[2];
|
||||
|
||||
p = a ? array_head (a) : 0;
|
||||
--- 327,334 ----
|
||||
int starsub, quoted;
|
||||
{
|
||||
+ ARRAY *a2;
|
||||
ARRAY_ELEMENT *h, *p;
|
||||
arrayind_t i;
|
||||
! char *ifs, sep[2], *t;
|
||||
|
||||
p = a ? array_head (a) : 0;
|
||||
***************
|
||||
*** 337,340 ****
|
||||
--- 353,363 ----
|
||||
;
|
||||
|
||||
+ a2 = array_slice(a, h, p);
|
||||
+
|
||||
+ if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))
|
||||
+ array_quote(a2);
|
||||
+ else
|
||||
+ array_quote_escapes(a2);
|
||||
+
|
||||
if (starsub && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) {
|
||||
ifs = getifs();
|
||||
***************
|
||||
*** 344,348 ****
|
||||
sep[1] = '\0';
|
||||
|
||||
! return (array_to_string_internal (h, p, sep, quoted));
|
||||
}
|
||||
|
||||
--- 367,374 ----
|
||||
sep[1] = '\0';
|
||||
|
||||
! t = array_to_string (a2, sep, 0);
|
||||
! array_dispose(a2);
|
||||
!
|
||||
! return t;
|
||||
}
|
||||
|
||||
***************
|
||||
*** 368,372 ****
|
||||
|
||||
if (mflags & MATCH_QUOTED)
|
||||
! array_quote (a2);
|
||||
if (mflags & MATCH_STARSUB) {
|
||||
ifs = getifs();
|
||||
--- 394,400 ----
|
||||
|
||||
if (mflags & MATCH_QUOTED)
|
||||
! array_quote(a2);
|
||||
! else
|
||||
! array_quote_escapes(a2);
|
||||
if (mflags & MATCH_STARSUB) {
|
||||
ifs = getifs();
|
||||
*** ../bash-3.2-patched/array.h Sun Jun 1 15:50:30 2003
|
||||
--- array.h Mon Jan 15 22:35:35 2007
|
||||
***************
|
||||
*** 56,59 ****
|
||||
--- 56,60 ----
|
||||
extern int array_shift_element __P((ARRAY *, char *));
|
||||
extern ARRAY *array_quote __P((ARRAY *));
|
||||
+ extern ARRAY *array_quote_escapes __P((ARRAY *));
|
||||
|
||||
extern char *array_subrange __P((ARRAY *, arrayind_t, arrayind_t, int, int));
|
||||
*** ../bash-3.2-patched/subst.c Fri Mar 2 16:20:50 2007
|
||||
--- subst.c Tue Mar 6 11:40:55 2007
|
||||
***************
|
||||
*** 1888,1892 ****
|
||||
--- 1889,1899 ----
|
||||
#endif
|
||||
|
||||
+ /* XXX -- why call quote_list if ifs == 0? we can get away without doing
|
||||
+ it now that quote_escapes quotes spaces */
|
||||
+ #if 0
|
||||
tlist = ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (ifs && *ifs == 0))
|
||||
+ #else
|
||||
+ tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
|
||||
+ #endif
|
||||
? quote_list (list)
|
||||
: list_quote_escapes (list);
|
||||
***************
|
||||
*** 2922,2926 ****
|
||||
/* Quote escape characters in string s, but no other characters. This is
|
||||
used to protect CTLESC and CTLNUL in variable values from the rest of
|
||||
! the word expansion process after the variable is expanded. */
|
||||
char *
|
||||
quote_escapes (string)
|
||||
--- 2935,2944 ----
|
||||
/* Quote escape characters in string s, but no other characters. This is
|
||||
used to protect CTLESC and CTLNUL in variable values from the rest of
|
||||
! the word expansion process after the variable is expanded. If IFS is
|
||||
! null, we quote spaces as well, just in case we split on spaces later
|
||||
! (in the case of unquoted $@, we will eventually attempt to split the
|
||||
! entire word on spaces). Corresponding code exists in dequote_escapes.
|
||||
! Even if we don't end up splitting on spaces, quoting spaces is not a
|
||||
! problem. */
|
||||
char *
|
||||
quote_escapes (string)
|
||||
***************
|
||||
*** 2930,2933 ****
|
||||
--- 2948,2952 ----
|
||||
size_t slen;
|
||||
char *result, *send;
|
||||
+ int quote_spaces;
|
||||
DECLARE_MBSTATE;
|
||||
|
||||
***************
|
||||
*** 2935,2938 ****
|
||||
--- 2954,2958 ----
|
||||
send = string + slen;
|
||||
|
||||
+ quote_spaces = (ifs_value && *ifs_value == 0);
|
||||
t = result = (char *)xmalloc ((slen * 2) + 1);
|
||||
s = string;
|
||||
***************
|
||||
*** 2940,2944 ****
|
||||
while (*s)
|
||||
{
|
||||
! if (*s == CTLESC || *s == CTLNUL)
|
||||
*t++ = CTLESC;
|
||||
COPY_CHAR_P (t, s, send);
|
||||
--- 2960,2964 ----
|
||||
while (*s)
|
||||
{
|
||||
! if (*s == CTLESC || *s == CTLNUL || (quote_spaces && *s == ' '))
|
||||
*t++ = CTLESC;
|
||||
COPY_CHAR_P (t, s, send);
|
||||
***************
|
||||
*** 2982,2985 ****
|
||||
--- 3002,3006 ----
|
||||
size_t slen;
|
||||
char *result, *send;
|
||||
+ int quote_spaces;
|
||||
DECLARE_MBSTATE;
|
||||
|
||||
***************
|
||||
*** 2996,3002 ****
|
||||
return (strcpy (result, s));
|
||||
|
||||
while (*s)
|
||||
{
|
||||
! if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL))
|
||||
{
|
||||
s++;
|
||||
--- 3017,3024 ----
|
||||
return (strcpy (result, s));
|
||||
|
||||
+ quote_spaces = (ifs_value && *ifs_value == 0);
|
||||
while (*s)
|
||||
{
|
||||
! if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL || (quote_spaces && s[1] == ' ')))
|
||||
{
|
||||
s++;
|
||||
***************
|
||||
*** 4462,4466 ****
|
||||
RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE);
|
||||
|
||||
! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || c == CTLESC || c == CTLNUL)
|
||||
istring[istring_index++] = CTLESC;
|
||||
|
||||
--- 4498,4510 ----
|
||||
RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE);
|
||||
|
||||
! /* This is essentially quote_string inline */
|
||||
! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) /* || c == CTLESC || c == CTLNUL */)
|
||||
! istring[istring_index++] = CTLESC;
|
||||
! /* Escape CTLESC and CTLNUL in the output to protect those characters
|
||||
! from the rest of the word expansions (word splitting and globbing.)
|
||||
! This is essentially quote_escapes inline. */
|
||||
! else if (c == CTLESC)
|
||||
! istring[istring_index++] = CTLESC;
|
||||
! else if (c == CTLNUL || (c == ' ' && (ifs_value && *ifs_value == 0)))
|
||||
istring[istring_index++] = CTLESC;
|
||||
|
||||
***************
|
||||
*** 5552,5555 ****
|
||||
--- 5610,5616 ----
|
||||
rely on array_subrange to understand how to deal with them). */
|
||||
tt = array_subrange (array_cell (v), e1, e2, starsub, quoted);
|
||||
+ #if 0
|
||||
+ /* array_subrange now calls array_quote_escapes as appropriate, so the
|
||||
+ caller no longer needs to. */
|
||||
if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
|
||||
{
|
||||
***************
|
||||
*** 5558,5561 ****
|
||||
--- 5619,5623 ----
|
||||
}
|
||||
else
|
||||
+ #endif
|
||||
temp = tt;
|
||||
break;
|
||||
***************
|
||||
*** 5808,5811 ****
|
||||
--- 5870,5876 ----
|
||||
case VT_ARRAYVAR:
|
||||
temp = array_patsub (array_cell (v), p, rep, mflags);
|
||||
+ #if 0
|
||||
+ /* Don't need to do this anymore; array_patsub calls array_quote_escapes
|
||||
+ as appropriate before adding the space separators. */
|
||||
if (temp && (mflags & MATCH_QUOTED) == 0)
|
||||
{
|
||||
***************
|
||||
*** 5814,5817 ****
|
||||
--- 5879,5883 ----
|
||||
temp = tt;
|
||||
}
|
||||
+ #endif
|
||||
break;
|
||||
#endif
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 13
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 14
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,95 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-015
|
||||
|
||||
Bug-Reported-by:
|
||||
Bug-Reference-ID:
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Under certain circumstances, when using FIFOs for process substitution,
|
||||
bash fails to unlink the FIFOs. This leaves open file descriptors that
|
||||
can cause the shell to hang and litters the file system.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/execute_cmd.c Fri Mar 2 16:20:50 2007
|
||||
--- execute_cmd.c Wed Jan 31 23:12:06 2007
|
||||
***************
|
||||
*** 3051,3054 ****
|
||||
--- 3051,3059 ----
|
||||
command_line = savestring (the_printed_command_except_trap);
|
||||
|
||||
+ #if defined (PROCESS_SUBSTITUTION)
|
||||
+ if ((subshell_environment & SUBSHELL_COMSUB) && (simple_command->flags & CMD_NO_FORK) && fifos_pending() > 0)
|
||||
+ simple_command->flags &= ~CMD_NO_FORK;
|
||||
+ #endif
|
||||
+
|
||||
execute_disk_command (words, simple_command->redirects, command_line,
|
||||
pipe_in, pipe_out, async, fds_to_close,
|
||||
*** ../bash-3.2-patched/subst.c Fri Mar 2 16:20:50 2007
|
||||
--- subst.c Tue Mar 6 11:40:55 2007
|
||||
***************
|
||||
*** 4129,4132 ****
|
||||
--- 4151,4160 ----
|
||||
}
|
||||
|
||||
+ int
|
||||
+ fifos_pending ()
|
||||
+ {
|
||||
+ return nfifo;
|
||||
+ }
|
||||
+
|
||||
static char *
|
||||
make_named_pipe ()
|
||||
***************
|
||||
*** 4178,4181 ****
|
||||
--- 4206,4215 ----
|
||||
}
|
||||
|
||||
+ int
|
||||
+ fifos_pending ()
|
||||
+ {
|
||||
+ return 0; /* used for cleanup; not needed with /dev/fd */
|
||||
+ }
|
||||
+
|
||||
void
|
||||
unlink_fifo_list ()
|
||||
***************
|
||||
*** 4671,4674 ****
|
||||
--- 4719,4725 ----
|
||||
last_command_exit_value = rc;
|
||||
rc = run_exit_trap ();
|
||||
+ #if defined (PROCESS_SUBSTITUTION)
|
||||
+ unlink_fifo_list ();
|
||||
+ #endif
|
||||
exit (rc);
|
||||
}
|
||||
*** ../bash-3.2-patched/subst.h Tue Sep 19 08:34:41 2006
|
||||
--- subst.h Wed Jan 10 09:46:47 2007
|
||||
***************
|
||||
*** 223,226 ****
|
||||
--- 223,227 ----
|
||||
extern char *pat_subst __P((char *, char *, char *, int));
|
||||
|
||||
+ extern int fifos_pending __P((void));
|
||||
extern void unlink_fifo_list __P((void));
|
||||
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 14
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 15
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,52 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-016
|
||||
|
||||
Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
|
||||
Bug-Reference-ID: <1171795523.8021.18.camel@localhost>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When moving the cursor, bash sometimes misplaces the cursor when the prompt
|
||||
contains two or more multibyte characters. The particular circumstance that
|
||||
uncovered the problem was having the (multibyte) current directory name in
|
||||
the prompt string.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2/lib/readline/display.c Fri Jan 19 13:34:50 2007
|
||||
--- lib/readline/display.c Sat Mar 10 17:25:44 2007
|
||||
***************
|
||||
*** 1745,1749 ****
|
||||
{
|
||||
dpos = _rl_col_width (data, 0, new);
|
||||
! if (dpos > prompt_last_invisible) /* XXX - don't use woff here */
|
||||
{
|
||||
dpos -= woff;
|
||||
--- 1745,1752 ----
|
||||
{
|
||||
dpos = _rl_col_width (data, 0, new);
|
||||
! /* Use NEW when comparing against the last invisible character in the
|
||||
! prompt string, since they're both buffer indices and DPOS is a
|
||||
! desired display position. */
|
||||
! if (new > prompt_last_invisible) /* XXX - don't use woff here */
|
||||
{
|
||||
dpos -= woff;
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 15
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 16
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,85 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-017
|
||||
|
||||
Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
|
||||
Bug-Reference-ID: <1173636022.7039.36.camel@localhost>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When restoring the original prompt after finishing an incremental search,
|
||||
bash sometimes places the cursor incorrectly if the primary prompt contains
|
||||
invisible characters.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2.16/lib/readline/display.c Fri Apr 20 13:30:16 2007
|
||||
--- lib/readline/display.c Fri Apr 20 15:17:01 2007
|
||||
***************
|
||||
*** 1599,1604 ****
|
||||
if (temp > 0)
|
||||
{
|
||||
_rl_output_some_chars (nfd, temp);
|
||||
! _rl_last_c_pos += _rl_col_width (nfd, 0, temp);;
|
||||
}
|
||||
}
|
||||
--- 1599,1618 ----
|
||||
if (temp > 0)
|
||||
{
|
||||
+ /* If nfd begins at the prompt, or before the invisible
|
||||
+ characters in the prompt, we need to adjust _rl_last_c_pos
|
||||
+ in a multibyte locale to account for the wrap offset and
|
||||
+ set cpos_adjusted accordingly. */
|
||||
_rl_output_some_chars (nfd, temp);
|
||||
! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
! {
|
||||
! _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
|
||||
! if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
|
||||
! {
|
||||
! _rl_last_c_pos -= wrap_offset;
|
||||
! cpos_adjusted = 1;
|
||||
! }
|
||||
! }
|
||||
! else
|
||||
! _rl_last_c_pos += temp;
|
||||
}
|
||||
}
|
||||
***************
|
||||
*** 1608,1613 ****
|
||||
--- 1622,1639 ----
|
||||
if (temp > 0)
|
||||
{
|
||||
+ /* If nfd begins at the prompt, or before the invisible
|
||||
+ characters in the prompt, we need to adjust _rl_last_c_pos
|
||||
+ in a multibyte locale to account for the wrap offset and
|
||||
+ set cpos_adjusted accordingly. */
|
||||
_rl_output_some_chars (nfd, temp);
|
||||
_rl_last_c_pos += col_temp; /* XXX */
|
||||
+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
+ {
|
||||
+ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
|
||||
+ {
|
||||
+ _rl_last_c_pos -= wrap_offset;
|
||||
+ cpos_adjusted = 1;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
lendiff = (oe - old) - (ne - new);
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 16
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 17
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,98 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-018
|
||||
|
||||
Bug-Reported-by: osicka@post.cz
|
||||
Bug-Reference-ID: <228.177-19682-1132061412-1179356692@post.cz>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00061.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
In certain cases, bash can lose the saved status of a background job, though
|
||||
it should still be reported by `wait'. Bash can also loop infinitely after
|
||||
creating and waiting for 4096 jobs.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-20070510/jobs.c Thu Mar 8 16:05:50 2007
|
||||
--- jobs.c Fri May 18 11:40:14 2007
|
||||
***************
|
||||
*** 784,792 ****
|
||||
{
|
||||
old = js.j_firstj++;
|
||||
while (js.j_firstj != old)
|
||||
{
|
||||
if (js.j_firstj >= js.j_jobslots)
|
||||
js.j_firstj = 0;
|
||||
! if (jobs[js.j_firstj])
|
||||
break;
|
||||
js.j_firstj++;
|
||||
--- 784,794 ----
|
||||
{
|
||||
old = js.j_firstj++;
|
||||
+ if (old >= js.j_jobslots)
|
||||
+ old = js.j_jobslots - 1;
|
||||
while (js.j_firstj != old)
|
||||
{
|
||||
if (js.j_firstj >= js.j_jobslots)
|
||||
js.j_firstj = 0;
|
||||
! if (jobs[js.j_firstj] || js.j_firstj == old) /* needed if old == 0 */
|
||||
break;
|
||||
js.j_firstj++;
|
||||
***************
|
||||
*** 798,806 ****
|
||||
{
|
||||
old = js.j_lastj--;
|
||||
while (js.j_lastj != old)
|
||||
{
|
||||
if (js.j_lastj < 0)
|
||||
js.j_lastj = js.j_jobslots - 1;
|
||||
! if (jobs[js.j_lastj])
|
||||
break;
|
||||
js.j_lastj--;
|
||||
--- 800,810 ----
|
||||
{
|
||||
old = js.j_lastj--;
|
||||
+ if (old < 0)
|
||||
+ old = 0;
|
||||
while (js.j_lastj != old)
|
||||
{
|
||||
if (js.j_lastj < 0)
|
||||
js.j_lastj = js.j_jobslots - 1;
|
||||
! if (jobs[js.j_lastj] || js.j_lastj == old) /* needed if old == js.j_jobslots */
|
||||
break;
|
||||
js.j_lastj--;
|
||||
***************
|
||||
*** 964,968 ****
|
||||
realloc_jobs_list ();
|
||||
|
||||
! return (js.j_lastj);
|
||||
}
|
||||
|
||||
--- 975,983 ----
|
||||
realloc_jobs_list ();
|
||||
|
||||
! #ifdef DEBUG
|
||||
! itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
|
||||
! #endif
|
||||
!
|
||||
! return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
|
||||
}
|
||||
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 17
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 18
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,343 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-019
|
||||
|
||||
Bug-Reported-by: Thomas Loeber <ifp@loeber1.de>
|
||||
Bug-Reference-ID: <200703082223.08919.ifp@loeber1.de>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When rl_read_key returns -1, indicating that bash's controlling terminal
|
||||
has been invalidated for some reason (e.g., receiving a SIGHUP), the error
|
||||
status was not reported correctly to the caller. This could cause input
|
||||
loops.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/lib/readline/complete.c Fri Jul 28 11:35:49 2006
|
||||
--- lib/readline/complete.c Tue Mar 13 08:50:16 2007
|
||||
***************
|
||||
*** 429,433 ****
|
||||
if (c == 'n' || c == 'N' || c == RUBOUT)
|
||||
return (0);
|
||||
! if (c == ABORT_CHAR)
|
||||
_rl_abort_internal ();
|
||||
if (for_pager && (c == NEWLINE || c == RETURN))
|
||||
--- 440,444 ----
|
||||
if (c == 'n' || c == 'N' || c == RUBOUT)
|
||||
return (0);
|
||||
! if (c == ABORT_CHAR || c < 0)
|
||||
_rl_abort_internal ();
|
||||
if (for_pager && (c == NEWLINE || c == RETURN))
|
||||
*** ../bash-3.2-patched/lib/readline/input.c Wed Aug 16 15:15:16 2006
|
||||
--- lib/readline/input.c Wed May 2 16:07:59 2007
|
||||
***************
|
||||
*** 514,518 ****
|
||||
int size;
|
||||
{
|
||||
! int mb_len = 0;
|
||||
size_t mbchar_bytes_length;
|
||||
wchar_t wc;
|
||||
--- 522,526 ----
|
||||
int size;
|
||||
{
|
||||
! int mb_len, c;
|
||||
size_t mbchar_bytes_length;
|
||||
wchar_t wc;
|
||||
***************
|
||||
*** 521,531 ****
|
||||
memset(&ps, 0, sizeof (mbstate_t));
|
||||
memset(&ps_back, 0, sizeof (mbstate_t));
|
||||
!
|
||||
while (mb_len < size)
|
||||
{
|
||||
RL_SETSTATE(RL_STATE_MOREINPUT);
|
||||
! mbchar[mb_len++] = rl_read_key ();
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
|
||||
mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
|
||||
if (mbchar_bytes_length == (size_t)(-1))
|
||||
--- 529,545 ----
|
||||
memset(&ps, 0, sizeof (mbstate_t));
|
||||
memset(&ps_back, 0, sizeof (mbstate_t));
|
||||
!
|
||||
! mb_len = 0;
|
||||
while (mb_len < size)
|
||||
{
|
||||
RL_SETSTATE(RL_STATE_MOREINPUT);
|
||||
! c = rl_read_key ();
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
|
||||
+ if (c < 0)
|
||||
+ break;
|
||||
+
|
||||
+ mbchar[mb_len++] = c;
|
||||
+
|
||||
mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
|
||||
if (mbchar_bytes_length == (size_t)(-1))
|
||||
***************
|
||||
*** 565,569 ****
|
||||
c = first;
|
||||
memset (mb, 0, mlen);
|
||||
! for (i = 0; i < mlen; i++)
|
||||
{
|
||||
mb[i] = (char)c;
|
||||
--- 579,583 ----
|
||||
c = first;
|
||||
memset (mb, 0, mlen);
|
||||
! for (i = 0; c >= 0 && i < mlen; i++)
|
||||
{
|
||||
mb[i] = (char)c;
|
||||
*** ../bash-3.2-patched/lib/readline/isearch.c Mon Dec 26 17:18:53 2005
|
||||
--- lib/readline/isearch.c Fri Mar 9 14:30:59 2007
|
||||
***************
|
||||
*** 328,333 ****
|
||||
|
||||
f = (rl_command_func_t *)NULL;
|
||||
!
|
||||
! /* Translate the keys we do something with to opcodes. */
|
||||
if (c >= 0 && _rl_keymap[c].type == ISFUNC)
|
||||
{
|
||||
--- 328,340 ----
|
||||
|
||||
f = (rl_command_func_t *)NULL;
|
||||
!
|
||||
! if (c < 0)
|
||||
! {
|
||||
! cxt->sflags |= SF_FAILED;
|
||||
! cxt->history_pos = cxt->last_found_line;
|
||||
! return -1;
|
||||
! }
|
||||
!
|
||||
! /* Translate the keys we do something with to opcodes. */
|
||||
if (c >= 0 && _rl_keymap[c].type == ISFUNC)
|
||||
{
|
||||
*** ../bash-3.2-patched/lib/readline/misc.c Mon Dec 26 17:20:46 2005
|
||||
--- lib/readline/misc.c Fri Mar 9 14:44:11 2007
|
||||
***************
|
||||
*** 147,150 ****
|
||||
--- 147,152 ----
|
||||
rl_clear_message ();
|
||||
RL_UNSETSTATE(RL_STATE_NUMERICARG);
|
||||
+ if (key < 0)
|
||||
+ return -1;
|
||||
return (_rl_dispatch (key, _rl_keymap));
|
||||
}
|
||||
*** ../bash-3.2-patched/lib/readline/readline.c Wed Aug 16 15:00:36 2006
|
||||
--- lib/readline/readline.c Fri Mar 9 14:47:24 2007
|
||||
***************
|
||||
*** 646,649 ****
|
||||
--- 669,677 ----
|
||||
{
|
||||
nkey = _rl_subseq_getchar (cxt->okey);
|
||||
+ if (nkey < 0)
|
||||
+ {
|
||||
+ _rl_abort_internal ();
|
||||
+ return -1;
|
||||
+ }
|
||||
r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg);
|
||||
cxt->flags |= KSEQ_DISPATCHED;
|
||||
*** ../bash-3.2-patched/lib/readline/text.c Fri Jul 28 11:55:27 2006
|
||||
--- lib/readline/text.c Sun Mar 25 13:41:38 2007
|
||||
***************
|
||||
*** 858,861 ****
|
||||
--- 864,870 ----
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
|
||||
+ if (c < 0)
|
||||
+ return -1;
|
||||
+
|
||||
#if defined (HANDLE_SIGNALS)
|
||||
if (RL_ISSTATE (RL_STATE_CALLBACK) == 0)
|
||||
***************
|
||||
*** 1521,1524 ****
|
||||
--- 1530,1536 ----
|
||||
mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX);
|
||||
|
||||
+ if (mb_len <= 0)
|
||||
+ return -1;
|
||||
+
|
||||
if (count < 0)
|
||||
return (_rl_char_search_internal (-count, bdir, mbchar, mb_len));
|
||||
***************
|
||||
*** 1537,1540 ****
|
||||
--- 1549,1555 ----
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
|
||||
+ if (c < 0)
|
||||
+ return -1;
|
||||
+
|
||||
if (count < 0)
|
||||
return (_rl_char_search_internal (-count, bdir, c));
|
||||
*** ../bash-3.2-patched/lib/readline/vi_mode.c Sat Jul 29 16:42:28 2006
|
||||
--- lib/readline/vi_mode.c Fri Mar 9 15:02:11 2007
|
||||
***************
|
||||
*** 887,890 ****
|
||||
--- 887,897 ----
|
||||
c = rl_read_key ();
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
+
|
||||
+ if (c < 0)
|
||||
+ {
|
||||
+ *nextkey = 0;
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
*nextkey = c;
|
||||
|
||||
***************
|
||||
*** 903,906 ****
|
||||
--- 910,918 ----
|
||||
c = rl_read_key (); /* real command */
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
+ if (c < 0)
|
||||
+ {
|
||||
+ *nextkey = 0;
|
||||
+ return -1;
|
||||
+ }
|
||||
*nextkey = c;
|
||||
}
|
||||
***************
|
||||
*** 1225,1236 ****
|
||||
_rl_callback_generic_arg *data;
|
||||
{
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
|
||||
#else
|
||||
RL_SETSTATE(RL_STATE_MOREINPUT);
|
||||
! _rl_vi_last_search_char = rl_read_key ();
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
#endif
|
||||
|
||||
_rl_callback_func = 0;
|
||||
_rl_want_redisplay = 1;
|
||||
--- 1243,1262 ----
|
||||
_rl_callback_generic_arg *data;
|
||||
{
|
||||
+ int c;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
! c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
|
||||
#else
|
||||
RL_SETSTATE(RL_STATE_MOREINPUT);
|
||||
! c = rl_read_key ();
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
#endif
|
||||
|
||||
+ if (c <= 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ #if !defined (HANDLE_MULTIBYTE)
|
||||
+ _rl_vi_last_search_char = c;
|
||||
+ #endif
|
||||
+
|
||||
_rl_callback_func = 0;
|
||||
_rl_want_redisplay = 1;
|
||||
***************
|
||||
*** 1248,1251 ****
|
||||
--- 1274,1278 ----
|
||||
int count, key;
|
||||
{
|
||||
+ int c;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
static char *target;
|
||||
***************
|
||||
*** 1294,1302 ****
|
||||
{
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
|
||||
#else
|
||||
RL_SETSTATE(RL_STATE_MOREINPUT);
|
||||
! _rl_vi_last_search_char = rl_read_key ();
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
#endif
|
||||
}
|
||||
--- 1321,1335 ----
|
||||
{
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
! c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
|
||||
! if (c <= 0)
|
||||
! return -1;
|
||||
! _rl_vi_last_search_mblen = c;
|
||||
#else
|
||||
RL_SETSTATE(RL_STATE_MOREINPUT);
|
||||
! c = rl_read_key ();
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
+ if (c < 0)
|
||||
+ return -1;
|
||||
+ _rl_vi_last_search_char = c;
|
||||
#endif
|
||||
}
|
||||
***************
|
||||
*** 1468,1471 ****
|
||||
--- 1501,1507 ----
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
|
||||
+ if (c < 0)
|
||||
+ return -1;
|
||||
+
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
|
||||
***************
|
||||
*** 1486,1489 ****
|
||||
--- 1522,1528 ----
|
||||
_rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
|
||||
|
||||
+ if (c < 0)
|
||||
+ return -1;
|
||||
+
|
||||
_rl_callback_func = 0;
|
||||
_rl_want_redisplay = 1;
|
||||
***************
|
||||
*** 1517,1520 ****
|
||||
--- 1556,1562 ----
|
||||
_rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
|
||||
|
||||
+ if (c < 0)
|
||||
+ return -1;
|
||||
+
|
||||
return (_rl_vi_change_char (count, c, mb));
|
||||
}
|
||||
***************
|
||||
*** 1651,1655 ****
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
|
||||
! if (ch < 'a' || ch > 'z')
|
||||
{
|
||||
rl_ding ();
|
||||
--- 1693,1697 ----
|
||||
RL_UNSETSTATE(RL_STATE_MOREINPUT);
|
||||
|
||||
! if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
|
||||
{
|
||||
rl_ding ();
|
||||
***************
|
||||
*** 1703,1707 ****
|
||||
return 0;
|
||||
}
|
||||
! else if (ch < 'a' || ch > 'z')
|
||||
{
|
||||
rl_ding ();
|
||||
--- 1745,1749 ----
|
||||
return 0;
|
||||
}
|
||||
! else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
|
||||
{
|
||||
rl_ding ();
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 18
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 19
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,183 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-020
|
||||
|
||||
Bug-Reported-by: Ian A Watson <WATSON_IAN_A@LILLY.COM>
|
||||
Bug-Reference-ID: <OFEC551808.69D02C7F-ON8525729A.0045708D-8525729A.0046150B@EliLilly.lilly.com>
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
In some cases of error processing, a jump back to the top-level processing
|
||||
loop from a builtin command would leave the shell in an inconsistent state.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/sig.c Wed Jan 25 14:57:59 2006
|
||||
--- sig.c Sat Mar 10 11:11:30 2007
|
||||
***************
|
||||
*** 351,354 ****
|
||||
--- 351,373 ----
|
||||
#undef XHANDLER
|
||||
|
||||
+ /* Run some of the cleanups that should be performed when we run
|
||||
+ jump_to_top_level from a builtin command context. XXX - might want to
|
||||
+ also call reset_parser here. */
|
||||
+ void
|
||||
+ top_level_cleanup ()
|
||||
+ {
|
||||
+ /* Clean up string parser environment. */
|
||||
+ while (parse_and_execute_level)
|
||||
+ parse_and_execute_cleanup ();
|
||||
+
|
||||
+ #if defined (PROCESS_SUBSTITUTION)
|
||||
+ unlink_fifo_list ();
|
||||
+ #endif /* PROCESS_SUBSTITUTION */
|
||||
+
|
||||
+ run_unwind_protects ();
|
||||
+ loop_level = continuing = breaking = 0;
|
||||
+ return_catch_flag = 0;
|
||||
+ }
|
||||
+
|
||||
/* What to do when we've been interrupted, and it is safe to handle it. */
|
||||
void
|
||||
*** ../bash-3.2-patched/sig.h Wed Jan 25 14:50:27 2006
|
||||
--- sig.h Sat Mar 10 11:14:18 2007
|
||||
***************
|
||||
*** 122,125 ****
|
||||
--- 122,126 ----
|
||||
extern void initialize_terminating_signals __P((void));
|
||||
extern void reset_terminating_signals __P((void));
|
||||
+ extern void top_level_cleanup __P((void));
|
||||
extern void throw_to_top_level __P((void));
|
||||
extern void jump_to_top_level __P((int)) __attribute__((__noreturn__));
|
||||
*** ../bash-3.2-patched/builtins/common.c Tue Apr 3 16:47:13 2007
|
||||
--- builtins/common.c Mon Apr 30 15:01:33 2007
|
||||
***************
|
||||
*** 132,135 ****
|
||||
--- 132,136 ----
|
||||
{
|
||||
builtin_error (_("too many arguments"));
|
||||
+ top_level_cleanup ();
|
||||
jump_to_top_level (DISCARD);
|
||||
}
|
||||
***************
|
||||
*** 396,400 ****
|
||||
throw_to_top_level ();
|
||||
else
|
||||
! jump_to_top_level (DISCARD);
|
||||
}
|
||||
no_args (list->next);
|
||||
--- 410,417 ----
|
||||
throw_to_top_level ();
|
||||
else
|
||||
! {
|
||||
! top_level_cleanup ();
|
||||
! jump_to_top_level (DISCARD);
|
||||
! }
|
||||
}
|
||||
no_args (list->next);
|
||||
*** ../bash-3.2-patched/subst.c Tue Apr 3 16:47:19 2007
|
||||
--- subst.c Tue Jul 17 09:45:11 2007
|
||||
***************
|
||||
*** 1279,1283 ****
|
||||
if (no_longjmp_on_fatal_error == 0)
|
||||
{ /* { */
|
||||
! report_error ("bad substitution: no closing `%s' in %s", "}", string);
|
||||
last_command_exit_value = EXECUTION_FAILURE;
|
||||
exp_jump_to_top_level (DISCARD);
|
||||
--- 1290,1294 ----
|
||||
if (no_longjmp_on_fatal_error == 0)
|
||||
{ /* { */
|
||||
! report_error (_("bad substitution: no closing `%s' in %s"), "}", string);
|
||||
last_command_exit_value = EXECUTION_FAILURE;
|
||||
exp_jump_to_top_level (DISCARD);
|
||||
***************
|
||||
*** 7662,7665 ****
|
||||
--- 7706,7711 ----
|
||||
expand_no_split_dollar_star = 0; /* XXX */
|
||||
expanding_redir = 0;
|
||||
+
|
||||
+ top_level_cleanup (); /* from sig.c */
|
||||
|
||||
jump_to_top_level (v);
|
||||
***************
|
||||
*** 7880,7884 ****
|
||||
{
|
||||
report_error (_("no match: %s"), tlist->word->word);
|
||||
! jump_to_top_level (DISCARD);
|
||||
}
|
||||
else if (allow_null_glob_expansion == 0)
|
||||
--- 7927,7931 ----
|
||||
{
|
||||
report_error (_("no match: %s"), tlist->word->word);
|
||||
! exp_jump_to_top_level (DISCARD);
|
||||
}
|
||||
else if (allow_null_glob_expansion == 0)
|
||||
*** ../bash-3.2-patched/arrayfunc.c Thu Jul 27 09:37:59 2006
|
||||
--- arrayfunc.c Thu May 31 11:55:46 2007
|
||||
***************
|
||||
*** 619,622 ****
|
||||
--- 619,624 ----
|
||||
{
|
||||
last_command_exit_value = EXECUTION_FAILURE;
|
||||
+
|
||||
+ top_level_cleanup ();
|
||||
jump_to_top_level (DISCARD);
|
||||
}
|
||||
*** ../bash-3.2-patched/expr.c Wed Dec 28 17:47:03 2005
|
||||
--- expr.c Tue Apr 24 14:17:59 2007
|
||||
***************
|
||||
*** 930,933 ****
|
||||
--- 930,934 ----
|
||||
{
|
||||
expr_unwind ();
|
||||
+ top_level_cleanup ();
|
||||
jump_to_top_level (DISCARD);
|
||||
}
|
||||
*** ../bash-3.2-patched/variables.c Fri Sep 8 13:33:32 2006
|
||||
--- variables.c Tue Jul 17 09:54:59 2007
|
||||
***************
|
||||
*** 1822,1830 ****
|
||||
lval = evalexp (oval, &expok); /* ksh93 seems to do this */
|
||||
if (expok == 0)
|
||||
! jump_to_top_level (DISCARD);
|
||||
}
|
||||
rval = evalexp (value, &expok);
|
||||
if (expok == 0)
|
||||
! jump_to_top_level (DISCARD);
|
||||
if (flags & ASS_APPEND)
|
||||
rval += lval;
|
||||
--- 1855,1869 ----
|
||||
lval = evalexp (oval, &expok); /* ksh93 seems to do this */
|
||||
if (expok == 0)
|
||||
! {
|
||||
! top_level_cleanup ();
|
||||
! jump_to_top_level (DISCARD);
|
||||
! }
|
||||
}
|
||||
rval = evalexp (value, &expok);
|
||||
if (expok == 0)
|
||||
! {
|
||||
! top_level_cleanup ();
|
||||
! jump_to_top_level (DISCARD);
|
||||
! }
|
||||
if (flags & ASS_APPEND)
|
||||
rval += lval;
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 19
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 20
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,72 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-021
|
||||
|
||||
Bug-Reported-by: BAGSHAW Paul RD-TECH-REN <paul.bagshaw@orange-ftgroup.com>
|
||||
Bug-Reference-ID: <941BA0BF46DB8F4983FF7C8AFE800BC205EA7D4B@ftrdmel3.rd.francetelecom.fr>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00065.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When the parser read a backslash-escaped character that would be treated
|
||||
internally as an escape, it would double the number of escape characters.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/parse.y Mon Oct 30 17:22:00 2006
|
||||
--- parse.y Sat Mar 24 17:13:20 2007
|
||||
***************
|
||||
*** 3377,3381 ****
|
||||
{
|
||||
pass_next_character = 0;
|
||||
! goto got_character;
|
||||
}
|
||||
|
||||
--- 3377,3381 ----
|
||||
{
|
||||
pass_next_character = 0;
|
||||
! goto got_escaped_character;
|
||||
}
|
||||
|
||||
***************
|
||||
*** 3651,3660 ****
|
||||
got_character:
|
||||
|
||||
- all_digit_token &= DIGIT (character);
|
||||
- dollar_present |= character == '$';
|
||||
-
|
||||
if (character == CTLESC || character == CTLNUL)
|
||||
token[token_index++] = CTLESC;
|
||||
|
||||
token[token_index++] = character;
|
||||
|
||||
--- 3651,3662 ----
|
||||
got_character:
|
||||
|
||||
if (character == CTLESC || character == CTLNUL)
|
||||
token[token_index++] = CTLESC;
|
||||
|
||||
+ got_escaped_character:
|
||||
+
|
||||
+ all_digit_token &= DIGIT (character);
|
||||
+ dollar_present |= character == '$';
|
||||
+
|
||||
token[token_index++] = character;
|
||||
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 20
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 21
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,126 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-022
|
||||
|
||||
Bug-Reported-by: Chet Ramey <chet.ramey@cwru.edu>
|
||||
Bug-Reference-ID:
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
POSIX specifies that the `read' builtin invoked from an interative shell
|
||||
must prompt with $PS2 when a line is continued using a backslash while
|
||||
reading from a terminal.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/builtins/read.def Tue Sep 19 08:45:48 2006
|
||||
--- builtins/read.def Thu May 24 16:03:30 2007
|
||||
***************
|
||||
*** 128,133 ****
|
||||
{
|
||||
register char *varname;
|
||||
! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code;
|
||||
! int input_is_tty, input_is_pipe, unbuffered_read;
|
||||
int raw, edit, nchars, silent, have_timeout, fd;
|
||||
unsigned int tmout;
|
||||
--- 131,136 ----
|
||||
{
|
||||
register char *varname;
|
||||
! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2;
|
||||
! int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul;
|
||||
int raw, edit, nchars, silent, have_timeout, fd;
|
||||
unsigned int tmout;
|
||||
***************
|
||||
*** 135,139 ****
|
||||
char c;
|
||||
char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
|
||||
! char *e, *t, *t1;
|
||||
struct stat tsb;
|
||||
SHELL_VAR *var;
|
||||
--- 138,142 ----
|
||||
char c;
|
||||
char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
|
||||
! char *e, *t, *t1, *ps2;
|
||||
struct stat tsb;
|
||||
SHELL_VAR *var;
|
||||
***************
|
||||
*** 149,152 ****
|
||||
--- 152,156 ----
|
||||
USE_VAR(i);
|
||||
USE_VAR(pass_next);
|
||||
+ USE_VAR(print_ps2);
|
||||
USE_VAR(saw_escape);
|
||||
USE_VAR(input_is_pipe);
|
||||
***************
|
||||
*** 164,167 ****
|
||||
--- 168,172 ----
|
||||
#endif
|
||||
USE_VAR(list);
|
||||
+ USE_VAR(ps2);
|
||||
|
||||
i = 0; /* Index into the string that we are reading. */
|
||||
***************
|
||||
*** 387,391 ****
|
||||
#endif
|
||||
|
||||
! for (eof = retval = 0;;)
|
||||
{
|
||||
#if defined (READLINE)
|
||||
--- 394,399 ----
|
||||
#endif
|
||||
|
||||
! ps2 = 0;
|
||||
! for (print_ps2 = eof = retval = 0;;)
|
||||
{
|
||||
#if defined (READLINE)
|
||||
***************
|
||||
*** 413,416 ****
|
||||
--- 421,433 ----
|
||||
#endif
|
||||
|
||||
+ if (print_ps2)
|
||||
+ {
|
||||
+ if (ps2 == 0)
|
||||
+ ps2 = get_string_value ("PS2");
|
||||
+ fprintf (stderr, "%s", ps2 ? ps2 : "");
|
||||
+ fflush (stderr);
|
||||
+ print_ps2 = 0;
|
||||
+ }
|
||||
+
|
||||
if (unbuffered_read)
|
||||
retval = zread (fd, &c, 1);
|
||||
***************
|
||||
*** 441,445 ****
|
||||
pass_next = 0;
|
||||
if (c == '\n')
|
||||
! i--; /* back up over the CTLESC */
|
||||
else
|
||||
goto add_char;
|
||||
--- 458,466 ----
|
||||
pass_next = 0;
|
||||
if (c == '\n')
|
||||
! {
|
||||
! i--; /* back up over the CTLESC */
|
||||
! if (interactive && input_is_tty && raw == 0)
|
||||
! print_ps2 = 1;
|
||||
! }
|
||||
else
|
||||
goto add_char;
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 21
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 22
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,51 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-023
|
||||
|
||||
Bug-Reported-by: Chet Ramey <chet.ramey@cwru.edu>
|
||||
Bug-Reference-ID:
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
When an error occurs during the pattern removal word expansion, the shell
|
||||
can free unallocated memory or free memory multiple times.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/subst.c Tue Apr 3 16:47:19 2007
|
||||
--- subst.c Tue Jul 17 09:45:11 2007
|
||||
***************
|
||||
*** 3975,3979 ****
|
||||
patstr++;
|
||||
|
||||
! pattern = getpattern (patstr, quoted, 1);
|
||||
|
||||
temp1 = (char *)NULL; /* shut up gcc */
|
||||
--- 4008,4016 ----
|
||||
patstr++;
|
||||
|
||||
! /* Need to pass getpattern newly-allocated memory in case of expansion --
|
||||
! the expansion code will free the passed string on an error. */
|
||||
! temp1 = savestring (patstr);
|
||||
! pattern = getpattern (temp1, quoted, 1);
|
||||
! free (temp1);
|
||||
|
||||
temp1 = (char *)NULL; /* shut up gcc */
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 22
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 23
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,77 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-024
|
||||
|
||||
Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
|
||||
Bug-Reference-ID: <1178376645.9063.25.camel@localhost>
|
||||
Bug-Reference-URL: http://bugs.gentoo.org/177095
|
||||
|
||||
Bug-Description:
|
||||
|
||||
The readline display code miscalculated the screen position when performing
|
||||
a redisplay in which the new text occupies more screen space that the old,
|
||||
but takes fewer bytes to do so (e.g., when replacing a shorter string
|
||||
containing multibyte characters with a longer one containing only ASCII).
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/lib/readline/display.c Thu Apr 26 11:38:22 2007
|
||||
--- lib/readline/display.c Thu Jul 12 23:10:10 2007
|
||||
***************
|
||||
*** 1519,1527 ****
|
||||
/* Non-zero if we're increasing the number of lines. */
|
||||
int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
|
||||
/* Sometimes it is cheaper to print the characters rather than
|
||||
use the terminal's capabilities. If we're growing the number
|
||||
of lines, make sure we actually cause the new line to wrap
|
||||
around on auto-wrapping terminals. */
|
||||
! if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
|
||||
{
|
||||
/* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
|
||||
--- 1568,1596 ----
|
||||
/* Non-zero if we're increasing the number of lines. */
|
||||
int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
|
||||
+ /* If col_lendiff is > 0, implying that the new string takes up more
|
||||
+ screen real estate than the old, but lendiff is < 0, meaning that it
|
||||
+ takes fewer bytes, we need to just output the characters starting
|
||||
+ from the first difference. These will overwrite what is on the
|
||||
+ display, so there's no reason to do a smart update. This can really
|
||||
+ only happen in a multibyte environment. */
|
||||
+ if (lendiff < 0)
|
||||
+ {
|
||||
+ _rl_output_some_chars (nfd, temp);
|
||||
+ _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
|
||||
+ /* If nfd begins before any invisible characters in the prompt,
|
||||
+ adjust _rl_last_c_pos to account for wrap_offset and set
|
||||
+ cpos_adjusted to let the caller know. */
|
||||
+ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
|
||||
+ {
|
||||
+ _rl_last_c_pos -= wrap_offset;
|
||||
+ cpos_adjusted = 1;
|
||||
+ }
|
||||
+ return;
|
||||
+ }
|
||||
/* Sometimes it is cheaper to print the characters rather than
|
||||
use the terminal's capabilities. If we're growing the number
|
||||
of lines, make sure we actually cause the new line to wrap
|
||||
around on auto-wrapping terminals. */
|
||||
! else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
|
||||
{
|
||||
/* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 23
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 24
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,79 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-025
|
||||
|
||||
Bug-Reported-by: Tom Bjorkholm <tom.bjorkholm@ericsson.com>
|
||||
Bug-Reference-ID: <AEA1A32F001C6B4F98614B5B80D7647D01C075E9@esealmw115.eemea.ericsson.se>
|
||||
Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html
|
||||
|
||||
Bug-Description:
|
||||
|
||||
An off-by-one error in readline's input buffering caused readline to drop
|
||||
each 511th character of buffered input (e.g., when pasting a large amount
|
||||
of data into a terminal window).
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/lib/readline/input.c Wed Aug 16 15:15:16 2006
|
||||
--- lib/readline/input.c Tue Jul 17 09:24:21 2007
|
||||
***************
|
||||
*** 134,139 ****
|
||||
|
||||
*key = ibuffer[pop_index++];
|
||||
!
|
||||
if (pop_index >= ibuffer_len)
|
||||
pop_index = 0;
|
||||
|
||||
--- 134,142 ----
|
||||
|
||||
*key = ibuffer[pop_index++];
|
||||
! #if 0
|
||||
if (pop_index >= ibuffer_len)
|
||||
+ #else
|
||||
+ if (pop_index > ibuffer_len)
|
||||
+ #endif
|
||||
pop_index = 0;
|
||||
|
||||
***************
|
||||
*** 251,255 ****
|
||||
{
|
||||
k = (*rl_getc_function) (rl_instream);
|
||||
! rl_stuff_char (k);
|
||||
if (k == NEWLINE || k == RETURN)
|
||||
break;
|
||||
--- 254,259 ----
|
||||
{
|
||||
k = (*rl_getc_function) (rl_instream);
|
||||
! if (rl_stuff_char (k) == 0)
|
||||
! break; /* some problem; no more room */
|
||||
if (k == NEWLINE || k == RETURN)
|
||||
break;
|
||||
***************
|
||||
*** 374,378 ****
|
||||
--- 378,386 ----
|
||||
}
|
||||
ibuffer[push_index++] = key;
|
||||
+ #if 0
|
||||
if (push_index >= ibuffer_len)
|
||||
+ #else
|
||||
+ if (push_index > ibuffer_len)
|
||||
+ #endif
|
||||
push_index = 0;
|
||||
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 24
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 25
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
@@ -1,82 +0,0 @@
|
||||
BASH PATCH REPORT
|
||||
=================
|
||||
|
||||
Bash-Release: 3.2
|
||||
Patch-ID: bash32-026
|
||||
|
||||
Bug-Reported-by: Chet Ramey <chet.ramey@case.edu>
|
||||
Bug-Reference-ID:
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
This keeps the Apple linker from attempting to link bash against Apple's
|
||||
readline library "replacement" rather than the one shipped with bash. It
|
||||
extends the configure workaround to Mac OS X Leopard (10.5).
|
||||
|
||||
As a side effect, the patch updates the copyright date displayed in the
|
||||
version string.
|
||||
|
||||
You must re-run configure after applying the patch, and before rebuilding
|
||||
bash.
|
||||
|
||||
Patch:
|
||||
|
||||
*** ../bash-3.2-patched/configure.in 2007-03-06 11:07:38.000000000 -0500
|
||||
--- configure.in 2007-11-23 15:37:41.000000000 -0500
|
||||
***************
|
||||
*** 519,523 ****
|
||||
# dynamic version
|
||||
case "${host_os}" in
|
||||
! darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;;
|
||||
*) READLINE_LIB=-lreadline ;;
|
||||
esac
|
||||
--- 519,523 ----
|
||||
# dynamic version
|
||||
case "${host_os}" in
|
||||
! darwin[[89]]*) READLINE_LIB='${READLINE_LIBRARY}' ;;
|
||||
*) READLINE_LIB=-lreadline ;;
|
||||
esac
|
||||
*** ../bash-3.2-patched/configure 2007-03-24 14:51:22.000000000 -0400
|
||||
--- configure 2007-11-23 15:46:15.000000000 -0500
|
||||
***************
|
||||
*** 4872,4876 ****
|
||||
# dynamic version
|
||||
case "${host_os}" in
|
||||
! darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;;
|
||||
*) READLINE_LIB=-lreadline ;;
|
||||
esac
|
||||
--- 4872,4876 ----
|
||||
# dynamic version
|
||||
case "${host_os}" in
|
||||
! darwin[89]*) READLINE_LIB='${READLINE_LIBRARY}' ;;
|
||||
*) READLINE_LIB=-lreadline ;;
|
||||
esac
|
||||
*** ../bash-3.2-patched/version.c 2005-05-16 11:58:34.000000000 -0400
|
||||
--- version.c 2007-11-23 16:03:40.000000000 -0500
|
||||
***************
|
||||
*** 80,83 ****
|
||||
printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE);
|
||||
if (extended)
|
||||
! printf (_("Copyright (C) 2005 Free Software Foundation, Inc.\n"));
|
||||
}
|
||||
--- 80,83 ----
|
||||
printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE);
|
||||
if (extended)
|
||||
! printf (_("Copyright (C) 2007 Free Software Foundation, Inc.\n"));
|
||||
}
|
||||
*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006
|
||||
--- patchlevel.h Mon Oct 16 14:22:54 2006
|
||||
***************
|
||||
*** 26,30 ****
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 25
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
--- 26,30 ----
|
||||
looks for to find the patch level (for the sccs version string). */
|
||||
|
||||
! #define PATCHLEVEL 26
|
||||
|
||||
#endif /* _PATCHLEVEL_H_ */
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user