mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-09-02 03:54:26 +02:00
lnwire: add new type OpaqueAddrs
In this commit, a new net.Addr implementation called OpaqueAddrs is added along with a WriteOpaqueAddrs func that is called in WriteNetAddrs. It will be used to store any address bytes that we cannot parse due to us not being aware of the address type.
This commit is contained in:
@@ -32,6 +32,9 @@ var (
|
||||
// ErrNilNetAddress is returned when a nil value is used in []net.Addr.
|
||||
ErrNilNetAddress = errors.New("cannot write nil address")
|
||||
|
||||
// ErrNilOpaqueAddrs is returned when the supplied address is nil.
|
||||
ErrNilOpaqueAddrs = errors.New("cannot write nil OpaqueAddrs")
|
||||
|
||||
// ErrNilPublicKey is returned when a nil pubkey is used.
|
||||
ErrNilPublicKey = errors.New("cannot write nil pubkey")
|
||||
|
||||
@@ -357,6 +360,16 @@ func WriteOnionAddr(buf *bytes.Buffer, addr *tor.OnionAddr) error {
|
||||
return WriteUint16(buf, uint16(addr.Port))
|
||||
}
|
||||
|
||||
// WriteOpaqueAddrs appends the payload of the given OpaqueAddrs to buffer.
|
||||
func WriteOpaqueAddrs(buf *bytes.Buffer, addr *OpaqueAddrs) error {
|
||||
if addr == nil {
|
||||
return ErrNilOpaqueAddrs
|
||||
}
|
||||
|
||||
_, err := buf.Write(addr.Payload)
|
||||
return err
|
||||
}
|
||||
|
||||
// WriteNetAddrs appends a slice of addresses to the provided buffer with the
|
||||
// length info.
|
||||
func WriteNetAddrs(buf *bytes.Buffer, addresses []net.Addr) error {
|
||||
@@ -376,6 +389,10 @@ func WriteNetAddrs(buf *bytes.Buffer, addresses []net.Addr) error {
|
||||
if err := WriteOnionAddr(addrBuf, a); err != nil {
|
||||
return err
|
||||
}
|
||||
case *OpaqueAddrs:
|
||||
if err := WriteOpaqueAddrs(addrBuf, a); err != nil {
|
||||
return err
|
||||
}
|
||||
default:
|
||||
return ErrNilNetAddress
|
||||
}
|
||||
|
Reference in New Issue
Block a user