summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/drakconnect63
-rw-r--r--lib/network/drakconnect/delete.pm69
2 files changed, 73 insertions, 59 deletions
diff --git a/bin/drakconnect b/bin/drakconnect
index 8ce0420..749421f 100755
--- a/bin/drakconnect
+++ b/bin/drakconnect
@@ -64,7 +64,10 @@ $::Wizard_pix_up = "drakconnect";
local $_ = join '', @ARGV;
/--skip-wizard/ and manage();
/--add/ and add_intf();
-/--del/ and del_intf();
+if (/--del/) {
+ require network::drakconnect::delete;
+ network::drakconnect::delete::del_intf($in, $net, $modules_conf);
+}
if (/--internet/) {
require network::drakconnect::global;
network::drakconnect::global::configure_net($in, $net);
@@ -590,64 +593,6 @@ sub add_intf() {
$in->exit(0);
}
-sub del_intf() {
- my ($intf2delete, $failure);
- if (!keys %{$net->{ifcfg}}) {
- $in->ask_warn(N("Error"), N("No ethernet network adapter has been detected on your system. Please run the hardware configuration tool."));
- $in->exit(0);
- }
- require wizards;
- my $wiz = wizards->new(
- {
- defaultimage => "drakconnect",
- name => N("Remove a network interface"),
- pages => {
- welcome => {
- no_back => 1,
- name => N("Select the network interface to remove:"),
- data => [ { label => N("Net Device"), val => \$intf2delete, allow_empty_list => 1,
- list => [ keys %{$net->{ifcfg}} ],
- format => sub {
- my $type = network::tools::get_interface_type($net->{ifcfg}{$_[0]});
- $names{$_[0]} || ($type ? "$type ($_[0])" : $_[0]);
- }
- }
- ],
- post => sub {
- !$::testing and eval {
- if (member($intf2delete, qw(adsl modem))) {
- eval { rm_rf("/etc/ppp/peers/ppp0") };
- eval { rm_rf("/etc/sysconfig/network-scripts/ifcfg-ppp0") };
- }
- if ($intf2delete eq 'adsl') {
- eval { rm_rf("/etc/sysconfig/network-scripts/ifcfg-sagem") };
- } elsif ($intf2delete eq 'isdn') {
- eval { rm_rf("/etc/sysconfig/network-scripts/ifcfg-ippp0") };
- } else {
- system("ifdown $intf2delete");
- eval { rm_rf("/etc/sysconfig/network-scripts/$intf2delete") };
- eval { rm_rf("/etc/sysconfig/network-scripts/ifcfg-$intf2delete") };
- }
- };
- $failure = $@;
- network::network::reload_net_applet();
- return "end";
- },
- },
- end => {
- name => sub {
- $failure ?
- N("An error occurred while deleting the \"%s\" network interface:\n\n%s", $intf2delete, $failure)
- : N("Congratulations, the \"%s\" network interface has been successfully deleted", $intf2delete);
- },
- end => 1,
- },
- },
- });
- $wiz->safe_process($in);
- $in->exit(0);
-}
-
sub get_intf_ip {
my ($interface) = @_;
my ($ip, $state, $mask);
diff --git a/lib/network/drakconnect/delete.pm b/lib/network/drakconnect/delete.pm
new file mode 100644
index 0000000..d035ba3
--- /dev/null
+++ b/lib/network/drakconnect/delete.pm
@@ -0,0 +1,69 @@
+package network::drakconnect::delete;
+use lib qw(/usr/lib/libDrakX);
+
+use common;
+use wizards;
+use interactive;
+
+sub del_intf {
+ my ($in, $net, $modules_conf) = @_;
+ my ($intf2delete, $failure);
+ if (!keys %{$net->{ifcfg}}) {
+ $in->ask_warn(N("Error"), N("No ethernet network adapter has been detected on your system. Please run the hardware configuration tool."));
+ $in->exit(0);
+ }
+ my @all_cards = network::connection::ethernet::get_eth_cards($modules_conf);
+ my %names = network::connection::ethernet::get_eth_cards_names(@all_cards);
+
+ my $wiz = wizards->new(
+ {
+ defaultimage => "drakconnect",
+ name => N("Remove a network interface"),
+ pages => {
+ welcome => {
+ no_back => 1,
+ name => N("Select the network interface to remove:"),
+ data => [ { label => N("Net Device"), val => \$intf2delete, allow_empty_list => 1,
+ list => [ keys %{$net->{ifcfg}} ],
+ format => sub {
+ my $type = network::tools::get_interface_type($net->{ifcfg}{$_[0]});
+ $names{$_[0]} || ($type ? "$type ($_[0])" : $_[0]);
+ }
+ }
+ ],
+ post => sub {
+ !$::testing and eval {
+ if (member($intf2delete, qw(adsl modem))) {
+ eval { rm_rf("/etc/ppp/peers/ppp0") };
+ eval { rm_rf("/etc/sysconfig/network-scripts/ifcfg-ppp0") };
+ }
+ if ($intf2delete eq 'adsl') {
+ eval { rm_rf("/etc/sysconfig/network-scripts/ifcfg-sagem") };
+ } elsif ($intf2delete eq 'isdn') {
+ eval { rm_rf("/etc/sysconfig/network-scripts/ifcfg-ippp0") };
+ } else {
+ system("ifdown $intf2delete");
+ eval { rm_rf("/etc/sysconfig/network-scripts/$intf2delete") };
+ eval { rm_rf("/etc/sysconfig/network-scripts/ifcfg-$intf2delete") };
+ }
+ };
+ $failure = $@;
+ network::network::reload_net_applet();
+ return "end";
+ },
+ },
+ end => {
+ name => sub {
+ $failure ?
+ N("An error occurred while deleting the \"%s\" network interface:\n\n%s", $intf2delete, $failure)
+ : N("Congratulations, the \"%s\" network interface has been successfully deleted", $intf2delete);
+ },
+ end => 1,
+ },
+ },
+ });
+ $wiz->safe_process($in);
+ $in->exit(0);
+}
+
+1;