Merge branch 'master' into fifteen

Conflicts:
	config/backup/backup.pl
This commit is contained in:
Michael Tremer
2014-01-09 13:31:25 +01:00
6 changed files with 70 additions and 1 deletions

View 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]");

View 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

View 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

View 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"

View 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'){

60
src/scripts/convert-ovpn Executable file
View File

@@ -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]);
}
}
}