| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Bump version to 0.5.0v0.5.0 | dilluti0n | 2026-03-02 | 4 | -24/+39 |
| | | |||||
| * | docs: WINDOWS_GUIDE: add Troubleshooting | dilluti0n | 2026-03-02 | 1 | -0/+12 |
| | | |||||
| * | res: bats: remove --fake options on windows service installation | dilluti0n | 2026-03-02 | 1 | -1/+2 |
| | | |||||
| * | docs: CHANGELOG: update | dilluti0n | 2026-03-02 | 1 | -19/+47 |
| | | |||||
| * | docs: README: add --fake-autottl warning | dilluti0n | 2026-03-02 | 1 | -0/+5 |
| | | |||||
| * | docs: dpibreak.1: move requirements to description section | dilluti0n | 2026-03-02 | 2 | -61/+40 |
| | | |||||
| * | ci: add RELEASE_NOTE.md to automate publishing it | dilluti0n | 2026-03-02 | 2 | -3/+28 |
| | | |||||
| * | log: add debug!/info!/warn!/error! macros and refactor to use it | dilluti0n | 2026-03-02 | 10 | -92/+93 |
| | | |||||
| * | log: add short form log macros | hskimse | 2026-03-02 | 1 | -0/+5 |
| | | |||||
| * | windows: print log when recv fails | hskimse | 2026-03-02 | 1 | -2/+3 |
| | | |||||
| * | scripts: test-url: print logs on stderr | hskimse | 2026-03-01 | 1 | -5/+5 |
| | | |||||
| * | windows: fix buffer size to 65536 | hskimse | 2026-03-01 | 1 | -1/+1 |
| | | | | | This size is for windivert buffer, not internal pkt buffer capacity. | ||||
| * | scripts: test-url: show ip adress, statics | hskimse | 2026-03-01 | 1 | -11/+25 |
| | | |||||
| * | windows: simplify packet handling with recv_loop macro | hskimse | 2026-03-01 | 2 | -61/+30 |
| | | | | | | | | | | Replace generic spawn_recv with recv_loop macro that encapsulates the buffer allocation and receive loop. Divert handle now runs directly on the main thread, while sniff handle spawns a dedicated thread only when fake_autottl is enabled. This eliminates the mpsc channel, Event enum, and the race condition where concurrent open_handle calls during driver initialization could cause error 1058. | ||||
| * | windows: remove RUNNING flag and trap_exit | hskimse | 2026-03-01 | 1 | -30/+6 |
| | | | | | | | Non-daemon mode exits via process::exit(0) on Ctrl-C, and daemon mode is managed by SCM, so the RUNNING atomic flag and graceful shutdown loop are both unnecessary. Remove them along with the ctrlc handler. | ||||
| * | windows: exit immediately on Ctrl-C in non-daemon mode | dilluti0n | 2026-03-01 | 1 | -1/+4 |
| | | | | | | | | | | | In non-daemon mode, WinDivert driver closes all handles on process exit, so explicit cleanup is unnecessary. Call std::process::exit(0) directly from the Ctrl-C handler instead of relying on RUNNING flag and graceful shutdown loop. Also move trap_exit() call before spawn_recv() to ensure the handler is registered before any threads are spawned. | ||||
| * | Merge branch 'optimize/seperate-syn-ack-sniff' | dilluti0n | 2026-03-01 | 10 | -369/+472 |
| |\ | |||||
| | * | Move cleanup/trap_exit/RUNNING to platform modules | dilluti0n | 2026-03-01 | 4 | -68/+44 |
| | | | | | | | | | | | | | | | | | - Remove global RUNNING, trap_exit, EnsureCleanup, MESSAGE_AT_RUN from main.rs - Move each into platform-specific modules (linux.rs, windows.rs) - Move MESSAGE_AT_RUN to platform.rs - Inline cleanup logic into run() instead of separate cleanup() fn - Remove service_run_1() indirection in windows.rs | ||||
| | * | windows: spawn syn/ack filter only when `--fake-autottl` is enabled | dilluti0n | 2026-02-27 | 1 | -4/+7 |
| | | | |||||
| | * | windows: add close WinDivert handles on thread exit | dilluti0n | 2026-02-27 | 1 | -19/+21 |
| | | | | | | | | | | | | | Move handle lifecycle into spawn_recv so each handle is properly closed when RUNNING becomes false. Filter and flags are passed in instead of a pre-opened handle. | ||||
| | * | windows: refactor thread spawnings to spawn_recv helper | dilluti0n | 2026-02-27 | 1 | -29/+28 |
| | | | |||||
| | * | windows: split WinDivert into separate recv/send/sniff handles | dilluti0n | 2026-02-27 | 2 | -72/+106 |
| | | | | | | | | | | | | | windows: add cleanup for SEND_HANDLE windows: fix every packet goes to send-only handle | ||||
| | * | pkt: add hop infer log to put_hop_1 | dilluti0n | 2026-02-26 | 1 | -1/+10 |
| | | | |||||
| | * | pkt: move fake_autottl check out of put_hop_1 to caller | dilluti0n | 2026-02-26 | 2 | -25/+18 |
| | | | | | | | | | pkt: inline hop inference into put_hop_1, decoupling it from fake | ||||
| | * | linux: fix rxring initialized even if fake_autottl not enabled | dilluti0n | 2026-02-26 | 3 | -28/+43 |
| | | | | | | | | | | | | | | | Conditionally initialize rxring only when fake_autottl is enabled. Extract poll_once() using libc::poll directly; fd=-1 trick eliminates the need for conditional branching on optional rxring fd, as poll sets revents=0 for negative fds per POSIX. Drop nix poll feature. | ||||
| | * | linux: refactor run() into open_nfqueue/open_rxring helpers | dilluti0n | 2026-02-26 | 2 | -54/+60 |
| | | | | | | | | | | | | | | | | | Extract nfqueue initialization (open, bind, set O_NONBLOCK) and rxring initialization (cBPF filter, open) into separate functions. Inline BorrowedFd scope as a let binding to eliminate floating q_ready/rx_ready declarations. Move SYNACK_443_CBPF const into open_rxring. | ||||
| | * | linux: rxring: implement current_packet and advance | dilluti0n | 2026-02-26 | 2 | -24/+62 |
| | | | | | | | | | | | | | | | | | - Split next_packet into current_packet (read) and advance (release) to avoid TOCTOU between kernel overwrite and packet processing - Add current_frame helper to avoid duplicated pointer arithmetic - Switch AF_PACKET socket to ETH_P_ALL for future IPv6 support - Add FRAME_SIZE comment explaining 128B is sufficient for IP header | ||||
| | * | linux: rxring: implement RxRing::new | dilluti0n | 2026-02-26 | 2 | -7/+93 |
| | | | |||||
| | * | linux: add rxring skeleton and integrate into run loop | dilluti0n | 2026-02-26 | 3 | -23/+111 |
| | | | | | | | | | | | | | | | - Add rxring module with RxRing struct (new/next_packet unimplemented) - Attach cBPF filter for TCP src port 443 SYN/ACK packets - Multiplex nfqueue and rxring via poll in run loop - Move fake_autottl SYN/ACK handling to pkt::put_hop | ||||
| | * | linux: nftables: drop serde_json, use nft text syntax | dilluti0n | 2026-02-26 | 3 | -100/+13 |
| | | | | | | | | | 100 lines of JSON soup -> 16 lines of actual nftables | ||||
| | * | linux: nftables: remove syn/ack filter from nftables | dilluti0n | 2026-02-26 | 1 | -59/+0 |
| |/ | |||||
| * | pkt: fix infer_hops to use 128, not 126 | dilluti0n | 2026-02-26 | 1 | -2/+2 |
| | | | | | add debug log for infer_hops | ||||
| * | nit: rename main_0 to _1 | dilluti0n | 2026-02-26 | 1 | -2/+2 |
| | | |||||
| * | pkt: add debug log to send_split with dst, segments, payload len | dilluti0n | 2026-02-26 | 1 | -6/+10 |
| | | |||||
| * | log: defer local_time() call until log level check passes | dilluti0n | 2026-02-26 | 1 | -1/+1 |
| | | |||||
| * | pkt: nit: rename split_packet_0/split_packet/split_packet_1 | dilluti0n | 2026-02-26 | 2 | -8/+8 |
| | | | | | to build_packet/build_segment/send_split | ||||
| * | pkt: rename hoptab public API, drop _0 suffix | dilluti0n | 2026-02-26 | 3 | -19/+19 |
| | | |||||
| * | linux: remove Mutex from RAW4/RAW6, Socket is already Sync | dilluti0n | 2026-02-26 | 1 | -13/+9 |
| | | |||||
| * | Refactor send_to_raw to remove in-place packet reparsing | dilluti0n | 2026-02-26 | 3 | -23/+17 |
| | | | | | | | Pass destination address from PktView::daddr() at call site instead of re-extracting it from raw bytes inside send_to_raw. Windows side ignores the argument. Also add #[inline] to PktView accessor methods. | ||||
| * | windows: nit: swap service_run/service_run_1 naming convention | dilluti0n | 2026-02-26 | 1 | -4/+4 |
| | | |||||
| * | linux: nit: swap daemonize/daemonize_1 naming convention | dilluti0n | 2026-02-26 | 1 | -4/+4 |
| | | |||||
| * | docs: README.md: fix typo | dilluti0n | 2026-02-24 | 1 | -1/+1 |
| | | |||||
| * | docs: README.md: fix | dilluti0n | 2026-02-24 | 1 | -6/+6 |
| | | |||||
| * | docs: README.md: mention cross-platform support explicitly | dilluti0n | 2026-02-24 | 1 | -3/+3 |
| | | |||||
| * | docs: README.md: rewrite Afterword for clarity and flow | dilluti0n | 2026-02-24 | 1 | -32/+35 |
| | | |||||
| * | docs: README.md: revert logo | dilluti0n | 2026-02-24 | 1 | -2/+1 |
| | | |||||
| * | docs: README.md: refine footnotes align and re-introduce gpl logo | dilluti0n | 2026-02-24 | 1 | -10/+4 |
| | | |||||
| * | docs: README.md: cut unnecessary things | dilluti0n | 2026-02-24 | 1 | -4/+0 |
| | | |||||
| * | docs: README.md: fix render issues | dilluti0n | 2026-02-24 | 1 | -0/+3 |
| | | |||||
| * | docs: README.md: refine | dilluti0n | 2026-02-24 | 1 | -1/+1 |
| | | |||||
