feat: handle port forward subdomain conflict

This commit is contained in:
2024-12-04 00:10:25 +00:00
parent ee857cbbf9
commit 4c41d4ce07
8 changed files with 81 additions and 7 deletions

View File

@@ -0,0 +1,5 @@
package reverseproxy
import "errors"
var ErrPortMappingConflict = errors.New("port mapping conflict")

View File

@@ -43,9 +43,14 @@ func (p *ReverseProxy) Middleware() echo.MiddlewareFunc {
}
}
func (p *ReverseProxy) AddEntry(subdomain string, url *url.URL) {
func (p *ReverseProxy) AddEntry(subdomain string, url *url.URL) error {
_, ok := p.httpProxies[subdomain]
if ok {
return ErrPortMappingConflict
}
proxy := httputil.NewSingleHostReverseProxy(url)
p.httpProxies[subdomain] = proxy
return nil
}
func (p *ReverseProxy) RemoveEntry(subdomain string) {