/usr/share/perl5/EBox/OpenVPN/Server/ClientBundleGenerator/Windows.pm is in zentyal-openvpn 2.3.10+quantal1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | # Copyright (C) 2008-2012 eBox Technologies S.L.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2, as
# published by the Free Software Foundation.
#
# 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, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
package EBox::OpenVPN::Server::ClientBundleGenerator::Windows;
# package:
use strict;
use warnings;
use base 'EBox::OpenVPN::Server::ClientBundleGenerator';
use EBox::Config;
use File::Glob ':glob';
use File::Slurp;
use constant ZIP_PATH => '/usr/bin/zip';
sub bundleFilename
{
my ($class, $serverName, $cn) = @_;
my $filename = "$serverName-client";
if ($cn) {
$filename .= "-$cn";
}
return EBox::Config::downloads() . "$filename.zip";
}
sub createBundleCmds
{
my ($class, $bundleFile, $tmpDir, %extraParams) = @_;
my @cmds = (
ZIP_PATH . " -j '$bundleFile' '$tmpDir'/*",
);
if ($extraParams{installer}) {
push @cmds, $class->_installerCmd($bundleFile);
}
return @cmds;
}
sub confFileExtension
{
my ($class) = @_;
return '.ovpn';
}
sub mangleConfFile
{
my ($class, $file) = @_;
# convert to windowa format
my @lines = File::Slurp::read_file($file);
@lines = map {
$_ =~ s{\n}{\r\n};
$_
} @lines;
File::Slurp::write_file($file, \@lines);
}
sub _installerCmd
{
my ($class, $bundleFile) = @_;
my $installerFile = $class->_windowsClientInstaller();
return ZIP_PATH . " -g -j '$bundleFile' '$installerFile'";
}
sub _windowsClientInstaller
{
my $dir = EBox::Config::share() . 'zentyal-openvpn';
my @candidates = bsd_glob("$dir/openvpn*install*exe"); # the sort is to
if (not @candidates) {
throw EBox::Exceptions::Internal("No windows installer found");
}
# (hopefully ) to sort
# by version number
my ($installer) = sort @candidates;
return $installer;
}
1;
|