diff --git a/package/gluon-yggdrasil/Makefile b/package/gluon-yggdrasil/Makefile new file mode 100644 index 00000000..1a5c03a6 --- /dev/null +++ b/package/gluon-yggdrasil/Makefile @@ -0,0 +1,13 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=gluon-yggdrasil + +include ../gluon.mk + +define Package/gluon-yggdrasil + TITLE:=yggdrasil integration + DEPENDS:=+gluon-core +yggdrasil +endef + + +$(eval $(call BuildPackageGluon,gluon-yggdrasil)) diff --git a/package/gluon-yggdrasil/luasrc/lib/gluon/upgrade/300-gluon-yggdrasil b/package/gluon-yggdrasil/luasrc/lib/gluon/upgrade/300-gluon-yggdrasil new file mode 100755 index 00000000..79f6c1ad --- /dev/null +++ b/package/gluon-yggdrasil/luasrc/lib/gluon/upgrade/300-gluon-yggdrasil @@ -0,0 +1,19 @@ +#!/usr/bin/lua + +-- TODO: maybe restrict multicast to mesh? +-- TODO: userpeers with user prefix (u_) in id plus config-mode webui for that + -- similar to static dns list field + +if site.mesh.yggdrasil.enabled(false) then + os.execute('/etc/init.d/yggdrasil enable') + + -- TODO: clear old peers (remove everything type peer, id ^s_[0-9]+) + + for index, peer in pairs(site.mesh.yggdrasil.peers({})) do + uci:section('yggdrasil', 'peer', 's_' .. index, { + uri = peer + }) + end +else + os.execute('/etc/init.d/yggdrasil disable') +end