summaryrefslogtreecommitdiffstats
path: root/perl-install/network/tools.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/network/tools.pm')
-rw-r--r--perl-install/network/tools.pm76
1 files changed, 76 insertions, 0 deletions
diff --git a/perl-install/network/tools.pm b/perl-install/network/tools.pm
new file mode 100644
index 000000000..8f89b9cc0
--- /dev/null
+++ b/perl-install/network/tools.pm
@@ -0,0 +1,76 @@
+package network::tools;
+
+use vars qw(@ISA @EXPORT);
+
+@ISA = qw(Exporter);
+@EXPORT = qw(write_secret_backend ask_connect_now connect_backend disconnect_backend read_providers_backend ask_info2 connected disconnected);
+
+sub write_secret_backend {
+ my ($a, $b) = @_;
+ foreach ("pap-secrets", "chap-secrets") {
+ substInFile { s/^$a.*\n//; $_ .= "\n'$a' * '$b' * \n" if eof } "$prefix/etc/ppp/$_";
+ }
+}
+
+sub ask_connect_now {
+ my ($cnx, $inter) = @_;
+ if ($in->ask_yesorno(_("Internet configuration"),
+ _("Do you want to try to connect to the Internet now?")
+ )) {
+ my $up;
+ {
+ my $w = $in->wait_message('', _("Testing your connection..."), 1);
+ connect_backend();
+ sleep 5;
+ my $netc = {};
+ $up=connected($netc);
+ }
+ my $m = $up ? (_("The system is now connected to Internet.") .
+ if_($::isInstall, _("For Security reason, it will be disconnected now.")) ) :
+ _("The system doesn't seem to be connected to internet.
+Try to reconfigure your connection.");
+ if ($::isWizard) {
+ $::Wizard_no_previous=1;
+ $::Wizard_finished=1;
+ $in->ask_okcancel(_("Network Configuration"), $m, 1);
+ undef $::Wizard_no_previous;
+ undef $::Wizard_finished;
+ } else { $in->ask_warn('', $m ); }
+ $::isInstall and disconnect_backend();
+ }
+ 1;
+}
+
+sub connect_backend { run_program::rooted($prefix, "$connect_prog &") }
+
+sub disconnect_backend { run_program::rooted($prefix, "$disconnect_file &") }
+
+sub read_providers_backend { my ($file) = @_; map { /(.*?)=>/ } catMaybeCompressed($file) }
+
+sub ask_info2 {
+ my ($cnx, $netc) = @_;
+ $::isInstall and $in->set_help('configureNetworkDNS');
+ $in->ask_from_entries_refH(_("Connection Configuration"),
+ _("Please fill or check the field below"),
+ [
+ if__ ($cnx->{irq}, { label => _("Card IRQ"), val => \$cnx->{irq} }) ,
+ if__ ($cnx->{mem}, { label => _("Card mem (DMA)"), val => \$cnx->{mem} }),
+ if__ ($cnx->{io}, { label => _("Card IO"), val => \$cnx->{io} }),
+ if__ ($cnx->{io0}, { label => _("Card IO_0"), val => \$cnx->{io0} }),
+ if__ ($cnx->{io1}, { label => _("Card IO_1"), val => \$cnx->{io1} }),
+ if__ ($cnx->{phone_in}, { label => _("Your personal phone number"), val => \$cnx->{phone_in} }),
+ if__ ($netc->{DOMAINNAME2}, { label => _("Provider name (ex provider.net)"), val => \$netc->{DOMAINNAME2} }),
+ if__ ($cnx->{phone_out}, { label => _("Provider phone number"), val => \$cnx->{phone_out} }),
+ if__ ($netc->{dnsServer2}, { label => _("Provider dns 1"), val => \$netc->{dnsServer2} }),
+ if__ ($netc->{dnsServer3}, { label => _("Provider dns 2"), val => \$netc->{dnsServer3} }),
+ if__ ($cnx->{dialing_mode}, { label => _("Dialing mode"), val => \$cnx->{dialing_mode}, list => [ "auto", "manual"] }),
+ if__ ($cnx->{login}, { label => _("Account Login (user name)"), val => \$cnx->{login} }),
+ if__ ($cnx->{passwd}, { label => _("Account Password"), val => \$cnx->{passwd} }),
+ ]
+ ) or return;
+ 1;
+}
+
+sub connected { gethostbyname("www.mandrakesoft.com") ? 1 : 0; }
+
+sub disconnected { }