mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-22 12:51:19 +08:00
ipfs name resolve --stream
License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
This commit is contained in:
@ -127,7 +127,7 @@ Resolve the value of a dnslink:
|
||||
recursive, _ := req.Options[recursiveOptionName].(bool)
|
||||
rc, rcok := req.Options[dhtRecordCountOptionName].(int)
|
||||
dhtt, dhttok := req.Options[dhtTimeoutOptionName].(string)
|
||||
|
||||
stream, _ := req.Options[streamOptionName].(bool)
|
||||
var ropts []nsopts.ResolveOpt
|
||||
if !recursive {
|
||||
ropts = append(ropts, nsopts.Depth(1))
|
||||
@ -150,13 +150,27 @@ Resolve the value of a dnslink:
|
||||
name = "/ipns/" + name
|
||||
}
|
||||
|
||||
// TODO: better errors (in the case of not finding the name, we get "failed to find any peer in table")
|
||||
|
||||
if !stream {
|
||||
output, err := resolver.Resolve(req.Context, name, ropts...)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// TODO: better errors (in the case of not finding the name, we get "failed to find any peer in table")
|
||||
return cmds.EmitOnce(res, &ResolvedPath{output})
|
||||
} else {
|
||||
output := resolver.ResolveAsync(req.Context, name, ropts...)
|
||||
for v := range output {
|
||||
if v.Err != nil {
|
||||
return err
|
||||
}
|
||||
if err := res.Emit(&ResolvedPath{v.Path}); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
},
|
||||
Encoders: cmds.EncoderMap{
|
||||
cmds.Text: cmds.MakeEncoder(func(req *cmds.Request, w io.Writer, v interface{}) error {
|
||||
|
@ -7,14 +7,14 @@ import (
|
||||
|
||||
opts "github.com/ipfs/go-ipfs/namesys/opts"
|
||||
|
||||
"gx/ipfs/QmU4x3742bvgfxJsByEDpBnifJqjJdV6x528co4hwKCn46/go-unixfs"
|
||||
path "gx/ipfs/QmcjwUb36Z16NJkvDX6ccXPqsFswo6AsRXynyXcLLCphV2/go-path"
|
||||
ci "gx/ipfs/QmPvyPwuCgJ7pDmrKDxRtsScJgBaM5h4EpRL2qQJsmXf4n/go-libp2p-crypto"
|
||||
offroute "gx/ipfs/QmScZySgru9jaoDa12sSfvh21sWbqF5eXkieTmJzAHJXkQ/go-ipfs-routing/offline"
|
||||
"gx/ipfs/QmU4x3742bvgfxJsByEDpBnifJqjJdV6x528co4hwKCn46/go-unixfs"
|
||||
ds "gx/ipfs/QmUyz7JTJzgegC6tiJrfby3mPhzcdswVtG4x58TQ6pq8jV/go-datastore"
|
||||
dssync "gx/ipfs/QmUyz7JTJzgegC6tiJrfby3mPhzcdswVtG4x58TQ6pq8jV/go-datastore/sync"
|
||||
ipns "gx/ipfs/QmZrmn2BPZbSviQAWeyY2iXkCukmJHv9n7zrLgWU5KgbTb/go-ipns"
|
||||
peer "gx/ipfs/QmbNepETomvmXfz1X5pHNFD2QuPqnqi47dTd94QJWSorQ3/go-libp2p-peer"
|
||||
path "gx/ipfs/QmcjwUb36Z16NJkvDX6ccXPqsFswo6AsRXynyXcLLCphV2/go-path"
|
||||
pstoremem "gx/ipfs/QmfAQMFpgDU2U4BXG64qVr8HSiictfWvkSBz7Y2oDj65st/go-libp2p-peerstore/pstoremem"
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user