ipfs/kubo

namesys/routing.go imports dht package preventing dht.Quorum() from being used with a custom routing option

Open

#5 957 ouverte le 30 janv. 2019

Voir sur GitHub
 (1 commentaire) (0 réactions) (0 assignés)Go (2 725 forks)batch import
P3effort/hoursexp/intermediatehelp wantedstatus/ready

Métriques du dépôt

Stars
 (13 906 stars)
Métriques de merge PR
 (Merge moyen 4j 2h) (28 PRs mergées en 30 j)

Description

If a user is using a custom routing option (like for example, we are using a modified DHT in openbazaar) and they pass in a DhtRecordCount to namesys.Resolve. The routing resolver will call dht.Quorum(int(options.DhtRecordCount)) however, the dht package imported by routing.go is the native dht package and not the one set by the user. The quorum function doesn't apply the option to the custom routing option.

func Quorum(n int) ropts.Option {
	return func(opts *ropts.Options) error {
		if opts.Other == nil {
			opts.Other = make(map[interface{}]interface{}, 1)
		}
		opts.Other[quorumOptionKey{}] = n
		return nil
	}
}

I think the issue using a struct defined inside the package for quorumOptionKey rather than, say, a string.

Guide contributeur