diff options
author | Eugeni Dodonov <eugeni@mandriva.org> | 2009-06-04 16:46:44 +0000 |
---|---|---|
committer | Eugeni Dodonov <eugeni@mandriva.org> | 2009-06-04 16:46:44 +0000 |
commit | b75bab2cf3881a31140260180662b7ed98840a1f (patch) | |
tree | b0574dd1e3bbfbebee004c72c9080e0c3558a7e4 | |
parent | 797bee0e3fca7bb77e1e8c12354efc085f5e260b (diff) | |
download | drakx-net-b75bab2cf3881a31140260180662b7ed98840a1f.tar drakx-net-b75bab2cf3881a31140260180662b7ed98840a1f.tar.gz drakx-net-b75bab2cf3881a31140260180662b7ed98840a1f.tar.bz2 drakx-net-b75bab2cf3881a31140260180662b7ed98840a1f.tar.xz drakx-net-b75bab2cf3881a31140260180662b7ed98840a1f.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 986947f..1722da7 100644 --- a/lib/network/connection/ethernet.pm +++ b/lib/network/connection/ethernet.pm @@ -76,7 +76,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 b0de565..468446f 100644 --- a/lib/network/connection/wireless.pm +++ b/lib/network/connection/wireless.pm @@ -360,7 +360,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 { @@ -400,11 +407,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}; |