]> git.ipfire.org Git - people/ummeegge/ipfire-2.x.git/commitdiff
OpenVPN: Calculate CIDR to DDN notation for RW ovpnrw_cidr2ddn
authorerik.kapfer <ummeegge@ipfire.org>
Fri, 30 Nov 2018 09:51:51 +0000 (10:51 +0100)
committererik.kapfer <ummeegge@ipfire.org>
Fri, 30 Nov 2018 09:51:51 +0000 (10:51 +0100)
Fixes #11823

Patches enables CIDR and dotted-decimal notation for "OpenVPN subnet:" entries in "Global settings".

html/cgi-bin/ovpnmain.cgi

index 976300fc72e77dd3e23e26bca243dc61faaa4606..b3d9b9d26774f58bb1ed3385b4b2c7481da3a91a 100644 (file)
@@ -245,6 +245,7 @@ sub pkiconfigcheck
 sub writeserverconf {
     my %sovpnsettings = ();  
     my @temp = ();  
+    my @tempovpnsubnet = ();
     &General::readhash("${General::swroot}/ovpn/settings", \%sovpnsettings);
     &read_routepushfile;
     
@@ -267,8 +268,16 @@ sub writeserverconf {
     print CONF "cert ${General::swroot}/ovpn/certs/servercert.pem\n";
     print CONF "key ${General::swroot}/ovpn/certs/serverkey.pem\n";
     print CONF "dh ${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}\n";
-    my @tempovpnsubnet = split("\/",$sovpnsettings{'DOVPN_SUBNET'});
-    print CONF "server $tempovpnsubnet[0] $tempovpnsubnet[1]\n";
+    # ovpn subnet calculate prefix to netmask if needed
+       if ($sovpnsettings{'DOVPN_SUBNET'} ne '') {
+               my ($ip,$subnet) = split(/\//,"$vpnsettings{'DOVPN_SUBNET'}");
+               if (&Network::check_prefix($subnet)) {
+                       $subnet = &Network::convert_prefix2netmask($subnet);
+                       print CONF "server $ip $subnet\n";
+               } else {
+                       print CONF "server $ip $subnet\n";
+               }
+       }
     #print CONF "push \"route $netsettings{'GREEN_NETADDRESS'} $netsettings{'GREEN_NETMASK'}\"\n";
 
     # Check if we are using mssfix, fragment and set the corretct mtu of 1500.