blob: 51d9e3d1b83a62a192f069667e4a0a07903e8cb9 (
plain)
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
|
package network::connection::cellular;
use base qw(network::connection::ppp);
use strict;
use common;
my $cellular_d = "/etc/sysconfig/network-scripts/cellular.d";
sub get_providers {
require network::connection::providers::cellular;
(\%network::connection::providers::cellular::data, '|');
}
sub get_cellular_settings_file {
my ($self) = @_;
my $network = $self->get_selected_network or return;
$::prefix . $cellular_d . '/' . $network->{name};
}
sub load_cellular_settings {
my ($self) = @_;
my $file = $self->get_cellular_settings_file or return;
-f $file && { getVarsFromSh($file) };
}
sub network_is_configured {
my ($self, $_network) = @_;
#- only one network is supported, assume it is configured if settings are available
defined($self->load_cellular_settings);
}
sub write_cellular_settings {
my ($self) = @_;
my $file = $self->get_cellular_settings_file or return;
setVarsInShMode($file, 0600, { map { (uc($_) => $self->{access}{$_}) } qw(login password apn) });
}
sub guess_access_settings {
my ($self) = @_;
my $settings = $self->load_cellular_settings || {};
$self->{access}{$_} = $settings->{uc($_)} || $self->{provider}{$_} foreach qw(login password apn);
}
sub get_access_settings {
my ($self) = @_;
[
{ label => N("Access Point Name"), val => \$self->{access}{apn} },
@{$self->SUPER::get_access_settings},
];
}
sub set_ppp_settings {
my ($self) = @_;
$self->{access}{use_chat} = 1;
$self->{access}{dial_number} = !$self->{access}{no_dial} && "*99***$self->{access}{cid}#";
}
sub write_settings {
my ($self) = @_;
$self->write_cellular_settings;
$self->set_ppp_settings;
$self->SUPER::write_settings;
}
sub apply_network_selection {
my ($self) = @_;
$self->set_ppp_settings;
$self->write_ppp_settings;
}
1;
|