]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/commitdiff
Merge branch 'master' into fifteen
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 9 Jan 2014 12:31:25 +0000 (13:31 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 9 Jan 2014 12:31:25 +0000 (13:31 +0100)
Conflicts:
config/backup/backup.pl

config/backup/backup.pl
config/rootfiles/common/stage2
config/rootfiles/core/75/filelists/files
config/rootfiles/core/75/update.sh
html/cgi-bin/ovpnmain.cgi
src/scripts/convert-ovpn [new file with mode: 0755]

index a56a69856fcd0663bc035a6067299ab54b0552a3..3172d6dc6bb36804986fb371b52eaa20a3eb402b 100644 (file)
@@ -125,6 +125,10 @@ elsif ($ARGV[0] eq 'restore') {
   }
   system("/usr/local/bin/firewallctrl");
  }
+
+  # Convert old OpenVPN CCD files (CN change, core 75).
+  system("/usr/local/bin/convert-ovpn");
+}
 elsif ($ARGV[0] eq 'restoreaddon') {
   if ( -e "/tmp/$ARGV[1]" ){system("mv /tmp/$ARGV[1] /var/ipfire/backup/addons/backup/$ARGV[1]");}
   system("cd / && tar -xvz -p -f /var/ipfire/backup/addons/backup/$ARGV[1]");
index a53ecafc3389377dbc2d74b6e8cd90dc03c7b9bc..114592a8e4d0d201a6202bc7231cfa15e8b40f30 100644 (file)
@@ -77,6 +77,7 @@ usr/lib/libstdc++.so.6
 usr/local/bin/backupiso
 usr/local/bin/connscheduler
 usr/local/bin/consort.sh
+usr/local/bin/convert-ovpn
 usr/local/bin/dialctrl.pl
 usr/local/bin/hddshutdown
 usr/local/bin/httpscert
index 460db7dedb7ed4f75ac984bda58a9b28128a4bd3..9d4fbe49a9a040be284dde82512b20a16d5be693 100644 (file)
@@ -3,5 +3,7 @@ etc/issue
 opt/pakfire/lib/functions.pl
 srv/web/ipfire/cgi-bin/ovpnmain.cgi
 usr/lib/openvpn/verify
+usr/local/bin/convert-ovpn
+var/ipfire/backup/bin/backup.pl
 var/ipfire/header.pl
 var/ipfire/langs
index 3fd00fe3bccfde23c5f776ab93add96367c05147..94bec746811b3cb5e785beb59eb9ba2a652ef644 100644 (file)
@@ -44,6 +44,9 @@ if [ -r "/var/ipfire/ovpn/server.conf" ]; then
                -i /var/ipfire/ovpn/server.conf
 fi
 
+# Convert CCD files.
+/usr/local/bin/convert-ovpn
+
 # Update Language cache
 perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
 
index 6516c4579631deaefd638961fe3774ef7c11a6c3..5dd943f19610fdfe585c0be631b4c43b08866c05 100644 (file)
@@ -3947,7 +3947,6 @@ if ($cgiparams{'TYPE'} eq 'net') {
                        if ( -e "${General::swroot}/ovpn/ccd/$confighash{$key}[2]"){
                                unlink "${General::swroot}/ovpn/ccd/$cgiparams{'CERT_NAME'}";
                        }
-                       $confighash{$key}[2] =~ s/ /_/gi;
                        open ( CCDRWCONF,'>',"${General::swroot}/ovpn/ccd/$confighash{$key}[2]") or die "Unable to create clientconfigfile $!";
                        print CCDRWCONF "# OpenVPN clientconfig from ccd extension by Copymaster#\n\n";
                        if($cgiparams{'CHECK1'} eq 'dynamic'){
diff --git a/src/scripts/convert-ovpn b/src/scripts/convert-ovpn
new file mode 100755 (executable)
index 0000000..58921a5
--- /dev/null
@@ -0,0 +1,60 @@
+#!/usr/bin/perl
+
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2013 Alexander Marx <amarx@ipfire.org>                        #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+#                                                                             #
+# This script converts old openvpn ccd files with underscore                  #
+# to files with spaces to make them working with openvpn 2.3 again            #
+# STEP1: read ovpnconfig and verify cert names                                #
+# STEP2: if neccessary convert ccd file                                       #
+#                                                                             #
+###############################################################################
+
+require '/var/ipfire/general-functions.pl';
+
+my %configovpn=();
+my $ccdpath="/var/ipfire/ovpn/ccd/";
+my $ovpnconfig="/var/ipfire/ovpn/ovpnconfig";
+
+&General::readhasharray ($ovpnconfig,\%configovpn);
+
+&check_config();
+
+sub check_config {
+       print "Converting CCD files...\n";
+       chdir($ccdpath);
+
+       foreach my $key (sort keys %configovpn){
+               # Skip everything else but roadwarrior connections.
+               next if ($configovpn{$key}[3] ne 'host');
+
+               # Skip all connections with no space in the CN name.
+               next if ($configovpn{$key}[2] !~ " ");
+
+               my $ccdname = $configovpn{$key}[2];
+               $ccdname =~ tr/ /_/;
+
+               # Rename the CCD file if one with the old format exists.
+               if (-e "$ccdname") {
+                       print " Renaming $ccdname -> $configovpn{$key}[2]...\n";
+                       rename($ccdname, $configovpn{$key}[2]);
+               }
+       }
+}