- res = append(res, cc.NewReply(t, NewField(fieldRefNum, transactionRef)))
+ replyT := cc.NewReply(t, NewField(fieldRefNum, transactionRef))
+
+ // client has requested to resume a partially transfered file
+ if transferOptions != nil {
+ fullFilePath, err := readPath(cc.Server.Config.FileRoot, filePath, fileName)
+ if err != nil {
+ return res, err
+ }
+
+ fileInfo, err := FS.Stat(fullFilePath + incompleteFileSuffix)
+ if err != nil {
+ return res, err
+ }
+
+ offset := make([]byte, 4)
+ binary.BigEndian.PutUint32(offset, uint32(fileInfo.Size()))
+
+ fileResumeData := NewFileResumeData([]ForkInfoList{
+ *NewForkInfoList(offset),
+ })
+
+ b, _ := fileResumeData.BinaryMarshal()
+
+ replyT.Fields = append(replyT.Fields, NewField(fieldFileResumeData, b))
+ }
+
+ res = append(res, replyT)