diff options
Diffstat (limited to 'knetworkconf')
-rwxr-xr-x | knetworkconf/backends/network-conf.in | 24 | ||||
-rw-r--r-- | knetworkconf/backends/network.pl.in | 373 | ||||
-rw-r--r-- | knetworkconf/backends/platform.pl.in | 17 | ||||
-rw-r--r-- | knetworkconf/backends/replace.pl.in | 2 | ||||
-rw-r--r-- | knetworkconf/knetworkconf/knetworkconfdlg.ui | 4 |
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> |