mirror of https://github.com/status-im/consul.git
Merge pull request #376 from awheeler/master
agent: Adding support for enabling the DNS truncate flag for UDP queries.
This commit is contained in:
commit
365f7de415
|
@ -58,6 +58,13 @@ type DNSConfig struct {
|
|||
// only the leader.
|
||||
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
|
||||
// accepted for a DNS lookup. This can be used with
|
||||
// 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 {
|
||||
result.DNSConfig.AllowStale = true
|
||||
}
|
||||
if b.DNSConfig.EnableTruncate {
|
||||
result.DNSConfig.EnableTruncate = true
|
||||
}
|
||||
if b.DNSConfig.MaxStale != 0 {
|
||||
result.DNSConfig.MaxStale = b.DNSConfig.MaxStale
|
||||
}
|
||||
|
|
|
@ -471,6 +471,10 @@ RPC:
|
|||
// If the network is not TCP, restrict the number of responses
|
||||
if network != "tcp" && len(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
|
||||
|
|
|
@ -266,6 +266,10 @@ definitions support being updated during a reload.
|
|||
there is no specific policy available for a service. By default, all services are served
|
||||
with a 0 TTL value. Setting this enables DNS caching.
|
||||
|
||||
* `enable_truncate` - If set to true, a UDP DNS query that would return more than 3 records
|
||||
will set the truncated flag, indicating to clients that they should re-query using TCP to
|
||||
get the full set of records.
|
||||
|
||||
* `domain` - By default, Consul responds to DNS queries in the "consul." domain.
|
||||
This flag can be used to change that domain. All queries in this domain are assumed
|
||||
to be handled by Consul, and will not be recursively resolved.
|
||||
|
|
Loading…
Reference in New Issue