-
-
Notifications
You must be signed in to change notification settings - Fork 117
/
Copy pathsave_proxy.cgi
executable file
·58 lines (48 loc) · 1.49 KB
/
save_proxy.cgi
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
#!/usr/local/bin/perl
# Update proxying settings
require './virtual-server-lib.pl';
&ReadParse();
&licence_status();
$d = &get_domain($in{'dom'});
$oldd = { %$d };
&can_edit_domain($d) && &can_edit_forward() || &error($text{'edit_ecannot'});
# Validate inputs
&error_setup($text{'proxy_err'});
if ($in{'enabled'}) {
# Activate or update
$d->{'proxy_pass_mode'} = 1;
$in{'url'} =~ /^(http|https):\/\/\S+$/ || &error($text{'frame_eurl'});
if ($in{'url'} =~ /(http|https):\/\/[^\/]+$/) {
# Add trailing / if URL is like http://foo.com
$in{'url'} .= "/";
}
$d->{'proxy_pass'} = $in{'url'};
}
else {
# Turn off
$d->{'proxy_pass_mode'} = 0;
$d->{'proxy_pass'} = undef;
}
# Run the before command
&set_domain_envs(\%oldd, "MODIFY_DOMAIN", $d);
$merr = &making_changes();
&reset_domain_envs(\%oldd);
&error(&text('rename_emaking', "<tt>$merr</tt>")) if (defined($merr));
&ui_print_unbuffered_header(&domain_in($d), $text{'proxy_title'}, "");
# Call all modify funcs
foreach $f (&list_ordered_features($d)) {
&call_feature_func($f, $d, $oldd);
}
# Save the domain
print $text{'save_domain'},"<br>\n";
&save_domain($d);
&$second_print($text{'setup_done'});
# Run the after command
&run_post_actions();
&set_domain_envs($d, "MODIFY_DOMAIN", undef, \%oldd);
local $merr = &made_changes();
&$second_print(&text('setup_emade', "<tt>$merr</tt>")) if (defined($merr));
&reset_domain_envs($d);
&webmin_log("proxy", "domain", $d->{'dom'}, $d);
&ui_print_footer(&domain_footer_link($d),
"", $text{'index_return'});