forked from TrueCloudLab/frostfs-node
[#607] *: Do not use deprecated elements of code
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
cbe20a2bac
commit
43eff09944
11 changed files with 42 additions and 34 deletions
|
@ -2,6 +2,7 @@ package network
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"sort"
|
||||
|
||||
"github.com/nspcc-dev/neofs-api-go/pkg/netmap"
|
||||
|
@ -78,13 +79,12 @@ type MultiAddressIterator interface {
|
|||
// The result is sorted with sort.Sort.
|
||||
//
|
||||
// Returns an error in the absence of addresses or if any of the addresses are incorrect.
|
||||
func (x *AddressGroup) FromIterator(iter MultiAddressIterator) (err error) {
|
||||
func (x *AddressGroup) FromIterator(iter MultiAddressIterator) error {
|
||||
as := *x
|
||||
|
||||
addrNum := iter.NumberOfAddresses()
|
||||
if addrNum <= 0 {
|
||||
err = errors.New("missing network addresses")
|
||||
return
|
||||
return errors.New("missing network addresses")
|
||||
}
|
||||
|
||||
if cap(as) >= addrNum {
|
||||
|
@ -93,17 +93,9 @@ func (x *AddressGroup) FromIterator(iter MultiAddressIterator) (err error) {
|
|||
as = make(AddressGroup, 0, addrNum)
|
||||
}
|
||||
|
||||
iter.IterateAddresses(func(s string) bool {
|
||||
var a Address
|
||||
|
||||
err = a.FromString(s)
|
||||
|
||||
fail := err != nil
|
||||
if !fail {
|
||||
as = append(as, a)
|
||||
}
|
||||
|
||||
return fail
|
||||
err := iterateParsedAddresses(iter, func(a Address) error {
|
||||
as = append(as, a)
|
||||
return nil
|
||||
})
|
||||
|
||||
if err == nil {
|
||||
|
@ -111,6 +103,26 @@ func (x *AddressGroup) FromIterator(iter MultiAddressIterator) (err error) {
|
|||
*x = as
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// iterateParsedAddresses parses each address from MultiAddressIterator and passes it to f
|
||||
// until 1st parsing failure or f's error.
|
||||
func iterateParsedAddresses(iter MultiAddressIterator, f func(s Address) error) (err error) {
|
||||
iter.IterateAddresses(func(s string) bool {
|
||||
var a Address
|
||||
|
||||
err = a.FromString(s)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("could not parse address from string: %w", err)
|
||||
return true
|
||||
}
|
||||
|
||||
err = f(a)
|
||||
|
||||
return err != nil
|
||||
})
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue