summaryrefslogtreecommitdiffstats
path: root/perl-install/network
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/network')
-rw-r--r--perl-install/network/netconnect.pm8
-rw-r--r--perl-install/network/tools.pm52
2 files changed, 29 insertions, 31 deletions
diff --git a/perl-install/network/netconnect.pm b/perl-install/network/netconnect.pm
index 6b1672ad3..76fd01044 100644
--- a/perl-install/network/netconnect.pm
+++ b/perl-install/network/netconnect.pm
@@ -1272,9 +1272,9 @@ It is not necessary on most networks."),
if ($a) {
# local $::isWizard = 0;
my $_w = $in->wait_message('', N("Testing your connection..."), 1);
- network::tools::disconnect_backend($net);
+ network::tools::stop_net_interface($net, 0);
sleep 1;
- network::tools::connect_backend($net);
+ network::tools::start_net_interface($net, 1);
my $s = 30;
$type =~ /modem/ and $s = 50;
$type =~ /adsl/ and $s = 35;
@@ -1361,12 +1361,12 @@ sub start_internet {
#- give a chance for module to be loaded using kernel-BOOT modules...
#- FIXME, this has nothing to do there
$::isStandalone or modules::load_category($o->{modules_conf}, 'network/*');
- network::tools::start_interface($o->{net}{net_interface});
+ network::tools::start_net_interface($o->{net}, 1);
}
sub stop_internet {
my ($o) = @_;
- network::tools::stop_interface($o->{net}{net_interface});
+ network::tools::stop_net_interface($o->{net}, 1);
}
1;
diff --git a/perl-install/network/tools.pm b/perl-install/network/tools.pm
index 1d15b50c0..4be315700 100644
--- a/perl-install/network/tools.pm
+++ b/perl-install/network/tools.pm
@@ -48,43 +48,41 @@ sub passwd_by_login {
}
}
-sub connect_backend {
- my ($net) = @_;
- run_program::raw({ detach => 1, root => $::prefix }, "/sbin/ifup", $net->{net_interface});
-}
-
-sub disconnect_backend {
- my ($net) = @_;
- run_program::raw({ detach => 1, root => $::prefix }, "/sbin/ifdown", $net->{net_interface});
-}
-
-sub bg_command_as_root {
+sub wrap_command_for_root {
my ($name, @args) = @_;
#- FIXME: duplicate code from common::require_root_capability
- if (check_for_xserver() && fuzzy_pidofs(qr/\bkwin\b/) > 0) {
- run_program::raw({ detach => 1 }, "kdesu", "--ignorebutton", "-c", "$name @args");
- } else {
- run_program::raw({ detach => 1 }, [ 'consolehelper', $name ], @args);
- }
+ check_for_xserver() && fuzzy_pidofs(qr/\bkwin\b/) > 0 ?
+ ("kdesu", "--ignorebutton", "-c", "$name @args") :
+ ([ 'consolehelper', $name ], @args);
}
-sub user_run_interface_command {
- my ($command, $intf) = @_;
- if (system("/usr/sbin/usernetctl $intf report") == 0) {
- run_program::raw({ detach => 1 }, $command, $intf);
- } else {
- bg_command_as_root($command, $intf);
- }
+sub run_interface_command {
+ my ($command, $intf, $detach) = @_;
+ my @command =
+ !$> || system("/usr/sbin/usernetctl $intf report") == 0 ?
+ ($command, $intf) :
+ wrap_command_for_root($command, $intf);
+ run_program::raw({ detach => $detach, root => $::prefix }, @command);
}
sub start_interface {
- my ($intf) = @_;
- user_run_interface_command('/sbin/ifup', $intf);
+ my ($intf, $detach) = @_;
+ run_interface_command('/sbin/ifup', $intf, $detach);
}
sub stop_interface {
- my ($intf) = @_;
- user_run_interface_command('/sbin/ifdown', $intf);
+ my ($intf, $detach) = @_;
+ run_interface_command('/sbin/ifdown', $intf, $detach);
+}
+
+sub start_net_interface {
+ my ($net, $detach) = @_;
+ start_interface($net->{net_interface}, $detach);
+}
+
+sub stop_net_interface {
+ my ($net, $detach) = @_;
+ stop_interface($net->{net_interface}, $detach);
}
sub connected() { gethostbyname("mandrakesoft.com") ? 1 : 0 }