1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
package network::modem;
use common qw(:common :file);
use network::tools;
use vars qw(@ISA @EXPORT);
@ISA = qw(Exporter);
@EXPORT = qw(pppConfig modem_detect_backend);
sub configure{
my ($netcnx, $mouse, $netc) = @_;
$netcnx->{type}='modem';
$netcnx->{$netcnx->{type}}={};
$netcnx->{modem}{device}=$netc->{autodetect}{modem};
modem_step_1:
pppConfig($netcnx->{$netcnx->{type}}, $mouse, $netc) or return;
output "$prefix$connect_file",
q(#!/bin/bash
ifup ppp0
);
output "$prefix$disconnect_file",
q(#!/bin/bash
ifdown ppp0
killall pppd
);
chmod 0755, "$prefix$disconnect_file";
chmod 0755, "$prefix$connect_file";
if ($::isStandalone) { ask_connect_now($netcnx->{$netcnx->{type}}, 'ppp0') or goto modem_step_1 }
1;
}
sub pppConfig {
my ($modem, $mouse, $netc) = @_;
$mouse ||={};
$mouse->{device} ||= readlink "$prefix/dev/mouse";
$::isInstall and $in->set_help('selectSerialPort');
$modem->{device} ||= $in->ask_from_listf('', _("Please choose which serial port your modem is connected to."),
\&mouse::serial_port2text,
[ grep { $_ ne $mouse->{device} } (mouse::serial_ports, if_(-e '/dev/modem', '/dev/modem')) ]) || return;
$::isStandalone || $in->set_help('configureNetworkISP');
$in->ask_from_entries_refH('', _("Dialup options"), [
{ label => _("Connection name"), val => \$modem->{connection} },
{ label => _("Phone number"), val => \$modem->{phone} },
{ label => _("Login ID"), val => \$modem->{login} },
{ label => _("Password"), val => \$modem->{passwd}, hidden => 1 },
{ label => _("Authentication"), val => \$modem->{auth}, list => [ __("PAP"), __("Terminal-based"), __("Script-based") ] },
{ label => _("Domain name"), val => \$modem->{domain} },
{ label => _("First DNS Server (optional)"), val => \$modem->{dns1} },
{ label => _("Second DNS Server (optional)"), val => \$modem->{dns2} },
]) or return;
any::pppConfig($modem, $install);
$netc->{$_}='ppp0' foreach 'NET_DEVICE', 'NET_INTERFACE';
1;
}
#-AT&F&O2B40
#- DialString=ATDT0231389595((
#- modem_detect_backend : detects modem on serial ports and fills the infos in $modem : detects only one card
#- input
#- $modem
#- $mouse : facultative, hash containing device to exclude not to test mouse port : ( device => /ttyS[0-9]/ )
#- output:
#- $modem->{device} : device where the modem were detected
sub modem_detect_backend {
my ($modem, $mouse) = @_;
$mouse ||={};
$mouse->{device} ||= readlink "/dev/mouse";
my $serdev = arch() =~ /ppc/ ? "macserial" : "serial";
eval { modules::load("$serdev") };
detect_devices::probeSerialDevices();
foreach ('modem', map { "ttyS$_" } (0..7)) {
next if $mouse->{device} =~ /$_/;
next unless -e "/dev/$_";
detect_devices::hasModem("/dev/$_") and $modem->{device} = "$_", last;
}
#- add an alias for macserial on PPC
modules::add_alias('serial', $serdev) if (arch() =~ /ppc/ && $modem->{device});
my @devs = modules::get_pcmcia_devices();
foreach (@devs) {
$_->{type} =~ /serial/ and $modem->{device} = $_->{device};
}
}
1;
|