SearchValue: Make -1 quorum mean infinite on get

This commit is contained in:
Łukasz Magiera
2018-07-18 19:33:57 +02:00
parent e28b133f80
commit 307660c78d
2 changed files with 6 additions and 3 deletions

View File

@@ -328,7 +328,7 @@ func TestSearchValue(t *testing.T) {
ctxT, cancel = context.WithTimeout(ctx, time.Second*2)
defer cancel()
valCh, err := dhtA.SearchValue(ctxT, "/v/hello")
valCh, err := dhtA.SearchValue(ctxT, "/v/hello", Quorum(-1))
if err != nil {
t.Fatal(err)
}
@@ -395,7 +395,7 @@ func TestGetValues(t *testing.T) {
t.Fatalf("expected to get 2 values, got %d", len(vals))
}
sort.Slice(vals, func(i, j int) bool {return string(vals[i].Val) < string(vals[j].Val)})
sort.Slice(vals, func(i, j int) bool { return string(vals[i].Val) < string(vals[j].Val) })
if string(vals[0].Val) != "valid" {
t.Errorf("unexpected vals[0]: %s", string(vals[0].Val))

View File

@@ -157,6 +157,9 @@ func (dht *IpfsDHT) SearchValue(ctx context.Context, key string, opts ...ropts.O
go func() {
defer close(out)
if responsesNeeded < 0 {
responsesNeeded = 0
}
vals := make([]RecvdVal, 0, responsesNeeded)
best := -1
@@ -271,7 +274,7 @@ func (dht *IpfsDHT) getValues(ctx context.Context, key string, nvals int) (<-cha
From: dht.self,
}
if nvals <= 1 {
if nvals == 0 || nvals == 1 {
return done(nil)
}