diff options
author | Thierry Vignaud <tvignaud@mandriva.org> | 2003-10-13 19:34:28 +0000 |
---|---|---|
committer | Thierry Vignaud <tvignaud@mandriva.org> | 2003-10-13 19:34:28 +0000 |
commit | 4247bb5bb02555c260824f485e15102a24aece73 (patch) | |
tree | 1203b767af8835d53c0560406afa29ee21c3114d | |
parent | 9cbdff09fb1cc6181d1b969a858fc686539f7c05 (diff) | |
download | drakx-backup-do-not-use-4247bb5bb02555c260824f485e15102a24aece73.tar drakx-backup-do-not-use-4247bb5bb02555c260824f485e15102a24aece73.tar.gz drakx-backup-do-not-use-4247bb5bb02555c260824f485e15102a24aece73.tar.bz2 drakx-backup-do-not-use-4247bb5bb02555c260824f485e15102a24aece73.tar.xz drakx-backup-do-not-use-4247bb5bb02555c260824f485e15102a24aece73.zip |
forward:
- fix #425, #1881: wireless adapters settings were lost when altering network
configuration when not from wizard mode
- when steping back in wizard, do not overwrite first card parameters with last
one's (#3276)
- do not overwrite current config from ifcfg-INTF with old.ifcfg-INTF
-rw-r--r-- | perl-install/network/ethernet.pm | 7 | ||||
-rw-r--r-- | perl-install/network/network.pm | 19 | ||||
-rw-r--r-- | perl-install/network/tools.pm | 7 |
3 files changed, 19 insertions, 14 deletions
diff --git a/perl-install/network/ethernet.pm b/perl-install/network/ethernet.pm index ef44e7db9..8c3bb5b56 100644 --- a/perl-install/network/ethernet.pm +++ b/perl-install/network/ethernet.pm @@ -159,13 +159,14 @@ sub configureNetwork { configureNetwork_step_1: $netc ||= {}; - my ($last, %last); foreach (@all_cards) { + my ($last, %last); + foreach (@all_cards) { my $intf2 = findIntf($intf ||= {}, $_->[0]); - add2hash($intf2, $last{$intf->{DEVICE}}); + add2hash($intf2, $last{$_->[0]}); add2hash($intf2, { NETMASK => '255.255.255.0' }); configureNetworkIntf($netc, $in, $intf2, $netc->{NET_DEVICE}, 0, $_->[1]) or return; - $last = $last{$intf2->{DEVICE}} = $intf2; + $last = $last{$_->[0]} = $intf2; } $last or return; diff --git a/perl-install/network/network.pm b/perl-install/network/network.pm index 958690635..c9ef6f688 100644 --- a/perl-install/network/network.pm +++ b/perl-install/network/network.pm @@ -10,6 +10,7 @@ use Socket; use common; use detect_devices; use run_program; +use network::tools; use any; use vars qw(@ISA @EXPORT); use log; @@ -152,7 +153,7 @@ sub write_resolv_conf { } sub write_interface_conf { - my ($file, $intf, $_netc, $prefix) = @_; + my ($file, $intf, $netc, $prefix) = @_; if ($intf->{HWADDR} && -e "$prefix/sbin/ip") { $intf->{HWADDR} = undef; @@ -173,7 +174,11 @@ sub write_interface_conf { $intf->{BOOTPROTO} =~ s/dhcp.*/dhcp/; - setVarsInSh($file, $intf, qw(DEVICE BOOTPROTO IPADDR NETMASK NETWORK BROADCAST ONBOOT HWADDR MII_NOT_SUPPORTED), if_($intf->{wireless_eth}, qw(WIRELESS_MODE WIRELESS_ESSID WIRELESS_NWID WIRELESS_FREQ WIRELESS_SENS WIRELESS_RATE WIRELESS_ENC_KEY WIRELESS_RTS WIRELESS_FRAG WIRELESS_IWCONFIG WIRELESS_IWSPY WIRELESS_IWPRIV)), if_($intf->{BOOTPROTO} eq "dhcp", qw(DHCP_HOSTNAME NEEDHOSTNAME))); + my %cards = map { $_->[0] => $_->[1] } network::ethernet::conf_network_card_backend($netc, $intf); + setVarsInSh($file, $intf, qw(DEVICE BOOTPROTO IPADDR NETMASK NETWORK BROADCAST ONBOOT HWADDR MII_NOT_SUPPORTED), + if_(is_wireless_intf($cards{$intf->{DEVICE}}), qw(WIRELESS_MODE WIRELESS_ESSID WIRELESS_NWID WIRELESS_FREQ WIRELESS_SENS WIRELESS_RATE WIRELESS_ENC_KEY WIRELESS_RTS WIRELESS_FRAG WIRELESS_IWCONFIG WIRELESS_IWSPY WIRELESS_IWPRIV)), + if_($intf->{BOOTPROTO} eq "dhcp", qw(DHCP_HOSTNAME NEEDHOSTNAME)) + ); log::explanations("written $intf->{DEVICE} interface configuration in $file"); } @@ -307,18 +312,12 @@ sub gateway { my @masked = masked_ip($ip) =~ $ip_regexp; $masked[3] = 1; join(".", @masked); - } sub configureNetworkIntf { my ($netc, $in, $intf, $net_device, $skip, $module) = @_; my $text; - my @wireless_modules = qw(aironet_cs aironet4500_cs hermes airo orinoco_cs orinoco airo_cs netwave_cs ray_cs wavelan_cs wvlan_cs airport); - my $flag = 0; - foreach (@wireless_modules) { - $module =~ /$_/ and $flag = 1; - } - if ($flag) { + if (is_wireless_intf($module)) { $intf->{wireless_eth} = 1; $netc->{wireless_eth} = 1; $intf->{WIRELESS_MODE} = "Managed"; @@ -479,7 +478,7 @@ sub read_all_conf { add2hash($netc, read_resolv_conf()); add2hash($netc, read_tmdns_conf("$prefix/etc/tmdns.conf")) if -r "$prefix/etc/tmdns.conf"; foreach (all("$prefix/etc/sysconfig/network-scripts")) { - if (/ifcfg-(\w+)/ && $1 ne 'lo') { + if (/^ifcfg-(\w+)/ && $1 ne 'lo') { my $intf = findIntf($intf, $1); add2hash($intf, { getVarsFromSh("$prefix/etc/sysconfig/network-scripts/$_") }); } diff --git a/perl-install/network/tools.pm b/perl-install/network/tools.pm index 62b9a0fb5..993fe2c2a 100644 --- a/perl-install/network/tools.pm +++ b/perl-install/network/tools.pm @@ -9,7 +9,7 @@ use MDK::Common::Globals "network", qw($in $prefix $disconnect_file $connect_pro use MDK::Common::System qw(getVarsFromSh); @ISA = qw(Exporter); -@EXPORT = qw(write_cnx_script write_secret_backend read_secret_backend passwd_by_login write_initscript ask_connect_now connect_backend disconnect_backend read_providers_backend ask_info2 type2interface connected connected_bg test_connected connected2 disconnected); +@EXPORT = qw(ask_connect_now ask_info2 connect_backend connected connected2 connected_bg disconnect_backend disconnected is_wireless_intf passwd_by_login read_providers_backend read_secret_backend test_connected type2interface write_cnx_script write_initscript write_secret_backend); @EXPORT_OK = qw($in); sub write_cnx_script { @@ -345,4 +345,9 @@ sub use_floppy { } +sub is_wireless_intf { + my ($module) = @_; + member($module, qw(airo aironet_cs aironet4500_cs airo_cs airport hermes orinoco_cs netwave_cs orinoco ray_cs wavelan_cs wvlan_cs)) +} + 1; |