#!/usr/bin/perl -w use esmith::ConfigDB; my $config_db = esmith::ConfigDB->open_ro(); my $db_rules = esmith::ConfigDB->open_ro('openvpn-bridge'); my @rules = $db_rules->get_all_by_prop(type => 'rule'); my $netmask = $config_db->get('LocalNetmask')->value; my $userAuth = ${'openvpn-bridge'}{userAuth}; my $ccd = "/etc/openvpn/bridge/ccd"; unlink <$ccd/*>; foreach (@rules){ my $rule = $_->key; my $rec_rule = $db_rules->get("$rule"); my $ip = $rec_rule->prop('ip') || ''; my $redirectGW = $rec_rule->prop('redirectGW') || 'disabled'; my $access = $rec_rule->prop('access') || 'allowed'; unless (open (CCD, ">$ccd/$rule")){ die "Error opening $ccd/$rule"; } if ($ip ne ''){ print CCD "--ifconfig-push $ip $netmask\n"; } else{ print CCD "# No fixed IP defined\n"; } if ($access eq 'denied'){ print CCD "--disable\n"; } if ($redirectGW eq 'enabled'){ print CCD "push \"redirect-gateway def1\"\n"; } close CCD; }