Alexey
d87196c105
HTTP Utils for API
2026-03-06 18:55:04 +03:00
Alexey
da89415961
Runtime API on Edge
2026-03-06 18:54:37 +03:00
Alexey
2d98ebf3c3
Runtime w/ Minimal Overhead
2026-03-06 18:54:26 +03:00
Alexey
fb5e9947bd
Runtime Watch
2026-03-06 18:54:12 +03:00
Alexey
2ea85c00d3
Runtime API Defaults
2026-03-06 18:54:00 +03:00
Alexey
2a3b6b917f
Update direct_relay.rs
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-06 18:53:28 +03:00
Alexey
83ed9065b0
Update middle_relay.rs
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-06 18:53:22 +03:00
Alexey
44b825edf5
Atomics in Stats
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-06 18:53:13 +03:00
Alexey
487e95a66e
Update mod.rs
2026-03-06 18:52:39 +03:00
Alexey
c465c200c4
ME Pool Runtime API
2026-03-06 18:52:31 +03:00
Alexey
d7716ad875
Upstream API Policy Snapshot
2026-03-06 18:52:17 +03:00
Alexey
92c22ef16d
API Zero
...
Added new endpoints:
- GET /v1/system/info
- GET /v1/runtime/gates
- GET /v1/limits/effective
- GET /v1/security/posture
Added API runtime state without impacting the hot path:
- config_reload_count
- last_config_reload_epoch_secs
- admission_open
- process_started_at_epoch_secs
Added background watcher tasks in api::serve:
- configuration reload tracking
- admission gate state tracking
2026-03-06 13:06:57 +03:00
Alexey
4e803b1412
Update load.rs
2026-03-06 12:08:43 +03:00
Alexey
f32c34f126
ME NoWait Routing + Upstream Connbudget + PROXY Header t/o + allocation cuts
2026-03-06 03:58:08 +03:00
Alexey
9b84fc7a5b
Secret Atomic Snapshot + KDF Fingerprint on RwLock
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-05 23:18:26 +03:00
Alexey
d683faf922
HybridAsyncPersistent - new ME Route NoWriter Mode
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-05 22:31:01 +03:00
Alexey
a80be78345
DC writer floor is below required only in runtime
2026-03-05 16:32:31 +03:00
Alexey
64130dd02e
MEP not ready only after 3 attempts
2026-03-05 16:13:40 +03:00
Alexey
d62a6e0417
Shutdown Timer fixes
2026-03-05 16:04:32 +03:00
Alexey
3260746785
Init + Uptime timers
2026-03-05 15:48:09 +03:00
Alexey
8066ea2163
ME Pool Init fixes
2026-03-05 15:31:36 +03:00
Alexey
09bdafa718
Performance improvements
2026-03-05 14:39:32 +03:00
Alexey
83cadc0bf3
No lock-contention in ip-tracker
2026-03-05 13:52:27 +03:00
Alexey
0b1a8cd3f8
IP Limit fixes
2026-03-05 13:41:41 +03:00
Alexey
565b4ee923
Unique IP always in Metrics+API
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-05 13:21:11 +03:00
Alexey
ccfda10713
ME2DC Fallback + ME Init Retries
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-05 12:43:07 +03:00
Alexey
a9209fd3c7
Hot-Reload fixes
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-05 12:18:09 +03:00
Alexey
4ae4ca8ca8
New IP Limit Method
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-05 02:28:19 +03:00
Alexey
de2047adf2
API UpstreamManager
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 11:41:41 +03:00
Alexey
5df2fe9f97
Autodetect IP in API User-links
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 11:04:54 +03:00
Alexey
f1efaf4491
User-links in API
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 02:48:43 +03:00
Alexey
716b4adef2
Runtime Stats in API
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 02:46:47 +03:00
Alexey
5876623bb0
Runtime API Stats
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 02:46:26 +03:00
Alexey
6b9c7f7862
Runtime API in defaults
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 02:46:12 +03:00
Alexey
7ea6387278
API ME Pool Status
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 02:45:32 +03:00
Alexey
4c2bc2f41f
Pool Status hooks in ME Registry
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 01:42:24 +03:00
Alexey
3492566842
Update mod.rs
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 01:41:43 +03:00
Alexey
349bbbb8fa
API Pool Status Model
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 01:41:33 +03:00
Alexey
ead08981e7
API Pool Status pull-up
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 01:41:11 +03:00
Alexey
068cf825b9
API Pool Status
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 01:40:58 +03:00
Alexey
7269dfbdc5
API in defaults+load+reload
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 01:09:32 +03:00
Alexey
533708f885
API in defaults
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 01:08:59 +03:00
Alexey
5e93ce258f
API pull-up
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 01:08:42 +03:00
Alexey
f7d451e689
API V1 Drafts
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 01:08:05 +03:00
Alexey
a6132bac38
Idle tolerance + Adaptive floor by default + RPC Proxy Req
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 23:16:25 +03:00
Alexey
624870109e
Upstream Connect in defaults
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 20:50:31 +03:00
Alexey
cdf829de91
Upstream Connect in Metrics
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 20:50:08 +03:00
Alexey
6ef51dbfb0
Upstream Connect pull-up
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 20:49:53 +03:00
Alexey
af5f0b9692
Upstream Connect in Stats
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 20:49:29 +03:00
Alexey
bd0dcfff15
Upstream Error classifier
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 20:49:09 +03:00
Alexey
c01ca40b6d
ME Adaptive Floor in Tests
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 03:39:28 +03:00
Alexey
cfec6dbb3c
ME Adaptive Floor pull-up
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 03:38:06 +03:00
Alexey
1fe1acadd4
ME Adaptive Floor in Metrics
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 03:37:24 +03:00
Alexey
225fc3e4ea
ME Adaptive Floor Drafts
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 03:37:00 +03:00
Alexey
4a0d88ad43
Update health.rs
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 03:35:57 +03:00
Alexey
58ff0c7971
Update pool.rs
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 03:35:47 +03:00
Alexey
235642459a
ME Keepalive 8/2
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 03:08:15 +03:00
Alexey
3799fc13c4
ME Pool in Metrics
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 03:04:45 +03:00
Alexey
71261522bd
Update pool.rs
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 03:04:07 +03:00
Alexey
762deac511
ME Healthcheck fixes
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-03 03:03:44 +03:00
Alexey
a6d22e8a57
ME Pool Shadow Writers
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-02 21:04:06 +03:00
Alexey
9477103f89
Update pool.rs
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-02 20:45:43 +03:00
Alexey
e589891706
ME Dual-Trio Pool Drafts
2026-03-02 20:41:51 +03:00
Alexey
74ad9037de
Dead-code deletion: has_proxy_tag
2026-03-02 00:54:02 +03:00
Alexey
49f4a7bb22
ME Hardswap Generation stability
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-02 00:39:18 +03:00
Alexey
6f1980dfd7
ME Pool improvements
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-02 00:17:58 +03:00
sintanial
bc432f06e2
Add per-user ad_tag with global fallback and hot-reload
...
- Per-user ad_tag in [access.user_ad_tags], global fallback in general.ad_tag
- User tag overrides global; if no user tag, general.ad_tag is used
- Both general.ad_tag and user_ad_tags support hot-reload (no restart)
2026-03-01 16:28:55 +03:00
Alexey
47b12f9489
UpstreamManager Health-check for ME Pool over SOCKS
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-01 04:02:32 +03:00
Alexey
44cdfd4b23
ME Pool improvements
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-01 03:36:00 +03:00
ivulit
ed93b0a030
fix: send PROXY protocol header to mask unix socket
...
When mask_unix_sock is configured, mask_proxy_protocol was silently
ignored and no PROXY protocol header was sent to the backend. Apply
the same header-building logic as the TCP path in both masking relay
and TLS fetcher (raw and rustls).
2026-03-01 00:14:55 +03:00
ivulit
e27ef04c3d
fix: pass correct dst address to outgoing PROXY protocol header
...
Previously handle_bad_client used stream.local_addr() (the ephemeral
socket to the mask backend) as the dst in the outgoing PROXY protocol
header. This is wrong: the dst should be the address telemt is listening
on, or the dst from the incoming PROXY protocol header if one was present.
- handle_bad_client now receives local_addr from the caller
- handle_client_stream resolves local_addr from PROXY protocol info.dst_addr
or falls back to a synthetic address based on config.server.port
- RunningClientHandler.do_handshake resolves local_addr from stream.local_addr()
overridden by PROXY protocol info.dst_addr when present, and passes it
down to handle_tls_client / handle_direct_client
- masking.rs uses the caller-supplied local_addr directly, eliminating the
stream.local_addr() call
2026-02-28 22:47:24 +03:00
Alexey
9afaa28add
UpstreamManager: Backoff Retries
2026-02-28 14:21:09 +03:00
Alexey
6c12af2b94
ME Connectivity: socks-url
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-02-28 13:38:30 +03:00
Alexey
8b39a4ef6d
Statistics on ME + Dynamic backpressure + KDF with SOCKS
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-02-28 13:18:31 +03:00
Alexey
fa2423dadf
ME/DC Method Detection fixes
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-02-28 03:21:22 +03:00
Alexey
a61882af6e
TLS Fetch on unix-socket
2026-02-28 02:55:21 +03:00
Alexey
6b8aa7270e
Bind_addresses prio over interfaces
2026-02-28 01:54:29 +03:00
Alexey
3d9660f83e
Upstreams for ME + Egress-data from UM + ME-over-SOCKS + Bind-aware STUN
2026-02-28 01:20:17 +03:00
Alexey
ac064fe773
STUN switch + Ad-tag fixes + DNS-overrides
2026-02-27 15:59:27 +03:00
Alexey
144f81c473
ME Dead Writer w/o dead-lock on timeout
2026-02-26 19:37:17 +03:00
Alexey
04e6135935
TLS-F Fetching Optimization
2026-02-26 19:35:34 +03:00
Alexey
4eebb4feb2
ME Pool Refactoring
2026-02-26 19:01:24 +03:00
Alexey
1f255d0aa4
ME Probe + STUN Legacy
2026-02-26 18:41:11 +03:00
Alexey
9d2ff25bf5
Unified STUN + ME Primary parallelized
...
- Unified STUN server source-of-truth
- parallelize per-DC primary ME init for multi-endpoint DCs
2026-02-26 18:18:24 +03:00
Alexey
7782336264
ME Probe parallelized
2026-02-26 17:56:22 +03:00
Alexey
8ce8348cd5
Merge branch 'main' into feat/mask-proxy-protocol
2026-02-26 15:21:58 +03:00
Alexey
e25b7f5ff8
STUN List
2026-02-26 15:10:21 +03:00
Alexey
d7182ae817
Update defaults.rs
2026-02-26 15:07:04 +03:00
Alexey
fb1f85559c
Update load.rs
2026-02-26 14:57:28 +03:00
ivulit
da684b11fe
feat: add mask_proxy_protocol option for PROXY protocol to mask_host
...
Adds mask_proxy_protocol config option (0 = off, 1 = v1 text, 2 = v2 binary)
that sends a PROXY protocol header when connecting to mask_host. This lets
the backend see the real client IP address.
Particularly useful when the masking site (nginx/HAProxy) runs on the same
host as telemt and listens on a local port — without this, the backend loses
the original client IP entirely.
PROXY protocol header is also sent during TLS emulation fetches so that
backends with proxy_protocol required don't reject the connection.
2026-02-26 13:36:33 +03:00
Alexey
896e129155
Checked defaults
2026-02-26 12:48:22 +03:00
Alexey
fed9346444
New config.toml + tls_emulation enabled by default
2026-02-25 17:49:54 +03:00
Alexey
f40b645c05
Defaults in-place
2026-02-25 17:28:06 +03:00
Alexey
5558900c44
Update main.rs
2026-02-25 13:29:46 +03:00
D
206f87fe64
fix: remove bracket in info
2026-02-25 09:22:26 +03:00
Alexey
f83e23c521
Update defaults.rs
2026-02-25 03:08:34 +03:00
Alexey
6b8619d3c9
Create beobachten.rs
2026-02-25 02:17:48 +03:00
Alexey
618b7a1837
ME Pool Beobachter
2026-02-25 02:10:14 +03:00
Alexey
c6c3d71b08
ME Pool Flap-Detect in statistics
2026-02-25 01:26:01 +03:00
Alexey
7538967d3c
ME Hardswap being softer
...
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-02-24 23:36:33 +03:00