diff options
author | Olivier Blin <oblin@mandriva.org> | 2005-07-07 07:01:26 +0000 |
---|---|---|
committer | Olivier Blin <oblin@mandriva.org> | 2005-07-07 07:01:26 +0000 |
commit | f0f54fec1e8a3c7b8e24be3de3dc12deac4998dc (patch) | |
tree | f8645f310c3bdd52746f574a51ae027af57f39ab /perl-install/network/tools.pm | |
parent | c5abf3c8716b1e731cb08a341281bff55339b99f (diff) | |
download | drakx-f0f54fec1e8a3c7b8e24be3de3dc12deac4998dc.tar drakx-f0f54fec1e8a3c7b8e24be3de3dc12deac4998dc.tar.gz drakx-f0f54fec1e8a3c7b8e24be3de3dc12deac4998dc.tar.bz2 drakx-f0f54fec1e8a3c7b8e24be3de3dc12deac4998dc.tar.xz drakx-f0f54fec1e8a3c7b8e24be3de3dc12deac4998dc.zip |
remove connect/diconnect_backend
add start/stop_net_interface
add detach parameter to start/stop_interface
Diffstat (limited to 'perl-install/network/tools.pm')
-rw-r--r-- | perl-install/network/tools.pm | 52 |
1 files changed, 25 insertions, 27 deletions
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 } |