diff options
author | Péter Szilágyi <peterke@gmail.com> | 2017-10-12 18:46:57 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-12 18:46:57 +0800 |
commit | 8d8034fe59e40d606e6feea4c71b4798e7862e2f (patch) | |
tree | de4bfbf5480c595dfec75f4b41ce146f65391ee3 /cmd/puppeth/wizard_ethstats.go | |
parent | fd0e7b1c679ff4535513ae2d01c81803b7eb8f9b (diff) | |
parent | b45cc0c9e8c8724f9db6420a0ea7fbf6d5401fbe (diff) | |
download | dexon-8d8034fe59e40d606e6feea4c71b4798e7862e2f.tar.gz dexon-8d8034fe59e40d606e6feea4c71b4798e7862e2f.tar.zst dexon-8d8034fe59e40d606e6feea4c71b4798e7862e2f.zip |
Merge pull request #15269 from karalabe/puppeth-dumb-ip-filtering
cmd/puppeth: use dumb textual IP filtering
Diffstat (limited to 'cmd/puppeth/wizard_ethstats.go')
-rw-r--r-- | cmd/puppeth/wizard_ethstats.go | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/cmd/puppeth/wizard_ethstats.go b/cmd/puppeth/wizard_ethstats.go index 504d8fd9c..8bfa1d6e5 100644 --- a/cmd/puppeth/wizard_ethstats.go +++ b/cmd/puppeth/wizard_ethstats.go @@ -18,6 +18,7 @@ package main import ( "fmt" + "sort" "github.com/ethereum/go-ethereum/log" ) @@ -64,17 +65,37 @@ func (w *wizard) deployEthstats() { fmt.Println() fmt.Printf("Keep existing IP %v blacklist (y/n)? (default = yes)\n", infos.banned) if w.readDefaultString("y") != "y" { - infos.banned = nil - + // The user might want to clear the entire list, although generally probably not + fmt.Println() + fmt.Printf("Clear out blacklist and start over (y/n)? (default = no)\n") + if w.readDefaultString("n") != "n" { + infos.banned = nil + } + // Offer the user to explicitly add/remove certain IP addresses + fmt.Println() + fmt.Println("Which additional IP addresses should be blacklisted?") + for { + if ip := w.readIPAddress(); ip != "" { + infos.banned = append(infos.banned, ip) + continue + } + break + } fmt.Println() - fmt.Println("Which IP addresses should be blacklisted?") + fmt.Println("Which IP addresses should not be blacklisted?") for { - if ip := w.readIPAddress(); ip != nil { - infos.banned = append(infos.banned, ip.String()) + if ip := w.readIPAddress(); ip != "" { + for i, addr := range infos.banned { + if ip == addr { + infos.banned = append(infos.banned[:i], infos.banned[i+1:]...) + break + } + } continue } break } + sort.Strings(infos.banned) } // Try to deploy the ethstats server on the host trusted := make([]string, 0, len(w.servers)) |