From 21d632055bbe913d53c3324d7465a38621d6d79e Mon Sep 17 00:00:00 2001 From: damien Date: Sun, 22 Jul 2001 19:58:06 +0000 Subject: big work on isdn. Not finished --- perl-install/network/isdn.pm | 29 +++++++++++++++++++++-------- perl-install/network/netconnect.pm | 1 - perl-install/network/tools.pm | 6 +++--- 3 files changed, 24 insertions(+), 12 deletions(-) (limited to 'perl-install/network') diff --git a/perl-install/network/isdn.pm b/perl-install/network/isdn.pm index f67c6aac1..d921ee204 100644 --- a/perl-install/network/isdn.pm +++ b/perl-install/network/isdn.pm @@ -1,6 +1,6 @@ package network::isdn; -use common qw(:common :file); +use common qw(:common :file :system); use any; use modules; use log; @@ -42,16 +42,18 @@ sub isdn_write_config { my $e = $in->ask_from_list_(_("Network Configuration Wizard"), _("Which ISDN configuration do you prefer? -* The full configuration uses isdn4net. It contains powerfull tools, but is tricky to configure for a newbie, and not standard. +* The Old configuration uses isdn4net. It contains powerfull tools, but is tricky to configure for a newbie, and not standard. -* The light configuration is easier to understand, more standard, but with less tools. +* The New configuration is easier to understand, more standard, but with less tools. We recommand the light configuration. -"), [ __("Light configuration"), __("Full configuration (isdn4net)")] +"), [ __("New configuration (isdn-light)"), __("Old configuration (isdn4net)")] ) or return; - $install->($e =~ /Light/ ? 'isdn-light' : 'isdn4net', 'isdn4k-utils'); - isdn_write_config_backend($isdn, $e =~ /Light/); + #FIXME debug only + system('urpmi --auto --best-output ' . join(' ', $e =~ /light/ ? 'isdn-light' : 'isdn4net', 'isdn4k-utils')); + #$install->($e =~ /light/ ? 'isdn-light' : 'isdn4net', 'isdn4k-utils'); + isdn_write_config_backend($isdn, $e =~ /light/); $::isStandalone and ask_connect_now($isdn, 'ippp0'); 1; } @@ -66,7 +68,12 @@ We recommand the light configuration. sub isdn_write_config_backend { my ($isdn, $light) = @_; if ($light) { - any::setup_thiskind($in, 'isdn', !$::expert, 1); + modules::mergein_conf("$prefix/etc/modules.conf"); + @c = any::setup_thiskind($in, 'isdn', !$::expert, 1); + modules::add_alias("ippp0", $c[0]{driver}); + isdn_detect_backend($isdn); + + $::isStandalone and modules::write_conf($prefix); foreach my $f ('ioptions1B', 'ioptions2B') { substInFile { s/^name .*\n//; $_ .= "name $isdn->{login}\n" if eof } "$prefix/etc/ppp/$f"; chmod 0600, $f; @@ -99,6 +106,7 @@ I4L_MEMBASE="$isdn->{mem}" I4L_PORT="$isdn->{io}" I4L_IO0="$isdn->{io0}" I4L_IO1="$isdn->{io1}" +I4L_ID="isdn_card" ); output "$prefix/etc/ppp/ioptions", @@ -212,6 +220,7 @@ sub isdn_detect { isdn_ask($isdn, $netc, _("I have detected an ISDN PCI Card, but I don't know the type. Please select one PCI card on the next screen.")) or return; } else { isdn_detect_step_1: + print "plop isdn protocol\n"; $isdn->{protocol}=isdn_ask_protocol() or return; isdn_detect_step_2: isdn_ask_info($isdn, $netc) or goto isdn_detect_step_1; @@ -236,7 +245,11 @@ sub isdn_detect_backend { $isdn->{$_} = $c->{$_} foreach qw(description vendor id driver options); $isdn->{$_} = sprintf("%0x", $isdn->{$_}) foreach ('vendor', 'id'); $isdn->{card_type} = 'pci'; - $isdn->{type} = $network::netconnect::isdnid2type{$isdn->{vendor} . $isdn->{id}}; #If the card is not listed, type is void. You have to ask it then. + ($isdn->{type}) = $isdn->{options} =~ /type=(\d+)/; + if ($c->{options} !~ /protocol/ && $isdn->{protocol}) { + $c->{options} .= "protocol=" . $isdn->{protocol}; + } + $c->{options} =~ /protocol=(\w+)/ and $isdn->{protocol} = $1; } } diff --git a/perl-install/network/netconnect.pm b/perl-install/network/netconnect.pm index 36c319c7d..7e5e2a673 100644 --- a/perl-install/network/netconnect.pm +++ b/perl-install/network/netconnect.pm @@ -156,7 +156,6 @@ ifdown eth0 ); my $i=0; map { defined $set_default or do { $_->[1] and $set_default=$i; }; $i++; } @l; - foreach (keys %{$netc->{autodetect}}) { print "plop $_\n" }; my $e = $in->ask_from_entries_refH(_("Network Configuration Wizard"), _("Choose"), [ diff --git a/perl-install/network/tools.pm b/perl-install/network/tools.pm index 3cbbfdcd2..aff57e9b1 100644 --- a/perl-install/network/tools.pm +++ b/perl-install/network/tools.pm @@ -1,6 +1,6 @@ package network::tools; -use common qw(:common :file); +use common qw(:common :file :system); use run_program; use vars qw(@ISA @EXPORT); use globals "network", qw($in $prefix $install $disconnect_file $connect_prog); @@ -11,8 +11,8 @@ use globals "network", qw($in $prefix $install $disconnect_file $connect_prog); 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/$_"; + foreach my $i ("pap-secrets", "chap-secrets") { + substInFile { s/^$a.*\n//; $_ .= "\n'$a' * '$b' * \n" if eof } "$prefix/etc/ppp/$i"; } } -- cgit v1.2.1