diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8a21727..f363fe2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,6 @@ on: jobs: test: runs-on: macos-14 - timeout-minutes: 10 steps: - uses: actions/checkout@v4 - name: Test diff --git a/Sources/SMBClient/Messages/QueryDirectory+CustomDebugStringConvertible.swift b/Sources/SMBClient/Messages/QueryDirectory+CustomDebugStringConvertible.swift index 07c6223..6ff7d5d 100644 --- a/Sources/SMBClient/Messages/QueryDirectory+CustomDebugStringConvertible.swift +++ b/Sources/SMBClient/Messages/QueryDirectory+CustomDebugStringConvertible.swift @@ -27,7 +27,7 @@ extension QueryDirectory.Response: CustomDebugStringConvertible { Blob Offset: \(outputBufferOffset) Blob Length: \(outputBufferLength) Info: - \(files.map { "\($0)".split(separator: "\n").map { " \($0)" }.joined(separator: "\n") }.joined(separator: "\n")) + \(files().map { "\($0)".split(separator: "\n").map { " \($0)" }.joined(separator: "\n") }.joined(separator: "\n")) """ } } diff --git a/Sources/SMBClient/Messages/QueryDirectory.swift b/Sources/SMBClient/Messages/QueryDirectory.swift index e34d6a2..e7493e0 100644 --- a/Sources/SMBClient/Messages/QueryDirectory.swift +++ b/Sources/SMBClient/Messages/QueryDirectory.swift @@ -73,7 +73,6 @@ public enum QueryDirectory { public let outputBufferOffset: UInt16 public let outputBufferLength: UInt32 public let buffer: Data - public let files: [FileDirectoryInformation] public init(data: Data) { let reader = ByteReader(data) @@ -84,7 +83,9 @@ public enum QueryDirectory { outputBufferOffset = reader.read() outputBufferLength = reader.read() buffer = data[UInt32(outputBufferOffset).. [FileDirectoryInformation] { var files = [FileDirectoryInformation]() if outputBufferLength > 0 { var data = Data(buffer) @@ -95,7 +96,7 @@ public enum QueryDirectory { } while files.last!.nextEntryOffset != 0 } - self.files = files + return files } } diff --git a/Sources/SMBClient/Session.swift b/Sources/SMBClient/Session.swift index 0777d3d..ee695a8 100644 --- a/Sources/SMBClient/Session.swift +++ b/Sources/SMBClient/Session.swift @@ -320,10 +320,9 @@ public class Session { ) let createResponse = Create.Response(data: data) - var files = [FileDirectoryInformation]() - let queryDirectoryResponse = QueryDirectory.Response(data: Data(data[createResponse.header.nextCommand...])) - files.append(contentsOf: queryDirectoryResponse.files) + + var files: [FileDirectoryInformation] = queryDirectoryResponse.files() if NTStatus(createResponse.header.status) != .noMoreFiles { repeat { @@ -343,7 +342,7 @@ public class Session { let data = try await send(queryDirectoryRequest.encoded()) let queryDirectoryResponse = QueryDirectory.Response(data: data) - files.append(contentsOf: queryDirectoryResponse.files) + files.append(contentsOf: queryDirectoryResponse.files()) if NTStatus(queryDirectoryResponse.header.status) == .noMoreFiles { break diff --git a/Tests/SMBClientTests/SMBClientTests.swift b/Tests/SMBClientTests/SMBClientTests.swift index b3d57a4..42d8629 100644 --- a/Tests/SMBClientTests/SMBClientTests.swift +++ b/Tests/SMBClientTests/SMBClientTests.swift @@ -326,14 +326,14 @@ final class SMBClientTests: XCTestCase { try await client.createDirectory(path: directoryName) var testFiles = [String]() - for i in 0...2000 { + for i in 0..<4000 { let length = 1024 var data = Data(count: length) for i in 0..