From 62528c1b23309732279b7aaa15c44deb192b6963 Mon Sep 17 00:00:00 2001 From: Eugeni Dodonov Date: Wed, 30 Sep 2009 15:16:12 +0000 Subject: Prevent installer from creating duplicated network cards (#49156) --- lib/network/connection/ethernet.pm | 11 ++++++++--- 1 file 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); } } -- cgit v1.2.1