Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
C
Coredns
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Railgun
Coredns
Commits
20e16491
Commit
20e16491
authored
Apr 05, 2016
by
Miek Gieben
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add more logging
Put some more logging in CoreDNS.
parent
4c55b673
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
24 additions
and
14 deletions
+24
-14
middleware/etcd/handler.go
middleware/etcd/handler.go
+0
-1
middleware/etcd/lookup.go
middleware/etcd/lookup.go
+1
-1
middleware/file/notify.go
middleware/file/notify.go
+7
-4
middleware/file/secondary.go
middleware/file/secondary.go
+5
-2
middleware/file/xfr.go
middleware/file/xfr.go
+3
-4
middleware/file/zone.go
middleware/file/zone.go
+1
-0
middleware/loadbalance/loadbalance.go
middleware/loadbalance/loadbalance.go
+7
-1
middleware/zone.go
middleware/zone.go
+0
-1
No files found.
middleware/etcd/handler.go
View file @
20e16491
...
@@ -83,7 +83,6 @@ func (e Etcd) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (i
...
@@ -83,7 +83,6 @@ func (e Etcd) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (i
m
.
Ns
=
[]
dns
.
RR
{
e
.
SOA
(
zone
,
state
)}
m
.
Ns
=
[]
dns
.
RR
{
e
.
SOA
(
zone
,
state
)}
state
.
W
.
WriteMsg
(
m
)
state
.
W
.
WriteMsg
(
m
)
return
dns
.
RcodeSuccess
,
nil
return
dns
.
RcodeSuccess
,
nil
}
}
if
len
(
records
)
>
0
{
if
len
(
records
)
>
0
{
m
.
Answer
=
append
(
m
.
Answer
,
records
...
)
m
.
Answer
=
append
(
m
.
Answer
,
records
...
)
...
...
middleware/etcd/lookup.go
View file @
20e16491
...
@@ -73,7 +73,7 @@ func (e Etcd) A(zone string, state middleware.State, previousRecords []dns.RR) (
...
@@ -73,7 +73,7 @@ func (e Etcd) A(zone string, state middleware.State, previousRecords []dns.RR) (
case
ip
.
To4
()
!=
nil
:
case
ip
.
To4
()
!=
nil
:
records
=
append
(
records
,
serv
.
NewA
(
state
.
QName
(),
ip
.
To4
()))
records
=
append
(
records
,
serv
.
NewA
(
state
.
QName
(),
ip
.
To4
()))
case
ip
.
To4
()
==
nil
:
case
ip
.
To4
()
==
nil
:
// noda?
// noda
ta
?
}
}
}
}
return
records
,
nil
return
records
,
nil
...
...
middleware/file/notify.go
View file @
20e16491
...
@@ -2,6 +2,7 @@ package file
...
@@ -2,6 +2,7 @@ package file
import
(
import
(
"fmt"
"fmt"
"log"
"github.com/miekg/coredns/middleware"
"github.com/miekg/coredns/middleware"
...
@@ -21,9 +22,12 @@ func notify(zone string, to []string) error {
...
@@ -21,9 +22,12 @@ func notify(zone string, to []string) error {
m
.
SetNotify
(
zone
)
m
.
SetNotify
(
zone
)
c
:=
new
(
dns
.
Client
)
c
:=
new
(
dns
.
Client
)
// TODO(miek): error handling? Run this in a goroutine?
for
_
,
t
:=
range
to
{
for
_
,
t
:=
range
to
{
notifyAddr
(
c
,
m
,
t
)
if
err
:=
notifyAddr
(
c
,
m
,
t
);
err
!=
nil
{
log
.
Printf
(
"[ERROR] "
+
err
.
Error
())
}
else
{
log
.
Printf
(
"[INFO] Sent notify for zone %s to %s"
,
zone
,
t
)
}
}
}
return
nil
return
nil
}
}
...
@@ -34,7 +38,6 @@ func notifyAddr(c *dns.Client, m *dns.Msg, s string) error {
...
@@ -34,7 +38,6 @@ func notifyAddr(c *dns.Client, m *dns.Msg, s string) error {
if
err
==
nil
&&
ret
.
Rcode
==
dns
.
RcodeSuccess
||
ret
.
Rcode
==
dns
.
RcodeNotImplemented
{
if
err
==
nil
&&
ret
.
Rcode
==
dns
.
RcodeSuccess
||
ret
.
Rcode
==
dns
.
RcodeNotImplemented
{
return
nil
return
nil
}
}
// timeout? mean don't want it. should stop sending as well?
}
}
return
fmt
.
Errorf
(
"
f
ailed to send notify for zone '%s' to '%s'"
,
m
.
Question
[
0
]
.
Name
,
s
)
return
fmt
.
Errorf
(
"
F
ailed to send notify for zone '%s' to '%s'"
,
m
.
Question
[
0
]
.
Name
,
s
)
}
}
middleware/file/secondary.go
View file @
20e16491
...
@@ -20,13 +20,13 @@ Transfer:
...
@@ -20,13 +20,13 @@ Transfer:
for
_
,
tr
:=
range
z
.
TransferFrom
{
for
_
,
tr
:=
range
z
.
TransferFrom
{
c
,
err
:=
t
.
In
(
m
,
tr
)
c
,
err
:=
t
.
In
(
m
,
tr
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Printf
(
"[ERROR]
f
ailed to setup transfer %s with %s: %v"
,
z
.
name
,
z
.
TransferFrom
[
0
],
err
)
log
.
Printf
(
"[ERROR]
F
ailed to setup transfer %s with %s: %v"
,
z
.
name
,
z
.
TransferFrom
[
0
],
err
)
Err
=
err
Err
=
err
continue
Transfer
continue
Transfer
}
}
for
env
:=
range
c
{
for
env
:=
range
c
{
if
env
.
Error
!=
nil
{
if
env
.
Error
!=
nil
{
log
.
Printf
(
"[ERROR]
f
ailed to parse transfer %s: %v"
,
z
.
name
,
env
.
Error
)
log
.
Printf
(
"[ERROR]
F
ailed to parse transfer %s: %v"
,
z
.
name
,
env
.
Error
)
Err
=
env
.
Error
Err
=
env
.
Error
continue
Transfer
continue
Transfer
}
}
...
@@ -44,6 +44,9 @@ Transfer:
...
@@ -44,6 +44,9 @@ Transfer:
}
}
}
}
}
}
if
Err
!=
nil
{
log
.
Printf
(
"[ERROR] Failed to transfer %s"
,
z
.
name
)
}
return
nil
return
nil
return
Err
// ignore errors for now. TODO(miek)
return
Err
// ignore errors for now. TODO(miek)
}
}
middleware/file/xfr.go
View file @
20e16491
...
@@ -22,10 +22,10 @@ func (x Xfr) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (in
...
@@ -22,10 +22,10 @@ func (x Xfr) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (in
return
dns
.
RcodeServerFailure
,
nil
return
dns
.
RcodeServerFailure
,
nil
}
}
if
state
.
QType
()
!=
dns
.
TypeAXFR
{
if
state
.
QType
()
!=
dns
.
TypeAXFR
{
return
0
,
fmt
.
Errorf
(
"
file:
xfr called with non transfer type: %d"
,
state
.
QType
())
return
0
,
fmt
.
Errorf
(
"xfr called with non transfer type: %d"
,
state
.
QType
())
}
}
if
state
.
Proto
()
==
"udp"
{
if
state
.
Proto
()
==
"udp"
{
return
0
,
fmt
.
Errorf
(
"
file:
xfr called with udp"
)
return
0
,
fmt
.
Errorf
(
"xfr called with udp"
)
}
}
records
:=
x
.
All
()
records
:=
x
.
All
()
...
@@ -57,5 +57,4 @@ func (x Xfr) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (in
...
@@ -57,5 +57,4 @@ func (x Xfr) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (in
return
dns
.
RcodeSuccess
,
nil
return
dns
.
RcodeSuccess
,
nil
}
}
//const transferLength = 10e3 // Start a new envelop after message reaches this size.
const
transferLength
=
100
// Start a new envelop after message reaches this size. Intentionally small to test multi envelope parsing
const
transferLength
=
100
// Start a new envelop after message reaches this size.
middleware/file/zone.go
View file @
20e16491
...
@@ -38,6 +38,7 @@ func (z *Zone) TransferAllowed(state middleware.State) bool {
...
@@ -38,6 +38,7 @@ func (z *Zone) TransferAllowed(state middleware.State) bool {
return
true
return
true
}
}
}
}
// TODO(miek): future matching against IP/CIDR notations
return
false
return
false
}
}
...
...
middleware/loadbalance/loadbalance.go
View file @
20e16491
package
loadbalance
package
loadbalance
import
"github.com/miekg/dns"
import
(
"log"
"github.com/miekg/dns"
)
type
RoundRobinResponseWriter
struct
{
type
RoundRobinResponseWriter
struct
{
dns
.
ResponseWriter
dns
.
ResponseWriter
...
@@ -16,6 +20,7 @@ func (r *RoundRobinResponseWriter) WriteMsg(res *dns.Msg) error {
...
@@ -16,6 +20,7 @@ func (r *RoundRobinResponseWriter) WriteMsg(res *dns.Msg) error {
}
}
res
.
Answer
=
roundRobin
(
res
.
Answer
)
res
.
Answer
=
roundRobin
(
res
.
Answer
)
res
.
Ns
=
roundRobin
(
res
.
Ns
)
res
.
Extra
=
roundRobin
(
res
.
Extra
)
res
.
Extra
=
roundRobin
(
res
.
Extra
)
return
r
.
ResponseWriter
.
WriteMsg
(
res
)
return
r
.
ResponseWriter
.
WriteMsg
(
res
)
...
@@ -61,6 +66,7 @@ func roundRobin(in []dns.RR) []dns.RR {
...
@@ -61,6 +66,7 @@ func roundRobin(in []dns.RR) []dns.RR {
// Should we pack and unpack here to fiddle with the packet... Not likely.
// Should we pack and unpack here to fiddle with the packet... Not likely.
func
(
r
*
RoundRobinResponseWriter
)
Write
(
buf
[]
byte
)
(
int
,
error
)
{
func
(
r
*
RoundRobinResponseWriter
)
Write
(
buf
[]
byte
)
(
int
,
error
)
{
log
.
Printf
(
"[WARNING] RoundRobin called with Write: no shuffling records"
)
n
,
err
:=
r
.
ResponseWriter
.
Write
(
buf
)
n
,
err
:=
r
.
ResponseWriter
.
Write
(
buf
)
return
n
,
err
return
n
,
err
}
}
...
...
middleware/zone.go
View file @
20e16491
...
@@ -29,5 +29,4 @@ func (z Zones) FullyQualify() {
...
@@ -29,5 +29,4 @@ func (z Zones) FullyQualify() {
for
i
,
_
:=
range
z
{
for
i
,
_
:=
range
z
{
z
[
i
]
=
dns
.
Fqdn
(
z
[
i
])
z
[
i
]
=
dns
.
Fqdn
(
z
[
i
])
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment