Skip to content
Snippets Groups Projects
Commit fdf19830 authored by Matthias Schiffer's avatar Matthias Schiffer
Browse files

gluon-mesh-vpn-fastd: generate fastd config from site configuration

parent e684418c
No related branches found
No related tags found
No related merge requests found
......@@ -27,10 +27,12 @@ define Build/Configure
endef
define Build/Compile
$(GLUON_CONFIGURE) fastd.pl > $(PKG_BUILD_DIR)/fastd.sh
endef
define Package/gluon-mesh-vpn-fastd/install
$(CP) ./files/* $(1)/
$(INSTALL_DIR) $(1)/lib/gluon/upgrade/mesh-vpn-fastd/invariant
$(INSTALL_BIN) $(PKG_BUILD_DIR)/fastd.sh $(1)/lib/gluon/upgrade/mesh-vpn-fastd/invariant/010-mesh-vpn-fastd
endef
$(eval $(call BuildPackage,gluon-mesh-vpn-fastd))
my $cfg = $CONFIG->{fastd_mesh_vpn};
my $backbone = $cfg->{backbone};
my $add_methods = '';
for (@{$cfg->{methods}}) {
$add_methods .= "add_list fastd.mesh_vpn.method='$_'\n";
}
my $set_peer_limit;
if ($backbone->{limit}) {
$set_peer_limit = "set fastd.mesh_vpn_backbone.peer_limit='$backbone->{limit}'\n";
}
else {
$set_peer_limit = "delete fastd.mesh_vpn_backbone.peer_limit\n";
}
print <<END;
#/bin/sh
uci -q batch <<EOF
set fastd.mesh_vpn='fastd'
set fastd.mesh_vpn.syslog_level='verbose'
delete fastd.mesh_vpn.config
delete fastd.mesh_vpn.config_peer_dir
set fastd.mesh_vpn.interface='mesh-vpn'
set fastd.mesh_vpn.mode='tap'
set fastd.mesh_vpn.mtu='$cfg->{mtu}'
delete fastd.mesh_vpn.method
$add_methods
delete fastd.mesh_vpn_backbone
set fastd.mesh_vpn_backbone='peer_group'
set fastd.mesh_vpn_backbone.enabled='1'
set fastd.mesh_vpn_backbone.net='mesh_vpn'
$set_peer_limit
END
foreach my $name (sort keys %{$backbone->{peers}}) {
my $peer = $backbone->{peers}->{$name};
print <<EOF;
delete fastd.mesh_vpn_backbone_peer_$name
set fastd.mesh_vpn_backbone_peer_$name='peer'
set fastd.mesh_vpn_backbone_peer_$name.enabled='1'
set fastd.mesh_vpn_backbone_peer_$name.net='mesh_vpn'
set fastd.mesh_vpn_backbone_peer_$name.group='mesh_vpn_backbone'
set fastd.mesh_vpn_backbone_peer_$name.key='$peer->{key}'
EOF
for (@{$peer->{remotes}}) {
print "add_list fastd.mesh_vpn_backbone_peer_$name.remote='$_'\n";
}
}
print <<END;
commit fastd
EOF
END
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment