- Introduced a new registry for dashboard panels, defining various metrics and rendering logic for components like RuntimeHealth, LiveSignal, ActiveSets, DeviceActivity, UnmatchedDomains, MTProtoActivity, Escalations, and Blackhole.
- Created a types file to define the Metrics interface and related types for better type safety and clarity.
- Implemented a custom hook `useDashboardLayout` to manage the layout of dashboard panels, including saving and loading layout state from local storage.
- Added tests for self-marking behavior in the NFQ package to ensure proper handling of injected packets and routing rules.
- Developed tests for routing behavior in network namespaces, verifying that packets are routed correctly based on their marks and configurations.
- Added logtrace_sets.go to define traceSet and related structures for managing trace configurations.
- Implemented collectTraceSets function to gather and process enabled trace sets from the configuration.
- Created logtrace_sets_test.go to test the functionality of trace set collection, ensuring proper handling of enabled and disabled sets, redaction of sensitive information, and omission of off modes.
- Introduced relay.go to manage TCP connection relaying with idle timeouts and half-close handling.
- Added relay_test.go to validate the relay functionality, including tests for connection teardown, idle timeouts, and resource management. Отваливается маршруьизация в soscks5
Fixes#304
- Updated escalation data structures to include `dnsFails` and changed `rstKills` to use `failEntry`.
- Modified `SetEscalation` method to accept a reason string for escalations.
- Enhanced tests to cover new escalation logic, including chaining and max hops.
- Introduced new escalation reasons for better clarity in logs.
- Implemented logic to handle escalations based on DNS failures and ClientHello stalls.
- Added methods for managing escalated routes and refreshing them based on conditions.
- Updated existing methods to utilize the new escalation logic and ensure proper handling of escalated sets.
- Added unit tests for new escalation functionality and edge cases.
- Introduced SelfDialMark to differentiate between self-initiated connections and others, ensuring proper routing and bypassing of DPI.
- Enhanced relay connection handling to report stalls when upstream connections become silent, improving reliability of worker relays.
- Added tests for stall reporting and self-dial mark functionality to ensure correctness.
- Updated various components to utilize the new self-dial mark and stall reporting mechanisms, including routing and proxy rules.
- Implemented a tgprobe tool for testing upstream connections with configurable parameters.
- Implemented `setattr_test.go` to test TCP port filtering behavior, ensuring sets scoped to specific TCP ports do not process packets on other ports.
- Implemented `udpgate_test.go` to validate UDP handling for targeted sets, including scenarios with QUIC filtering and IP-based targeting.
- Added various test cases to cover different configurations of UDP sets and their expected verdicts based on packet characteristics.
- Implemented the zapret tool in `tool_zapret.go`, including desynchronization modes, fooling strategies, and split position parsing.
- Added grammar definitions for zapret configurations.
- Created comprehensive tests in `tool_zapret_test.go` to validate the functionality of zapret options, ensuring all recognized options are reported and conflicts are handled correctly.
- Included tests for desync modes, fooling strategies, and the handling of UDP profiles.
- Introduced a new JSON configuration file for the zapret tool, defining various options, markers, and profiles.
- Implemented comprehensive tests for the zapret tool, covering recognized options, domain claims, desync modes, and more.
- Ensured that the tests validate the expected behavior of the zapret configurations and report any conflicts or unsupported options.
- Implemented conversion specifications in `src/convert/spec.go` with embedded JSON rules.
- Created HTTP handlers for conversion tools and analysis in `src/http/handler/convert.go`.
- Added unit tests for conversion handlers in `src/http/handler/convert_test.go`.
- Developed TypeScript API client for conversion in `src/http/ui/src/api/convert.ts`.
- Built UI component for importing tools and displaying conversion results in `src/http/ui/src/components/sets/ImportTool.tsx`.
- Removed goodIPStore and its associated tests, replacing it with iphealth.Tracker and KnownGood for better IP health tracking.
- Updated runtimeState to use iphealth.Tracker and iphealth.KnownGood.
- Modified recordDestAlive to use the new Remember method from KnownGood.
- Refactored tests to accommodate the new IP health management structure.
- Introduced new leak tests for iphealth package.