summaryrefslogtreecommitdiffstats
path: root/bin/drakconnect
diff options
context:
space:
mode:
Diffstat (limited to 'bin/drakconnect')
-rwxr-xr-xbin/drakconnect114
1 files changed, 6 insertions, 108 deletions
diff --git a/bin/drakconnect b/bin/drakconnect
index ca5899e..8ce0420 100755
--- a/bin/drakconnect
+++ b/bin/drakconnect
@@ -32,6 +32,7 @@ use standalone; #- warning, standalone must be loaded very first, for 'expla
use interactive;
use common;
use run_program;
+use network::drakconnect;
use network::netconnect;
use network::connection::ethernet;
use network::tools;
@@ -42,7 +43,6 @@ use c;
use modules;
use network::adsl;
use network::connection::isdn;
-use network::test;
use POSIX ":sys_wait_h";
$ugtk2::wm_icon = "drakconnect";
@@ -65,17 +65,16 @@ local $_ = join '', @ARGV;
/--skip-wizard/ and manage();
/--add/ and add_intf();
/--del/ and del_intf();
-/--internet/ and configure_net();
+if (/--internet/) {
+ require network::drakconnect::global;
+ network::drakconnect::global::configure_net($in, $net);
+}
# default is to run wizard
add_intf();
my @all_cards = network::connection::ethernet::get_eth_cards($modules_conf);
my %names = network::connection::ethernet::get_eth_cards_names(@all_cards);
-my $int_state;
-my $int_label = Gtk2::WrappedLabel->new($net->{type} eq 'lan' ? N("Gateway:") : N("Interface:"));
-my $int_name = Gtk2::Label->new($net->{type} eq 'lan' ? $net->{network}{GATEWAY} : $net->{net_interface});
-my $isconnected = -1;
sub manage() {
my $p = {};
@@ -538,7 +537,7 @@ sub save {
save_notebook($p->{$_}{intf}, $p->{$_}{gui}) or return;
$p->{$_}{intf}{save} and $p->{$_}{intf}{save}->();
}
- apply();
+ network::drakconnect::apply();
system("/etc/rc.d/init.d/network restart");
$dialog->response(0);
});
@@ -663,104 +662,3 @@ sub get_intf_ip {
}
($ip, $state, $mask);
}
-
-sub apply() {
- network::network::configure_network($net, $in, $modules_conf);
-}
-
-sub update_intbutt() {
- $int_state->set($isconnected ? N("Connected") : N("Not connected"));
-}
-
-my $net_test;
-sub update_network_status() {
- unless ($net_test) {
- $net_test = network::test->new;
- $net_test->start;
- }
- if ($net_test->is_done) {
- $isconnected = $net_test->is_connected;
- update_intbutt();
- $net_test->start;
- }
- 1;
-}
-
-sub configure_net() {
- my $dialog = ugtk2->new(N("Internet connection configuration"));
- my $exit_dialogsub = sub { Gtk2->main_quit };
- if (!$net->{type}) {
- $in->ask_warn(
- N("Warning"),
- N("You do not have any configured Internet connection.
-Run the \"%s\" assistant from the Mandriva Linux Control Center", N("Set up a new network interface (LAN, ISDN, ADSL, ...)")));
- $in->exit;
- }
- unless ($::isEmbedded) {
- $dialog->{rwindow}->set_position('center');
- $dialog->{rwindow}->set_size_request(-1, -1);
- $dialog->{rwindow}->set_icon(gtkcreate_pixbuf("drakconnect"));
- }
- $dialog->{rwindow}->signal_connect(delete_event => $exit_dialogsub);
-
- my $param_vbox = Gtk2::VBox->new(0,0);
- my $i = 0;
-
- my @conf_data = (
- [ N("Host name (optional)"), \$net->{network}{HOSTNAME} ],
- [ N("First DNS Server (optional)"), \$net->{resolv}{dnsServer} ],
- [ N("Second DNS Server (optional)"), \$net->{resolv}{dnsServer2} ],
- [ N("Third DNS server (optional)"), \$net->{resolv}{dnsServer3} ],
- );
- my @infos;
- gtkpack($param_vbox,
- create_packtable({},
- map {
- my $c;
- if (defined $_->[2]) {
- $c = Gtk2::Combo->new;
- $c->set_popdown_strings(@{$_->[2]});
- $infos[2*$i+1] = $c->entry;
- } else {
- $c = $infos[2*$i+1] = Gtk2::Entry->new;
- }
- $infos[2*$i+1]->set_text(${$_->[1]});
- $i++;
- [ Gtk2::WrappedLabel->new($_->[0]), $c ];
- } @conf_data
- )
- );
-
- $dialog->{rwindow}->add(gtkpack_(Gtk2::VBox->new,
- 0, Gtk2::Label->new(N("Internet Connection Configuration")),
- 1, gtkadd(gtkcreate_frame(N("Internet access")),
- gtkset_border_width(create_packtable({ col_spacings => 5, row_spacings => 5, homogenous => 1 },
- [ Gtk2::WrappedLabel->new(N("Connection type: ")),
- Gtk2::WrappedLabel->new(translate($net->{type})) ],
- [ $int_label, $int_name ],
- [ Gtk2::WrappedLabel->new(N("Status:")),
- $int_state = Gtk2::WrappedLabel->new(N("Testing your connection...")) ]
- ),
- 5),
- ),
- 1, gtkadd(gtkcreate_frame(N("Parameters")), gtkset_border_width($param_vbox, 5)),
- 0, gtkpack(create_hbox('edge'),
- gtksignal_connect(Gtk2::Button->new(N("Cancel")), clicked => $exit_dialogsub),
- gtksignal_connect(Gtk2::Button->new(N("Ok")), clicked => sub {
- foreach my $i (0..$#conf_data) {
- ${$conf_data[$i][1]} = $infos[2*$i+1]->get_text;
- }
- apply();
- $exit_dialogsub->();
- }),
- ),
- ),
- );
-
- $dialog->{rwindow}->show_all;
- update_network_status();
- Glib::Timeout->add(2000, \&update_network_status);
- $dialog->main;
- ugtk2->exit(0);
-}
-