Repository navigation
Conversation
…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.
|
Note the overlap with #222 |
|
@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? |
Yes that is interesting. Yeah if we pull yours in I can rebase and see if there is anything interesting. One thing I thing would be good is to bump swift-tools version and swift-collections to 1.7.1. since we are still in pre release. My changes are pretty much bare minimum for the bumped collections and tools for Android support. My tests are passing using skip android test. Thank you |
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.