Merge pull request #106 from boringproxy/fix-authorized-keys

Fix authorized keys
This commit is contained in:
Anders Pitman 2021-12-05 12:48:55 -07:00 committed by GitHub
commit 82241ecc0c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -76,13 +76,18 @@ 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() { for _, tun := range m.db.GetTunnels() {
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 { if tunReq.TunnelPort == tun.TunnelPort {
return Tunnel{}, errors.New("Tunnel port already in use") return Tunnel{}, errors.New("Tunnel port already in use")
} }
} }
}
privKey, err := m.addToAuthorizedKeys(tunReq.Domain, tunReq.TunnelPort, tunReq.AllowExternalTcp, tunReq.SshKey) privKey, err := m.addToAuthorizedKeys(tunReq.Domain, tunReq.TunnelPort, tunReq.AllowExternalTcp, tunReq.SshKey)
if err != nil { if err != nil {
@ -197,6 +202,16 @@ func (m *TunnelManager) addToAuthorizedKeys(domain string, port int, allowExtern
newAk := fmt.Sprintf("%s%s %s %s\n", akStr, options, pubKey, tunnelId) newAk := fmt.Sprintf("%s%s %s %s\n", akStr, options, pubKey, tunnelId)
// Clear the file
err = akFile.Truncate(0)
if err != nil {
return "", err
}
_, err = akFile.Seek(0, 0)
if err != nil {
return "", err
}
_, err = akFile.Write([]byte(newAk)) _, err = akFile.Write([]byte(newAk))
if err != nil { if err != nil {
return "", err return "", err