diff options
author | Colin Guthrie <colin@mageia.org> | 2013-11-21 18:52:13 +0000 |
---|---|---|
committer | Colin Guthrie <colin@mageia.org> | 2013-11-21 19:32:31 +0000 |
commit | 489c2506cd2fd51efa7b167248a378d07923abfe (patch) | |
tree | ea65effe598be66d9e281d8443ad62adbf9715cc /lib | |
parent | 8945da36015b735225f42feff9fb4c0addfa39ed (diff) | |
download | drakx-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')
-rw-r--r-- | lib/network/tools.pm | 10 | ||||
-rw-r--r-- | lib/network/vpn.pm | 3 |
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); } |