diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-11-06 03:27:11 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-11-06 03:27:11 +0800 |
commit | 2334ee97d0f65e583985e7333694fb4da275fc99 (patch) | |
tree | 4eba529092f6a4f2fb6191306c0bcf46876de8fc /eth/backend.go | |
parent | 76390ef8925ff0a3ae4092664e4e94550ae46de4 (diff) | |
parent | 5d89bbdda18a44a22403bb3d0a3d0705ac11880d (diff) | |
download | dexon-2334ee97d0f65e583985e7333694fb4da275fc99.tar.gz dexon-2334ee97d0f65e583985e7333694fb4da275fc99.tar.zst dexon-2334ee97d0f65e583985e7333694fb4da275fc99.zip |
Merge pull request #1963 from karalabe/fix-database-regression
eth: fix error casting regression during database open
Diffstat (limited to 'eth/backend.go')
-rw-r--r-- | eth/backend.go | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/eth/backend.go b/eth/backend.go index 9eb211e31..761a17a8f 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -65,7 +65,7 @@ const ( var ( jsonlogger = logger.NewJsonLogger() - datadirInUseErrNos = []uint{11, 32, 35} + datadirInUseErrnos = map[uint]bool{11: true, 32: true, 35: true} portInUseErrRE = regexp.MustCompile("address already in use") defaultBootNodes = []*discover.Node{ @@ -286,15 +286,7 @@ func New(config *Config) (*Ethereum, error) { // Open the chain database and perform any upgrades needed chainDb, err := newdb(filepath.Join(config.DataDir, "chaindata")) if err != nil { - var ok bool - errno := uint(err.(syscall.Errno)) - for _, no := range datadirInUseErrNos { - if errno == no { - ok = true - break - } - } - if ok { + if errno, ok := err.(syscall.Errno); ok && datadirInUseErrnos[uint(errno)] { err = fmt.Errorf("%v (check if another instance of geth is already running with the same data directory '%s')", err, config.DataDir) } return nil, fmt.Errorf("blockchain db err: %v", err) @@ -311,14 +303,7 @@ func New(config *Config) (*Ethereum, error) { dappDb, err := newdb(filepath.Join(config.DataDir, "dapp")) if err != nil { - var ok bool - for _, no := range datadirInUseErrNos { - if uint(err.(syscall.Errno)) == no { - ok = true - break - } - } - if ok { + if errno, ok := err.(syscall.Errno); ok && datadirInUseErrnos[uint(errno)] { err = fmt.Errorf("%v (check if another instance of geth is already running with the same data directory '%s')", err, config.DataDir) } return nil, fmt.Errorf("dapp db err: %v", err) |