summaryrefslogtreecommitdiffstats
path: root/knetworkconf
diff options
context:
space:
mode:
Diffstat (limited to 'knetworkconf')
-rwxr-xr-xknetworkconf/backends/network-conf.in24
-rw-r--r--knetworkconf/backends/network.pl.in373
-rw-r--r--knetworkconf/backends/platform.pl.in17
-rw-r--r--knetworkconf/backends/replace.pl.in2
-rw-r--r--knetworkconf/knetworkconf/knetworkconfdlg.ui4
5 files changed, 230 insertions, 190 deletions
diff --git a/knetworkconf/backends/network-conf.in b/knetworkconf/backends/network-conf.in
index 104eb88..88af2df 100755
--- a/knetworkconf/backends/network-conf.in
+++ b/knetworkconf/backends/network-conf.in
@@ -48,7 +48,7 @@ BEGIN {
$SCRIPTSDIR = ".";
$DOTIN = ".in";
}
-
+
require "$SCRIPTSDIR/general.pl$DOTIN";
require "$SCRIPTSDIR/platform.pl$DOTIN";
require "$SCRIPTSDIR/util.pl$DOTIN";
@@ -70,13 +70,13 @@ $version = "@VERSION@";
"yoper-2.2",
"blackpanther-4.0",
"debian-2.2", "debian-3.0", "debian-3.1", "debian-4.0", "debian-5.0", "debian-testing",
- "ubuntu-5.04", "ubuntu-5.10", "ubuntu-6.06", "ubuntu-6.10", "ubuntu-7.04", "ubuntu-7.10", "ubuntu-8.04",
+ "ubuntu-5.04", "ubuntu-5.10", "ubuntu-6.06", "ubuntu-6.10", "ubuntu-7.04", "ubuntu-7.10", "ubuntu-8.04", "ubuntu-8.10", "ubuntu-9.04", "ubuntu-9.10", "ubuntu-10.04", "ubuntu-10.10",
"suse-7.0", "suse-9.0", "suse-9.1",
"turbolinux-7.0", "fedora-1", "fedora-2", "fedora-3", "fedora-4", "fedora-5", "rpath",
"pld-1.0", "pld-1.1", "pld-1.99",
"conectiva-9", "conectiva-10",
"vine-3.0", "vine-3.1",
- "ark",
+ "ark",
"slackware-9.1.0", "slackware-10.0.0", "slackware-10.1.0", "slackware-10.2.0",
"gentoo", "vlos-1.2", "freebsd-5", "freebsd-6");
@@ -200,7 +200,7 @@ sub xml_parse_dialing
my (%hash, $name, $elem);
shift @$tree;
-
+
while ($elem = shift @$tree)
{
$hash{$elem} = &gst_xml_get_pcdata (shift @$tree);
@@ -316,7 +316,7 @@ sub xml_print_configuration
{
my ($h) = @_;
my @scalar_keys =
- qw(auto hostname gateway gatewaydev gwdevunsup domain
+ qw(auto hostname gateway gatewaydev gwdevunsup domain
hostmatch workgroup smbdesc winsserver winsuse smbuse
smartdhcpcd smbinstalled dialinstalled name);
my @array_keys =
@@ -369,7 +369,7 @@ sub xml_print_interfaces
{
$type = &gst_network_get_interface_type ($dev);
}
-
+
&gst_xml_print_vspace ();
&gst_xml_print_line ("<interface type='$type'>");
&gst_xml_enter ();
@@ -465,7 +465,7 @@ sub get
sub set
{
my $hash;
-
+
$hash = &xml_parse ();
&write_profiledb ($hash);
&gst_network_conf_set ($hash);
@@ -507,7 +507,7 @@ sub save_profiles
sub filter
{
my $hash;
-
+
$hash = &xml_parse ();
&gst_report_end ();
&xml_print ($hash);
@@ -518,7 +518,7 @@ sub enable_iface
my ($tool, $iface, $enabled) = @_;
my (%dist_attrib, $iface_set);
my %hash = ("configuration" => {"file" => $iface});
-
+
%dist_attrib = &gst_network_get_interface_replace_table ();
$iface_set = $dist_attrib{"iface_set"};
&$iface_set (\%hash, undef, $enabled, 1);
@@ -531,7 +531,7 @@ sub enable_iface
&drop_dhcp_connection ($iface);
&drop_pppd_connection ($iface);
}
-
+
# Don't forget to do gst_end when the reports are over!
&gst_report_end ();
# XML output would come here, but this directive returns no XML.
@@ -564,7 +564,7 @@ sub list_ifaces
my ($ifaces, $iface, @arr);
$ifaces = &gst_network_interfaces_get_info ();
-
+
foreach $iface (keys %$ifaces)
{
push @arr, $$ifaces{$iface};
@@ -583,7 +583,7 @@ sub detect_modem
$device = &gst_network_autodetect_modem ();
&gst_report_end ();
-
+
&gst_xml_print_begin ("network-modem-device");
&gst_xml_print_pcdata ("device", $device) if ($device ne undef);
&gst_xml_print_end ("network-modem-device");
diff --git a/knetworkconf/backends/network.pl.in b/knetworkconf/backends/network.pl.in
index 0e8b12c..d3daee4 100644
--- a/knetworkconf/backends/network.pl.in
+++ b/knetworkconf/backends/network.pl.in
@@ -121,7 +121,7 @@ sub gst_network_get_freebsd_wireless_ifaces
sub gst_network_get_wireless_ifaces
{
my ($plat) = $$tool{"system"};
-
+
return &gst_network_get_linux_wireless_ifaces if ($plat eq "Linux");
return &gst_network_get_freebsd_wireless_ifaces if ($plat eq "FreeBSD");
}
@@ -243,7 +243,7 @@ sub gst_network_enable_modem
$command .= " connect \'$command_chat -v -f $chat_file\'";
$ret = &gst_file_run ($command);
-
+
return $ret;
}
@@ -310,7 +310,7 @@ sub gst_network_enable_iface_with_config
$login = $$hash{"configuration"}{"login"};
$pw = $$hash{"configuration"}{"password"};
- &gst_network_set_pap_passwd ("/etc/ppp/pap-secrets", $login, $pw);
+ &gst_network_set_pap_passwd ("/etc/ppp/pap-secrets", $login, $pw);
&gst_network_set_pap_passwd ("/etc/ppp/chap-secrets", $login, $pw);
if (&gst_network_check_pppd_plugin ("capiplugin"))
@@ -352,7 +352,7 @@ sub gst_network_autodetect_modem
{
@arr = ("/dev/modem", "/dev/cuaa0", "/dev/cuaa1", "/dev/cuaa2", "/dev/cuaa3");
}
-
+
foreach $tty (@arr) {
$temp = `pppd lcp-max-configure 1 nodetach noauth nocrtscts $tty connect \"chat -t1 \'\' AT OK\" 2>/dev/null`;
@@ -445,7 +445,7 @@ sub gst_network_ipv4_calc_subnet_vec
sub gst_network_ipv4_calc_subnet
{
my ($addr, $mask) = @_;
-
+
return &gst_network_ipv4_vec2str (&gst_network_ipv4_calc_subnet_vec);
}
@@ -453,7 +453,7 @@ sub gst_network_ipv4_calc_subnet
sub gst_network_ipv4_calc_bcast_vec
{
my ($addr, $mask) = @_;
-
+
$addrvec = &gst_network_ipv4_str2vec ($addr);
$maskvec = &gst_network_ipv4_str2vec ($mask);
@@ -506,6 +506,11 @@ sub gst_network_get_broadcast_ping_cmd
"ubuntu-7.04" => "debian-2.2",
"ubuntu-7.10" => "debian-2.2",
"ubuntu-8.04" => "debian-2.2",
+ "ubuntu-8.10" => "debian-2.2",
+ "ubuntu-9.04" => "debian-2.2",
+ "ubuntu-9.10" => "debian-2.2",
+ "ubuntu-10.10" => "debian-2.2",
+ "ubuntu-10.10" => "debian-2.2",
"mandrake-7.1" => "debian-2.2",
"mandrake-7.2" => "debian-2.2",
"mandrake-9.0" => "debian-2.2",
@@ -654,7 +659,7 @@ sub gst_network_lookup_address_collect
{
my ($procs) = @_;
my ($name, @names, $proc);
-
+
# For every process, if the "ready" flag is on, read info.
# Else, populate with the given address. Then kill child and wait for it to die.
foreach $proc (@$procs)
@@ -722,19 +727,19 @@ sub gst_network_dialing_get
"Dialer (.*)" => "dialer",
"Modem(.*)" => "modem"
);
-
+
my ($file) = @_;
my (%ret, @sections);
my ($i, $j, $name, $val);
&gst_report_enter ();
&gst_report ("network_dialing_get");
-
+
@sections = &gst_parse_ini_sections ($file);
foreach $i (@sections)
{
my %hash;
-
+
$hash{"type"} = "unknown";
foreach $j (keys %title2type)
{
@@ -744,7 +749,7 @@ sub gst_network_dialing_get
$hash{"type"} = $title2type{$j};
}
}
-
+
$ret{$hash{"name"}} = \%hash;
foreach $j (keys %vars)
@@ -777,7 +782,7 @@ sub gst_network_dialing_get
$hash{"phone"} =~ s/^.*[wW]//;
}
}
-
+
&gst_report_leave ();
return \%ret;
}
@@ -843,7 +848,7 @@ sub gst_network_freebsd_interfaces_get_info
$fd = &gst_file_run_pipe_read ("ifconfig");
return {} if $fd eq undef;
-
+
while (<$fd>)
{
chomp;
@@ -853,7 +858,7 @@ sub gst_network_freebsd_interfaces_get_info
$ifaces{$dev}{"dev"} = $dev;
$ifaces{$dev}{"enabled"} = 1 if ($2 =~ /[<,]UP[,>]/);
}
-
+
s/^[ \t]+//;
if ($dev)
{
@@ -863,7 +868,7 @@ sub gst_network_freebsd_interfaces_get_info
$ifaces{$dev}{"bcast"} = $1 if /broadcast[ \t]+([^ \t]+)/i;
}
}
-
+
&gst_file_close ($fd);
&gst_report_leave ();
return \%ifaces;
@@ -878,7 +883,7 @@ sub gst_network_linux_interfaces_get_info
$fd = &gst_file_run_pipe_read ("ifconfig -a");
return {} if $fd eq undef;
-
+
while (<$fd>)
{
chomp;
@@ -888,7 +893,7 @@ sub gst_network_linux_interfaces_get_info
$ifaces{$dev}{"enabled"} = 0;
$ifaces{$dev}{"dev"} = $dev;
}
-
+
s/^[ \t]+//;
if ($dev)
{
@@ -899,7 +904,7 @@ sub gst_network_linux_interfaces_get_info
$ifaces{$dev}{"enabled"} = 1 if /^UP[ \t]/i;
}
}
-
+
&gst_file_close ($fd);
&gst_report_leave ();
return \%ifaces;
@@ -937,7 +942,7 @@ sub gst_network_active_interfaces_get
$fd = &gst_file_run_pipe_read ("ifconfig");
return undef if $fd eq undef;
-
+
while (<$fd>)
{
chomp;
@@ -994,7 +999,7 @@ sub gst_network_suse70_active_interfaces_get
return @ret;
}
-
+
sub gst_network_interface_active
{
my ($search_iface, $proc) = @_;
@@ -1016,7 +1021,7 @@ sub gst_network_interface_active
sub gst_network_interface_ensure_broadcast_and_network
{
my ($iface) = @_;
-
+
if (exists $$iface{"netmask"} &&
exists $$iface{"address"})
{
@@ -1037,7 +1042,7 @@ sub gst_network_sysconfig_dir_ifaces_get_existing
my ($dir) = @_;
my (@ret, $i, $name);
local *IFACE_DIR;
-
+
if (opendir IFACE_DIR, "$gst_prefix/$dir")
{
foreach $i (readdir (IFACE_DIR))
@@ -1059,24 +1064,24 @@ sub gst_network_sysconfig_rh62_ifaces_get_existing
sub gst_network_sysconfig_rh72_ifaces_get_existing
{
my ($ret);
-
+
# This syncs /etc/sysconfig/network-scripts and /etc/sysconfig/networking
&gst_file_run ("redhat-config-network-cmd");
-
+
$ret = &gst_network_sysconfig_dir_ifaces_get_existing
("/etc/sysconfig/networking/profiles/default");
-
- &gst_arr_merge ($ret,
+
+ &gst_arr_merge ($ret,
&gst_network_sysconfig_dir_ifaces_get_existing
("/etc/sysconfig/networking/devices"));
-
+
return @$ret;
}
sub gst_network_debian_ifaces_get_existing
{
my (@ret, @stanzas, $stanza);
-
+
@stanzas = &gst_parse_interfaces_stanzas ("$gst_prefix/etc/network/interfaces", "iface");
foreach $stanza (@stanzas)
@@ -1097,7 +1102,7 @@ sub gst_network_suse70_ifaces_get_existing
$fd = &gst_file_open_read_from_names ($file);
return @ret if !$fd;
-
+
while ($i = <$fd>)
{
if ($i =~ /^[ \t]*NETDEV_([0-9]+)=/)
@@ -1211,7 +1216,7 @@ sub gst_network_suse70_parse_iface_auto
{
my ($file, $iface, $key) = @_;
my ($val, $i);
-
+
$val = &gst_parse_sh_split ($file, $key, "[ \t]+");
foreach $i (@$val)
@@ -1226,7 +1231,7 @@ sub gst_network_suse70_replace_iface_auto
{
my ($file, $iface, $key, $value) = @_;
my ($val, $i, $found, @ret);
-
+
$val = &gst_parse_sh_split ($file, $key, "[ \t]+");
foreach $i (@$val)
@@ -1273,9 +1278,9 @@ sub gst_network_suse70_set_ifconfig_arg
my ($val);
$val = &gst_network_suse70_parse_iface_sh ($file, $iface, "IFCONFIG");
-
+
return 0 if $val =~ /^dhcpclient$/ || $val =~ /^bootp$/;
-
+
if (! ($val =~ s/([ \t]+$key[ \t]+)[^ \t]+/$1$value/))
{
$val =~ s/[ \t]+up$//;
@@ -1291,9 +1296,9 @@ sub gst_network_suse70_set_ifconfig_ip
my ($file, $iface, $value) = @_;
$val = &gst_network_suse70_parse_iface_sh ($file, $iface, "IFCONFIG");
-
+
return 0 if $val =~ /^dhcpclient$/ || $val =~ /^bootp$/;
-
+
if (! ($val =~ s/^[0-9\.]+([ \t])/$value$1/))
{
$val = "$value $val";
@@ -1362,7 +1367,7 @@ sub gst_network_dial2iface
$iface{"file"} = $iface{"name"} = $iface{"section"} = $name;
$iface{"update_dns"} = 1 if ($iface{"update_dns"} eq "");
$iface{"set_default_gw"} = 1 if ($iface{"set_default_gw"} eq "");
-
+
return \%iface;
}
@@ -1414,9 +1419,9 @@ sub gst_network_suse70_set_ppp
if ($$i{"dev"} =~ /^ppp/)
{
my ($tmp, $wv, $name);
-
+
push @ppp_devs, $i;
-
+
# This takes care of connection name changes.
$wv = $$i{"section"};
$name = $$i{"name"};
@@ -1428,7 +1433,7 @@ sub gst_network_suse70_set_ppp
$$tmp{"name"} = $name;
$$dial{$name} = $tmp;
}
-
+
# Then merges interface with dialing.
&gst_network_iface2dial ($dial, $i);
}
@@ -1513,7 +1518,7 @@ sub gst_network_slackware91_create_pppgo
{
$pppd = &gst_file_locate_tool ("pppd");
$chat = &gst_file_locate_tool ("chat");
-
+
# create a simple ppp-go from scratch
# this script is based on the one that's created by pppsetup
$contents = "killall -INT pppd 2>/dev/null \n";
@@ -1726,14 +1731,14 @@ sub gst_network_rh62_get_file
$dev = $$iface{"dev"};
$pre = "$gst_prefix/etc/sysconfig/network-scripts/ifcfg-";
-
+
return $dev if ! -e "$pre$dev";
-
+
$dev =~ s/[0-9]*$//;
$i = 0;
$i ++ while (-e "$pre$dev$i");
-
+
return "$dev$i";
}
@@ -1742,21 +1747,21 @@ sub gst_network_rh72_get_file
my ($iface) = @_;
my ($pre, $i, $dev);
- $dev = $$iface{"dev"};
+ $dev = $$iface{"dev"};
$pre = "$gst_prefix/etc/sysconfig/networking/devices/ifcfg-";
-
+
return $dev if ! -e "$pre$dev";
-
+
$i = 0;
$i ++ while (-e "$pre$dev.$i");
-
+
return "$dev.$i";
}
sub gst_network_deb22_get_file
{
my ($iface) = @_;
-
+
return $$iface{"dev"};
}
@@ -1768,7 +1773,7 @@ sub gst_network_suse70_get_file
$i = 0;
$i ++ while (&gst_parse_sh ($file, "NETDEV_$i") ne "");
-
+
return $i;
}
@@ -1776,17 +1781,17 @@ sub gst_network_pld10_get_file
{
my ($iface) = @_;
my ($pre, $i, $dev);
-
+
$dev = $$iface{"dev"};
$pre = "$gst_prefix/etc/sysconfig/interfaces/ifcfg-";
-
+
return $dev if ! -e "$pre$dev";
-
+
$dev =~ s/[0-9]*$//;
-
+
$i = 0;
$i ++ while (-e "$pre$dev$i");
-
+
return "$dev$i";
}
@@ -1828,13 +1833,18 @@ sub gst_network_get_file
"debian-4.0" => \&gst_network_deb22_get_file,
"debian-5.0" => \&gst_network_deb22_get_file,
"debian-testing" => \&gst_network_deb22_get_file,
- "ubuntu-5.04" => \&gst_network_deb22_get_file,
- "ubuntu-5.10" => \&gst_network_deb22_get_file,
- "ubuntu-6.06" => \&gst_network_deb22_get_file,
- "ubuntu-6.10" => \&gst_network_deb22_get_file,
- "ubuntu-7.04" => \&gst_network_deb22_get_file,
- "ubuntu-7.10" => \&gst_network_deb22_get_file,
- "ubuntu-8.04" => \&gst_network_deb22_get_file,
+ "ubuntu-5.04" => \&gst_network_deb22_get_file,
+ "ubuntu-5.10" => \&gst_network_deb22_get_file,
+ "ubuntu-6.06" => \&gst_network_deb22_get_file,
+ "ubuntu-6.10" => \&gst_network_deb22_get_file,
+ "ubuntu-7.04" => \&gst_network_deb22_get_file,
+ "ubuntu-7.10" => \&gst_network_deb22_get_file,
+ "ubuntu-8.04" => \&gst_network_deb22_get_file,
+ "ubuntu-8.10" => \&gst_network_deb22_get_file,
+ "ubuntu-9.04" => \&gst_network_deb22_get_file,
+ "ubuntu-9.10" => \&gst_network_deb22_get_file,
+ "ubuntu-10.04" => \&gst_network_deb22_get_file,
+ "ubuntu-10.10" => \&gst_network_deb22_get_file,
"suse-7.0" => \&gst_network_suse70_get_file,
"suse-9.0" => \&gst_network_deb22_get_file,
"suse-9.1" => \&gst_network_deb22_get_file,
@@ -1921,7 +1931,7 @@ sub gst_network_route_set_default_gw
/([a-z0-9]+)$/;
$curr_gatewaydev = $1;
}
-
+
last;
}
}
@@ -1948,7 +1958,7 @@ sub gst_network_run_hostname
sub gst_network_dialing_get_section_name
{
my ($dial) = @_;
-
+
my %type2title =
(
"dialer" => "Dialer ",
@@ -2053,7 +2063,7 @@ sub gst_network_dialing_set
&gst_report_leave ();
chmod (0600, $file) if !$ret;
-
+
return $ret;
}
@@ -2074,7 +2084,7 @@ sub gst_network_rh62_interface_activate_by_dev
&gst_report ("network_iface_deactivate", $dev);
return -1 if &gst_file_run ("ifdown $dev");
}
-
+
&gst_report_leave ();
return 0;
@@ -2116,7 +2126,7 @@ sub gst_network_suse9_interface_activate
{
$dev = $$hash{"dev"};
}
-
+
&gst_network_rh62_interface_activate_by_dev ($dev, $enabled);
}
}
@@ -2130,7 +2140,7 @@ sub gst_network_suse70_interface_activate_by_dev
$network = $paths[1] . "/network";
&gst_report_enter ();
-
+
if ($enabled)
{
&gst_report ("network_iface_deactivate", $hash{"dev"});
@@ -2141,7 +2151,7 @@ sub gst_network_suse70_interface_activate_by_dev
&gst_report ("network_iface_activate", $hash{"dev"});
return -1 if &gst_file_run ("$network stop $dev");
}
-
+
&gst_report_leave ();
return 0;
@@ -2300,7 +2310,7 @@ sub gst_network_remove_pap_entry
&gst_report_enter ();
&gst_report ("network_remove_pap", $file, $login);
-
+
$buff = &gst_file_buffer_load ($file);
foreach $i (@$buff)
@@ -2340,7 +2350,7 @@ sub gst_network_rh72_interface_delete
$filedev = $$old_hash{"configuration"}{"file"};
$dev = $$old_hash{"dev"};
$login = $$old_hash{"configuration"}{"login"};
-
+
&gst_network_rh62_interface_activate_by_dev ($filedev, 0);
if ($login ne "")
@@ -2352,7 +2362,7 @@ sub gst_network_rh72_interface_delete
&gst_file_remove ("$gst_prefix/etc/sysconfig/networking/devices/ifcfg-$filedev");
&gst_file_remove ("$gst_prefix/etc/sysconfig/networking/profiles/default/ifcfg-$filedev");
&gst_file_remove ("$gst_prefix/etc/sysconfig/network-scripts/ifcfg-$dev");
-
+
&gst_file_run ("redhat-config-network-cmd");
}
@@ -2363,7 +2373,7 @@ sub gst_network_deb22_interface_delete
&gst_network_rh62_interface_activate_by_dev ($dev, 0);
&gst_replace_interfaces_iface_stanza_delete ("$gst_prefix/etc/network/interfaces", $dev);
-
+
$login = $old_hash{"configuration"}{"login"};
if ($login ne "")
{
@@ -2414,16 +2424,16 @@ sub gst_network_pld10_interface_delete
my $dev = $$old_hash{"configuration"}{"file"};
my $file = "$gst_prefix/etc/sysconfig/interfaces/ifcfg-$dev";
my $login;
-
+
&gst_network_rh62_interface_activate_by_dev ($dev, 0);
-
+
$login = $old_hash{"configuration"}{"login"};
if ($login ne "")
{
&gst_network_remove_pap_entry ("/etc/ppp/pap-secrets", $login);
&gst_network_remove_pap_entry ("/etc/ppp/chap-secrets", $login);
}
-
+
&gst_file_remove ($file);
}
@@ -2506,7 +2516,7 @@ sub gst_network_freebsd_interface_delete
&gst_file_buffer_clean ($buff);
&gst_file_buffer_save ($buff, $pppconf);
}
-
+
&gst_replace_sh ($file, "ifconfig_$dev", "");
&gst_file_remove ($startif);
}
@@ -2568,7 +2578,7 @@ sub gst_network_interface_set
sub gst_network_interfaces_set
{
- my ($old_hash, $values_hash) = @_;
+ my ($old_hash, $values_hash) = @_;
my (%dist_attrib, @ifaces, %fn);
my ($value, $proc);
my ($i, $j);
@@ -2578,7 +2588,7 @@ sub gst_network_interfaces_set
&gst_report_enter ();
&gst_report ("network_ifaces_set");
-
+
%dist_attrib = &gst_network_get_interface_replace_table ();
$old_hash = $$old_hash{"interface"};
@@ -2587,9 +2597,13 @@ sub gst_network_interfaces_set
foreach $i (keys %$values_hash)
{
- # delete it if it's no longer configured
- if (exists $$old_hash{$i}{"configuration"} &&
- not exists $$values_hash{$i}{"configuration"})
+ # delete it if it's no longer configured or boot protocol is dhcp,
+ # so that network-manager see the card again
+ if ((exists $$old_hash{$i}{"configuration"} &&
+ not exists $$values_hash{$i}{"configuration"}) ||
+ (exists $$values_hash{$i}{"configuration"} &&
+ $$values_hash{$i}{"configuration"}{"bootproto"} eq "dhcp")
+ )
{
&$set_proc ($$values_hash{$i}, $$old_hash{$i}, 0, 1);
&$delete_proc ($$old_hash{$i});
@@ -2621,7 +2635,7 @@ sub gst_network_conf_set
my $values_hash = $_[0];
my $old_hash;
my %dist_attrib;
-
+
$old_hash = &gst_network_conf_get ();
&gst_network_ensure_loopback ($values_hash, $old_hash);
@@ -2646,7 +2660,7 @@ sub gst_network_get_pap_passwd
&gst_report_leave ();
$passwd =~ s/^\"([^\"]*)\"$/$1/;
-
+
return $passwd;
}
@@ -2704,7 +2718,7 @@ sub gst_network_set_ppp_options_re
chomp $line;
$pre_space = $1 if $line =~ s/^([ \t]+)//;
$post_comment = $1 if $line =~ s/([ \t]*\#.*)//;
-
+
if ($line =~ /$re/)
{
$line = "$value\n";
@@ -2716,7 +2730,7 @@ sub gst_network_set_ppp_options_re
}
push @$buff, "$value\n" if !$replaced;
-
+
&gst_file_buffer_clean ($buff);
$ret = &gst_file_buffer_save ($buff, $file);
&gst_report_leave ();
@@ -2754,17 +2768,17 @@ sub gst_network_get_ppp_options_unsup
{
$_ = $$line;
next if /^[ \t]*$/;
-
+
foreach $re (@known_options)
{
next GET_LINE if /^$re/;
}
-
+
$res .= "$_ ";
}
-
+
chop $res;
-
+
return $res;
}
@@ -2776,7 +2790,7 @@ sub gst_network_set_ppp_options_unsup
my @known_options = ("usepeerdns", "mtu", "mru", "user", "/dev/[^ \t]+", "[0-9]+",
"defaultroute", "debug", "persist", "escape", "crtscts", "connect",
"remotename", "hide-password", "noauth", "noipdefault", "ipparam", "name \".*\"");
-
+
# The options in the last row are those that are on by default in pppd and we don't handle,
# so we ignore them, as they are set implicitly if not specified.
@@ -2797,10 +2811,10 @@ sub gst_network_set_ppp_options_unsup
$line = $pre_space . $post_comment . "\n";
$line = "" if $line =~ /^[ \t]*$/;
}
-
+
$value =~ s/[ \t]+([^0-9])/\n$1/g;
push @$buff, $value . "\n";
-
+
&gst_file_buffer_clean ($buff);
$ret = &gst_file_buffer_save ($buff, $file);
&gst_report_leave ();
@@ -2819,7 +2833,7 @@ sub gst_network_rh62_parse_bootproto
my $ret;
$ret = &gst_parse_sh ($file, $key);
-
+
if (!exists $rh62_to_proto_name{$ret})
{
&gst_report ("network_bootproto_unsup", $file, $ret);
@@ -2893,7 +2907,7 @@ sub gst_network_deb22_replace_bootproto
"none" => "static"
);
- my %dev_to_method =
+ my %dev_to_method =
(
"lo" => "loopback",
"ppp" => "ppp",
@@ -2952,7 +2966,7 @@ sub gst_network_suse70_parse_bootproto
&gst_report ("network_bootproto_unsup", $iface, $ret);
return "none";
}
-
+
return $suse70_to_proto_name {$ret};
}
@@ -2984,7 +2998,7 @@ sub gst_network_pld10_parse_bootproto
my $ret;
$ret = &gst_parse_sh ($file, $key);
-
+
if (!exists $pld10_to_proto_name{$ret})
{
&gst_report ("network_bootproto_unsup", $file, $ret);
@@ -3219,7 +3233,7 @@ sub gst_network_get_freebsd5_ppp_persist
sub gst_network_pump_get_nodns
{
my ($file, $iface, $bootproto) = @_;
-
+
return undef if (!&gst_network_pump_iface_supported ($iface));
return &gst_parse_pump_get_iface_kw_not ($file, $iface, "nodns");
@@ -3242,11 +3256,11 @@ sub gst_network_debian_parse_remote_address
&gst_report_enter ();
&gst_report ("network_get_remote", $iface);
-
+
@tuples = &gst_parse_interfaces_option_tuple ($file, $iface, "up", 1);
&gst_report_leave ();
-
+
foreach $tuple (@tuples)
{
@res = $$tuple[1] =~ /[ \t]+pointopoint[ \t]+([^ \t]+)/;
@@ -3260,10 +3274,10 @@ sub gst_network_debian_replace_remote_address
{
my ($file, $iface, $value) = @_;
my ($ifconfig, $ret);
-
+
&gst_report_enter ();
&gst_report ("network_set_remote", $iface);
-
+
$ifconfig = &gst_file_locate_tool ("ifconfig");
$ret = &gst_replace_interfaces_option_str ($file, $iface, "up", "$ifconfig $iface pointopoint $value");
@@ -3319,7 +3333,7 @@ sub gst_network_debian_woody_set_auto
# I'm including the hash here, although the man page says it's not supported.
last if $$buff[$line_no] =~ s/[ \t]$iface([\# \t\n])/$1/;
}
-
+
$line_no ++;
}
@@ -3339,7 +3353,7 @@ sub gst_network_debian_woody_set_auto
}
$$buff[$line_no] =~ s/auto[ \t]*$//;
}
-
+
return &gst_file_buffer_save ($buff, $file);
}
@@ -3489,7 +3503,7 @@ sub gst_network_suse90_set_auto
{
my ($file, $key, $enabled) = @_;
my ($ret);
-
+
if($enabled)
{
return &gst_replace_sh($file, $key, "onboot");
@@ -3497,7 +3511,7 @@ sub gst_network_suse90_set_auto
else
{
return &gst_replace_sh($file, $key, "manual");
- }
+ }
}
# Return IP address or netmask, depending on $what
@@ -3506,10 +3520,10 @@ sub gst_network_pld10_get_ipaddr
my ($file, $key, $what) = @_;
my ($ipaddr, $netmask, $ret, $i);
my @netmask_prefixes = (0, 128, 192, 224, 240, 248, 252, 254, 255);
-
+
$ipaddr = &gst_parse_sh($file, $key);
return undef if $ipaddr eq "";
-
+
if($ipaddr =~ /([^\/]*)\/([[:digit:]]*)/)
{
$netmask = $2;
@@ -3665,13 +3679,13 @@ sub gst_network_suse90_replace_gateway
{
my ($file, $dev, $address, $netmask, $value) = @_;
-
- return &gst_replace_split ($file, "default", "[ \t]+", "$value \- $dev") if &gst_network_is_ip_in_same_network ($address, $value, $netmask);
-# return &gst_replace_split ($file, "default", "[ \t]+", "$value \- $dev") ;
- return undef;
+
+ return &gst_replace_split ($file, "default", "[ \t]+", "$value \- $dev") if &gst_network_is_ip_in_same_network ($address, $value, $netmask);
+# return &gst_replace_split ($file, "default", "[ \t]+", "$value \- $dev") ;
+ return undef;
}
-
+
# runs a function if the interface is of type $type
sub gst_network_check_type
@@ -3778,7 +3792,7 @@ sub gst_network_suse90_replace_provider_file_func
sub gst_network_suse90_replace_provider_file
{
my ($provider, $key, $value) = @_;
- #make sure the function is called only by modem
+ #make sure the function is called only by modem
if ($provider =~ /ppp/)
{
return &gst_network_suse90_replace_provider_file_func ($provider, $key, $value, \&gst_replace_sh);
@@ -3788,7 +3802,7 @@ sub gst_network_suse90_replace_provider_file
sub gst_network_suse90_replace_provider_file_bool
{
my ($provider, $key, $value) = @_;
- #make sure the function is called only by modem
+ #make sure the function is called only by modem
if ($provider =~ /ppp/)
{
return &gst_network_suse90_replace_provider_file_func ($provider, $key, $value, \&gst_replace_sh_bool);
@@ -3958,13 +3972,18 @@ sub gst_network_ensure_loopback_interface
"debian-4.0" => "lo",
"debian-5.0" => "lo",
"debian-testing" => "lo",
- "ubuntu-5.04" => "lo",
- "ubuntu-5.10" => "lo",
- "ubuntu-6.06" => "lo",
- "ubuntu-6.10" => "lo",
- "ubuntu-7.04" => "lo",
- "ubuntu-7.10" => "lo",
- "ubuntu-8.04" => "lo",
+ "ubuntu-5.04" => "lo",
+ "ubuntu-5.10" => "lo",
+ "ubuntu-6.06" => "lo",
+ "ubuntu-6.10" => "lo",
+ "ubuntu-7.04" => "lo",
+ "ubuntu-7.10" => "lo",
+ "ubuntu-8.04" => "lo",
+ "ubuntu-8.10" => "lo",
+ "ubuntu-9.04" => "lo",
+ "ubuntu-9.10" => "lo",
+ "ubuntu-10.04" => "lo",
+ "ubuntu-10.10" => "lo",
"suse-7.0" => "",
"suse-9.0" => "",
"suse-9.1" => "",
@@ -4029,7 +4048,7 @@ sub gst_network_statichost_add_alias
{
return if ($i eq $alias);
}
-
+
push @$localhost, $alias;
}
@@ -4046,7 +4065,7 @@ sub gst_network_statichost_remove_alias
}
}
}
-
+
sub gst_network_ensure_loopback_statichost
{
my ($statichost, $hostname, $old_hostname, $lo_ip) = @_;
@@ -4056,11 +4075,11 @@ sub gst_network_ensure_loopback_statichost
{
my $localhost = $$statichost{$lo_ip};
&gst_network_statichost_remove_alias ($localhost, $old_hostname) if ($old_hostname);
- &gst_network_statichost_add_alias ($localhost, $hostname);
+ &gst_network_statichost_remove_alias ($localhost, $hostname);
}
else
{
- $$statichost{$lo_ip} = [ ("localhost", "localhost.localdomain", $hostname) ];
+ $$statichost{$lo_ip} = [ ("localhost") ];
}
}
@@ -4068,10 +4087,13 @@ sub get_network_get_lo_ip
{
my ($statichost) = @_;
- foreach $i (keys %$statichost)
- {
- return $i if ($i =~ /^127\./);
- }
+# Ugly workarround, it is considered you have one lo only, which is wrong, so let's
+# force the first to be 127.0.0.1 and let the script work for other ones as if they were
+# classic hosts entries... At least sudo won't break...
+# foreach $i (keys %$statichost)
+# {
+# return $i if ($i =~ /^127\./);
+# }
return "127.0.0.1";
}
@@ -4125,8 +4147,8 @@ sub gst_network_get_parse_table
"mandriva-2007.1" => "redhat-7.0",
"yoper-2.2" => "redhat-7.0",
"blackpanther-4.0" => "redhat-7.0",
- "conectiva-9" => "redhat-7.0",
- "conectiva-10" => "redhat-7.0",
+ "conectiva-9" => "redhat-7.0",
+ "conectiva-10" => "redhat-7.0",
"debian-2.2" => "debian-2.2",
"debian-3.0" => "debian-2.2",
"debian-3.1" => "debian-2.2",
@@ -4140,6 +4162,11 @@ sub gst_network_get_parse_table
"ubuntu-7.04" => "debian-2.2",
"ubuntu-7.10" => "debian-2.2",
"ubuntu-8.04" => "debian-2.2",
+ "ubuntu-8.10" => "debian-2.2",
+ "ubuntu-9.04" => "debian-2.2",
+ "ubuntu-9.10" => "debian-2.2",
+ "ubuntu-10.04" => "debian-2.2",
+ "ubuntu-10.10" => "debian-2.2",
"suse-7.0" => "suse-7.0",
"suse-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
@@ -4191,7 +4218,7 @@ sub gst_network_get_parse_table
[ "order", \&gst_parse_split_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_parse_split_first_bool, HOST_CONF, "multi", "[ \t]+" ],
[ "statichost", \&gst_parse_split_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
+ [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
[ "smbdesc", \&gst_network_rh_get_smb_desc, SMB_CONF, "global", "server string", "%hostname%" ],
[ "winsserver", \&gst_parse_ini, SMB_CONF, "global", "wins server" ],
[ "winsuse", \&gst_parse_ini_bool, SMB_CONF, "global", "wins support" ],
@@ -4226,7 +4253,7 @@ sub gst_network_get_parse_table
[ "order", \&gst_parse_split_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_parse_split_first_bool, HOST_CONF, "multi", "[ \t]+" ],
[ "statichost", \&gst_parse_split_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
+ [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
[ "smbdesc", \&gst_network_rh_get_smb_desc, SMB_CONF, "global", "server string", "%hostname%" ],
[ "winsserver", \&gst_parse_ini, SMB_CONF, "global", "wins server" ],
[ "winsuse", \&gst_parse_ini_bool, SMB_CONF, "global", "wins support" ],
@@ -4265,7 +4292,7 @@ sub gst_network_get_parse_table
[ "order", \&gst_parse_split_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_parse_split_first_bool, HOST_CONF, "multi", "[ \t]+" ],
[ "statichost", \&gst_parse_split_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
+ [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
[ "smbdesc", \&gst_network_rh_get_smb_desc, SMB_CONF, "global", "server string", "%hostname%" ],
[ "winsserver", \&gst_parse_ini, SMB_CONF, "global", "wins server" ],
[ "winsuse", \&gst_parse_ini_bool, SMB_CONF, "global", "wins support" ],
@@ -4286,7 +4313,6 @@ sub gst_network_get_parse_table
HOST_CONF => "/etc/host.conf",
HOSTS => "/etc/hosts",
HOSTNAME => "/etc/hostname",
- SMB_CONF => "/etc/samba/smb.conf",
WVDIAL => "/etc/wvdial.conf"
},
table =>
@@ -4302,12 +4328,6 @@ sub gst_network_get_parse_table
[ "order", \&gst_parse_split_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_parse_split_first_bool, HOST_CONF, "multi", "[ \t]+" ],
[ "statichost", \&gst_parse_split_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
- [ "smbdesc", \&gst_parse_ini, SMB_CONF, "global", "server string" ],
- [ "winsserver", \&gst_parse_ini, SMB_CONF, "global", "wins server" ],
- [ "winsuse", \&gst_parse_ini_bool, SMB_CONF, "global", "wins support" ],
- [ "smbuse", \&gst_service_sysv_get_status_any, "smbd", "nmbd" ],
- [ "smbinstalled", \&gst_service_sysv_installed, "samba" ],
[ "smartdhcpcd", \&gst_file_tool_installed, "pump" ],
[ "dialinstalled", \&gst_file_tool_installed, "wvdial" ],
[ "interface", \&gst_network_interfaces_get ]
@@ -4338,14 +4358,14 @@ sub gst_network_get_parse_table
[ "searchdomain", \&gst_parse_split_first_array_unique, RESOLV_CONF, "search", "[ \t]+", "[ \t]+" ],
# This was to take the values from SuSEConfig, but a better solution is to get
# the configuration from /etc/resolv.conf and then replace in rc.config, so those
-# files stay in sync.
+# files stay in sync.
# [ "nameserver", \&gst_parse_sh_split, RC_CONFIG, NAMESERVER, "[ \t]+" ],
# [ "searchdomain", \&gst_parse_sh_split, RC_CONFIG, SEARCHLIST, "[ \t]+" ],
[ "order", \&gst_parse_split_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_parse_split_first_bool, HOST_CONF, "multi", "[ \t]+" ],
[ "statichost", \&gst_parse_split_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
- [ "smbdesc", \&gst_parse_ini, SMB_CONF, "global", "server string" ],
+ [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
+ [ "smbdesc", \&gst_parse_ini, SMB_CONF, "global", "server string" ],
[ "winsserver", \&gst_parse_ini, SMB_CONF, "global", "wins server" ],
[ "winsuse", \&gst_parse_ini_bool, SMB_CONF, "global", "wins support" ],
[ "smbuse", \&gst_service_sysv_get_status_any, "smbd", "nmbd" ],
@@ -4389,7 +4409,7 @@ sub gst_network_get_parse_table
[ "gatewaydev", \&gst_network_get_gateway_dev_from_address, "%interface%", "%gateway%" ],
]
},
-
+
"pld-1.0" =>
{
fn =>
@@ -4413,7 +4433,7 @@ sub gst_network_get_parse_table
[ "order", \&gst_parse_split_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_parse_split_first_bool, HOST_CONF, "multi", "[ \t]+" ],
[ "statichost", \&gst_parse_split_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
+ [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
[ "smbdesc", \&gst_network_rh_get_smb_desc, SMB_CONF, "global", "server string", "%hostname%" ],
[ "winsserver", \&gst_parse_ini, SMB_CONF, "global", "wins server" ],
[ "winsuse", \&gst_parse_ini_bool, SMB_CONF, "global", "wins support" ],
@@ -4446,7 +4466,7 @@ sub gst_network_get_parse_table
[ "order", \&gst_parse_split_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_parse_split_first_bool, HOST_CONF, "multi", "[ \t]+" ],
[ "statichost", \&gst_parse_split_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
+ [ "workgroup", \&gst_parse_ini, SMB_CONF, "global", "workgroup" ],
[ "smbdesc", \&gst_network_rh_get_smb_desc, SMB_CONF, "global", "server string", "%hostname%" ],
[ "winsserver", \&gst_parse_ini, SMB_CONF, "global", "wins server" ],
[ "winsuse", \&gst_parse_ini_bool, SMB_CONF, "global", "wins support" ],
@@ -4520,7 +4540,7 @@ sub gst_network_get_parse_table
]
},
);
-
+
my $dist = $dist_map{$gst_dist};
return %{$dist_tables{$dist}} if $dist;
@@ -4571,6 +4591,11 @@ sub gst_network_get_interface_parse_table
"ubuntu-7.04" => "debian-3.0",
"ubuntu-7.10" => "debian-3.0",
"ubuntu-8.04" => "debian-3.0",
+ "ubuntu-8.10" => "debian-3.0",
+ "ubuntu-9.04" => "debian-3.0",
+ "ubuntu-9.10" => "debian-3.0",
+ "ubuntu-10.04" => "debian-3.0",
+ "ubuntu-10.10" => "debian-3.0",
"suse-7.0" => "suse-7.0",
"suse-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
@@ -4596,7 +4621,7 @@ sub gst_network_get_interface_parse_table
"freebsd-5" => "freebsd-5",
"freebsd-6" => "freebsd-5",
);
-
+
my %dist_tables =
(
"redhat-6.2" =>
@@ -5369,7 +5394,7 @@ sub gst_network_get_interface_parse_table
]
},
);
-
+
my $dist = $dist_map{$gst_dist};
return %{$dist_tables{$dist}} if $dist;
@@ -5419,6 +5444,11 @@ sub gst_network_get_replace_table
"ubuntu-7.04" => "debian-2.2",
"ubuntu-7.10" => "debian-2.2",
"ubuntu-8.04" => "debian-2.2",
+ "ubuntu-8.10" => "debian-2.2",
+ "ubuntu-9.04" => "debian-2.2",
+ "ubuntu-9.10" => "debian-2.2",
+ "ubuntu-10.04" => "debian-2.2",
+ "ubuntu-10.10" => "debian-2.2",
"suse-7.0" => "suse-7.0",
"suse-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
@@ -5472,7 +5502,7 @@ sub gst_network_get_replace_table
[ "order", \&gst_replace_join_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_replace_join_first_bool, HOST_CONF, "multi", "[ \t]+", "on", "off" ],
[ "statichost", \&gst_replace_join_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_replace_ini, SMB_CONF, "global", "workgroup" ],
+ [ "workgroup", \&gst_replace_ini, SMB_CONF, "global", "workgroup" ],
[ "smbdesc", \&gst_replace_ini, SMB_CONF, "global", "server string" ],
[ "winsserver", \&gst_replace_ini, SMB_CONF, "global", "wins server" ],
[ "winsuse", \&gst_replace_ini_bool, SMB_CONF, "global", "wins support" ],
@@ -5481,7 +5511,7 @@ sub gst_network_get_replace_table
[ "gateway", \&gst_network_route_set_default_gw, "%gatewaydev%" ]
]
},
-
+
"redhat-7.0" =>
{
fn =>
@@ -5507,7 +5537,7 @@ sub gst_network_get_replace_table
[ "order", \&gst_replace_join_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_replace_join_first_bool, HOST_CONF, "multi", "[ \t]+", "on", "off" ],
[ "statichost", \&gst_replace_join_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_replace_ini, SMB_CONF, "global", "workgroup" ],
+ [ "workgroup", \&gst_replace_ini, SMB_CONF, "global", "workgroup" ],
[ "smbdesc", \&gst_replace_ini, SMB_CONF, "global", "server string" ],
[ "winsserver", \&gst_replace_ini, SMB_CONF, "global", "wins server" ],
[ "winsuse", \&gst_replace_ini_bool, SMB_CONF, "global", "wins support" ],
@@ -5546,7 +5576,7 @@ sub gst_network_get_replace_table
[ "order", \&gst_replace_join_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_replace_join_first_bool, HOST_CONF, "multi", "[ \t]+", "on", "off" ],
[ "statichost", \&gst_replace_join_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_replace_ini, SMB_CONF, "global", "workgroup" ],
+ [ "workgroup", \&gst_replace_ini, SMB_CONF, "global", "workgroup" ],
[ "smbdesc", \&gst_replace_ini, SMB_CONF, "global", "server string" ],
[ "winsserver", \&gst_replace_ini, SMB_CONF, "global", "wins server" ],
[ "winsuse", \&gst_replace_ini_bool, SMB_CONF, "global", "wins support" ],
@@ -5614,13 +5644,13 @@ sub gst_network_get_replace_table
[ "order", \&gst_replace_join_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_replace_join_first_bool, HOST_CONF, "multi", "[ \t]+", "on", "off" ],
[ "statichost", \&gst_replace_join_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_replace_ini, SMB_CONF, "global", "workgroup" ],
+ [ "workgroup", \&gst_replace_ini, SMB_CONF, "global", "workgroup" ],
[ "smbdesc", \&gst_replace_ini, SMB_CONF, "global", "server string" ],
[ "winsserver", \&gst_replace_ini, SMB_CONF, "global", "wins server" ],
[ "winsuse", \&gst_replace_ini_bool, SMB_CONF, "global", "wins support" ],
[ "smbuse", \&gst_service_sysv_set_status, 20, "smb", "%smbuse%" ],
[ "interface", \&gst_network_suse70_set_ppp, [WVDIAL, "%dialing%"] ],
-# We're calling this sepparated cuz we are going to call wvdial to activate.
+# We're calling this sepparated cuz we are going to call wvdial to activate.
[ "interface", \&gst_network_suse70_activate_ppp ],
[ "interface", \&gst_network_interfaces_set, OLD_HASH ],
[ "_always_", \&gst_file_run, SUSECONFIG ],
@@ -5657,7 +5687,7 @@ sub gst_network_get_replace_table
[ "interface", \&gst_network_interfaces_set, OLD_HASH ],
]
},
-
+
"pld-1.0" =>
{
fn =>
@@ -5683,7 +5713,7 @@ sub gst_network_get_replace_table
[ "order", \&gst_replace_join_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_replace_join_first_bool, HOST_CONF, "multi", "[ \t]+", "on", "off" ],
[ "statichost", \&gst_replace_join_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_replace_ini, SMB_CONF, "global", "workgroup" ],
+ [ "workgroup", \&gst_replace_ini, SMB_CONF, "global", "workgroup" ],
[ "smbdesc", \&gst_replace_ini, SMB_CONF, "global", "server string" ],
[ "winsserver", \&gst_replace_ini, SMB_CONF, "global", "wins server" ],
[ "winsuse", \&gst_replace_ini_bool, SMB_CONF, "global", "wins support" ],
@@ -5715,7 +5745,7 @@ sub gst_network_get_replace_table
[ "order", \&gst_replace_join_first_array, HOST_CONF, "order", "[ \t]+", ",[ \t]*" ],
[ "hostmatch", \&gst_replace_join_first_bool, HOST_CONF, "multi", "[ \t]+", "on", "off" ],
[ "statichost", \&gst_replace_join_hash, HOSTS, "[ \t]+", "[ \t]+" ],
- [ "workgroup", \&gst_replace_ini, SMB_CONF, "global", "workgroup" ],
+ [ "workgroup", \&gst_replace_ini, SMB_CONF, "global", "workgroup" ],
[ "smbdesc", \&gst_replace_ini, SMB_CONF, "global", "server string" ],
[ "winsserver", \&gst_replace_ini, SMB_CONF, "global", "wins server" ],
[ "winsuse", \&gst_replace_ini_bool, SMB_CONF, "global", "wins support" ],
@@ -5785,7 +5815,7 @@ sub gst_network_get_replace_table
]
}
);
-
+
my $dist = $dist_map{$gst_dist};
return %{$dist_tables{$dist}} if $dist;
@@ -5835,6 +5865,11 @@ sub gst_network_get_interface_replace_table
"ubuntu-7.04" => "debian-3.0",
"ubuntu-7.10" => "debian-3.0",
"ubuntu-8.04" => "debian-3.0",
+ "ubuntu-8.10" => "debian-3.0",
+ "ubuntu-9.04" => "debian-3.0",
+ "ubuntu-9.10" => "debian-3.0",
+ "ubuntu-10.04" => "debian-3.0",
+ "ubuntu-10.10" => "debian-3.0",
"suse-7.0" => "suse-7.0",
"suse-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
@@ -5981,7 +6016,7 @@ sub gst_network_get_interface_replace_table
[ "external_line", \&gst_network_check_type, ["%dev%", "modem", \&gst_replace_ini, WVDIAL, "Dialer %section%", "Dial Prefix" ]],
]
},
-
+
"redhat-8.0" =>
{
iface_set => \&gst_network_rh62_interface_activate,
@@ -6043,7 +6078,7 @@ sub gst_network_get_interface_replace_table
[ "external_line", \&gst_network_check_type, ["%dev%", "modem", \&gst_replace_ini, WVDIAL, "Dialer %section%", "Dial Prefix" ]],
]
},
-
+
"vine-3.0" =>
{
iface_set => \&gst_network_rh62_interface_activate,
@@ -6347,7 +6382,7 @@ sub gst_network_get_interface_replace_table
},
table =>
[
-# bootproto has to go second for suse, as it uses the same value for bootproto and params.
+# bootproto has to go second for suse, as it uses the same value for bootproto and params.
[ "bootproto", \&gst_network_suse70_replace_bootproto, [IFCFG, IFACE] ],
[ "auto", \&gst_network_suse70_replace_iface_auto, [IFCFG, IFACE], NETCONFIG ],
[ "dev", \&gst_network_suse70_replace_iface_sh, [IFCFG, IFACE], NETDEV ],
@@ -6363,12 +6398,12 @@ sub gst_network_get_interface_replace_table
[ "update_dns", \&gst_replace_kw, PPP_OPTIONS, "usepeerdns" ]
]
},
-
+
"suse-9.0" =>
{
- iface_set => \&gst_network_suse9_interface_activate,
- iface_delete => \&gst_network_suse90_interface_delete,
- ifaces_get => \&gst_network_suse90_ifaces_get_existing,
+ iface_set => \&gst_network_suse9_interface_activate,
+ iface_delete => \&gst_network_suse90_interface_delete,
+ ifaces_get => \&gst_network_suse90_ifaces_get_existing,
fn =>
{
IFCFG => "/etc/sysconfig/network/ifcfg-#iface#",
@@ -6380,7 +6415,7 @@ sub gst_network_get_interface_replace_table
[
[ "auto", \&gst_network_suse90_set_auto, IFCFG, STARTMODE ],
[ "bootproto", \&gst_network_suse90_replace_bootproto, IFCFG, BOOTPROTO ],
- [ "address", \&gst_replace_sh, IFCFG, IPADDR ],
+ [ "address", \&gst_replace_sh, IFCFG, IPADDR ],
[ "netmask", \&gst_replace_sh, IFCFG, NETMASK ],
[ "remote_address", \&gst_replace_sh, IFCFG, REMOTE_IPADDR ],
[ "essid", \&gst_replace_sh, IFCFG, WIRELESS_ESSID ],
@@ -6594,7 +6629,7 @@ sub gst_network_get_interface_replace_table
]
}
);
-
+
my $dist = $dist_map{$gst_dist};
return %{$dist_tables{$dist}} if $dist;
diff --git a/knetworkconf/backends/platform.pl.in b/knetworkconf/backends/platform.pl.in
index c81a9e1..1a5b7eb 100644
--- a/knetworkconf/backends/platform.pl.in
+++ b/knetworkconf/backends/platform.pl.in
@@ -51,6 +51,11 @@ $PLATFORM_INFO = {
"ubuntu-7.04" => "Kubuntu 7.04, Feisty Fawn",
"ubuntu-7.10" => "Kubuntu 7.10, Gutsy Gibbon",
"ubuntu-8.04" => "Kubuntu 8.04, Hardy Heron",
+ "ubuntu-8.10" => "Kubuntu 8.10, Intrepid Ibex",
+ "ubuntu-9.04" => "Kubuntu 9.04, Jaunty Jackalope",
+ "ubuntu-9.10" => "Kubuntu 9.10, Karmic Koala",
+ "ubuntu-10.04" => "Kubuntu 10.04, Lucid Lynx",
+ "ubuntu-10.10" => "Kubuntu 10.10, Unknown Yet",
"redhat-5.2" => "Red Hat Linux 5.2 Apollo",
"redhat-6.0" => "Red Hat Linux 6.0 Hedwig",
"redhat-6.1" => "Red Hat Linux 6.1 Cartman",
@@ -109,13 +114,13 @@ $PLATFORM_INFO = {
"rpath" => "rPath Linux",
"ark" => "Ark Linux",
};
-
+
sub check_lsb
{
my ($ver, $dist);
# my %vermap =
# ("3.0" => "woody");
-
+
my %distmap =
("Debian" => "debian"),
("Mandrake" => "mandrake"),
@@ -125,7 +130,7 @@ sub check_lsb
# gst_prefix not required here: parse already does that for us.
$dist = lc (&gst_parse_sh ("/etc/lsb-release", "DISTRIB_ID"));
$ver = lc (&gst_parse_sh ("/etc/lsb-release", "DISTRIB_RELEASE"));
-
+
# $ver = $vermap{$ver} if exists $vermap{$ver};
$dist = $distmap{$dist} if exists $dirmap{$dir};
@@ -305,12 +310,12 @@ sub check_blackpanther
if ($ver =~ /^Linux Black Panther release (\S+)/)
{
close BLACKPANTHER;
- return "blackPanther-$1";
+ return "blackPanther-$1";
}
elsif ($ver =~ /^Black Panther ( L|l)inux release ([\d\.]+)/i)
{
close BLACKPANTHER;
- return "blackPanther-$2";
+ return "blackPanther-$2";
}
}
@@ -586,7 +591,7 @@ sub gst_platform_guess
if ($$tool{"system"} =~ /$plat/)
{
my ($check, $dist);
-
+
foreach $check (@{$check{$plat}})
{
$dist = &$check ();
diff --git a/knetworkconf/backends/replace.pl.in b/knetworkconf/backends/replace.pl.in
index 79e5cf2..677c56e 100644
--- a/knetworkconf/backends/replace.pl.in
+++ b/knetworkconf/backends/replace.pl.in
@@ -1000,7 +1000,7 @@ sub gst_replace_interfaces_line_is_stanza
{
my ($line) = @_;
- return 1 if $line =~ /^(iface|auto|mapping)[ \t]+[^ \t]/;
+ return 1 if $line =~ /^(iface|auto|mapping|allow-\w+)[ \t]+[^ \t]/;
return 0;
}
diff --git a/knetworkconf/knetworkconf/knetworkconfdlg.ui b/knetworkconf/knetworkconf/knetworkconfdlg.ui
index d738479..a2fa917 100644
--- a/knetworkconf/knetworkconf/knetworkconfdlg.ui
+++ b/knetworkconf/knetworkconf/knetworkconfdlg.ui
@@ -893,10 +893,10 @@
<data format="PNG" length="1108">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000041b49444154388d9d956148a3751cc7bff3ecb6bb149e8186c2f56290912b38f6908417058b043d7b9504a5f522f5459d16c8cda2d45e9441748b38721dd2f6227208ea2c74d338ce5d4c9ca0ee913aa671ca1ed263cfdcd69ee76ae9d2e9b717534f421df58387df9b872f9fe7fbf93fcf039238ee0280beeb7d4f930c31c20cc9cc897b8d19925ba160c8cf9bac008063430f82e9e6abd1682a4537f9c9508424e9f4a7723b90dbd7c622a49b748e454832d6f541574ddee011f7482349f572cf0c4373e4cbd7c954946c7693a938d9d84f867f21ab3b43dcbc4b72891bf4b316000a70ca34d435405e57b095be84d641096a1a78fd3b195a727f6b40eba0042d2da27550022a01dba40d79833db73c303d5a0e4df341794a849694d0556d829204b6aa4c509212baaa4428eb3ef43e27429a9760afb3e70f6ea86d80b2aec260a847e6471f544d44eb60109934101b0e22a389681df603d97ab44ffa215689e89eec7e10708afd6d920cdf656e72fe3830116238405a3ac9ca51b2ec952946032483ffeab8ada4ed3145514d9885be7758d6c304bdebb6aa87090fb9a655982b00fbb80ccc02ae71194d75223e9d0da2bc0410e625184b5e806d5a02aa1f74fcffecef3f4178892499a5c42cc9dda989a90827f83c00e800802936ca69c5d1f265b9a041825022e25ca10c83c1844c5606b226a89a044d13612993e0fe48846fd287faba7afac67df17aa57ec6917528aaa62e2fce2f0e8dfe309ac8110fe5882d6f7a59e6222d1d21ce04c8ea1ed21a202d9d217a4749e1252f237e32248573c839f2add05cc8cb3956595fb4ea49ea0e3bfecff62d6604a783400520cbf219b14a34768f779fadaca8dcd6e9743cecd83be66d24a95a3b66e81d222d1d39526b4f98a1e3edef718daad3e5f473895f5d7de76a4db8365c7cf4a8e63ade6493a2a97deddf1805392da15c106128926128cc759cc91ce9f88204f78762d6feb9fdd7584cfb58281196ba2fd8b67aef39fe3414b6253bdf3f423ce01eb84c728d71ee92cc32cadda3e776dffe1e25ee91e4d4cda93d6e727be0db9175a6287927a61628f1b3c6d79acf1d649e0100cb458b968827ee9b9f30ffe619f3fc6e7ec65c2e2fcb7a6385114b7796607eb2949eef3d7f9bef98e3f619fb8e1255fef207fcc9f67b6f6dd87eb2adc6e289a4cbdbbfa22592f32b9195ec213183d4455d51bdb3df692539cd78ee8d639c79ed9ff4752c0000dd251ddd9a7ba7a5a805d2a2a4472974caba029402b22ce7b79f6faebc7da598126b9cfdce3ec6394d3feff30f6e9c66ff2462ddc10dd7be7016d8d0f288bbcc73be29d6506ccf3a9eb5bdd7d6eef8da959057e5be93ec1ffc144e1cfaf9709fc37983e482778c3f739b89b014de219939cd7e5ee2c6379a0d82607cd72808177bd17db6b7b0f77183c1701e59c0a6d952b6ac2d622812f6e4d5e5052da1dd98b83591398df81f24eff65ce00de8ce0000000049454e44ae426082</data>
</image>
<image name="image1">
- <data format="PNG" length="989">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003a449444154388d759541485c5714863fed13e6818579904266d185d0453320e5cd6e062cb5e0c2580b66c8a2912e7498c2d8a690362d485da5d2459a2e52e8a2c5879bd82c125d8cc68245179679598d168bcf454b84363812429e94c1199a81bf8b3b4ee68de66cfe7bee39f7dcff9e7bef394842be9044c92fd1aebb855d955725b720b9ab925b281b3d2fb945a9d3bf5def2af92532e90cfe433f82a9a940900402a2b805a40c3652b8e4f07ef2ba3ad79fdac930db55794d4a7f213d0ba4294f92a4b95549ff4a57be931ef9cd93142537bf2e15a576e6ada025bf845b3041ddabd2e4ed6792a4477f1f4b928e0db4707de758f2a4f4b547720b523abfaec9fc642b3da798ee6e4a5f2f99c57ad244b387ee6f46751d18b8386dee20ddc6bc95e3d45420ac24970642662e3b04ffd448be6eb7b0533aed99cff6a957fb70c9190773fb6595d7a4c9db86413968323ac1ff74b634eda51d733af7aa942e4a93f949bd527cf2be20c5dae37d8a330e1bdb21997e9b8ded90be7e9bda73e8e93945d8c86bb0b11df2f65b36de66853f0f5fa5fabb4f57e3084edee9c18e7467ad23972f63da21577e30af273d2d958bd2e0c41d75b985b22085fb6688f7a983f74b85dc70825a0decd3a93d25b5e760f740e606d080fad32de28d14dd8ca680006fcce1d63dc8bd93808ea08bbf45832db4e976334deb13cd89d114b04837cb5b4092f17b21d743b87eb7026d41677eaeb1fa4734f0fe008cdc8cce8ddc6d0e9603204bf7dc680a80ca9043b60a5fa513646f42b807ef7e03b97e9bc36ac7f997211c32c70fb60dd6878c696e38092cd0e5e6cbc24a41bc46bcf7eca4da163cf8323a97b9f1621cb30c1e5581688eb7981bb2b12d581823828c9ede6876d9d86316c4dafca99b1c3bcc989ff7c97c46c40212e793c47b6b9824bfc09865e34d45838f7f1ff53baa86541e3bc4ea8b5cb056e9cea433e61b0e27a91d052c5cb649f4c2c207516c17efd7a83d1e83da80030d1f7f2c0bd0562b3ef2859521712ee0c11b4966ad0a90002acc90c0734272c30e8b0f43b2fb0eb3187bbd5161fbaf0495439f7823439fd5562b4a7e0915a5747e45eeaa74717a573a90be5d32bfef65f8f98fd2812fb9f9920e964c8d50b3b3443a8837ef698f4bd41921d6bb45e25c8a0be7f7897fd887bd12f2f17b0eb7562a1c8509f60e032a4f93d4ab51a6b9895c57ab83447a56b33aa58b8649b9686ac9e08634782ddaf3d213f775e2af8e1e7866cff3e63d011c36faa8d107d638b008648105688ce33043dcaab42ef484e9499cff01b1f34611a3ab60c70000000049454e44ae426082</data>
+ <data format="PNG" length="1263">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000004b649444154388d85954d6c1b4514c77f33bbb3b6d7b1e37c3504a81b407c9642e500559140080455698b10208400712b6a6fdce0c605a917aea887455c1122820387228a10a204041457e907a5a54de9874862278ed75fbbf6eece70709b1268cb93e630336f7ef39f376fde086e60a5bdb30acc18e8098c71c10026c0e805a51b959fbca77bd75b2b6e00dd0abc0c66338222426501d0dd0e26b908cc0a1d4f97cc47339ee725ff0b2eed9dbd03c45b58ead581ac5bb869342fc747d2dc3dda24a312ced606f8b3a259aa5675cd0f021d0733cab4de7bc07cfca3e779f135c1a5bdb31b40ecc7c96fdf7c7b86671fceb169bd615d4161c9beab01569a31730b1107ca21878eadd00b1a2753baf6f6fd66fac015b8f52fa51f0ce4f3db9edb3a28de7822c39d131629651125f0ed519fb3f32167e74326c7d38ce66d366d508c0f29ce55cc6823140f2d9bdbcadba73297cae5b259054f3cbc671f4eee951d8f14c4ae2985a324bdd8d08d0cbffed1e2f94747b87f32cb3deb337c55ae3398b531c670f3b022e72af1dba56424ec197533470e4e4d4d45565fedaf5b8595daf7e01df9f4f692424ae8459a30d29cf92b60d796611c25fbb11382fb36b87c7bd4277579f3e10149bb6773a11a4d5693f5b3e39c3c6795f61c56c05bb95ceef1a73667c5d0007423431819aa7ec4ce2dc3a41df99facb9ebd60c3f9f6a22108491c6b17acc2d6aa71dc69115fb876c600cd89ccf0fca423aa6d1bea20c763c32744d28806d095e7a6c94e9434b7c71748046e0d264406aea1b1ba25894c0044216477382a0a7a9b76284806d530532a9fe1544b15e038d13833106809d5b46d8f5408be54e0aec2c086b02cb294ac045a6b2ae8aa8b7358d8ee69952819c6b03506b447c3e535b039e9e69529eeba76cdae92bbf7d5d3ffec85446406ef59c8d50b1e84b2a0dc9f7273a00b402cdfb5f7439703cbd063cb792e7ddcf1433a7fafdaf8fc3827ff55108b4b4c104e86e67b19da19da4c1c099efe0c3ef029a3d076332d78cb31fc03b9f5ced0b01020349180a13776d8c5e002efa1d7d5b22326b161be40daac955b32d90402be882492a52b717a4d28d0a304bb7a6956570fed1525602c670f99ed698b234ae4a705542da4e70ec04d15bd636e1e982393f6fffe43ddd9b7af3c7e9a4ebbfae92ccd050ce5923521b701d01e456c746dd80f5f968d5af5f3f7ae870a59d49160f0e5a4b350950321fcde838f8b459af32e874187303c6b201636ec0783660d40d5869f52b63d0d3d8745997bdea33e87468d6abe89effcdddf2eb1f80a605502e97cdada5d7e6ba11f76a9d6cb865c4126e4a9052869432d8d270bed2a515688e9e0b383b1ff6e76c8320e2f485865eaef987479213fb0be2af13ab60801d25b5bc6c8a87fdc0ded8e8c4933957319cb37194c4b105bdd8305f8ba8b7131c5ba02c58f2238ecdf92c541b87c7e223fb8ab2fc0bb0e4795eb20a2e97cb66fb945b5b369347fcc072ab7e34d9ecc44eda8e453663634b8914604cc2f24a9be37f76f4ef179aad7abdf1e5487262ff6568c5f3bc08ae914cbb77ef9640f6182f3e19cb8117346aa394622297b13200cd200975a22b36e1e974b278f0724c1781fa757f907fc005e05492c94243148b584e51404ea0a5307157eaf642c19c9f1fb4966a4013083ccf5b5350fe06921b426409a129130000000049454e44ae426082</data>
</image>
<image name="image2">
- <data format="PNG" length="1020">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003c349444154388d75954d481c6718c77fca1e1cf0b00316b2d01e8404e242a133b75928d4d01c4c2bd4480e4de821bb6c41f30121ed21d45e9adc620f1642697190827b091acad66e20a91e5276bc74152cbb425a0cd8b22325b812c45dcac2bf87776775347d2eff79bf9ef9bdcffbbecf832414084994833247dbce44559592e44c484e4972262aa69d979ca2747cfed1764f392893f13204ab414cddc99a200dd488eb1ae01a6dbb38e4f0bff77b8eaf3ff127435655e589e47d2eedd6a4495f92a4d992a457d2e5afa5ada0b393a2e4e497a5a27494bcebb41c9471268c53e786949dd995246d6d1f48920e8c747579e340f225efd6969c09c9cb2f2b9bcf76c37382b4fa4cbafbc82cd63f715d0a8ef5d78d5cb863cec03b42de258e48ef3e34a4d50e69a4bbaf8c93adfac16bc7bd5b5b72f252369f55369f8d4ebfa2ca13293b6316576a1da2483b6491559ec7c7cb1b6617ce0dc92b1ae7bdeee49ac0e5fad317f8376165bd813b64944853c4cc3d131fcfbc0dfe6f21c97e68fd14b0d31e84e89ed637a4f9278660e1595cf55c315be8c47a7e45d2bfd2e507e6f67877a44a511abe3aaf1e67a2227071ce36f06fdaf88f4372efa798feb1011fd9d8bf84e4468e2103fee390f0bd14ebdf3609f72dd3d986d6cb35926d97ee6dd0b674ffa1a457d2ec4a87e899a40369792d4efcc50f92b6256d98f6c519a9ba26795f9adb319c5f38241e3adda0d06f33fd4683cfc6ec2ed9e26a9371cf8ad18e7f03b7472073e6b02ff355445c23d94ed33b3bea02109eb719df876befd8f0c711279e057fc5c3b0381a77fae029306abe6747d240811e275f110917924d92fd86cc4ac0ed5138377422b4276cfa3194d6cdf7de3ed089712fa326a1cc9eb7b012501833939c0431f2d7d983a7507a93c3752d60d4c566ca64b7eb7319d15723752a4db2bf09584093649f456ed8dcdbe356f8b5c9caef16adb699bfb7df20fcdba6afb5c850a2446fc6cbe090839134cdbd1a854b16a97e287c6c76e00e7032c6ab70e5ac85dd67e625fba0f9ae0ded80606c1ce0301fbb9f062291213550e3e7d369ee2542cc930b99ba94a2b6d324fd96c5ca7a93739b16f730e3ad76c8fa9f29c29d80643bc3602267feae281f17252fbf24a7245db85395ead2fd47e665fd9fdefe4eaa0792932fabfec8e408752a4bac82f873be36b9488b0fe8eb5f2335e03274ea05c94f06b1961a5cfbd0667a2964af916273a746f8324d6b3f4e9abb9aebe9569058cdea6427af68482a45934b8657a4e15bf19ae75d5d50345fc76ae06b6b9e3fe70b60a73d489341485c01168171a000ed2bd84c914c84dd038d48233fff01da21be2465fed86a0000000049454e44ae426082</data>
+ <data format="PNG" length="1307">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000004e249444154388d7d95cb8f54c71587bfaa7bebf6fbc134031910ed314f29c0003d42161bcb8ae507360bdbb1bcf0228a8488c22e59c4fe0312894d36368abc18291252a444082b96220b145b4a64cb181b3c68cccb1e07ccf09a999e999ee9db7dfbdeee7bab2a8b060f0d89cfae54a7bef3ab737ed211fc48d48e4e29b0c36046b0360b16b021d6cc29e3d7c738d99b9898f89f6fc58f400f006f80dd8ba08a5039004cb783d5b7812961925335fbe7cf00fd6881c7c0b5a3535b40fc0647bd99cf65cb3f595b94eb2b6976ac6d91519aeb8d3c37eb86c58505d36886a149c2cf946dff61ccfef573207950c07d04fa0488e378c5837b376778697f81dd9b2cebca0e8e5c03f49bb1dc4ab831b74e9e9e8c729f5e5a7ebe178a4d97cdeb6fefb2a74e03c980e2fb4a8fe78bc5175edc5f92876a1e43050721047162b831dba51d6ad60f2936563c84100491e6ecb50e7ffb77c3d69756bef374e3f06ede3f0b988714dbdfe1150e3e572bf1f23e857205add000102786bd5b73acc9bbdc988df03b1a210460d9bf2d439c0c89131f9bed9d96fe159629a0edf4d57e754038a9637bb614d3076b0a29a1171ba2d8d08d0de5bccb868a07c09a82cbad7a97a86b88624b2fb10ce52541cfe5d6423cbaa0374dade7daf76eedd71714d6be91cfa58bb52d1eda189a811d18682eed0c9c9b8126d1ab39da58768c68bebe9e2a3496f2afd5e3d1732e300cec2d164bb29c4ef003f998f5d6e407668cdfd1c489416bcb9d86e6d25c193fccd2222f0d2b3b7d51adbac0084256d7160461cf10f60c9d9e248a052965c979864e590f2a6e2744b1a11148a6eee6b8e3a7fb17ae0bc219c1f1aa12c82253b9ac8a59090c8bbea554c8f0fc788975435956028893c1d64ccf3b7c7133cb819f96f9eda12c1bfa4eec0f54a632020a3ffcdb8f14f34d492aa5f8e5b305f66df678f3e93ca31b4b4c2fa407c0d79b150e3f57e4995d1e4f6d7378f71720c4aa770546ba60434cb7331f6408749a7a24f87cda70607bbfe62b4f65b87677b0e76f1d82dae8eaf9d4977d3058d051246cd295583387d5b79b1d43b39be69e9fe2f77f877f5ded3f520e8c5507c10fa0610ffef8217c700194845eaf0b56d7a509e6a4327e1d98a2db30cab1788e052c7ffaa7e6dc77e651830cc4894f0c1f7dad518ec67335a2b7645ca2e9b29d99755e1a4feb39f60416fb6a29e7662a79435ec57832e6caed1eeb8b828d95411f7763cbc9b3119f5e8dc8ab989c8ae94501ade58576269e796fa37379ca999c9ce4504ddeb9c7d893c226e3d56197622a21e7257822e1dbbb5d360c390c9756bdfc8f2f7dce7f1b9055093995e08a98dbb34b7483e533bbc5072780fa836ced98ce3bad96d83a738f67c636e7a5a75641a7cf3711c0868ae2fc74c0d5990ec54c7f56bd3861fa56dbb4fde6571573ed2f48e681d001989c9ce4e59a5a5ab2d50bcdd0dde97792d14256315470f1944408f8cfbd2e17af77985f49508e4039b0d88cb974a3c9dc827f6138b978ac2a27cf038b80fea179e3e3e3761ddf3496ece8c566e864179af168ab9378693711b98c8b2b255280b59aa5e580cb373be69b5badf6ca8a7fa6a2afbc771f5a07e2898989c737c89123472490bbc4cf7f96c8fc6b06b5534a3152c838198056a823a34ddd259a4eebf98f76c88fcf02f3c00aff6f83dc0f03b477f3fe997a3c7ace17d52a8e57156d0a0223cb36e94a13cc95edcc6cc9596c002d2004ccc37befbfd9ff4e6a193004b40000000049454e44ae426082</data>
</image>
</images>
<connections>