提交 d556ee23 作者: Steven Allen

fix resolve command for the new cmds refactor

License: MIT
Signed-off-by: 's avatarSteven Allen <steven@stebalien.com>
上级 b7484c1b
...@@ -68,24 +68,21 @@ Resolve the value of an IPFS DAG path: ...@@ -68,24 +68,21 @@ Resolve the value of an IPFS DAG path:
cmdkit.IntOption("dht-record-count", "dhtrc", "Number of records to request for DHT resolution."), cmdkit.IntOption("dht-record-count", "dhtrc", "Number of records to request for DHT resolution."),
cmdkit.StringOption("dht-timeout", "dhtt", "Max time to collect values during DHT resolution eg \"30s\". Pass 0 for no timeout."), cmdkit.StringOption("dht-timeout", "dhtt", "Max time to collect values during DHT resolution eg \"30s\". Pass 0 for no timeout."),
}, },
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) { Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
api, err := cmdenv.GetApi(env) api, err := cmdenv.GetApi(env)
if err != nil { if err != nil {
res.SetError(err, cmdkit.ErrNormal) return err
return
} }
n, err := cmdenv.GetNode(env) n, err := cmdenv.GetNode(env)
if err != nil { if err != nil {
res.SetError(err, cmdkit.ErrNormal) return err
return
} }
if !n.OnlineMode() { if !n.OnlineMode() {
err := n.SetupOfflineRouting() err := n.SetupOfflineRouting()
if err != nil { if err != nil {
res.SetError(err, cmdkit.ErrNormal) return err
return
} }
} }
...@@ -106,41 +103,35 @@ Resolve the value of an IPFS DAG path: ...@@ -106,41 +103,35 @@ Resolve the value of an IPFS DAG path:
if dhttok { if dhttok {
d, err := time.ParseDuration(dhtt) d, err := time.ParseDuration(dhtt)
if err != nil { if err != nil {
res.SetError(err, cmdkit.ErrNormal) return err
return
} }
if d < 0 { if d < 0 {
res.SetError(errors.New("DHT timeout value must be >= 0"), cmdkit.ErrNormal) return errors.New("DHT timeout value must be >= 0")
return
} }
ropts = append(ropts, options.Name.ResolveOption(nsopts.DhtTimeout(d))) ropts = append(ropts, options.Name.ResolveOption(nsopts.DhtTimeout(d)))
} }
p, err := api.Name().Resolve(req.Context, name, ropts...) p, err := api.Name().Resolve(req.Context, name, ropts...)
// ErrResolveRecursion is fine // ErrResolveRecursion is fine
if err != nil && err != ns.ErrResolveRecursion { if err != nil && err != ns.ErrResolveRecursion {
res.SetError(err, cmdkit.ErrNormal) return err
return
} }
cmds.EmitOnce(res, &ncmd.ResolvedPath{Path: path.Path(p.String())}) return cmds.EmitOnce(res, &ncmd.ResolvedPath{Path: path.Path(p.String())})
return
} }
// else, ipfs path or ipns with recursive flag // else, ipfs path or ipns with recursive flag
p, err := coreiface.ParsePath(name) p, err := coreiface.ParsePath(name)
if err != nil { if err != nil {
res.SetError(err, cmdkit.ErrNormal) return err
return
} }
rp, err := api.ResolvePath(req.Context, p) rp, err := api.ResolvePath(req.Context, p)
if err != nil { if err != nil {
res.SetError(err, cmdkit.ErrNormal) return err
return
} }
c := rp.Cid() c := rp.Cid()
cmds.EmitOnce(res, &ncmd.ResolvedPath{Path: path.FromCid(c)}) return cmds.EmitOnce(res, &ncmd.ResolvedPath{Path: path.FromCid(c)})
}, },
Encoders: cmds.EncoderMap{ Encoders: cmds.EncoderMap{
cmds.Text: cmds.MakeEncoder(func(req *cmds.Request, w io.Writer, v interface{}) error { cmds.Text: cmds.MakeEncoder(func(req *cmds.Request, w io.Writer, v interface{}) error {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论