summaryrefslogtreecommitdiffstats
path: root/perl-install/network
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/network')
-rw-r--r--perl-install/network/tools.pm17
1 files changed, 16 insertions, 1 deletions
diff --git a/perl-install/network/tools.pm b/perl-install/network/tools.pm
index 536870973..cfd92734b 100644
--- a/perl-install/network/tools.pm
+++ b/perl-install/network/tools.pm
@@ -9,7 +9,7 @@ use vars qw(@ISA @EXPORT @EXPORT_OK);
use MDK::Common::System qw(getVarsFromSh);
@ISA = qw(Exporter);
-@EXPORT = qw(connect_backend connected connected_bg disconnect_backend is_dynamic_ip passwd_by_login read_secret_backend set_cnx_script test_connected write_cnx_script remove_initscript write_secret_backend);
+@EXPORT = qw(connect_backend connected connected_bg disconnect_backend is_dynamic_ip passwd_by_login read_secret_backend set_cnx_script test_connected write_cnx_script remove_initscript write_secret_backend start_interface stop_interface);
our $connect_prog = "/etc/sysconfig/network-scripts/net_cnx_pg";
our $connect_file = "/etc/sysconfig/network-scripts/net_cnx_up";
@@ -82,6 +82,21 @@ sub disconnect_backend {
run_program::rooted($::prefix, "ifdown $netc->{NET_INTERFACE} &");
}
+sub bg_command_as_root {
+ my ($name, @args) = @_;
+ run_program::raw({ detach => 1 }, [ 'consolehelper', $name ], @args);
+}
+
+sub start_interface {
+ my ($intf) = @_;
+ bg_command_as_root('/sbin/ifup', $intf);
+}
+
+sub stop_interface {
+ my ($intf) = @_;
+ bg_command_as_root('/sbin/ifdown', $intf);
+}
+
sub connected() { gethostbyname("mandrakesoft.com") ? 1 : 0 }
# request a ref on a bg_connect and a ref on a scalar