Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-dms3
Commits
1e6594d0
Commit
1e6594d0
authored
9 years ago
by
W. Trevor King
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
namesys/dns: Pluggable lookupTXT field
So we can attach a mock lookup function for testing.
parent
e4447b3c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
17 additions
and
3 deletions
+17
-3
core/commands/dns.go
core/commands/dns.go
+1
-1
namesys/dns.go
namesys/dns.go
+15
-1
namesys/namesys.go
namesys/namesys.go
+1
-1
No files found.
core/commands/dns.go
View file @
1e6594d0
...
...
@@ -56,7 +56,7 @@ The resolver will give:
recursive
,
_
,
_
:=
req
.
Option
(
"recursive"
)
.
Bool
()
name
:=
req
.
Arguments
()[
0
]
var
resolver
namesys
.
DNSResolver
resolver
:=
namesys
.
New
DNSResolver
()
depth
:=
1
if
recursive
{
...
...
This diff is collapsed.
Click to expand it.
namesys/dns.go
View file @
1e6594d0
...
...
@@ -11,12 +11,26 @@ import (
path
"github.com/ipfs/go-ipfs/path"
)
type
LookupTXTFunc
func
(
name
string
)
(
txt
[]
string
,
err
error
)
// DNSResolver implements a Resolver on DNS domains
type
DNSResolver
struct
{
lookupTXT
LookupTXTFunc
// TODO: maybe some sort of caching?
// cache would need a timeout
}
// NewDNSResolver constructs a name resolver using DNS TXT records.
func
NewDNSResolver
()
Resolver
{
return
&
DNSResolver
{
lookupTXT
:
net
.
LookupTXT
}
}
// newDNSResolver constructs a name resolver using DNS TXT records,
// returning a resolver instead of NewDNSResolver's Resolver.
func
newDNSResolver
()
resolver
{
return
&
DNSResolver
{
lookupTXT
:
net
.
LookupTXT
}
}
// Resolve implements Resolver.
func
(
r
*
DNSResolver
)
Resolve
(
ctx
context
.
Context
,
name
string
)
(
path
.
Path
,
error
)
{
return
r
.
ResolveN
(
ctx
,
name
,
DefaultDepthLimit
)
...
...
@@ -36,7 +50,7 @@ func (r *DNSResolver) resolveOnce(ctx context.Context, name string) (path.Path,
}
log
.
Infof
(
"DNSResolver resolving %s"
,
name
)
txt
,
err
:=
net
.
L
ookupTXT
(
name
)
txt
,
err
:=
r
.
l
ookupTXT
(
name
)
if
err
!=
nil
{
return
""
,
err
}
...
...
This diff is collapsed.
Click to expand it.
namesys/namesys.go
View file @
1e6594d0
...
...
@@ -27,7 +27,7 @@ type mpns struct {
func
NewNameSystem
(
r
routing
.
IpfsRouting
)
NameSystem
{
return
&
mpns
{
resolvers
:
map
[
string
]
resolver
{
"dns"
:
new
(
DNSResolver
),
"dns"
:
newDNSResolver
(
),
"proquint"
:
new
(
ProquintResolver
),
"dht"
:
newRoutingResolver
(
r
),
},
...
...
This diff is collapsed.
Click to expand it.
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