Commit Graph

15 Commits

Author SHA1 Message Date
David Osipov 5f3a2e7055
Resolve merge conflicts with upstream/flow and apply Copilot review fixes
Conflict resolution:
- src/config/load.rs: Merge HEAD's is_safe_include_path (path traversal guard)
  with upstream/flow's LoadedConfig, normalize_config_path, hash_rendered_snapshot,
  and the new 4-parameter preprocess_includes signature. Update two test call
  sites that still used the old 3-arg signature.
- src/config/hot_reload.rs: Take upstream/flow's tokio::spawn-contained watcher
  setup (inotify + poll via manifest_state). HEAD's pre-spawn block was broken:
  it referenced notify_tx before the channel was created.

Copilot review fixes (already applied in working tree, now committed):
- src/transport/pool.rs: Handle EINTR in is_connection_alive with retry loop
  (treating it as alive) instead of a false dead-connection verdict.
- src/transport/middle_proxy/wire.rs: On u32 overflow in extra-block length
  encoding, truncate buffer back to the length-field position and write 0 so wire
  representation stays self-consistent. Annotate 16 MiB boundary tests with
  #[ignore] to avoid OOM on low-memory CI runners.
- src/stream/buffer_pool.rs: Restore fail-fast expect() in Deref/DerefMut (was
  silently returning empty buffer after take(), masking use-after-take bugs).
  Add MAX_POOL_BUFFER_OVERSIZE_MULT upper bound in return_buffer to prevent
  memory amplification from excessively-grown buffers staying in the pool.
  Fix contradictory test: oversized_buffer_is_returned_to_pool now grows within
  the 4x bound; oversized_buffer_is_dropped_not_pooled (8x growth) now passes.
- src/api/mod.rs: Fix constant_time_eq to iterate over b.len() (expected token
  length) rather than min(a.len(), b.len()), closing the timing oracle where an
  attacker could influence iteration count by sending a shorter candidate
  (OWASP ASVS V6.6.1). Revert ApiRuntimeState and ApiShared to pub(super).
- src/protocol/obfuscation.rs: Replace no-op test_obfuscation_params_is_not_clone
  with static_assertions::assert_not_impl_any!(ObfuscationParams: Clone) which
  is an actual compile-time enforcement.
2026-03-14 21:56:59 +04:00
David Osipov 76f151e65d
Harden transport, TLS fronting, and security policy enforcement 2026-03-14 21:13:11 +04:00
Alexey 8cd719da3f
Bnd-block in API fixes 2026-03-10 01:16:21 +03:00
Alexey 959d385015
ReRoute state in API 2026-03-10 00:59:25 +03:00
Alexey 100ef0fa28
Correct IP:port/public-host:public-port in API 2026-03-09 23:37:29 +03:00
Alexey b950987229
ME Selftest 2026-03-09 20:35:31 +03:00
Alexey 5ac0ef1ffd
Init in API 2026-03-07 16:18:09 +03:00
Alexey e1f3efb619
API from main 2026-03-07 15:37:49 +03:00
Alexey 4221230969
API Events + API as module 2026-03-06 18:55:20 +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 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 716b4adef2
Runtime Stats in API
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 02:46:47 +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 f7d451e689
API V1 Drafts
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-03-04 01:08:05 +03:00