]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/file_wrapper.go
Refactoring and cleanup
[rbdr/mobius] / hotline / file_wrapper.go
index 2c796ca05b2254c64728b74f2dca7f2ddcd1f6da..a26c45a4a53494d3ee2cde758b62a20c915334ef 100644 (file)
@@ -1,6 +1,7 @@
 package hotline
 
 import (
+       "bytes"
        "encoding/binary"
        "errors"
        "fmt"
@@ -206,7 +207,7 @@ func (f *fileWrapper) delete() error {
 
 func (f *fileWrapper) flattenedFileObject() (*flattenedFileObject, error) {
        dataSize := make([]byte, 4)
-       mTime := make([]byte, 8)
+       mTime := [8]byte{}
 
        ft := defaultFileType
 
@@ -243,9 +244,11 @@ func (f *fileWrapper) flattenedFileObject() (*flattenedFileObject, error) {
 
                f.ffo.FlatFileHeader.ForkCount[1] = 3
 
-               if err := f.ffo.FlatFileInformationFork.UnmarshalBinary(b); err != nil {
+               _, err = io.Copy(&f.ffo.FlatFileInformationFork, bytes.NewReader(b))
+               if err != nil {
                        return nil, err
                }
+
        } else {
                f.ffo.FlatFileInformationFork = FlatFileInformationFork{
                        Platform:         []byte("AMAC"), // TODO: Remove hardcode to support "AWIN" Platform (maybe?)
@@ -254,8 +257,8 @@ func (f *fileWrapper) flattenedFileObject() (*flattenedFileObject, error) {
                        Flags:            []byte{0, 0, 0, 0},
                        PlatformFlags:    []byte{0, 0, 1, 0}, // TODO: What is this?
                        RSVD:             make([]byte, 32),
-                       CreateDate:       mTime, // some filesystems don't support createTime
-                       ModifyDate:       mTime,
+                       CreateDate:       mTime[:], // some filesystems don't support createTime
+                       ModifyDate:       mTime[:],
                        NameScript:       []byte{0, 0},
                        Name:             []byte(f.name),
                        NameSize:         []byte{0, 0},