Prevent duplicate domains

Now checks to make sure a domain isn't already used by a previous
tunnel. This prevents accidental silent modifications to tunnels
and also fixes a bug where multiple entries were being made in
the authorized_keys file.
This commit is contained in:
Anders Pitman 2021-12-03 17:50:02 -07:00
parent 12ec55cf37
commit b9d07f9663

View File

@ -76,11 +76,16 @@ func (m *TunnelManager) RequestCreateTunnel(tunReq Tunnel) (Tunnel, error) {
if err != nil { if err != nil {
return Tunnel{}, err return Tunnel{}, err
} }
} else { }
for _, tun := range m.db.GetTunnels() {
if tunReq.TunnelPort == tun.TunnelPort { for _, tun := range m.db.GetTunnels() {
return Tunnel{}, errors.New("Tunnel port already in use") fmt.Println(tunReq.Domain, tun.Domain)
} if tunReq.Domain == tun.Domain {
return Tunnel{}, errors.New("Tunnel domain already in use")
}
if tunReq.TunnelPort == tun.TunnelPort {
return Tunnel{}, errors.New("Tunnel port already in use")
} }
} }