This file is indexed.

/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;