diff options
author | Eugeni Dodonov <eugeni@mandriva.org> | 2009-06-02 21:13:25 +0000 |
---|---|---|
committer | Eugeni Dodonov <eugeni@mandriva.org> | 2009-06-02 21:13:25 +0000 |
commit | 72d2367d4000b411320699c5a90136916a0c2c56 (patch) | |
tree | 4d3e6b0251ec04487d7384376ab68feda2e258c3 | |
parent | 4091aa337859a79eca631daf5adb1396fae15e4e (diff) | |
download | drakx-net-72d2367d4000b411320699c5a90136916a0c2c56.tar drakx-net-72d2367d4000b411320699c5a90136916a0c2c56.tar.gz drakx-net-72d2367d4000b411320699c5a90136916a0c2c56.tar.bz2 drakx-net-72d2367d4000b411320699c5a90136916a0c2c56.tar.xz drakx-net-72d2367d4000b411320699c5a90136916a0c2c56.zip |
Preserve wireless connection configuration (patch by Christian Lohmaier,
bug #46010).
-rw-r--r-- | lib/network/connection/ethernet.pm | 4 | ||||
-rw-r--r-- | lib/network/connection/wireless.pm | 14 |
2 files changed, 13 insertions, 5 deletions
diff --git a/lib/network/connection/ethernet.pm b/lib/network/connection/ethernet.pm index 69e9b75..a2766a1 100644 --- a/lib/network/connection/ethernet.pm +++ b/lib/network/connection/ethernet.pm @@ -75,7 +75,11 @@ sub load_interface_settings { my ($self) = @_; $self->network::connection::load_interface_settings; + $self->map_ifcfg2config_settings; +} +sub map_ifcfg2config_settings { + my ($self) = @_; $self->{protocol} = $self->{ifcfg}{BOOTPROTO}; $self->{address}{needhostname} = $self->get_ifcfg_bool('NEEDHOSTNAME'); diff --git a/lib/network/connection/wireless.pm b/lib/network/connection/wireless.pm index 574467a..93db6cb 100644 --- a/lib/network/connection/wireless.pm +++ b/lib/network/connection/wireless.pm @@ -359,7 +359,14 @@ sub check_device { sub load_interface_settings { my ($self) = @_; - $self->SUPER::load_interface_settings; + $self->network::connection::load_interface_settings; + # override ifcfg with network-specific settings if available + my $network = $self->get_selected_network; + $self->{ifcfg}= $network ? + get_network_ifcfg($network->{ap}) || get_network_ifcfg($network->{essid}) : + $self->{ifcfg}; + + $self->SUPER::map_ifcfg2config_settings; } sub get_networks { @@ -399,11 +406,8 @@ sub get_network_ifcfg { sub guess_network_access_settings { my ($self) = @_; - my $ifcfg; my $network = $self->get_selected_network; - $ifcfg = $network ? - get_network_ifcfg($network->{ap}) || get_network_ifcfg($network->{essid}) : - $self->{ifcfg}; + my $ifcfg = $self->{ifcfg}; $ifcfg ||= {}; $self->{access}{network}{bssid} = $network && $network->{hidden} && $network->{ap}; |