• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

floatdrop / zoxy / 28694447259
96%

Build:
DEFAULT BRANCH: main
Ran 04 Jul 2026 04:10AM UTC
Jobs 1
Files 25
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

04 Jul 2026 04:06AM UTC coverage: 96.787% (-0.06%) from 96.851%
28694447259

push

github

floatdrop
tls: kernel switchover — steady-state TLS is the plaintext relay (kTLS 4+5)

The decision is owed from handshake completion and taken exactly once
the wire is idle: a pending wire send would be double-encrypted by
kernel TX, and an in-flight recv would complete with kernel-decrypted
plaintext in the ciphertext staging — both defer, their completions
loop back through tls_progress. HTTP (arm_recv_head) starts only after
the decision, on whichever relay won. On switch: enable_kernel_tls
installs the parameters composed from the captured secrets, the
channel (SSL + BIO pair, ~161 KiB) frees mid-connection, conn.tls
returns to null — so every downstream op is literally the plaintext
path on the fd — and ktls_active only changes the polite close, which
sends the alert as a TLS_SET_RECORD_TYPE cmsg via the send_message op.
Ineligible or refused connections stay on the userspace relay
(tls_ktls_active / tls_ktls_fallbacks count the split), and
tls.kernel_offload=false in config forces it.

Tests: a delayed-request client (past the Finished flight) must switch
— response over kernel crypto, close_notify arrives as a kernel-built
alert the client decrypts, heap back to baseline with the channel
freed mid-connection; the immediate-write clients assert the decision
sum since loopback coalescing decides which relay serves them — both
must produce identical bytes. Skips when the tls module cannot load.

Verified on the real binary: curl and zrk switch 100% (7k+ churn
switchovers, zero fallbacks, zero client-visible errors — the strict
std client accepts the kernel close_notify); steady 20k req/s at
p50 135µs; carved TLS heap under load 11.1 -> 4.9 MiB.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

5572 of 5757 relevant lines covered (96.79%)

0.97 hits per line

Coverage Regressions

Lines Coverage ∆ File
40
98.25
0.09% net/proxy.zig
13
96.23
0.0% tls/terminator.zig
11
91.85
-2.28% io/test_io.zig
6
96.47
0.11% tls/kernel.zig
Jobs
ID Job ID Ran Files Coverage
1 28694447259.1 04 Jul 2026 04:10AM UTC 25
96.79
GitHub Action Run
Source Files on build 28694447259
  • Tree
  • List 25
  • Changed 7
  • Source Changed 0
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28694447259
  • ea749c3b on github
  • Prev Build on main (#28694167851)
  • Next Build on main (#28694533574)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc