Repository navigation
Conversation
Cartisim
requested review from
agnosticdev,
ekinnear,
kkuk24,
rpaulo and
tfpauly
as code owners
October 6, 2026 00:08
…on matches the kernel, and configure QUIC keepalive on an already-held event context.
Tie frame spans to their owning FrameArray lifetime and replace the deprecated deque reallocation API with setCapacity.
Collaborator
|
Note the overlap with #222 |
Contributor
|
@Cartisim could you please let us know if there's anything in this PR that is not in PR 222? |
|
@Cartisim, this is strange, that we both submitted this within hours of each other. Since you say you didn't get all the tests passing, while I did in my pull linked above, do you mind if I get mine in first, then you can rebase off that and propose any differences that remain here? Most of our pulls is just adding Android imports, so won't be much left once that's in. How did you build and test this exactly, natively on Android in the Termux app? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
os(Android)is notos(Linux). Swift on Android uses Bionic (import Android), so the existing Glibc / Musl Linux path does not compile as-is.This change teaches SwiftNetwork that platform with the smallest possible delta: reuse the Linux system layer, import Android where Glibc was required, and paper over the few Bionic ABI differences the compiler actually hits.
Darwin behavior is unchanged.
Modifications
LoggingandSwiftNetworkLinuxShimfor.androidinPackage.swift.os(Linux) || os(Android).canImport(Darwin)so they are not built for Android.ioctlasSwiftNetworkLinuxShim_ioctl(unavailable from Swift).recvmsg/sendmsg/if_nametoindex, and usein6_addr.in6_u.u6_addr32for IPv6.#ifs that fail to compile on Android (Logger.notice,errSecSuccess, QUIC session-state callbacks,CryptoKitMetaError).No new Android-specific networking implementation is added.
Testing
SwiftNetworkforaarch64-unknown-linux-android24.lo0vslo, MTU, interface type) still fail on Android and are not addressed here.