mirror of
https://github.com/coredns/coredns.git
synced 2025-12-06 10:25:10 -05:00
Rewrite SRV targets and additional names in response (#4287)
* Rewrite plugin - rewrite SRV targets and names in response answer and additional records Signed-off-by: Nic Colledge <nic@njcolledge.net> * Added README content to describe new behaviour Signed-off-by: Nic Colledge <nic@njcolledge.net> * Added more record types to rewrite handling based on PR/Issue feedback Signed-off-by: Nic Colledge <nic@njcolledge.net> * Updated README.md for plugin Signed-off-by: Nic Colledge <nic@njcolledge.net> * Updated unit tests. Small refactor of getTarget... function. Signed-off-by: Nic Colledge <nic@njcolledge.net> * Refactor to add response value rewrite as answer value option Signed-off-by: Nic Colledge <nic@njcolledge.net> * Removed TODO comment, added test for NAPTR record. Signed-off-by: Nic Colledge <nic@njcolledge.net>
This commit is contained in:
@@ -49,10 +49,11 @@ func (rw Rewrite) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg
|
||||
state.Req.Question[0] = wr.originalQuestion
|
||||
return dns.RcodeServerFailure, err
|
||||
}
|
||||
respRule := rule.GetResponseRule()
|
||||
if respRule.Active {
|
||||
wr.ResponseRewrite = true
|
||||
wr.ResponseRules = append(wr.ResponseRules, respRule)
|
||||
for _, respRule := range rule.GetResponseRules() {
|
||||
if respRule.Active {
|
||||
wr.ResponseRewrite = true
|
||||
wr.ResponseRules = append(wr.ResponseRules, respRule)
|
||||
}
|
||||
}
|
||||
if rule.Mode() == Stop {
|
||||
if rw.noRevert {
|
||||
@@ -78,8 +79,8 @@ type Rule interface {
|
||||
Rewrite(ctx context.Context, state request.Request) Result
|
||||
// Mode returns the processing mode stop or continue.
|
||||
Mode() string
|
||||
// GetResponseRule returns the rule to rewrite response with, if any.
|
||||
GetResponseRule() ResponseRule
|
||||
// GetResponseRules returns rules to rewrite response with, if any.
|
||||
GetResponseRules() []ResponseRule
|
||||
}
|
||||
|
||||
func newRule(args ...string) (Rule, error) {
|
||||
|
||||
Reference in New Issue
Block a user