Skip to content

Commit

Permalink
cmd/swarm, swarm: disable ENS API by default
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
janos committed Dec 18, 2017
1 parent 47a8014 commit c0a4d9e
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 36 deletions.
23 changes: 5 additions & 18 deletions cmd/swarm/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 != "" {
Expand Down Expand Up @@ -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 != "" {
Expand Down
2 changes: 0 additions & 2 deletions swarm/api/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ type Config struct {
*network.SyncParams
Contract common.Address
EnsRoot common.Address
EnsDisabled bool
EnsAPIs []string
Path string
ListenAddr string
Expand Down Expand Up @@ -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,
Expand Down
23 changes: 7 additions & 16 deletions swarm/swarm.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit c0a4d9e

Please sign in to comment.