@cryptotaxi247 / kubo / commits / 1c7a5d190

resolve: succeed on recursion limit when not recursing

Otherwise, non-recursive resolution is pretty much useless. License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>

Steven Allen committed Mar 15, 2019 at 19:22 UTC 1c7a5d1901d94f438d59e1165f650f2a76bde69e
2 files changed +5 -7
core/commands/dns.go
+1 -4
@@ -71,10 +71,7 @@ The resolver can recursively resolve:
71 }
72
73 output, err := resolver.Resolve(req.Context, name, ropts...)
74 - if err == namesys.ErrResolveFailed {
75 - return err
76 - }
77 - if err != nil {
74 + if err != nil && (recursive || err != namesys.ErrResolveRecursion) {
75 return err
76 }
77 return cmds.EmitOnce(res, &ncmd.ResolvedPath{Path: output})
core/commands/name/ipns.go
+4 -3
@@ -8,6 +8,7 @@ import (
8 "time"
9
10 cmdenv "github.com/ipfs/go-ipfs/core/commands/cmdenv"
11 + namesys "github.com/ipfs/go-ipfs/namesys"
12
13 cmdkit "github.com/ipfs/go-ipfs-cmdkit"
14 cmds "github.com/ipfs/go-ipfs-cmds"
@@ -130,7 +131,7 @@ Resolve the value of a dnslink:
131
132 if !stream {
133 output, err := api.Name().Resolve(req.Context, name, opts...)
133 - if err != nil {
134 + if err != nil && (recursive || err != namesys.ErrResolveRecursion) {
135 return err
136 }
137
@@ -143,8 +144,8 @@ Resolve the value of a dnslink:
144 }
145
146 for v := range output {
146 - if v.Err != nil {
147 - return err
147 + if v.Err != nil && (recursive || v.Err != namesys.ErrResolveRecursion) {
148 + return v.Err
149 }
150 if err := res.Emit(&ResolvedPath{path.FromString(v.Path.String())}); err != nil {
151 return err