lnwire: convert ErrorGeneric to Error

With this change we move one step closer to matching the wire protocol
currently defined within the spec.
This commit is contained in:
Olaoluwa Osuntokun committed 2017-04-16 15:23:45 -07:00
1 parent c06894a2e6
commit d17b11862b
5 files changed
+155 -137

No files matched your search

+21
View File
@@ -174,6 +174,16 @@ func writeElement(w io.Writer, element interface{}) error {
if _, err := w.Write(b[:]); err != nil {
return err
}
case ErrorData:
var l [2]byte
binary.BigEndian.PutUint16(l[:], uint16(len(e)))
if _, err := w.Write(l[:]); err != nil {
return err
}
if _, err := w.Write(e[:]); err != nil {
return err
}
case OpaqueReason:
var l [2]byte
binary.BigEndian.PutUint16(l[:], uint16(len(e)))
@@ -514,6 +524,17 @@ func readElement(r io.Reader, element interface{}) error {
if _, err := io.ReadFull(r, *e); err != nil {
return err
}
case *ErrorData:
var l [2]byte
if _, err := io.ReadFull(r, l[:]); err != nil {
return err
}
errorLen := binary.BigEndian.Uint16(l[:])
*e = ErrorData(make([]byte, errorLen))
if _, err := io.ReadFull(r, *e); err != nil {
return err
}
case *[6]byte:
if _, err := io.ReadFull(r, e[:]); err != nil {
return err