From aa0d90263798e0d04977ba306b0fcabca31f3987 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Tue, 14 Jan 2025 11:48:42 -0500 Subject: [PATCH] Android support (#244) Add Android support ### Motivation: Support the Android platform. ### Modifications: Add Android imports and fix the default temporary directory to be correct for the OS. ### Result: The package will build and test on Android. --------- Co-authored-by: George Barnett --- Sources/NIOExtras/DebugInboundEventsHandler.swift | 2 ++ Sources/NIOExtras/DebugOutboundEventsHandler.swift | 2 ++ Sources/NIOExtras/WritePCAPHandler.swift | 2 ++ Sources/NIOSOCKS/Messages/SOCKSRequest.swift | 2 ++ Tests/NIOExtrasTests/SynchronizedFileSinkTests.swift | 2 ++ Tests/NIOExtrasTests/WritePCAPHandlerTest.swift | 4 ++++ 6 files changed, 14 insertions(+) diff --git a/Sources/NIOExtras/DebugInboundEventsHandler.swift b/Sources/NIOExtras/DebugInboundEventsHandler.swift index 14ad1e47..1ebdb9a1 100644 --- a/Sources/NIOExtras/DebugInboundEventsHandler.swift +++ b/Sources/NIOExtras/DebugInboundEventsHandler.swift @@ -17,6 +17,8 @@ import NIOCore import Darwin #elseif canImport(Musl) import Musl +#elseif canImport(Android) +import Android #else import Glibc #endif diff --git a/Sources/NIOExtras/DebugOutboundEventsHandler.swift b/Sources/NIOExtras/DebugOutboundEventsHandler.swift index 13e9828f..86506f7d 100644 --- a/Sources/NIOExtras/DebugOutboundEventsHandler.swift +++ b/Sources/NIOExtras/DebugOutboundEventsHandler.swift @@ -18,6 +18,8 @@ import NIOCore import Darwin #elseif canImport(Musl) import Musl +#elseif canImport(Android) +import Android #else import Glibc #endif diff --git a/Sources/NIOExtras/WritePCAPHandler.swift b/Sources/NIOExtras/WritePCAPHandler.swift index 2e3f11ad..914309b3 100644 --- a/Sources/NIOExtras/WritePCAPHandler.swift +++ b/Sources/NIOExtras/WritePCAPHandler.swift @@ -20,6 +20,8 @@ import NIOCore import Darwin #elseif canImport(Musl) import Musl +#elseif canImport(Android) +import Android #else import Glibc #endif diff --git a/Sources/NIOSOCKS/Messages/SOCKSRequest.swift b/Sources/NIOSOCKS/Messages/SOCKSRequest.swift index 8fc9b45c..c507e858 100644 --- a/Sources/NIOSOCKS/Messages/SOCKSRequest.swift +++ b/Sources/NIOSOCKS/Messages/SOCKSRequest.swift @@ -19,6 +19,8 @@ import NIOCore import Darwin #elseif canImport(Musl) import Musl +#elseif canImport(Android) +import Android #else import Glibc #endif diff --git a/Tests/NIOExtrasTests/SynchronizedFileSinkTests.swift b/Tests/NIOExtrasTests/SynchronizedFileSinkTests.swift index 3e920cfe..f0590360 100644 --- a/Tests/NIOExtrasTests/SynchronizedFileSinkTests.swift +++ b/Tests/NIOExtrasTests/SynchronizedFileSinkTests.swift @@ -108,6 +108,8 @@ private func withTemporaryFile( private var temporaryDirectory: String { #if os(Linux) return "/tmp" + #elseif os(Android) + return "/data/local/tmp" #else if #available(macOS 10.12, iOS 10, tvOS 10, watchOS 3, *) { return FileManager.default.temporaryDirectory.path diff --git a/Tests/NIOExtrasTests/WritePCAPHandlerTest.swift b/Tests/NIOExtrasTests/WritePCAPHandlerTest.swift index 1d44a10c..1489d5b3 100644 --- a/Tests/NIOExtrasTests/WritePCAPHandlerTest.swift +++ b/Tests/NIOExtrasTests/WritePCAPHandlerTest.swift @@ -19,6 +19,10 @@ import XCTest @testable import NIOExtras +#if canImport(Android) +import Android +#endif + class WritePCAPHandlerTest: XCTestCase { private var accumulatedPackets: [ByteBuffer]! private var channel: EmbeddedChannel!