# Options
{

my $tunMtu = ${'openvpn-routed'}{Mtu} || '';
my $fragment = ${'openvpn-routed'}{Fragment} || '';
my $cipher = ${'openvpn-routed'}{Cipher} || '';
my $redirectGW = ${'openvpn-routed'}{RedirectGateway} || '';
my $proto = ${'openvpn-routed'}{Protocol} || 'udp';
my $duplicate = ${'openvpn-routed'}{DuplicateCN} || 'disabled';
my $passtos = ${'openvpn-routed'}{PassTOS} || 'enabled';
my $compress = ${'openvpn-routed'}{Compression} || 'enabled';

if ($proto eq 'tcp'){
    $mtuTest = 'disabled';
    $fragment = '';
}

$OUT .=<<"HERE";
keepalive 40 180
push "dhcp-option DOMAIN $DomainName"
push "dhcp-option DNS $LocalIP"
push "dhcp-option WINS $LocalIP"

HERE

if ($tunMtu !~ /^\d+$/){
    $OUT .= "mtu-test\n";
}
else{
    if ($tunMtu ne ''){
        $OUT .= "tun-mtu $tunMtu\n";
    }
}

if (($proto eq 'udp') && ($fragment =~ /^\d+$/)){
    $OUT .= "fragment $fragment\n";
}
$OUT .= "mssfix\n";

if ($cipher ne ''){
    $OUT .= "cipher $cipher\n";
}

if ($duplicate eq 'enabled'){
    $OUT .= "duplicate-cn\n";
}

if ($passtos eq 'enabled'){
    $OUT .= "passtos\n";
}

if ($compress eq 'enabled'){
    $OUT .= "comp-lzo adaptive\n";
    $OUT .= "push \"comp-lzo adaptive\"\n";
}

}

nice 5

