Commit graph

1415 commits

Author SHA1 Message Date
Daniel Lavrushin
28d4b9ca80 fixes: resolve media loading issues by correcting data center address mappings and improving relay connection handling
Some checks failed
Deploy documentation / build-and-deploy (push) Has been cancelled
2026-08-12 22:03:46 +02:00
Daniel Lavrushin
38bce72ab2 fixes: resolve media loading issues by correcting data center address mappings and enhancing routing logic 2026-08-12 22:03:46 +02:00
Daniel Lavrushin
9fce3fde91 fixes: enhance Cloudflare Worker handling and improve media loading reliability 2026-08-12 22:03:46 +02:00
Daniel Lavrushin
57d4672211 fixes: address media loading issues in DC 203 and improve Cloudflare Worker handling 2026-08-12 22:03:46 +02:00
Daniel Lavrushin
73b8ba28e9 fixes: update message_id generation in reqPQ and implement proxy bypass mark tests Проблема с медиа в телеграм при использовании MTProto прокси
Some checks failed
Deploy documentation / build-and-deploy (push) Has been cancelled
Fixes #298
2026-08-11 22:00:23 +02:00
Daniel Lavrushin
cfcef4de04 feat: add stall reporting for relay connections and enhance relay function signature Проблема с медиа в телеграм при использовании MTProto прокси
Fixes #298
2026-08-11 22:00:23 +02:00
Daniel Lavrushin
c471930852 fixes: improve error handling for upstream dial and clarify SO_MARK usage in output 2026-08-11 22:00:23 +02:00
Daniel Lavrushin
8a1234831c fixes: update QUIC reject handling and add test for bypass marks consistency Проблема с медиа в телеграм при использовании MTProto прокси
Fixes #298
2026-08-11 22:00:23 +02:00
Daniel Lavrushin
b4168bb319 feat: enhance routing rule checks with NFT chain parsing and bypass validation Проблема с медиа в телеграм при использовании MTProto прокси
Fixes #298
2026-08-11 22:00:23 +02:00
Daniel Lavrushin
271fdb0ea9 feat: implement self-dial mark and relay stall reporting
- 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.
2026-08-11 22:00:23 +02:00
Daniel Lavrushin
c665267c5b fixes: improve error handling in async job execution for routing
Some checks are pending
Deploy documentation / build-and-deploy (push) Waiting to run
2026-08-10 22:23:46 +02:00
Daniel Lavrushin
c5d27865ba fixes: enhance path parsing to handle quoted paths and trailing semicolons 2026-08-10 22:23:46 +02:00
Daniel Lavrushin
81f906e500 Add tests for UDP and TCP port filtering in nfq package
- 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.
2026-08-10 22:23:46 +02:00
Daniel Lavrushin
d16d82c8ed fixes: refactor chain and hook initialization in applyDNSTCPFamily function 2026-08-10 22:23:46 +02:00
Daniel Lavrushin
b0d2fa041c fixes: update changelog for version 1.75.1 and address multiple issues with Telegram media handling and firewall rules 2026-08-10 22:23:46 +02:00
Daniel Lavrushin
e6c5959d38 DNS pass-through в B4 дропает конкурентные запросы с одного source-порта — каждый getaddrinfo (A+AAAA) занимает +5 секунд
Fixes #296
2026-08-10 22:23:46 +02:00
Daniel Lavrushin
ce9b0003d1 feat: add DNS pinning functionality to enhance domain resolution 2026-08-10 22:23:46 +02:00
Daniel Lavrushin
2af2401ff4 fixes 2026-08-10 22:23:46 +02:00
Daniel Lavrushin
7a58353713 fixes 1-75-1 2026-08-10 22:23:46 +02:00
Daniel Lavrushin
d42e6bc58d feat: add import functionality for byedpi and zapret command line to documentation
Some checks failed
Deploy documentation / build-and-deploy (push) Has been cancelled
2026-08-08 22:16:36 +02:00
Daniel Lavrushin
1f0bfaf8d9 feat: add support for new conversion plan and tool listing in error messages 2026-08-08 22:16:36 +02:00
Daniel Lavrushin
4d85344cb8 feat: add import functionality for byedpi and zapret command line configurations 2026-08-08 22:16:36 +02:00
Daniel Lavrushin
37d05fb102 Add zapret tool implementation and associated tests
- 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.
2026-08-08 22:16:36 +02:00
Daniel Lavrushin
1ceaab7aa9 feat: enhance conversion logic and UI for better handling of profiles and unresolved files 2026-08-08 22:16:36 +02:00
Daniel Lavrushin
4641c6e398 Add zapret configuration and tests
- 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.
2026-08-08 22:16:36 +02:00
Daniel Lavrushin
d10095a89b feat: add conversion API and tools support
- 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`.
2026-08-08 22:16:36 +02:00
Daniel Lavrushin
c15b2541e8 test: add TestRecordDestAliveSurvivesNilCaches to validate behavior with nil caches 2026-08-08 19:51:33 +02:00
Daniel Lavrushin
f91fd4288e refactor: improve clarity in IP block detection and health settings descriptions 2026-08-08 19:51:33 +02:00
Daniel Lavrushin
7be08fbe76 feat: add IP Health settings to manage unreachable address retest intervals 2026-08-08 19:51:33 +02:00
Daniel Lavrushin
47bd723a0b refactor: update healDNSResponse to include overTCP parameter and adjust response size handling 2026-08-08 19:51:33 +02:00
Daniel Lavrushin
656c752ceb feat: add HealDNS feature to improve DNS response handling for unreachable addresses 2026-08-08 19:51:33 +02:00
Daniel Lavrushin
100216cc20 refactor: rename RecordAlive to RecordResponse and add RecordHandshake for better clarity in IP state management 2026-08-08 19:51:33 +02:00
Daniel Lavrushin
5c1feffa66 Refactor IP health management: replace goodIPStore with iphealth.Tracker and KnownGood
- 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.
2026-08-08 19:51:33 +02:00
Daniel Lavrushin
297fce1179 test: add IP health tracking tests for probing and state management 2026-08-08 19:51:33 +02:00
Daniel Lavrushin
1c8a81122e Implement IP health monitoring and management features
- Add goodIPStore for managing and storing good IP addresses with TTL.
- Implement methods for storing, looking up, and cleaning up good IPs.
- Create tests for goodIPStore functionality including case insensitivity and IP capping.
- Introduce ipHealthStore for monitoring the health of IP addresses with SYN detection.
- Implement probing logic to determine if IPs are alive or dead, with burst detection to suspend monitoring.
- Add tests for ipHealthStore to verify correct behavior under various conditions.
- Implement DNS response healing to filter out unreachable IPs based on health status.
- Create tests for DNS healing functionality to ensure proper address handling.
- Add RST packet building functions for both IPv4 and IPv6, with tests to validate behavior.
2026-08-08 19:51:33 +02:00
Daniel Lavrushin
33f2235f07 fix: enhance system diagnostics and path handling for improved functionality
Some checks are pending
Deploy documentation / build-and-deploy (push) Waiting to run
2026-08-08 15:42:30 +02:00
Daniel Lavrushin
3ea48d91f2 fix: enhance flow offloading detection and handling for improved performance and diagnostics 2026-08-08 15:42:30 +02:00
Daniel Lavrushin
8b8286b88f fix: update log level check in logDNSEvent to use LevelInfo for improved logging 2026-08-08 15:01:33 +02:00
Daniel Lavrushin
a2b9c816ae fix: resolve domain handling conflicts and improve set application logic 2026-08-08 15:00:21 +02:00
Daniel Lavrushin
918b29bb3a fix: update payload handling to use STUN as the default and introduce custom payload support 2026-08-08 15:00:21 +02:00
Daniel Lavrushin
01f206fd1e fix: resolve IP matching conflicts and improve routing set handling 2026-08-08 15:00:21 +02:00
Daniel Lavrushin
cb00d28dae feat: add catch-all domain and IP matching functionality
- Added a switch for "any domain" and "any address" to simplify configuration.
- Fixed an issue where `0.0.0.0/0` was lost in the firewall due to `ipset` limitations.
- Enhanced DNS handling to capture TCP requests and added a DNS settings section.
- Introduced a new catch-all mechanism for domains and IPs, including normalization and entry notices.
- Updated UI components to support highlighting and displaying notices for catch-all entries.
- Implemented tests for new CIDR handling logic to ensure correct expansion of zero-prefix entries.
2026-08-08 15:00:21 +02:00
Daniel Lavrushin
2a68d8359e fix: update DNS redirect handling to use MainInjectedMark for marking 2026-08-08 15:00:21 +02:00
Daniel Lavrushin
aff5dfc6ce feat: implement relay host pinning in UDP upstream connection 2026-08-08 15:00:21 +02:00
Daniel Lavrushin
23e33dae7f feat(dns): Implement dual-stack DNS over TCP support
- Refactor dnsTCPServer to support both IPv4 and IPv6 listeners.
- Add configuration options for enabling/disabling IPv4 and IPv6.
- Update connection handling to manage separate listeners for each IP family.
- Enhance error handling for listener startup failures.
- Modify writeDNSTCPMessage to accept a timeout parameter.
- Introduce tests for dual-stack functionality, ensuring proper blocking behavior for both IPv4 and IPv6.
- Update configuration defaults and validation to ensure DNS over TCP settings are correctly applied.
- Add UI components for DNS settings, allowing users to configure TCP options.
2026-08-08 15:00:21 +02:00
Daniel Lavrushin
f859a348a4 feat: implement DNS over TCP support with iptables and nftables integration 2026-08-08 15:00:21 +02:00
Daniel Lavrushin
9ce12f7319 fix: enhance DNS logging and handling for various actions, improve connection management for Cloudflare Workers 2026-08-08 15:00:21 +02:00
Daniel Lavrushin
c9c3463a72 feat: implement Cloudflare Worker connection pooling and management
- Added cfWorkerPool for managing pooled connections to Cloudflare Workers.
- Introduced new transport plans for handling Worker connections.
- Enhanced connection dialing logic to support Worker-specific configurations.
- Implemented tests for Worker connection pooling and dialing behavior.
- Updated existing code to integrate Worker pooling into the MTProto transport layer.
2026-08-08 15:00:21 +02:00
Daniel Lavrushin
b2db1eb768
Update readme.md
Some checks failed
Deploy documentation / build-and-deploy (push) Has been cancelled
2026-08-03 09:39:29 +02:00
Daniel Lavrushin
25e054d74f fix: update changelog date for version 1.74.2
Some checks failed
Deploy documentation / build-and-deploy (push) Has been cancelled
2026-08-02 00:18:48 +02:00