summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugeni Dodonov <eugeni@mandriva.org>2009-06-04 16:46:44 +0000
committerEugeni Dodonov <eugeni@mandriva.org>2009-06-04 16:46:44 +0000
commitb75bab2cf3881a31140260180662b7ed98840a1f (patch)
treeb0574dd1e3bbfbebee004c72c9080e0c3558a7e4
parent797bee0e3fca7bb77e1e8c12354efc085f5e260b (diff)
downloaddrakx-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.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 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};