TUN-8641: Expose methods to simplify V3 Datagram parsing on the edge

This commit is contained in:
Gonçalo Garcia
2024-11-04 15:23:36 -08:00
parent 589c198d2d
commit 3d33f559b1
5 changed files with 37 additions and 11 deletions

View File

@@ -75,3 +75,15 @@ func (id RequestID) MarshalBinaryTo(data []byte) error {
binary.BigEndian.PutUint64(data[8:], id.lo)
return nil
}
func (id *RequestID) UnmarshalBinary(data []byte) error {
if len(data) != 16 {
return fmt.Errorf("invalid length slice provided to unmarshal: %d (expected 16)", len(data))
}
*id = RequestID{
binary.BigEndian.Uint64(data[:8]),
binary.BigEndian.Uint64(data[8:]),
}
return nil
}