Ver código fonte

cmd/swarm, swarm: disable ENS API by default

Specifying ENS API CLI flag, env variable or configuration
field is required for ENS resolving. Backward compatibility is
preserved with --ens-api="" CLI flag value.
Janos Guljas 8 anos atrás
pai
commit
c0a4d9e1e6
3 arquivos alterados com 12 adições e 36 exclusões
  1. 5 18
      cmd/swarm/config.go
  2. 0 2
      swarm/api/config.go
  3. 7 16
      swarm/swarm.go

+ 5 - 18
cmd/swarm/config.go

@@ -195,17 +195,13 @@ func cmdLineOverride(currentConfig *bzzapi.Config, ctx *cli.Context) *bzzapi.Con
 		utils.Fatalf(SWARM_ERR_SWAP_SET_NO_API)
 	}
 
-	//EnsAPIs can be set to "", so can't check for empty string, as it is allowed!
 	if ctx.GlobalIsSet(EnsAPIFlag.Name) {
 		ensAPIs := ctx.GlobalStringSlice(EnsAPIFlag.Name)
-		// Disable ENS resolver if --ens-api="" is specified
+		// preserve backward compatibility to disable ENS with --ens-api=""
 		if len(ensAPIs) == 1 && ensAPIs[0] == "" {
-			currentConfig.EnsDisabled = true
-			currentConfig.EnsAPIs = nil
-		} else {
-			currentConfig.EnsDisabled = false
-			currentConfig.EnsAPIs = ensAPIs
+			ensAPIs = nil
 		}
+		currentConfig.EnsAPIs = ensAPIs
 	}
 
 	if ensaddr := ctx.GlobalString(DeprecatedEnsAddrFlag.Name); ensaddr != "" {
@@ -275,17 +271,8 @@ func envVarsOverride(currentConfig *bzzapi.Config) (config *bzzapi.Config) {
 		utils.Fatalf(SWARM_ERR_SWAP_SET_NO_API)
 	}
 
-	//EnsAPIs can be set to "", so can't check for empty string, as it is allowed
-	if ensapi, exists := os.LookupEnv(SWARM_ENV_ENS_API); exists {
-		ensAPIs := strings.Split(ensapi, ",")
-		// Disable ENS resolver if SWARM_ENS_API="" is specified
-		if len(ensAPIs) == 0 {
-			currentConfig.EnsDisabled = true
-			currentConfig.EnsAPIs = nil
-		} else {
-			currentConfig.EnsDisabled = false
-			currentConfig.EnsAPIs = ensAPIs
-		}
+	if ensapi := os.Getenv(SWARM_ENV_ENS_API); ensapi != "" {
+		currentConfig.EnsAPIs = strings.Split(ensapi, ",")
 	}
 
 	if ensaddr := os.Getenv(SWARM_ENV_ENS_ADDR); ensaddr != "" {

+ 0 - 2
swarm/api/config.go

@@ -48,7 +48,6 @@ type Config struct {
 	*network.SyncParams
 	Contract    common.Address
 	EnsRoot     common.Address
-	EnsDisabled bool
 	EnsAPIs     []string
 	Path        string
 	ListenAddr  string
@@ -78,7 +77,6 @@ func NewDefaultConfig() (self *Config) {
 		Path:          node.DefaultDataDir(),
 		EnsAPIs:       nil,
 		EnsRoot:       ens.TestNetAddress,
-		EnsDisabled:   false,
 		NetworkId:     network.NetworkId,
 		SwapEnabled:   false,
 		SyncEnabled:   true,

+ 7 - 16
swarm/swarm.go

@@ -138,26 +138,17 @@ func NewSwarm(ctx *node.ServiceContext, backend chequebook.Backend, config *api.
 	self.dpa = storage.NewDPA(dpaChunkStore, self.config.ChunkerParams)
 	log.Debug(fmt.Sprintf("-> Content Store API"))
 
-	if !config.EnsDisabled {
-		if len(config.EnsAPIs) == 0 {
-			// ENS is enabled and has no specific configuration,
-			// use defaults
-			self.dns, err = newEnsClient(node.DefaultIPCEndpoint("geth"), config.EnsRoot, config)
+	if len(config.EnsAPIs) > 0 {
+		opts := []api.MultiResolverOption{}
+		for _, c := range config.EnsAPIs {
+			tld, endpoint, addr := parseEnsAPIAddress(c)
+			r, err := newEnsClient(endpoint, addr, config)
 			if err != nil {
 				return nil, err
 			}
-		} else {
-			opts := []api.MultiResolverOption{}
-			for _, c := range config.EnsAPIs {
-				tld, endpoint, addr := parseEnsAPIAddress(c)
-				r, err := newEnsClient(endpoint, addr, config)
-				if err != nil {
-					return nil, err
-				}
-				opts = append(opts, api.MultiResolverOptionWithResolver(r, tld))
-			}
-			self.dns = api.NewMultiResolver(opts...)
+			opts = append(opts, api.MultiResolverOptionWithResolver(r, tld))
 		}
+		self.dns = api.NewMultiResolver(opts...)
 	}
 
 	self.api = api.NewApi(self.dpa, self.dns)