forked from TrueCloudLab/frostfs-node
[#1363] Use network package to parse and verify the announced address.
Signed-off-by: tasselsd <tasselsd@outlook.com>
This commit is contained in:
parent
8f1a0fb6e7
commit
379c70cc90
1 changed files with 12 additions and 3 deletions
|
@ -9,6 +9,7 @@ import (
|
||||||
"math/big"
|
"math/big"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"net"
|
"net"
|
||||||
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
@ -29,6 +30,8 @@ import (
|
||||||
"github.com/nspcc-dev/neo-go/pkg/util"
|
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/vm"
|
"github.com/nspcc-dev/neo-go/pkg/vm"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/wallet"
|
"github.com/nspcc-dev/neo-go/pkg/wallet"
|
||||||
|
netutil "github.com/nspcc-dev/neofs-node/pkg/network"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -148,12 +151,18 @@ func storageConfig(cmd *cobra.Command, args []string) {
|
||||||
var addr, port string
|
var addr, port string
|
||||||
for {
|
for {
|
||||||
c.AnnouncedAddress = getString("Publicly announced address: ")
|
c.AnnouncedAddress = getString("Publicly announced address: ")
|
||||||
addr, port, err = net.SplitHostPort(c.AnnouncedAddress)
|
validator := netutil.Address{}
|
||||||
|
err := validator.FromString(c.AnnouncedAddress)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cmd.Println("Address must have form A.B.C.D:PORT")
|
cmd.Println("Incorrect address format. See https://github.com/nspcc-dev/neofs-node/blob/master/pkg/network/address.go for details.")
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
uriAddr, err := url.Parse(validator.URIAddr())
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Errorf("unexpected error: %w", err))
|
||||||
|
}
|
||||||
|
addr = uriAddr.Hostname()
|
||||||
|
port = uriAddr.Port()
|
||||||
ip, err := net.ResolveIPAddr("ip", addr)
|
ip, err := net.ResolveIPAddr("ip", addr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cmd.Printf("Can't resolve IP address %s: %v\n", addr, err)
|
cmd.Printf("Can't resolve IP address %s: %v\n", addr, err)
|
||||||
|
|
Loading…
Reference in a new issue