summaryrefslogtreecommitdiffstats
path: root/lib/network
diff options
context:
space:
mode:
authorColin Guthrie <colin@mageia.org>2013-11-21 18:52:13 +0000
committerColin Guthrie <colin@mageia.org>2013-11-21 19:32:31 +0000
commit489c2506cd2fd51efa7b167248a378d07923abfe (patch)
treeea65effe598be66d9e281d8443ad62adbf9715cc /lib/network
parent8945da36015b735225f42feff9fb4c0addfa39ed (diff)
downloaddrakx-net-489c2506cd2fd51efa7b167248a378d07923abfe.tar
drakx-net-489c2506cd2fd51efa7b167248a378d07923abfe.tar.gz
drakx-net-489c2506cd2fd51efa7b167248a378d07923abfe.tar.bz2
drakx-net-489c2506cd2fd51efa7b167248a378d07923abfe.tar.xz
drakx-net-489c2506cd2fd51efa7b167248a378d07923abfe.zip
polkit: Fix support for several third party net management commands (mga#11286)
Diffstat (limited to 'lib/network')
-rw-r--r--lib/network/tools.pm10
-rw-r--r--lib/network/vpn.pm3
2 files changed, 6 insertions, 7 deletions
diff --git a/lib/network/tools.pm b/lib/network/tools.pm
index cd7b69d..951b445 100644
--- a/lib/network/tools.pm
+++ b/lib/network/tools.pm
@@ -20,22 +20,22 @@ sub passwd_by_login {
}
sub run_interface_command {
- my ($command, $intf, $detach) = @_;
+ my ($action, $intf, $detach) = @_;
my @command =
!$> || system("/usr/sbin/usernetctl $intf report") == 0 ?
- ($command, $intf, if_(!$::isInstall, "daemon")) :
- common::wrap_command_for_root($command, $intf);
+ ('/usr/sbin/if' . $action, $intf, if_(!$::isInstall, "daemon")) :
+ ('/usr/bin/pkexec', '/usr/sbin/if' . $action, $intf);
run_program::raw({ detach => $detach, root => $::prefix }, @command);
}
sub start_interface {
my ($intf, $detach) = @_;
- run_interface_command('/sbin/ifup', $intf, $detach);
+ run_interface_command('up', $intf, $detach);
}
sub stop_interface {
my ($intf, $detach) = @_;
- run_interface_command('/sbin/ifdown', $intf, $detach);
+ run_interface_command('down', $intf, $detach);
}
sub start_net_interface {
diff --git a/lib/network/vpn.pm b/lib/network/vpn.pm
index 21142c8..147ecc8 100644
--- a/lib/network/vpn.pm
+++ b/lib/network/vpn.pm
@@ -113,8 +113,7 @@ sub get_config_path {
sub _run {
my ($connection, $action, @args) = @_;
- my @command = ('vpn-' . $action, $connection->get_type, $connection->get_name, @args);
- @command = common::wrap_command_for_root(@command) if $>;
+ my @command = (if_($>, '/usr/bin/pkexec'), '/usr/sbin/vpn-' . $action, $connection->get_type, $connection->get_name, @args);
require run_program;
run_program::rooted($::prefix, , @command);
}