--- smeserver-openvpn-bridge-2.0/root/etc/e-smith/templates/etc/openvpn/bridge/openvpn.conf/60options.enhance_routes_push 2010-10-26 11:22:59.000000000 +0200 +++ smeserver-openvpn-bridge-2.0/root/etc/e-smith/templates/etc/openvpn/bridge/openvpn.conf/60options 2010-10-26 11:29:18.000000000 +0200 @@ -9,14 +9,7 @@ my $proto = ${'openvpn-bridge'}{protocol} || 'udp'; my $duplicate = ${'openvpn-bridge'}{duplicateCN} || 'disabled'; my $passtos = ${'openvpn-bridge'}{PassTOS} || 'enabled'; -my $pushRoutes = ${'openvpn-bridge'}{PushLocalNetworks} || 'enabled'; -use esmith::NetworksDB; -my $ndb = esmith::NetworksDB->open_ro() || - die('Can not open Networks DB'); - -my @networks = $ndb->networks(); - if ($proto eq 'tcp'){ $mtuTest = 'disabled'; $fragment = ''; @@ -30,22 +23,6 @@ HERE -if ($pushRoutes eq 'enabled'){ - foreach my $network (@networks) { - if ($network->prop('Router')) { - $OUT .= sprintf("push \"route %s %s %s\"\n", - $network->key(), - $network->prop('Mask'), - $network->prop('Router') - ); - } - } -} - -if ($redirectGW eq 'always'){ - $OUT .= "push \"redirect-gateway def1\"\n"; -} - if ($mtuTest eq 'enabled'){ $OUT .= "mtu-test\n"; } --- smeserver-openvpn-bridge-2.0/root/etc/e-smith/templates/etc/openvpn/bridge/openvpn.conf/65routes.enhance_routes_push 2010-10-26 11:23:31.000000000 +0200 +++ smeserver-openvpn-bridge-2.0/root/etc/e-smith/templates/etc/openvpn/bridge/openvpn.conf/65routes 2010-10-26 12:00:30.000000000 +0200 @@ -0,0 +1,32 @@ +# Routes + +{ + +my $pushRoutes = ${'openvpn-bridge'}{PushLocalNetworks} || 'enabled'; +my $redirectGW = ${'openvpn-bridge'}{redirectGW} || 'PerClient'; + +use esmith::NetworksDB; +my $ndb = esmith::NetworksDB->open_ro() || + die('Can not open Networks DB'); + +my @networks = $ndb->networks(); + +if ($redirectGW eq 'always'){ + $OUT .= "push \"redirect-gateway def1\"\n"; +} +elsif ($pushRoutes eq 'enabled'){ + foreach my $network (@networks) { + my $route = ''; + my $addr = $network->key; + my $mask = $network->prop('Mask'); + my $gw = $network->prop('Router') || ''; + my $vpn = $network->prop('VPN') || ''; + if ($gw ne '') { + $route .= "push \"route $addr $mask"; + $route .= " $gw" if ($vpn eq ''); + $OUT .= "$route\"\n"; + } + } +} + +}