diff options
| author | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2024-04-29 12:46:10 -0700 |
|---|---|---|
| committer | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2024-04-29 12:46:10 -0700 |
| commit | 6c584043b670b5442821ce0b9b389a5548b66060 (patch) | |
| tree | 0f7ad18031d43a0326d46da9eccb6b760c0c6e8e | |
| parent | 494d8dd03568cedda3a6c9bc86cd854f2bb857a9 (diff) | |
Fix handling of optional file info fields
| -rw-r--r-- | Hotline/Hotline/HotlineClient.swift | 16 |
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)) } |