#!/usr/bin/perl # save_dialer.cgi # Save, create or delete a dialer configuration require './ppp-client-lib.pl'; &ReadParse(); $conf = &get_config(); $dialer = $conf->[$in{'idx'}] if (!$in{'new'}); &lock_file($config{'file'}); if ($in{'delete'}) { # Check for any dependencies? &error_setup($text{'save_err2'}); foreach $c (@$conf) { if (lc($c->{'values'}->{'inherits'}) eq lc($dialer->{'name'})) { &error(&text('save_einherits', &dialer_name($c->{'name'}))); } } # Just delete this dialer &delete_dialer($dialer); } else { # Validate and store basic inputs &error_setup($text{'save_err'}); if (defined($in{'dialer'})) { $in{'dialer'} =~ /^[^\[\]]+$/ || &error($text{'save_ename'}); $dialer->{'name'} = "Dialer $in{'dialer'}"; } elsif (defined($in{'name'})) { $in{'name'} =~ /^[^\[\]]+$/ || &error($text{'save_ename'}); $dialer->{'name'} = $in{'name'}; } local ($clash) = grep { lc($_->{'name'}) eq lc($dialer->{'name'}) } @$conf; if ($clash && $clash ne $dialer) { &error($text{'save_eclash'}); } &parse_opt("Phone", \&check_phone, $text{'save_ephone'}); &parse_opt("Username"); &parse_opt("Password"); &parse_opt("Dial Prefix", \&check_phone, $text{'save_eprefix'}); &parse_yes_no("Stupid Mode"); for($i=1; $i<=4; $i++) { local $other = $in{"other_$i"}; if ($other eq '') { &set_config("Phone$i"); } else { &check_phone($other) || &error(&text('save_eother',$i)); &set_config("Phone$i", $other); } } &set_config("Inherits", $in{'inherits_def'} ? undef : $in{'inherits'}); # Validate and store modem options if ($in{'modem'} eq '*') { -r $in{'otherm'} || &error($text{'save_eotherm'}); &set_config("Modem", $in{'otherm'}); } elsif ($in{'modem'} eq '') { &set_config("Modem"); } else { &set_config("Modem", $in{'modem'}); } &parse_opt("Baud", \&check_number, $text{'save_ebaud'}); for($i=1; $i<=9; $i++) { if ($in{"init_$i"} eq '') { &set_config("Init$i"); } else { &set_config("Init$i", $in{"init_$i"}); } } &parse_yes_no("Carrier Check"); &parse_yes_no("Abort on Busy"); &parse_opt("Dial Attempts", \&check_number, $text{'save_edial'}); &parse_yes_no("Abort on No Dialtone"); # Store networking options &parse_yes_no("Auto DNS"); &parse_yes_no("Auto Reconnect"); &parse_opt("Idle Seconds", \&check_number, $text{'save_eidle'}); # Create or update the dialer if ($in{'new'}) { &create_dialer($dialer); } else { &update_dialer($dialer); } } &unlock_file($config{'file'}); delete($dialer->{'values'}->{'password'}); &webmin_log($in{'new'} ? "create" : $in{'delete'} ? "delete" : "update", "dialer", $dialer->{'name'}, $dialer->{'values'}); &redirect(""); # parse_opt(name, [checker, error]) sub parse_opt { local $n = lc("$_[0]"); if ($in{$n."_def"}) { &set_config($_[0]); } else { local $func = $_[1]; !$func || &$func($in{$n}) || &error($_[2]); &set_config($_[0], $in{$n}); } } # parse_yes_no(name) sub parse_yes_no { local $n = lc("$_[0]"); if ($in{$n} == 1) { &set_config($_[0], "on"); } elsif ($in{$n} == 0) { &set_config($_[0], "off"); } else { &set_config($_[0]); } } # set_config(name, [value]) sub set_config { local $n = lc("$_[0]"); if (defined($_[1])) { $dialer->{'values'}->{$n} = $_[1]; $dialer->{'onames'}->{$n} = $_[0]; } else { delete($dialer->{'values'}->{$n}); delete($dialer->{'onames'}->{$n}); } } sub check_phone { return $_[0] =~ /^[0-9 \+\*\#A-Z]+$/; } sub check_number { return $_[0] =~ /^\d+$/; }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 137 B | 0644 |
|
backup_config.pl | File | 585 B | 0755 |
|
bootup.cgi | File | 838 B | 0755 |
|
cgi_args.pl | File | 186 B | 0755 |
|
config | File | 58 B | 0644 |
|
config.info | File | 119 B | 0644 |
|
config.info.ca | File | 134 B | 0644 |
|
config.info.de | File | 127 B | 0644 |
|
config.info.fa | File | 151 B | 0644 |
|
config.info.nl | File | 145 B | 0644 |
|
config.info.no | File | 128 B | 0644 |
|
connect.cgi | File | 376 B | 0755 |
|
disconnect.cgi | File | 396 B | 0755 |
|
edit.cgi | File | 6.15 KB | 0755 |
|
index.cgi | File | 4.32 KB | 0755 |
|
init.cgi | File | 905 B | 0755 |
|
install_check.pl | File | 373 B | 0755 |
|
log_parser.pl | File | 760 B | 0755 |
|
module.info | File | 201 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 130 B | 0644 |
|
module.info.ar | File | 0 B | 0644 |
|
module.info.ar.auto | File | 162 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 217 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 194 B | 0644 |
|
module.info.ca | File | 120 B | 0644 |
|
module.info.ca.auto | File | 12 B | 0644 |
|
module.info.cs | File | 26 B | 0644 |
|
module.info.cs.auto | File | 121 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 148 B | 0644 |
|
module.info.de | File | 139 B | 0644 |
|
module.info.de.auto | File | 12 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 185 B | 0644 |
|
module.info.es | File | 0 B | 0644 |
|
module.info.es.auto | File | 154 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 134 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 167 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 147 B | 0644 |
|
module.info.fr | File | 0 B | 0644 |
|
module.info.fr.auto | File | 157 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 172 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 132 B | 0644 |
|
module.info.hu | File | 0 B | 0644 |
|
module.info.hu.auto | File | 150 B | 0644 |
|
module.info.it | File | 0 B | 0644 |
|
module.info.it.auto | File | 143 B | 0644 |
|
module.info.ja | File | 0 B | 0644 |
|
module.info.ja.auto | File | 182 B | 0644 |
|
module.info.ko | File | 0 B | 0644 |
|
module.info.ko.auto | File | 141 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 164 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 150 B | 0644 |
|
module.info.ms | File | 134 B | 0644 |
|
module.info.ms.auto | File | 12 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 143 B | 0644 |
|
module.info.nl | File | 25 B | 0644 |
|
module.info.nl.auto | File | 120 B | 0644 |
|
module.info.no | File | 30 B | 0644 |
|
module.info.no.auto | File | 105 B | 0644 |
|
module.info.pl | File | 0 B | 0644 |
|
module.info.pl.auto | File | 147 B | 0644 |
|
module.info.pt | File | 0 B | 0644 |
|
module.info.pt.auto | File | 142 B | 0644 |
|
module.info.pt_BR | File | 0 B | 0644 |
|
module.info.pt_BR.auto | File | 151 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 145 B | 0644 |
|
module.info.ru | File | 0 B | 0644 |
|
module.info.ru.auto | File | 198 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 144 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 132 B | 0644 |
|
module.info.sv | File | 0 B | 0644 |
|
module.info.sv.auto | File | 137 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 295 B | 0644 |
|
module.info.tr | File | 0 B | 0644 |
|
module.info.tr.auto | File | 148 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 235 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 248 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 148 B | 0644 |
|
module.info.zh | File | 0 B | 0644 |
|
module.info.zh.auto | File | 137 B | 0644 |
|
module.info.zh_TW | File | 0 B | 0644 |
|
module.info.zh_TW.auto | File | 146 B | 0644 |
|
ppp-client-lib.pl | File | 8.48 KB | 0755 |
|
save.cgi | File | 3.41 KB | 0755 |
|
start.pl | File | 200 B | 0755 |
|
stop.pl | File | 245 B | 0755 |
|