Fix Peers and InterfacePeers when not in correct format

This commit is contained in:
Neil Alexander 2018-12-14 17:49:42 +00:00
parent 10157483f9
commit ccf6ce07a4
No known key found for this signature in database
GPG Key ID: A02A2019A2BB0944

View File

@ -12,6 +12,7 @@ import (
"os"
"os/signal"
"regexp"
"strings"
"syscall"
"time"
@ -188,6 +189,25 @@ func main() {
}
}
}
// Check to see if the peers are in a parsable format, if not then default
// them to the TCP scheme
for index, peer := range dat["Peers"].([]interface{}) {
uri := peer.(string)
if strings.HasPrefix(uri, "tcp://") || strings.HasPrefix(uri, "socks://") {
continue
}
(dat["Peers"].([]interface{}))[index] = "tcp://" + uri
}
// Now do the same with the interface peers
for intf, peers := range dat["InterfacePeers"].(map[string]interface{}) {
for index, peer := range peers.([]interface{}) {
uri := peer.(string)
if strings.HasPrefix(uri, "tcp://") || strings.HasPrefix(uri, "socks://") {
continue
}
((dat["InterfacePeers"].(map[string]interface{}))[intf]).([]interface{})[index] = "tcp://" + uri
}
}
// Overlay our newly mapped configuration onto the autoconf node config that
// we generated above.
if err = mapstructure.Decode(dat, &cfg); err != nil {