diff options
Diffstat (limited to 'perl-install/network/modem.pm')
-rw-r--r-- | perl-install/network/modem.pm | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/perl-install/network/modem.pm b/perl-install/network/modem.pm deleted file mode 100644 index 29afb69a4..000000000 --- a/perl-install/network/modem.pm +++ /dev/null @@ -1,223 +0,0 @@ -package network::modem; # $Id$ - -use strict; -use common; -use any; -use modules; -use detect_devices; -use network::network; -use network::tools; - -sub get_user_home() { - my $home; - if ($ENV{USER} ne "root") { - #- kdesu case - my $user = find { $_->[0] eq $ENV{USER} } list_passwd(); - $home = $user->[7] if $user; - } - $home ||= $ENV{HOME}; #- consolehelper case - $home; -} - -sub ppp_read_conf() { - my $modem = {}; - my %l = getVarsFromSh(get_user_home() . "/.kde/share/config/kppprc"); - add2hash(\%l, { getVarsFromSh("$::prefix/usr/share/config/kppprc") }); - $l{Authentication} = 4 if $l{Authentication} !~ /\d/; - $modem->{$_} ||= $l{$_} foreach qw(Authentication Gateway IPAddr SubnetMask); - $modem->{connection} ||= $l{Name}; - $modem->{domain} ||= $l{Domain}; - ($modem->{dns1}, $modem->{dns2}) = split(',', $l{DNS}); - - foreach (cat_("/etc/sysconfig/network-scripts/chat-ppp0")) { - /.*ATDT([\d#*]*)/ and $modem->{phone} ||= $1; - } - foreach (cat_("/etc/sysconfig/network-scripts/ifcfg-ppp0")) { - /NAME=(['"]?)(.*)\1/ and $modem->{login} ||= $2; - /^METRIC=(.*)/ and $modem->{METRIC} = $1; - } - $modem->{login} ||= $l{Username}; - my $secret = network::tools::read_secret_backend(); - foreach (@$secret) { - $modem->{passwd} ||= $_->{passwd} if $_->{login} eq $modem->{login}; - } - #my $secret = network::tools::read_secret_backend(); - #my @cnx_list = map { $_->{server} } @$secret; - $modem->{$_} ||= '' foreach qw(connection phone login passwd auth domain dns1 dns2); - $modem->{auto_gateway} ||= defined $modem->{Gateway} && $modem->{Gateway} ne '0.0.0.0' ? N("Manual") : N("Automatic"); - $modem->{auto_ip} ||= defined $modem->{IPAddr} && $modem->{IPAddr} ne '0.0.0.0' ? N("Manual") : N("Automatic"); - $modem->{auto_dns} ||= $modem->{dns1} || $modem->{dns2} ? N("Manual") : N("Automatic"); - $modem->{device} ||= '/dev/modem'; - $modem; -} - -#-----modem conf -sub ppp_configure { - my ($net, $in, $modem) = @_; - $in->do_pkgs->install('ppp') if !$::testing; - $in->do_pkgs->install('kdenetwork-kppp') if !$::testing && $in->do_pkgs->is_installed('kdebase'); - - if ($modem->{device} ne "/dev/modem") { - my $dev = $modem->{device}; - $dev =~ s!^/dev/!!; - any::devfssymlinkf({ device => $dev }, 'modem'); - } - - my %toreplace = map { $_ => $modem->{$_} } qw(Authentication AutoName connection dns1 dns2 domain IPAddr login passwd phone SubnetMask); - $toreplace{phone} =~ s/[^\d#*]//g; - if ($modem->{auto_dns} ne N("Automatic")) { - $toreplace{dnsserver} = join ',', map { $modem->{$_} } "dns1", "dns2"; - $toreplace{dnsserver} .= $toreplace{dnsserver} && ','; - } - - #- using peerdns or dns1,dns2 avoid writing a /etc/resolv.conf file. - $toreplace{peerdns} = "yes"; - - $toreplace{connection} ||= 'DialupConnection'; - $toreplace{domain} ||= 'localdomain'; - $toreplace{papname} = $toreplace{login} if member($modem->{Authentication}, 1, 3, 4); - - # handle static/dynamic settings: - if ($modem->{auto_ip} eq N("Automatic")) { - $toreplace{$_} = '0.0.0.0' foreach qw(IPAddr SubnetMask); - } else { - $toreplace{$_} = $modem->{$_} foreach qw(IPAddr SubnetMask); - } - $toreplace{Gateway} = $modem->{auto_gateway} eq N("Automatic") ? '0.0.0.0' : $modem->{Gateway}; - - $toreplace{METRIC} = defined($modem->{METRIC}) ? $modem->{METRIC} : network::tools::get_default_metric("modem"); - - $net->{ifcfg}{ppp0} = { - DEVICE => "ppp0", - 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}, - METRIC => $toreplace{METRIC}, - if_($modem->{auto_dns} ne N("Automatic"), - map { qq(DNS$_=$toreplace{"dns$_"}\n) } grep { $toreplace{"dns$_"} } 1..2), - }; - - #- build chat-ppp0. - my @chat = <<END; -'ABORT' 'BUSY' -'ABORT' 'ERROR' -'ABORT' 'NO CARRIER' -'ABORT' 'NO DIALTONE' -'ABORT' 'Invalid Login' -'ABORT' 'Login incorrect' -'' 'ATZ' -END - if ($modem->{special_command}) { - push @chat, <<END; -'OK' '$modem->{special_command}' -END - } - push @chat, <<END; -'OK' 'ATDT$toreplace{phone}' -'TIMEOUT' '120' -'CONNECT' '' -END - if (member($modem->{Authentication}, 0, 2)) { - push @chat, <<END; -'ogin:--ogin:' '$toreplace{login}' -'ord:' '$toreplace{passwd}' -END - } - push @chat, <<END; -'TIMEOUT' '5' -'~--' '' -END - my $chat_file = "$::prefix/etc/sysconfig/network-scripts/chat-ppp0"; - output_with_perm($chat_file, 0600, @chat); - - network::tools::write_secret_backend($toreplace{login}, $toreplace{passwd}); - - #- install kppprc file according to used configuration. - mkdir_p("$::prefix/usr/share/config"); - - $toreplace{$_->[0]} = $modem->{$_->[0]} || $_->[1] foreach [ 'Timeout', 60 ], [ 'UseLockFile', 1 ], [ 'Enter', 'CR' ], [ 'Volume', 0 ], - [ 'BusyWait', 0 ], [ 'FlowControl', 'CRTSCTS' ], [ 'Speed', 115200 ]; - output($modem->{kppprc} || "$::prefix/usr/share/config/kppprc", common::to_utf8(<<END)); -# KDE Config File - -[Account0] -ExDNSDisabled=0 -AutoName=$toreplace{AutoName} -ScriptArguments= -AccountingEnabled=0 -DialString=ATDT -Phonenumber=$toreplace{phone} -IPAddr=$toreplace{IPAddr} -Domain=$toreplace{domain} -Name=$toreplace{connection} -VolumeAccountingEnabled=0 -pppdArguments= -Password=$toreplace{passwd} -BeforeDisconnect= -Command= -ScriptCommands= -Authentication=$toreplace{Authentication} -DNS=$toreplace{dnsserver} -SubnetMask=$toreplace{SubnetMask} -AccountingFile= -DefaultRoute=1 -Username=$toreplace{login} -Gateway=$toreplace{Gateway} -StorePassword=1 -DisconnectCommand= - -[Modem] -BusyWait=$toreplace{BusyWait} -Enter=$toreplace{Enter} -FlowControl=$toreplace{FlowControl} -Volume=$toreplace{Volume} -Timeout=$toreplace{Timeout} -UseCDLine=0 -UseLockFile=$toreplace{UseLockFile} -Device=/dev/modem -Speed=$toreplace{Speed} - -[Graph] -InBytes=0,0,255 -Text=0,0,0 -Background=255,255,255 -Enabled=true -OutBytes=255,0,0 - -[General] -QuitOnDisconnect=0 -ShowLogWindow=0 -DisconnectOnXServerExit=1 -DefaultAccount=$toreplace{connection} -iconifyOnConnect=1 -Hint_QuickHelp=0 -AutomaticRedial=0 -PPPDebug=0 -NumberOfAccounts=1 -ShowClock=1 -DockIntoPanel=0 -pppdTimeout=30 -END - network::network::proxy_configure($::o->{miscellaneous}); -} - -1; |