3 # Update or create the config section
5 require './ipsec-lib.pl';
7 &error_setup($text{'config_err'});
9 ($config) = grep { $_->{'name'} eq 'config' } @conf;
11 $config = { 'name' => 'config',
16 # Validate and store inputs
17 if ($in{'ifaces_mode'} == 0) {
18 delete($config->{'values'}->{'interfaces'});
20 elsif ($in{'ifaces_mode'} == 1) {
21 $config->{'values'}->{'interfaces'} = '%none';
23 elsif ($in{'ifaces_mode'} == 2) {
24 $config->{'values'}->{'interfaces'} = '%defaultroute';
27 for($n=0; defined($ri = $in{"ri_$n"}); $n++) {
30 $done{$ri}++ && &error(&text('config_eri', $ri));
31 push(@ifaces, "$ii=$ri");
33 @ifaces || &error($text{'config_enone'});
34 $config->{'values'}->{'interfaces'} = join(" ", @ifaces);
37 if ($in{'syslog_def'}) {
38 delete($config->{'values'}->{'syslog'});
41 $config->{'values'}->{'syslog'} = $in{'fac'}.".".$in{'pri'};
44 if ($in{'fwd'} eq 'yes' || $config->{'values'}->{'forwardcontrol'}) {
45 $config->{'values'}->{'forwardcontrol'} = $in{'fwd'};
48 delete($config->{'values'}->{'forwardcontrol'});
51 if ($in{'fwd'} eq 'yes' || $config->{'values'}->{'forwardcontrol'}) {
52 $config->{'values'}->{'forwardcontrol'} = $in{'fwd'};
55 delete($config->{'values'}->{'forwardcontrol'});
58 if ($in{'nat'} eq 'yes' || $config->{'values'}->{'nat_traversal'}) {
59 $config->{'values'}->{'nat_traversal'} = $in{'nat'};
62 delete($config->{'values'}->{'nat_traversal'});
65 # Create or update the section
66 $file = $config->{'file'} || $config{'file'};
68 if ($config->{'file'}) {
69 &modify_conn($config);
72 &create_conn($config);
75 &webmin_log("config");