mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-21 10:27:46 +08:00
Merge pull request #6034 from ipfs/fix/6032
commands(dht): return final error
This commit is contained in:
commit
29668e116c
@ -267,18 +267,18 @@ var provideRefDhtCmd = &cmds.Command{
|
||||
ctx, cancel := context.WithCancel(req.Context)
|
||||
ctx, events := notif.RegisterForQueryEvents(ctx)
|
||||
|
||||
var provideErr error
|
||||
go func() {
|
||||
defer cancel()
|
||||
var err error
|
||||
if rec {
|
||||
err = provideKeysRec(ctx, nd.Routing, nd.DAG, cids)
|
||||
provideErr = provideKeysRec(ctx, nd.Routing, nd.DAG, cids)
|
||||
} else {
|
||||
err = provideKeys(ctx, nd.Routing, cids)
|
||||
provideErr = provideKeys(ctx, nd.Routing, cids)
|
||||
}
|
||||
if err != nil {
|
||||
if provideErr != nil {
|
||||
notif.PublishQueryEvent(ctx, ¬if.QueryEvent{
|
||||
Type: notif.QueryError,
|
||||
Extra: err.Error(),
|
||||
Extra: provideErr.Error(),
|
||||
})
|
||||
}
|
||||
}()
|
||||
@ -289,7 +289,7 @@ var provideRefDhtCmd = &cmds.Command{
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
return provideErr
|
||||
},
|
||||
Encoders: cmds.EncoderMap{
|
||||
cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *notif.QueryEvent) error {
|
||||
@ -376,13 +376,15 @@ var findPeerDhtCmd = &cmds.Command{
|
||||
ctx, cancel := context.WithCancel(req.Context)
|
||||
ctx, events := notif.RegisterForQueryEvents(ctx)
|
||||
|
||||
var findPeerErr error
|
||||
go func() {
|
||||
defer cancel()
|
||||
pi, err := nd.Routing.FindPeer(ctx, pid)
|
||||
if err != nil {
|
||||
var pi pstore.PeerInfo
|
||||
pi, findPeerErr = nd.Routing.FindPeer(ctx, pid)
|
||||
if findPeerErr != nil {
|
||||
notif.PublishQueryEvent(ctx, ¬if.QueryEvent{
|
||||
Type: notif.QueryError,
|
||||
Extra: err.Error(),
|
||||
Extra: findPeerErr.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
@ -399,7 +401,7 @@ var findPeerDhtCmd = &cmds.Command{
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
return findPeerErr
|
||||
},
|
||||
Encoders: cmds.EncoderMap{
|
||||
cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *notif.QueryEvent) error {
|
||||
@ -458,13 +460,15 @@ Different key types can specify other 'best' rules.
|
||||
ctx, cancel := context.WithCancel(req.Context)
|
||||
ctx, events := notif.RegisterForQueryEvents(ctx)
|
||||
|
||||
var getErr error
|
||||
go func() {
|
||||
defer cancel()
|
||||
val, err := nd.Routing.GetValue(ctx, dhtkey)
|
||||
if err != nil {
|
||||
var val []byte
|
||||
val, getErr = nd.Routing.GetValue(ctx, dhtkey)
|
||||
if getErr != nil {
|
||||
notif.PublishQueryEvent(ctx, ¬if.QueryEvent{
|
||||
Type: notif.QueryError,
|
||||
Extra: err.Error(),
|
||||
Extra: getErr.Error(),
|
||||
})
|
||||
} else {
|
||||
notif.PublishQueryEvent(ctx, ¬if.QueryEvent{
|
||||
@ -480,7 +484,7 @@ Different key types can specify other 'best' rules.
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
return getErr
|
||||
},
|
||||
Encoders: cmds.EncoderMap{
|
||||
cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *notif.QueryEvent) error {
|
||||
@ -552,13 +556,14 @@ NOTE: A value may not exceed 2048 bytes.
|
||||
ctx, cancel := context.WithCancel(req.Context)
|
||||
ctx, events := notif.RegisterForQueryEvents(ctx)
|
||||
|
||||
var putErr error
|
||||
go func() {
|
||||
defer cancel()
|
||||
err := nd.Routing.PutValue(ctx, key, []byte(data))
|
||||
if err != nil {
|
||||
putErr = nd.Routing.PutValue(ctx, key, []byte(data))
|
||||
if putErr != nil {
|
||||
notif.PublishQueryEvent(ctx, ¬if.QueryEvent{
|
||||
Type: notif.QueryError,
|
||||
Extra: err.Error(),
|
||||
Extra: putErr.Error(),
|
||||
})
|
||||
}
|
||||
}()
|
||||
@ -569,7 +574,7 @@ NOTE: A value may not exceed 2048 bytes.
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
return putErr
|
||||
},
|
||||
Encoders: cmds.EncoderMap{
|
||||
cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *notif.QueryEvent) error {
|
||||
|
||||
@ -34,8 +34,7 @@ import (
|
||||
merkledag "gx/ipfs/QmPJNbVw8o3ohC43ppSXyNXwYKsWShG4zygnirHptfbHri/go-merkledag"
|
||||
quic "gx/ipfs/QmQ4hhhYzrEoyPxcVQyBqhf3sshsATKX3D3VJUAGuHzaSD/go-libp2p-quic-transport"
|
||||
resolver "gx/ipfs/QmQAgv6Gaoe2tQpcabqwKXKChp2MZ7i3UXv9DqTTaxCaTR/go-path/resolver"
|
||||
rhelpers "gx/ipfs/QmRCrPXk2oUwpK1Cj2FXrUotRpddUxz56setkny2gz13Cx/go-libp2p-routing-helpers"
|
||||
psrouter "gx/ipfs/QmRj3VMHa484MktgWaWr4KYys9AtxBBiFUhhEFKs9EvPiw/go-libp2p-pubsub-router"
|
||||
psrouter "gx/ipfs/QmQtcp7emCLDbJqfn5YnXJQxmP2n7EqiwCHTx4DMKZSBuw/go-libp2p-pubsub-router"
|
||||
libp2p "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p"
|
||||
discovery "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/discovery"
|
||||
p2pbhost "gx/ipfs/QmRxk6AUaGaKCfzS1xSNRojiAPd7h2ih8GuCdjJBF3Y6GK/go-libp2p/p2p/host/basic"
|
||||
@ -58,6 +57,7 @@ import (
|
||||
exchange "gx/ipfs/QmWokDcQdSZCxrNxgaRzQDDBofALhActzNBaxRLtiRkUHg/go-ipfs-exchange-interface"
|
||||
ifconnmgr "gx/ipfs/QmXa6sgzUvP5bgF5CyyV36bZYv5VDRwttggQYUPvFybLVd/go-libp2p-interface-connmgr"
|
||||
bstore "gx/ipfs/QmXjKkjMDTtXAiLBwstVexofB8LeruZmE2eBd85GwGFFLA/go-ipfs-blockstore"
|
||||
rhelpers "gx/ipfs/QmXwV9RskR8vpoYWu9bvKAeAWaBKyxEsEiM9yy6ezbpNBm/go-libp2p-routing-helpers"
|
||||
peer "gx/ipfs/QmYVXrKrKHDC9FobgmcmshCDyWwdrfwfanNQN4oxJ9Fk3h/go-libp2p-peer"
|
||||
p2phost "gx/ipfs/QmYrWiWM4qtrnCeT3R14jY3ZZyirDNJgwK57q4qFYePgbd/go-libp2p-host"
|
||||
routing "gx/ipfs/QmYxUdYY9S6yg5tSPVin5GFTvtfsLauVcr7reHDD3dM8xf/go-libp2p-routing"
|
||||
|
||||
@ -459,15 +459,15 @@
|
||||
},
|
||||
{
|
||||
"author": "stebalien",
|
||||
"hash": "QmRj3VMHa484MktgWaWr4KYys9AtxBBiFUhhEFKs9EvPiw",
|
||||
"hash": "QmQtcp7emCLDbJqfn5YnXJQxmP2n7EqiwCHTx4DMKZSBuw",
|
||||
"name": "go-libp2p-pubsub-router",
|
||||
"version": "0.5.16"
|
||||
"version": "0.5.17"
|
||||
},
|
||||
{
|
||||
"author": "Stebalien",
|
||||
"hash": "QmRCrPXk2oUwpK1Cj2FXrUotRpddUxz56setkny2gz13Cx",
|
||||
"hash": "QmXwV9RskR8vpoYWu9bvKAeAWaBKyxEsEiM9yy6ezbpNBm",
|
||||
"name": "go-libp2p-routing-helpers",
|
||||
"version": "0.3.19"
|
||||
"version": "0.4.0"
|
||||
},
|
||||
{
|
||||
"author": "fsnotify",
|
||||
|
||||
@ -51,15 +51,15 @@ test_dht() {
|
||||
test_fsh cat putted
|
||||
'
|
||||
|
||||
test_expect_failure 'put with bad keys returns error (issue #4611)' '
|
||||
! ipfsi 0 dht put "foo" "bar" &&
|
||||
! ipfsi 0 dht put "/pk/foo" "bar" &&
|
||||
! ipfsi 0 dht put "/ipns/foo" "bar"
|
||||
test_expect_success 'put with bad keys returns error (issue #4611)' '
|
||||
test_must_fail ipfsi 0 dht put "foo" "bar" &&
|
||||
test_must_fail ipfsi 0 dht put "/pk/foo" "bar" &&
|
||||
test_must_fail ipfsi 0 dht put "/ipns/foo" "bar"
|
||||
'
|
||||
|
||||
test_expect_failure 'get with bad keys (issue #4611)' '
|
||||
! ipfsi 0 dht get "foo" &&
|
||||
! ipfsi 0 dht get "/pk/foo"
|
||||
test_expect_success 'get with bad keys (issue #4611)' '
|
||||
test_must_fail ipfsi 0 dht get "foo" &&
|
||||
test_must_fail ipfsi 0 dht get "/pk/foo"
|
||||
'
|
||||
|
||||
test_expect_success "add a ref so we can find providers for it" '
|
||||
|
||||
Loading…
Reference in New Issue
Block a user