channeldb: export net.Addr encode/decode methods
We'll move these to the new graphdb package later and import them from there.
This commit is contained in:
5 files changed
+14
-14
No files matched your search
+4
-4
@@ -121,10 +121,10 @@ func encodeOnionAddr(w io.Writer, addr *tor.OnionAddr) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// deserializeAddr reads the serialized raw representation of an address and
|
// DeserializeAddr reads the serialized raw representation of an address and
|
||||||
// deserializes it into the actual address. This allows us to avoid address
|
// deserializes it into the actual address. This allows us to avoid address
|
||||||
// resolution within the channeldb package.
|
// resolution within the channeldb package.
|
||||||
func deserializeAddr(r io.Reader) (net.Addr, error) {
|
func DeserializeAddr(r io.Reader) (net.Addr, error) {
|
||||||
var addrType [1]byte
|
var addrType [1]byte
|
||||||
if _, err := r.Read(addrType[:]); err != nil {
|
if _, err := r.Read(addrType[:]); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -207,9 +207,9 @@ func deserializeAddr(r io.Reader) (net.Addr, error) {
|
|||||||
return address, nil
|
return address, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// serializeAddr serializes an address into its raw bytes representation so that
|
// SerializeAddr serializes an address into its raw bytes representation so that
|
||||||
// it can be deserialized without requiring address resolution.
|
// it can be deserialized without requiring address resolution.
|
||||||
func serializeAddr(w io.Writer, address net.Addr) error {
|
func SerializeAddr(w io.Writer, address net.Addr) error {
|
||||||
switch addr := address.(type) {
|
switch addr := address.(type) {
|
||||||
case *net.TCPAddr:
|
case *net.TCPAddr:
|
||||||
return encodeTCPAddr(w, addr)
|
return encodeTCPAddr(w, addr)
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ func TestAddrSerialization(t *testing.T) {
|
|||||||
|
|
||||||
var b bytes.Buffer
|
var b bytes.Buffer
|
||||||
for _, test := range addrTests {
|
for _, test := range addrTests {
|
||||||
err := serializeAddr(&b, test.expAddr)
|
err := SerializeAddr(&b, test.expAddr)
|
||||||
switch {
|
switch {
|
||||||
case err == nil && test.serErr != "":
|
case err == nil && test.serErr != "":
|
||||||
t.Fatalf("expected serialization err for addr %v",
|
t.Fatalf("expected serialization err for addr %v",
|
||||||
@@ -136,7 +136,7 @@ func TestAddrSerialization(t *testing.T) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
addr, err := deserializeAddr(&b)
|
addr, err := DeserializeAddr(&b)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unable to deserialize address: %v", err)
|
t.Fatalf("unable to deserialize address: %v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -218,7 +218,7 @@ func WriteElement(w io.Writer, element interface{}) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case net.Addr:
|
case net.Addr:
|
||||||
if err := serializeAddr(w, e); err != nil {
|
if err := SerializeAddr(w, e); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,7 +228,7 @@ func WriteElement(w io.Writer, element interface{}) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, addr := range e {
|
for _, addr := range e {
|
||||||
if err := serializeAddr(w, addr); err != nil {
|
if err := SerializeAddr(w, addr); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -451,7 +451,7 @@ func ReadElement(r io.Reader, element interface{}) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case *net.Addr:
|
case *net.Addr:
|
||||||
addr, err := deserializeAddr(r)
|
addr, err := DeserializeAddr(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -465,7 +465,7 @@ func ReadElement(r io.Reader, element interface{}) error {
|
|||||||
|
|
||||||
*e = make([]net.Addr, numAddrs)
|
*e = make([]net.Addr, numAddrs)
|
||||||
for i := uint32(0); i < numAddrs; i++ {
|
for i := uint32(0); i < numAddrs; i++ {
|
||||||
addr, err := deserializeAddr(r)
|
addr, err := DeserializeAddr(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -4016,7 +4016,7 @@ func putLightningNode(nodeBucket kvdb.RwBucket, aliasBucket kvdb.RwBucket, // no
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, address := range node.Addresses {
|
for _, address := range node.Addresses {
|
||||||
if err := serializeAddr(&b, address); err != nil {
|
if err := SerializeAddr(&b, address); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4209,7 +4209,7 @@ func deserializeLightningNode(r io.Reader) (LightningNode, error) {
|
|||||||
|
|
||||||
var addresses []net.Addr
|
var addresses []net.Addr
|
||||||
for i := 0; i < numAddresses; i++ {
|
for i := 0; i < numAddresses; i++ {
|
||||||
address, err := deserializeAddr(r)
|
address, err := DeserializeAddr(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return LightningNode{}, err
|
return LightningNode{}, err
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -273,7 +273,7 @@ func serializeLinkNode(w io.Writer, l *LinkNode) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, addr := range l.Addresses {
|
for _, addr := range l.Addresses {
|
||||||
if err := serializeAddr(w, addr); err != nil {
|
if err := SerializeAddr(w, addr); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -315,7 +315,7 @@ func deserializeLinkNode(r io.Reader) (*LinkNode, error) {
|
|||||||
|
|
||||||
node.Addresses = make([]net.Addr, numAddrs)
|
node.Addresses = make([]net.Addr, numAddrs)
|
||||||
for i := uint32(0); i < numAddrs; i++ {
|
for i := uint32(0); i < numAddrs; i++ {
|
||||||
addr, err := deserializeAddr(r)
|
addr, err := DeserializeAddr(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user