mirror of
https://github.com/caddyserver/caddy.git
synced 2025-06-04 11:14:42 +08:00
reverseproxy: Remove deprecated lookup_srv
(#5396)
This commit is contained in:
@ -17,7 +17,6 @@ package reverseproxy
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/netip"
|
||||
"strconv"
|
||||
@ -48,15 +47,6 @@ type Upstream struct {
|
||||
// backends is down. Also be aware of open proxy vulnerabilities.
|
||||
Dial string `json:"dial,omitempty"`
|
||||
|
||||
// DEPRECATED: Use the SRVUpstreams module instead
|
||||
// (http.reverse_proxy.upstreams.srv). This field will be
|
||||
// removed in a future version of Caddy. TODO: Remove this field.
|
||||
//
|
||||
// If DNS SRV records are used for service discovery with this
|
||||
// upstream, specify the DNS name for which to look up SRV
|
||||
// records here, instead of specifying a dial address.
|
||||
LookupSRV string `json:"lookup_srv,omitempty"`
|
||||
|
||||
// The maximum number of simultaneous requests to allow to
|
||||
// this upstream. If set, overrides the global passive health
|
||||
// check UnhealthyRequestCount value.
|
||||
@ -74,9 +64,6 @@ type Upstream struct {
|
||||
}
|
||||
|
||||
func (u Upstream) String() string {
|
||||
if u.LookupSRV != "" {
|
||||
return u.LookupSRV
|
||||
}
|
||||
return u.Dial
|
||||
}
|
||||
|
||||
@ -110,35 +97,21 @@ func (u *Upstream) Full() bool {
|
||||
}
|
||||
|
||||
// fillDialInfo returns a filled DialInfo for upstream u, using the request
|
||||
// context. If the upstream has a SRV lookup configured, that is done and a
|
||||
// returned address is chosen; otherwise, the upstream's regular dial address
|
||||
// field is used. Note that the returned value is not a pointer.
|
||||
// context. Note that the returned value is not a pointer.
|
||||
func (u *Upstream) fillDialInfo(r *http.Request) (DialInfo, error) {
|
||||
repl := r.Context().Value(caddy.ReplacerCtxKey).(*caddy.Replacer)
|
||||
var addr caddy.NetworkAddress
|
||||
|
||||
if u.LookupSRV != "" {
|
||||
// perform DNS lookup for SRV records and choose one - TODO: deprecated
|
||||
srvName := repl.ReplaceAll(u.LookupSRV, "")
|
||||
_, records, err := net.DefaultResolver.LookupSRV(r.Context(), "", "", srvName)
|
||||
if err != nil {
|
||||
return DialInfo{}, err
|
||||
}
|
||||
addr.Network = "tcp"
|
||||
addr.Host = records[0].Target
|
||||
addr.StartPort, addr.EndPort = uint(records[0].Port), uint(records[0].Port)
|
||||
} else {
|
||||
// use provided dial address
|
||||
var err error
|
||||
dial := repl.ReplaceAll(u.Dial, "")
|
||||
addr, err = caddy.ParseNetworkAddress(dial)
|
||||
if err != nil {
|
||||
return DialInfo{}, fmt.Errorf("upstream %s: invalid dial address %s: %v", u.Dial, dial, err)
|
||||
}
|
||||
if numPorts := addr.PortRangeSize(); numPorts != 1 {
|
||||
return DialInfo{}, fmt.Errorf("upstream %s: dial address must represent precisely one socket: %s represents %d",
|
||||
u.Dial, dial, numPorts)
|
||||
}
|
||||
// use provided dial address
|
||||
var err error
|
||||
dial := repl.ReplaceAll(u.Dial, "")
|
||||
addr, err = caddy.ParseNetworkAddress(dial)
|
||||
if err != nil {
|
||||
return DialInfo{}, fmt.Errorf("upstream %s: invalid dial address %s: %v", u.Dial, dial, err)
|
||||
}
|
||||
if numPorts := addr.PortRangeSize(); numPorts != 1 {
|
||||
return DialInfo{}, fmt.Errorf("upstream %s: dial address must represent precisely one socket: %s represents %d",
|
||||
u.Dial, dial, numPorts)
|
||||
}
|
||||
|
||||
return DialInfo{
|
||||
|
Reference in New Issue
Block a user