Signed-off-by: Alejandro Mery <amery@jpi.io>
This commit is contained in:
2023-08-25 17:40:42 +00:00
parent 3662fc7510
commit 09678d8eb8
4 changed files with 121 additions and 3 deletions
+51
View File
@@ -261,3 +261,54 @@ func (m *Machine) RemoveWireguardConfig(ring int) error {
return err
}
// SyncWireguardConfig updates all wgN.conf files for the specified
// ring
func (m *Machine) SyncWireguardConfig(ring int) error {
return m.zone.SyncWireguardConfig(ring)
}
func (m *Machine) WriteWireguardConfig(ring int) error {
r, err := m.zone.GetRing(ring)
if err != nil {
return err
}
return m.writeWireguardRing(r)
}
func (m *Machine) writeWireguardRing(r *Ring) error {
wg, err := r.ExportConfig(m.ID)
if err != nil {
return nil
}
f, err := m.CreateTruncFile("wg%v.conf", r.Ring)
if err != nil {
return err
}
defer f.Close()
_, err = wg.WriteTo(f)
return err
}
func (m *Machine) createRingInfo(ring int, enabled bool) (*RingInfo, error) {
keys, err := wireguard.NewKeyPair()
if err != nil {
return nil, err
}
ri := &RingInfo{
Ring: ring,
Enabled: enabled,
Keys: keys,
}
err = m.applyRingInfo(ring, ri)
if err != nil {
return nil, err
}
return ri, nil
}