Skip to content

Commit c35f275

Browse files
provider: more minor fixes (#1152)
1 parent efcdc80 commit c35f275

File tree

4 files changed

+14
-17
lines changed

4 files changed

+14
-17
lines changed

go.mod

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require (
1212
github.com/ipfs/go-cid v0.5.0
1313
github.com/ipfs/go-datastore v0.8.4
1414
github.com/ipfs/go-detect-race v0.0.1
15-
github.com/ipfs/go-dsqueue v0.0.4
15+
github.com/ipfs/go-dsqueue v0.0.5
1616
github.com/ipfs/go-log/v2 v2.8.1
1717
github.com/ipfs/go-test v0.2.3
1818
github.com/libp2p/go-libp2p v0.43.0
@@ -48,7 +48,6 @@ require (
4848
github.com/davecgh/go-spew v1.1.1 // indirect
4949
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect
5050
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect
51-
github.com/filecoin-project/go-clock v0.1.0 // indirect
5251
github.com/flynn/noise v1.1.0 // indirect
5352
github.com/francoispqt/gojay v1.2.13 // indirect
5453
github.com/go-logr/logr v1.4.3 // indirect

go.sum

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjY
5353
github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4=
5454
github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
5555
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
56-
github.com/filecoin-project/go-clock v0.1.0 h1:SFbYIM75M8NnFm1yMHhN9Ahy3W5bEZV9gd6MPfXbKVU=
57-
github.com/filecoin-project/go-clock v0.1.0/go.mod h1:4uB/O4PvOjlx1VCMdZ9MyDZXRm//gkj1ELEbxfI1AZs=
5856
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
5957
github.com/flynn/noise v1.1.0 h1:KjPQoQCEFdZDiP03phOvGi11+SVVhBG2wOWAorLsstg=
6058
github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag=
@@ -139,8 +137,8 @@ github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ
139137
github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps=
140138
github.com/ipfs/go-ds-badger v0.0.7/go.mod h1:qt0/fWzZDoPW6jpQeqUjR5kBfhDNB65jd9YlmAvpQBk=
141139
github.com/ipfs/go-ds-leveldb v0.1.0/go.mod h1:hqAW8y4bwX5LWcCtku2rFNX3vjDZCy5LZCg+cSZvYb8=
142-
github.com/ipfs/go-dsqueue v0.0.4 h1:tesq26hKRYPG72Tu9kZKsbsLWp1KBfAxWNQlMyU17tk=
143-
github.com/ipfs/go-dsqueue v0.0.4/go.mod h1:K68ng9BVl+gLr8fqCJKaoXnXqo6MzQ6nV0MhZZFEwg4=
140+
github.com/ipfs/go-dsqueue v0.0.5 h1:TUOk15TlCJ/NKV8Yk2W5wgkEjDa44Nem7a7FGIjsMNU=
141+
github.com/ipfs/go-dsqueue v0.0.5/go.mod h1:i/jAlpZjBbQJLioN+XKbFgnd+u9eAhGZs9IrqIzTd9g=
144142
github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw=
145143
github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc=
146144
github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM=

provider/buffered/provider.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ func fromBytes(data []byte) (byte, mh.Multihash, error) {
9797
// It discards multihashes from the `StopProviding` operation if
9898
// `StartProviding` was called after `StopProviding` for the same multihash.
9999
func getOperations(dequeued [][]byte) ([][]mh.Multihash, error) {
100-
ops := [lastOp][]mh.Multihash{}
101100
stopProv := make(map[string]struct{})
101+
ops := [lastOp - 1][]mh.Multihash{} // don't store stop ops
102102

103103
for _, bs := range dequeued {
104104
op, h, err := fromBytes(bs)
@@ -115,10 +115,11 @@ func getOperations(dequeued [][]byte) ([][]mh.Multihash, error) {
115115
stopProv[string(h)] = struct{}{}
116116
}
117117
}
118+
stopOps := make([]mh.Multihash, 0, len(stopProv))
118119
for hstr := range stopProv {
119-
ops[stopProvidingOp] = append(ops[stopProvidingOp], mh.Multihash(hstr))
120+
stopOps = append(stopOps, mh.Multihash(hstr))
120121
}
121-
return ops[:], nil
122+
return append(ops[:], stopOps), nil
122123
}
123124

124125
// executeOperation executes a provider operation on the underlying provider

provider/dual/provider.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ type SweepingProvider struct {
2828
// New creates a new SweepingProvider that manages provides and reprovides for
2929
// both DHT swarms (LAN and WAN) in a dual DHT setup.
3030
func New(d *dual.DHT, opts ...Option) (*SweepingProvider, error) {
31-
if d == nil || (d.LAN == nil || d.WAN == nil) {
31+
if d == nil || d.LAN == nil || d.WAN == nil {
3232
return nil, errors.New("cannot create sweeping provider for nil dual DHT")
3333
}
3434

@@ -84,21 +84,20 @@ func New(d *dual.DHT, opts ...Option) (*SweepingProvider, error) {
8484
// runOnBoth runs the provided function on both the LAN and WAN providers in
8585
// parallel and waits for both to complete.
8686
func (s *SweepingProvider) runOnBoth(f func(*provider.SweepingProvider) error) error {
87-
var errs [2]error
88-
done := make(chan struct{})
87+
errCh := make(chan error, 1)
8988
go func() {
90-
defer close(done)
9189
err := f(s.LAN)
9290
if err != nil {
93-
errs[0] = fmt.Errorf("LAN provider: %w", err)
91+
err = fmt.Errorf("LAN provider: %w", err)
9492
}
93+
errCh <- err
9594
}()
9695
err := f(s.WAN)
9796
if err != nil {
98-
errs[1] = fmt.Errorf("WAN provider: %w", err)
97+
err = fmt.Errorf("WAN provider: %w", err)
9998
}
100-
<-done
101-
return errors.Join(errs[:]...)
99+
lanErr := <-errCh
100+
return errors.Join(lanErr, err)
102101
}
103102

104103
// Close stops both DHT providers and releases associated resources.

0 commit comments

Comments
 (0)