aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2024-04-29 12:46:10 -0700
committerJeff Halter <868228+jhalter@users.noreply.github.com>2024-04-29 12:46:10 -0700
commit6c584043b670b5442821ce0b9b389a5548b66060 (patch)
tree0f7ad18031d43a0326d46da9eccb6b760c0c6e8e
parent494d8dd03568cedda3a6c9bc86cd854f2bb857a9 (diff)
Fix handling of optional file info fields
-rw-r--r--Hotline/Hotline/HotlineClient.swift16
1 files changed, 11 insertions, 5 deletions
diff --git a/Hotline/Hotline/HotlineClient.swift b/Hotline/Hotline/HotlineClient.swift
index 367ed74..5d26953 100644
--- a/Hotline/Hotline/HotlineClient.swift
+++ b/Hotline/Hotline/HotlineClient.swift
@@ -617,16 +617,22 @@ class HotlineClient: NetSocketDelegate {
guard err == nil,
let fileName = reply.getField(type: .fileName)?.getString(),
let fileCreator = reply.getField(type: .fileCreatorString)?.getString(),
- let fileComment = reply.getField(type: .fileComment)?.getString(),
- let fileType = reply.getField(type: .fileType)?.getString(),
+ let fileType = reply.getField(type: .fileTypeString)?.getString(),
+ let fileTypeString = reply.getField(type: .fileTypeString)?.getString(),
let fileCreateDate = reply.getField(type: .fileCreateDate)?.data.readDate(at: 0),
- let fileModifyDate = reply.getField(type: .fileModifyDate)?.data.readDate(at: 0),
- let fileSizeField = reply.getField(type: .fileSize),
- let fileSize = fileSizeField.getInteger() else {
+ let fileModifyDate = reply.getField(type: .fileModifyDate)?.data.readDate(at: 0)
+ else {
callback?(nil)
return
}
+
+ // Size field is not included in server reply for folders
+ let fileSize = reply.getField(type: .fileSize)?.getInteger() ?? 0
+
+ // Comment field is not included for if no comment present
+ let fileComment = reply.getField(type: .fileComment)?.getString() ?? ""
+
callback?(FileDetails(name: fileName, path: filePath, size: fileSize, comment: fileComment, type: fileType, creator: fileCreator,
created: fileCreateDate, modified: fileModifyDate))
}