- subscribes the proxy app to ZitiConfigEvent and writes the updated
ziti config back to the identity JSON path it was loaded from, so
controller-list updates learned at runtime survive a restart instead
of reverting to whatever single controller URL was originally in the
file
- writes via <path>.tmp + rename so a kill mid-write does not leave a
half-written identity file on disk
- stores the original identity path on proxy_app_ctx (cstr) so the
event handler can find it; capture the path in run_proxy when opts
->identity is set
(cherry picked from commit d33193bfcfdf49ebbe297dcc72e3d689fc5e0978)
- raises the TCP listen backlog to 128 in update_listener (per-service
intercept) and run_http_proxy (HTTP proxy mode)
- fixes random client connection failures observed under bursty load
where the kernel was dropping SYNs once 5 connections were pending
accept, even though the proxy itself was healthy
(cherry picked from commit 4857af9e1705a6254cf82d6b0a0128f338e2fbae)
Refactor the zitilib connect path to support non-blocking sockets:
return EINPROGRESS and let callers poll/select for completion. The app
fd is dup'd so the caller can close it before connect completes.
Replace the Unix socketpair/dup2 bridge mechanism with loopback
listen/accept (matching the Windows approach) and add AF_INET6 support
to both platform implementations.
Also fix ziti_conn_bridge_fds parameter types (uv_os_fd_t -> uv_os_sock_t)
and correct the inverted error check in ziti-fd-client sample.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>