]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - html/cgi-bin/vpnmain.cgi
IKEv2: Add roadwarrior configuration to file.
[people/teissler/ipfire-2.x.git] / html / cgi-bin / vpnmain.cgi
index b4bf8c29588993ddab6c7eb349bab35899abd4b7..e1a82009452d629b0a092ac933c4a7f8946ea15d 100644 (file)
@@ -111,6 +111,7 @@ $cgiparams{'ROOTCERT_EMAIL'} = '';
 $cgiparams{'ROOTCERT_OU'} = '';
 $cgiparams{'ROOTCERT_CITY'} = '';
 $cgiparams{'ROOTCERT_STATE'} = '';
+$cgiparams{'RW_NET'} = '';
 
 &Header::getcgihash(\%cgiparams, {'wantfile' => 1, 'filevar' => 'FH'});
 
@@ -438,6 +439,7 @@ sub writeipsecfiles {
        # Automatically start only if a net-to-net connection
        if ($lconfighash{$key}[3] eq 'host') {
            print CONF "\tauto=add\n";
+           print CONF "\trightsourceip=$lvpnsettings{'RW_NET'}\n";
        } else {
            print CONF "\tauto=start\n";
        }
@@ -474,6 +476,11 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg
        goto SAVE_ERROR;
     }
 
+    if ( $cgiparams{'RW_NET'} ne '' and !&General::validipandmask($cgiparams{'RW_NET'}) ) {
+       $errormessage = $Lang::tr{'urlfilter invalid ip or mask error'};
+       goto SAVE_ERROR;
+    }
+
     map ($vpnsettings{$_} = $cgiparams{$_},
        ('ENABLED','DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL',
         'DBG_DNS'));
@@ -482,6 +489,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg
     $vpnsettings{'VPN_DELAYED_START'} = $cgiparams{'VPN_DELAYED_START'};
     $vpnsettings{'VPN_OVERRIDE_MTU'} = $cgiparams{'VPN_OVERRIDE_MTU'};
     $vpnsettings{'VPN_WATCH'} = $cgiparams{'VPN_WATCH'};
+    $vpnsettings{'RW_NET'} = $cgiparams{'RW_NET'};
     &General::writehash("${General::swroot}/vpn/settings", \%vpnsettings);
     &writeipsecfiles();
     if (&vpnenabled) {
@@ -2478,6 +2486,10 @@ print <<END
        <td  class='base' nowrap='nowrap'>$Lang::tr{'vpn delayed start'}:&nbsp;<img src='/blob.gif' alt='*' /><img src='/blob.gif' alt='*' /></td>
        <td ><input type='text' name='VPN_DELAYED_START' value='$cgiparams{'VPN_DELAYED_START'}' /></td>
     </tr>
+    <tr>
+       <td  class='base' nowrap='nowrap'>$Lang::tr{'host to net vpn'}:&nbsp;<img src='/blob.gif' alt='*' /></td>
+       <td ><input type='text' name='RW_NET' value='$cgiparams{'RW_NET'}' /></td>
+    </tr>
  </table>
 <p>$Lang::tr{'vpn watch'}:<input type='checkbox' name='VPN_WATCH' $checked{'VPN_WATCH'} /></p>
 <p>PLUTO DEBUG&nbsp;=
@@ -2527,7 +2539,7 @@ END
            print "<tr bgcolor='$color{'color22'}'>\n";
        }
        print "<td align='center' nowrap='nowrap'>$confighash{$key}[1]</td>";
-       print "<td align='center' nowrap='nowrap'>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td>";
+       print "<td align='center' nowrap='nowrap'>" . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ") $confighash{$key}[29]</td>";
        if ($confighash{$key}[2] eq '%auth-dn') {
            print "<td align='left' nowrap='nowrap'>$confighash{$key}[9]</td>";
        } elsif ($confighash{$key}[4] eq 'cert') {
@@ -2539,8 +2551,8 @@ END
        # get real state
        my $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>";
        foreach my $line (@status) {
-           if ($line =~ /\"$confighash{$key}[1]\".*IPsec SA established/) ||
-              ($line =~ / $confighash{$key}[1]\[.*ESTABLISHED/))
+           if (($line =~ /\"$confighash{$key}[1]\".*IPsec SA established/) ||
+              ($line =~ /$confighash{$key}[1]\{.*INSTALLED/))
            {
                $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourgreen}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b></td></tr></table>";
            }