mirror of
https://github.com/webmin/webmin.git
synced 2026-01-16 15:06:07 +00:00
91 lines
2.6 KiB
Perl
Executable File
91 lines
2.6 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# save_options.cgi
|
|
# Save PPP server options
|
|
|
|
require './pptp-server-lib.pl';
|
|
$access{'options'} || &error($text{'options_ecannot'});
|
|
&error_setup($text{'options_err'});
|
|
&ReadParse();
|
|
|
|
$conf = &get_config();
|
|
$option = &find_conf("option", $conf);
|
|
$option ||= $config{'ppp_options'};
|
|
&lock_file($option);
|
|
@opts = &parse_ppp_options($option);
|
|
|
|
# Validate inputs
|
|
$in{'mtu_def'} || $in{'mtu'} =~ /^\d+$/ || &error($text{'options_emtu'});
|
|
$in{'mru_def'} || $in{'mru'} =~ /^\d+$/ || &error($text{'options_emru'});
|
|
$in{'name_def'} || $in{'name'} =~ /^[A-Za-z0-9\.\-]+$/ ||
|
|
&error($text{'options_ename'});
|
|
|
|
# Save options
|
|
&save_ppp_option(\@opts, $option, "proxyarp",
|
|
$in{'proxyarp'} ? { 'name' => 'proxyarp' } : undef);
|
|
&save_ppp_option(\@opts, $option, "lock",
|
|
$in{'lock'} ? { 'name' => 'lock' } : undef);
|
|
&save_ppp_option(\@opts, $option, "mtu",
|
|
$in{'mtu_def'} ? undef : { 'name' => 'mtu',
|
|
'value' => $in{'mtu'} });
|
|
&save_ppp_option(\@opts, $option, "mru",
|
|
$in{'mru_def'} ? undef : { 'name' => 'mru',
|
|
'value' => $in{'mru'} });
|
|
|
|
if ($in{'auth'} == 0) {
|
|
&save_ppp_option(\@opts, $option, "auth", undef);
|
|
&save_ppp_option(\@opts, $option, "noauth", undef);
|
|
}
|
|
elsif ($in{'auth'} == 1) {
|
|
&save_ppp_option(\@opts, $option, "auth", undef);
|
|
&save_ppp_option(\@opts, $option, "noauth", { 'name' => 'noauth' });
|
|
}
|
|
else {
|
|
&save_ppp_option(\@opts, $option, "noauth", undef);
|
|
&save_ppp_option(\@opts, $option, "auth", { 'name' => 'auth' });
|
|
}
|
|
&parse_auth("pap");
|
|
&parse_auth("chap");
|
|
&save_ppp_option(\@opts, $option, "login",
|
|
$in{'login'} ? { 'name' => 'login' } : undef);
|
|
&save_ppp_option(\@opts, $option, "name",
|
|
$in{'name_def'} ? undef : { 'name' => 'name',
|
|
'value' => $in{'name'} });
|
|
|
|
&foreign_require("pptp-client", "pptp-client-lib.pl");
|
|
&pptp_client::parse_mppe_options(\@opts, $option);
|
|
|
|
if (&pptp_client::mppe_support() == 1) {
|
|
&parse_auth("mschap");
|
|
&parse_auth("mschap-v2");
|
|
}
|
|
else {
|
|
&parse_auth("chapms");
|
|
&parse_auth("chapms-v2");
|
|
}
|
|
|
|
# All done
|
|
&flush_file_lines();
|
|
&unlock_file($option);
|
|
&webmin_log("options", undef, undef, \%in);
|
|
&redirect("");
|
|
|
|
# parse_auth(name)
|
|
sub parse_auth
|
|
{
|
|
local $a = $_[0];
|
|
if ($in{$a} == 2) {
|
|
&save_ppp_option(\@opts, $option, "require-$a",
|
|
{ 'name' => "require-$a" });
|
|
&save_ppp_option(\@opts, $option, "refuse-$a", undef);
|
|
}
|
|
elsif ($in{$a} == 1) {
|
|
&save_ppp_option(\@opts, $option, "require-$a", undef);
|
|
&save_ppp_option(\@opts, $option, "refuse-$a", undef);
|
|
}
|
|
else {
|
|
&save_ppp_option(\@opts, $option, "require-$a", undef);
|
|
&save_ppp_option(\@opts, $option, "refuse-$a",
|
|
{ 'name' => "refuse-$a" });
|
|
}
|
|
}
|