diff options
author | Eugeni Dodonov <eugeni@mandriva.org> | 2009-09-30 15:16:12 +0000 |
---|---|---|
committer | Eugeni Dodonov <eugeni@mandriva.org> | 2009-09-30 15:16:12 +0000 |
commit | 62528c1b23309732279b7aaa15c44deb192b6963 (patch) | |
tree | 7dbd9d6fb2c4b2483e15916397f94ed125036e5d | |
parent | 5f7a0f667227acdb911558784b19afdb806ca44e (diff) | |
download | drakx-net-62528c1b23309732279b7aaa15c44deb192b6963.tar drakx-net-62528c1b23309732279b7aaa15c44deb192b6963.tar.gz drakx-net-62528c1b23309732279b7aaa15c44deb192b6963.tar.bz2 drakx-net-62528c1b23309732279b7aaa15c44deb192b6963.tar.xz drakx-net-62528c1b23309732279b7aaa15c44deb192b6963.zip |
Prevent installer from creating duplicated network cards (#49156)
-rw-r--r-- | lib/network/connection/ethernet.pm | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/network/connection/ethernet.pm b/lib/network/connection/ethernet.pm index a2766a1..878850d 100644 --- a/lib/network/connection/ethernet.pm +++ b/lib/network/connection/ethernet.pm @@ -282,6 +282,8 @@ sub write_settings { } } $self->SUPER::write_settings($o_net, $o_modules_conf); + # update udev configuration + update_udev_net_config(); } sub get_status_message { @@ -496,8 +498,8 @@ sub update_iftab() { sub update_udev_net_config() { my $lib = arch() =~ /x86_64/ ? "lib64" : "lib"; - my $net_name_helper = "/$lib/udev/net_name_helper"; - my $udev_net_config = "/etc/udev/rules.d/61-net_config.rules"; + my $net_name_helper = "/lib/udev/write_net_rules"; + my $udev_net_config = "$::prefix/etc/udev/rules.d/70-persistent-net.rules"; my @old_config = cat_($udev_net_config); #- skip aliases and vlan interfaces foreach my $intf (grep { network::tools::is_real_interface($_) } detect_devices::get_lan_interfaces()) { @@ -506,8 +508,11 @@ sub update_udev_net_config() { $mac_address =~ /^[0:]+$/ and next; #- skip already configured addresses any { !/^\s*#/ && /"$mac_address"/ } @old_config and next; + my $type = cat_("/sys/class/net/$intf/type") =~ /^\d+$/; + local $ENV{MATCHIFTYPE} = $type if $type; local $ENV{INTERFACE} = $intf; - local $ENV{SUBSYSTEM} = 'net'; + local $ENV{MATCHADDR} = $mac_address; + local $ENV{COMMENT} = "Drakx-net rule for $intf ($mac_address)"; run_program::rooted($::prefix, $net_name_helper, '>', '/dev/null', $mac_address); } } |