summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 0ca26dd..97c9975 100644
--- a/lib/network/connection/wireless.pm
+++ b/lib/network/connection/wireless.pm
@@ -360,8 +360,15 @@ sub check_device {
sub load_interface_settings {
my ($self) = @_;
- $self->SUPER::load_interface_settings;
+ $self->network::connection::load_interface_settings;
$self->{hide_passwords} = 1;
+ # 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 {
@@ -401,11 +408,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};