summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/ChangeLog5
-rw-r--r--perl-install/install_steps.pm94
2 files changed, 82 insertions, 17 deletions
diff --git a/perl-install/ChangeLog b/perl-install/ChangeLog
index 157cb6605..70828981f 100644
--- a/perl-install/ChangeLog
+++ b/perl-install/ChangeLog
@@ -1,3 +1,8 @@
+2000-04-26 François Pons <fpons@mandrakesoft.com>
+
+ * install_steps.pm (pppConfig): modified a lot, removed template
+ file for ifcfg and chat file.
+
2000-04-26 Pixel <pixel@mandrakesoft.com>
* install_any.pm (relGetFile): added auto_inst to files to get
diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm
index 44acc1958..6e244322f 100644
--- a/perl-install/install_steps.pm
+++ b/perl-install/install_steps.pm
@@ -451,7 +451,7 @@ sub pppConfig {
$o->{modem} or return;
symlinkf($o->{modem}{device}, "$o->{prefix}/dev/modem") or log::l("creation of $o->{prefix}/dev/modem failed");
- $o->pkg_install("ppp");
+ $o->pkg_install("ppp") unless $::testing;
my %toreplace;
$toreplace{$_} = $o->{modem}{$_} foreach qw(connection phone login passwd auth domain dns1 dns2);
@@ -466,30 +466,90 @@ sub pppConfig {
$toreplace{connection} ||= 'DialupConnection';
$toreplace{domain} ||= 'localdomain';
$toreplace{intf} ||= 'ppp0';
-
- if ($o->{modem}{auth} eq 'PAP') {
- template2file($toreplace{dnsserver} ? "/usr/share/ifcfg-ppp.pap.dns.in" : "/usr/share/ifcfg-ppp.pap.in",
- "$o->{prefix}/etc/sysconfig/network-scripts/ifcfg-ppp0", %toreplace);
- template2file("/usr/share/chat-ppp.pap.in", "$o->{prefix}/etc/sysconfig/network-scripts/chat-ppp0", %toreplace);
-
- my @l = cat_("$o->{prefix}/etc/ppp/pap-secrets");
+ $toreplace{papname} = $o->{modem}{auth} eq 'PAP' && $toreplace{connection};
+
+ #- build ifcfg-ppp0.
+ my $ifcfg = "$o->{prefix}/etc/sysconfig/network-scripts/ifcfg-ppp0";
+ local *IFCFG; open IFCFG, ">$ifcfg" or die "Can't open $ifcfg";
+ print IFCFG <<END;
+DEVICE="$toreplace{intf}"
+ONBOOT="no"
+USERCTL="no"
+MODEMPORT="/dev/modem"
+LINESPEED="115200"
+PERSIST="yes"
+DEFABORT="yes"
+DEBUG="yes"
+INITSTRING="ATZ"
+DEFROUTE="yes"
+HARDFLOWCTL="yes"
+ESCAPECHARS="no"
+PPPOPTIONS=""
+PAPNAME="$toreplace{papname}"
+REMIP=""
+NETMASK=""
+IPADDR=""
+MRU=""
+MTU=""
+DISCONNECTTIMEOUT="5"
+RETRYTIMEOUT="60"
+BOOTPROTO="none"
+PEERDNS="$toreplace{peerdns}"
+END
+ foreach (1..2) {
+ if ($toreplace{"dns$_"}) {
+ print IFCFG <<END;
+DNS$_=$toreplace{"dns$_"}
+END
+ }
+ }
+ close IFCFG;
+
+ #- build chat-ppp0.
+ my $chat = "$o->{prefix}/etc/sysconfig/network-scripts/chat-ppp0";
+ local *CHAT; open CHAT, ">$chat" or die "Can't open $chat";
+ print CHAT <<END;
+'ABORT' 'BUSY'
+'ABORT' 'ERROR'
+'ABORT' 'NO CARRIER'
+'ABORT' 'NO DIALTONE'
+'ABORT' 'Invalid Login'
+'ABORT' 'Login incorrect'
+'' 'ATZ'
+'OK' 'ATDT$toreplace{phone}'
+'CONNECT' ''
+END
+ if ($o->{modem}{auth} eq 'Terminal-based' || $o->{modem}{auth} eq 'Script-based') {
+ print CHAT <<END;
+'ogin:' '$toreplace{login}'
+'ord:' '$toreplace{passwd}'
+END
+ }
+ print CHAT <<END;
+'TIMEOUT' '5'
+'~--' ''
+END
+ close CHAT;
+
+ if ($o->{modem}{auth} eq 'PAP' || $o->{modem}{auth} eq 'CHAP') {
+ #- need to create a secrets file for the connection.
+ my $secrets = "$o->{prefix}/etc/ppp/" . lc($o->{modem}{auth}) . "-secrets";
+ my @l = cat_($secrets);
my $replaced = 0;
do { $replaced ||= 1
- if s/^\s*$toreplace{login}\s+ppp0\s+(\S+)/$toreplace{login} ppp0 $toreplace{passwd}/; } foreach @l;
+ if s/^\s*$toreplace{login}\s+ppp0\s+(\S+)/$toreplace{login} ppp0 "$toreplace{passwd}"/; } foreach @l;
if ($replaced) {
local *F;
- open F, ">$o->{prefix}/etc/ppp/pap-secrets" or die "Can't open $o->{prefix}/etc/ppp/pap-secrets $!";
+ open F, ">$secrets" or die "Can't open $secrets: $!";
print F @l;
} else {
local *F;
- open F, ">>$o->{prefix}/etc/ppp/pap-secrets" or die "Can't open $o->{prefix}/etc/ppp/pap-secrets $!";
- print F "$toreplace{login} ppp0 $toreplace{passwd}\n";
+ open F, ">>$secrets" or die "Can't open $secrets: $!";
+ print F "$toreplace{login} ppp0 \"$toreplace{passwd}\"\n";
}
- } elsif ($o->{modem}{auth} eq 'Terminal-based' || $o->{modem}{auth} eq 'Script-based') {
- template2file($toreplace{dnsserver} ? "/usr/share/ifcfg-ppp.script.dns.in" : "/usr/share/ifcfg-ppp.script.in",
- "$o->{prefix}/etc/sysconfig/network-scripts/ifcfg-ppp0", %toreplace);
- template2file("/usr/share/chat-ppp.script.in", "$o->{prefix}/etc/sysconfig/network-scripts/chat-ppp0", %toreplace);
- } #- no CHAP currently.
+ #- restore access right to secrets file, just in case.
+ chmod 0600, $secrets;
+ }
install_any::template2userfile($o->{prefix}, "$ENV{SHARE_PATH}/kppprc.in", ".kde/share/config/kppprc", 1, %toreplace);