@cryptotaxi247 / kubo / commits / 291614848

fix(swarm): feed through context

License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>

Steven Allen committed Mar 18, 2019 at 18:55 UTC 291614848f7e4b822df4a21f7afcf4393e24444c
1 file changed +7 -6
core/commands/swarm.go
+7 -6
@@ -370,7 +370,7 @@ ipfs swarm connect /ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3
370
371 addrs := req.Arguments
372
373 - pis, err := peersWithAddresses(addrs)
373 + pis, err := peersWithAddresses(req.Context, addrs)
374 if err != nil {
375 return err
376 }
@@ -467,9 +467,9 @@ func parseMultiaddrs(maddrs []ma.Multiaddr) (iaddrs []iaddr.IPFSAddr, err error)
467
468 // peersWithAddresses is a function that takes in a slice of string peer addresses
469 // (multiaddr + peerid) and returns a slice of properly constructed peers
470 -func peersWithAddresses(addrs []string) ([]pstore.PeerInfo, error) {
470 +func peersWithAddresses(ctx context.Context, addrs []string) ([]pstore.PeerInfo, error) {
471 // resolve addresses
472 - maddrs, err := resolveAddresses(addrs)
472 + maddrs, err := resolveAddresses(ctx, addrs)
473 if err != nil {
474 return nil, err
475 }
@@ -500,7 +500,10 @@ func peersWithAddresses(addrs []string) ([]pstore.PeerInfo, error) {
500 }
501
502 // resolveAddresses resolves addresses parallelly
503 -func resolveAddresses(addrs []string) ([]ma.Multiaddr, error) {
503 +func resolveAddresses(ctx context.Context, addrs []string) ([]ma.Multiaddr, error) {
504 + ctx, cancel := context.WithTimeout(ctx, dnsResolveTimeout)
505 + defer cancel()
506 +
507 var maddrs []ma.Multiaddr
508 var wg sync.WaitGroup
509 resolveErrC := make(chan error, len(addrs))
@@ -532,9 +535,7 @@ func resolveAddresses(addrs []string) ([]ma.Multiaddr, error) {
535 wg.Add(1)
536 go func(maddr ma.Multiaddr) {
537 defer wg.Done()
535 - ctx, cancel := context.WithTimeout(context.Background(), dnsResolveTimeout)
538 raddrs, err := madns.Resolve(ctx, maddr)
537 - cancel()
539 if err != nil {
540 resolveErrC <- err
541 return