Skip to content

Commit a154891

Browse files
committed
lnwire: remove duplicated logic
Use existing serialisation helpers for serialising TC Pand Onion addresses in WriteElement.
1 parent 6e9372a commit a154891

File tree

1 file changed

+2
-66
lines changed

1 file changed

+2
-66
lines changed

lnwire/lnwire.go

Lines changed: 2 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -339,76 +339,12 @@ func WriteElement(w *bytes.Buffer, element interface{}) error {
339339
}
340340

341341
case *net.TCPAddr:
342-
if e == nil {
343-
return fmt.Errorf("cannot write nil TCPAddr")
344-
}
345-
346-
if e.IP.To4() != nil {
347-
var descriptor [1]byte
348-
descriptor[0] = uint8(tcp4Addr)
349-
if _, err := w.Write(descriptor[:]); err != nil {
350-
return err
351-
}
352-
353-
var ip [4]byte
354-
copy(ip[:], e.IP.To4())
355-
if _, err := w.Write(ip[:]); err != nil {
356-
return err
357-
}
358-
} else {
359-
var descriptor [1]byte
360-
descriptor[0] = uint8(tcp6Addr)
361-
if _, err := w.Write(descriptor[:]); err != nil {
362-
return err
363-
}
364-
var ip [16]byte
365-
copy(ip[:], e.IP.To16())
366-
if _, err := w.Write(ip[:]); err != nil {
367-
return err
368-
}
369-
}
370-
var port [2]byte
371-
binary.BigEndian.PutUint16(port[:], uint16(e.Port))
372-
if _, err := w.Write(port[:]); err != nil {
342+
if err := WriteTCPAddr(w, e); err != nil {
373343
return err
374344
}
375345

376346
case *tor.OnionAddr:
377-
if e == nil {
378-
return errors.New("cannot write nil onion address")
379-
}
380-
381-
var suffixIndex int
382-
switch len(e.OnionService) {
383-
case tor.V2Len:
384-
descriptor := []byte{byte(v2OnionAddr)}
385-
if _, err := w.Write(descriptor); err != nil {
386-
return err
387-
}
388-
suffixIndex = tor.V2Len - tor.OnionSuffixLen
389-
case tor.V3Len:
390-
descriptor := []byte{byte(v3OnionAddr)}
391-
if _, err := w.Write(descriptor); err != nil {
392-
return err
393-
}
394-
suffixIndex = tor.V3Len - tor.OnionSuffixLen
395-
default:
396-
return errors.New("unknown onion service length")
397-
}
398-
399-
host, err := tor.Base32Encoding.DecodeString(
400-
e.OnionService[:suffixIndex],
401-
)
402-
if err != nil {
403-
return err
404-
}
405-
if _, err := w.Write(host); err != nil {
406-
return err
407-
}
408-
409-
var port [2]byte
410-
binary.BigEndian.PutUint16(port[:], uint16(e.Port))
411-
if _, err := w.Write(port[:]); err != nil {
347+
if err := WriteOnionAddr(w, e); err != nil {
412348
return err
413349
}
414350

0 commit comments

Comments
 (0)