]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/scripts/ovpn-ccd-convert
pakfire: use correct tree on x86_64.
[ipfire-2.x.git] / src / scripts / ovpn-ccd-convert
index a4062117d237e1fe3c59ee4dd150326671f45d7e..f4967065622303c463c0e5b68c3cb2aa7ac08768 100644 (file)
@@ -1,14 +1,17 @@
 #!/usr/bin/perl
-
+# Converter script for old openvpn clients
 my %net=();
 my %ovpnconfig=();
 my @serverconf=();
 my $greennet;
 my $greensubnet;
+my $running='off';
 
 require '/var/ipfire/general-functions.pl';
-
+unless (-d "${General::swroot}/ovpn/ccd") { system("mkdir ${General::swroot}/ovpn/ccd"); }
+system ("chown nobody.nobody ${General::swroot}/ovpn/ccd");
 if ( -e "/var/run/openvpn.pid"){
+       $running='on';
        system('/usr/local/bin/openvpnctrl', '-k');
 }
 
@@ -28,6 +31,7 @@ open(FILE,"/var/ipfire/ovpn/server.conf");
 &General::readhasharray("/var/ipfire/ovpn/ovpnconfig", \%ovpnconfig);
 foreach my $key (keys %ovpnconfig){
        if($ovpnconfig{$key}[32] eq '' && $ovpnconfig{$key}[3] eq 'host'){
+               $ovpnconfig{$key}[2] =~ s/ /_/gi;
                open ( CCDRWCONF,'>',"/var/ipfire/ovpn/ccd/$ovpnconfig{$key}[2]") or die "Unable to create clientconfigfile $!";
                print CCDRWCONF "# OpenVPN Clientconfig from CCD extension by Copymaster#\n\n";
                print CCDRWCONF "#This client uses the dynamic pool\n\n";
@@ -38,8 +42,11 @@ foreach my $key (keys %ovpnconfig){
        }else{
                print "Client $ovpnconfig{$key}[2] NOT converted!\n";
        }
-       $ovpnconfig{$key}[32] = 'dynamic';
+       $ovpnconfig{$key}[32] = 'dynamic' if ($ovpnconfig{$key}[32] eq '');
 }
 &General::writehasharray("/var/ipfire/ovpn/ovpnconfig", \%ovpnconfig);
-system('/usr/local/bin/openvpnctrl', '-s');
-
+if ($running eq 'on')
+{
+       system('/usr/local/bin/openvpnctrl', '-s');
+}
+system ("chown nobody:nobody /var/ipfire/ovpn/ccd/*");