From 9ea4360f19cdaedeb1bb66ae59b6e8d11886084a Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Fri, 24 Jul 2015 14:57:18 +1000 Subject: [PATCH] InMessage.Init --- internal/buffer/in_message.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/internal/buffer/in_message.go b/internal/buffer/in_message.go index eb4ab7a..ee836fc 100644 --- a/internal/buffer/in_message.go +++ b/internal/buffer/in_message.go @@ -15,7 +15,6 @@ package buffer import ( - "errors" "fmt" "io" "syscall" @@ -51,7 +50,17 @@ type InMessage struct { // Consume will consume the bytes directly after the fusekernel.InHeader // struct. func (m *InMessage) Init(r io.Reader) (err error) { - err = errors.New("TODO") + n, err := r.Read(m.storage[:]) + if err != nil { + return + } + + if uintptr(n) < unsafe.Sizeof(fusekernel.InHeader{}) { + err = fmt.Errorf("Unexpectedly read only %d bytes.", n) + return + } + + m.remaining = m.storage[:n] return }