#!/usr/bin/perl ############################################################################### # # # IPFire.org - A linux based firewall # # Copyright (C) 2013 Alexander Marx # # # # 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 . # # # ############################################################################### # # # 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]); } } }