mirror of https://github.com/status-im/consul.git
Adding support for enabling the DNS truncate flag for UDP queries.
This commit is contained in:
parent
7fd1c9929d
commit
6cac440a8d
|
@ -58,6 +58,13 @@ type DNSConfig struct {
|
||||||
// only the leader.
|
// only the leader.
|
||||||
AllowStale bool `mapstructure:"allow_stale"`
|
AllowStale bool `mapstructure:"allow_stale"`
|
||||||
|
|
||||||
|
// EnableTruncate is used to enable setting the truncate
|
||||||
|
// flag for UDP DNS queries. This allows unmodified
|
||||||
|
// clients to re-query the consul server using TCP
|
||||||
|
// when the total number of records exceeds the number
|
||||||
|
// returned by default for UDP.
|
||||||
|
EnableTruncate bool `mapstructure:"enable_truncate"`
|
||||||
|
|
||||||
// MaxStale is used to bound how stale of a result is
|
// MaxStale is used to bound how stale of a result is
|
||||||
// accepted for a DNS lookup. This can be used with
|
// accepted for a DNS lookup. This can be used with
|
||||||
// AllowStale to limit how old of a value is served up.
|
// AllowStale to limit how old of a value is served up.
|
||||||
|
@ -688,6 +695,9 @@ func MergeConfig(a, b *Config) *Config {
|
||||||
if b.DNSConfig.AllowStale {
|
if b.DNSConfig.AllowStale {
|
||||||
result.DNSConfig.AllowStale = true
|
result.DNSConfig.AllowStale = true
|
||||||
}
|
}
|
||||||
|
if b.DNSConfig.EnableTruncate {
|
||||||
|
result.DNSConfig.EnableTruncate = true
|
||||||
|
}
|
||||||
if b.DNSConfig.MaxStale != 0 {
|
if b.DNSConfig.MaxStale != 0 {
|
||||||
result.DNSConfig.MaxStale = b.DNSConfig.MaxStale
|
result.DNSConfig.MaxStale = b.DNSConfig.MaxStale
|
||||||
}
|
}
|
||||||
|
|
|
@ -471,6 +471,10 @@ RPC:
|
||||||
// If the network is not TCP, restrict the number of responses
|
// If the network is not TCP, restrict the number of responses
|
||||||
if network != "tcp" && len(out.Nodes) > maxServiceResponses {
|
if network != "tcp" && len(out.Nodes) > maxServiceResponses {
|
||||||
out.Nodes = out.Nodes[:maxServiceResponses]
|
out.Nodes = out.Nodes[:maxServiceResponses]
|
||||||
|
// Flag that there are more records to return in the UDP response
|
||||||
|
if d.config.EnableTruncate == true {
|
||||||
|
resp.Truncated = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add various responses depending on the request
|
// Add various responses depending on the request
|
||||||
|
|
Loading…
Reference in New Issue