diff options
Diffstat (limited to 'perl-install/network/tools.pm')
-rw-r--r-- | perl-install/network/tools.pm | 227 |
1 files changed, 0 insertions, 227 deletions
diff --git a/perl-install/network/tools.pm b/perl-install/network/tools.pm deleted file mode 100644 index 95616a82a..000000000 --- a/perl-install/network/tools.pm +++ /dev/null @@ -1,227 +0,0 @@ -package network::tools; - -use common; -use run_program; -use c; -use vars qw(@ISA @EXPORT); -use MDK::Common::Globals "network", qw($in $prefix $disconnect_file $connect_prog $connect_file); -use MDK::Common::System qw(getVarsFromSh); - -@ISA = qw(Exporter); -@EXPORT = qw(write_cnx_script write_secret_backend write_initscript ask_connect_now connect_backend disconnect_backend read_providers_backend ask_info2 type2interface connected connected_bg connected2 disconnected); -@EXPORT_OK = qw($in); - -sub write_cnx_script { - my ($netc, $type, $up, $down, $type2) = @_; - if ($type) { - $netc->{internet_cnx}{$type}{$_->[0]}=$_->[1] foreach ([$connect_file, $up], [$disconnect_file, $down]); - $netc->{internet_cnx}{$type}{type} = $type2; - } else { - foreach ($connect_file, $disconnect_file) { - output ("$prefix$_", -'#!/bin/bash -' . if_(!$netc->{at_boot}, 'if [ "x$1" == "x--boot_time" ]; then exit; fi -') . $netc->{internet_cnx}{$netc->{internet_cnx_choice}}{$_}); - chmod 0755, "$prefix$_"; - } - } -} - -sub write_secret_backend { - my ($a, $b) = @_; - foreach my $i ("pap-secrets", "chap-secrets") { - substInFile { s/^'$a'.*\n//; $_ .= "\n'$a' * '$b' * \n" if eof } "$prefix/etc/ppp/$i"; - } -} - -sub ask_connect_now { - my ($type) = @_; - $::Wizard_no_previous=1; - #- FIXME : code the exception to be generated by ask_yesorno, to be able to remove the $::Wizard_no_previous=1; - 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(); - my $s = 30; - $type =~ /modem/ and $s = 50; - $type =~ /adsl/ and $s = 35; - $type =~ /isdn/ and $s = 20; - sleep $s; - my $netc = {}; - $up = connected(); - } - 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(); - } - undef $::Wizard_no_previous; - $up; -} - -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(_("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 (optional)"), val => \$netc->{dnsServer2} }), - if__($netc->{dnsServer3}, { label => _("Provider dns 2 (optional)"), val => \$netc->{dnsServer3} }), - if__($cnx->{vpivci}, { label => _("Choose your country"), val => \$netc->{vpivci}, list => detect_timezone() }), - if__($cnx->{dialing_mode}, { label => _("Dialing mode"), val => \$cnx->{dialing_mode},list=>["auto","manual"]}), - if__($cnx->{speed}, { label => _("Connection speed"), val => \$cnx->{speed}, list => ["64 Kb/s", "128 Kb/s"]}), - if__($cnx->{huptimeout}, { label => _("Connection timeout (in sec)"), val => \$cnx->{huptimeout} }), - if__($cnx->{login}, { label => _("Account Login (user name)"), val => \$cnx->{login} }), - if__($cnx->{passwd}, { label => _("Account Password"), val => \$cnx->{passwd}, hidden => 1 }), - ] - ) or return; - if ($netc->{vpivci}) { - foreach ([_("Netherlands"), '8_48'], [_("France"), '8_35'], [_("Belgium"), '8_35'], [_("Italy"), '8_35'], [_("United Kingdom"), '0_38'], [_("United States"), '8_35']) { - $netc->{vpivci} eq $_->[0] and $netc->{vpivci} = $_->[1]; - } - } - 1; -} - -sub detect_timezone { - my %tmz2country = ( - 'Europe/Paris' => _("France"), - 'Europe/Amsterdam' => _("Netherlands"), - 'Europe/Rome' => _("Italy"), - 'Europe/Brussels' => _("Belgium"), - 'America/New_York' => _("United States"), - 'Europe/London' => _("United Kingdom") - ); - my %tm_parse = MDK::Common::System::getVarsFromSh('/etc/sysconfig/clock'); - foreach (keys %tmz2country) { - if ($_ eq $tm_parse{ZONE}) { - unshift @country, $tmz2country{$_}; - } else { push @country, $tmz2country{$_} }; - } - \@country; -} - -sub type2interface { - my ($i) = @_; - $i=~/$_->[0]/ and return $_->[1] foreach ( - [ modem => 'ppp'], - [ isdn_internal => 'ippp'], - [ isdn_external => 'ppp'], - [ adsl => 'ppp'], - [ cable => 'eth'], - [ lan => 'eth']); -} - -sub connected { gethostbyname("mandrakesoft.com") ? 1 : 0 } - -my $kid_pipe; -sub connected_bg { - local $|=1; - my ($ref) = @_; - if (defined $kid_pipe) { - local *F; - *F = *$kid_pipe; - fcntl(F, c::F_SETFL(), c::O_NONBLOCK()) or die "can't fcntl F_SETFL: $!"; - my $a; - if (defined($a = <F>)) { - close($kid_pipe) || warn "kid exited $?"; - undef $kid_pipe; - $$ref = $a; - } - } else { $kid_pipe = connected2() } - 1; -} - -sub connected2 { - my $pid = open(KID_TO_READ, "-|"); - if ($pid) { # parent - return \*KID_TO_READ; - } else { # child - my $a = gethostbyname("mandrakesoft.com") ? 1 : 0; - print $a; - c::_exit(0); - } -} - -sub disconnected { } - - -sub write_initscript { - output ("$prefix/etc/rc.d/init.d/internet", - q{ -#!/bin/bash -# -# internet Bring up/down internet connection -# -# chkconfig: 2345 11 89 -# description: Activates/Deactivates the internet interfaces -# -# dam's (damien@mandrakesoft.com) - -# Source function library. -. /etc/rc.d/init.d/functions - - case "$1" in - start) - if [ -e } . $connect_file . q{ ]; then - action "Checking internet connections to start at boot" "} . "$connect_file --boot_time" . q{" - else - action "No connection to start" "true" - fi - touch /var/lock/subsys/internet - ;; - stop) - if [ -e } . $disconnect_file . q{ ]; then - action "Stopping internet connection if needed: " "} . "$disconnect_file --boot_time" . q{" - else - action "No connection to stop" "true" - fi - rm -f /var/lock/subsys/internet - ;; - restart) - $0 stop - echo "Waiting 10 sec before restarting the internet connection." - sleep 10 - $0 start - ;; - status) - ;; - *) - echo "Usage: internet {start|stop|status|restart}" - exit 1 -esac -exit 0 - }); - chmod 0755, "$prefix/etc/rc.d/init.d/internet"; - $::isStandalone ? system("/sbin/chkconfig --add internet") : do { - symlinkf ("../init.d/internet", "$prefix/etc/rc.d/rc$_") foreach - '0.d/K11internet', '1.d/K11internet', '2.d/K11internet', '3.d/S89internet', '5.d/S89internet', '6.d/K11internet'; - }; -} - -1; |