summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugeni Dodonov <eugeni@mandriva.org>2009-06-02 21:13:25 +0000
committerEugeni Dodonov <eugeni@mandriva.org>2009-06-02 21:13:25 +0000
commit72d2367d4000b411320699c5a90136916a0c2c56 (patch)
tree4d3e6b0251ec04487d7384376ab68feda2e258c3
parent4091aa337859a79eca631daf5adb1396fae15e4e (diff)
downloaddrakx-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.pm4
-rw-r--r--lib/network/connection/wireless.pm14
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};