| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | linux: rxring: fix tp_snaplen treated as the L3 length instead L2 | dilluti0n | 2026-07-10 | 1 | -3/+24 |
| | | | | | | | | | | While solving it, introduced Pkt abstraction so that advance() is automatically executed upon dropping it. This change still allows access to mmapped pointers within the Pkt.net() and enables the addition of other slice fields (such as mac) later. | ||||
| * | linux: drop nix, add wrapper libc_s instead | dilluti0n | 2026-07-06 | 1 | -67/+86 |
| | | | | | | | | | | | | | | When I updated nix to 0.31, `nix::fcntl::flock` became deprecated and unusable. At first I try to refactor `lock_pid_file()` to use the `lock` method of the `nix::fcntl::Flock` struct, but a situation arose where `set_len(0)` could not be called due to ownership issues. Linux system calls are fundamentally simple, stable, and backward compatible. Therefore, a compat layer is not necessary. Anticipating that this might happen again, this commit introduce the `libc_s`, which handles simple error processing for unsafe ffis in libc syscall bindings. | ||||
| * | linux: drop ctrlc crate and use signalfd instead | dilluti0n | 2026-06-29 | 1 | -67/+1 |
| | | | | | | | This integrates well with the main poll loop and removes the global AtomicBool RUNNING, which previously did nothing but detect interrupts before entering the loop. | ||||
| * | Bump version to 0.6.1 | dilluti0n | 2026-04-16 | 1 | -23/+23 |
| | | |||||
| * | Bump version to 0.6.0v0.6.0 | dilluti0n | 2026-04-05 | 1 | -33/+33 |
| | | |||||
| * | Bump version to 0.5.1v0.5.1 | dilluti0n | 2026-03-10 | 1 | -96/+22 |
| | | |||||
| * | Bump version to 0.5.0v0.5.0 | dilluti0n | 2026-03-02 | 1 | -18/+18 |
| | | |||||
| * | windows: split WinDivert into separate recv/send/sniff handles | dilluti0n | 2026-02-27 | 1 | -32/+32 |
| | | | | | | | windows: add cleanup for SEND_HANDLE windows: fix every packet goes to send-only handle | ||||
| * | linux: nftables: drop serde_json, use nft text syntax | dilluti0n | 2026-02-26 | 1 | -1/+0 |
| | | | | | 100 lines of JSON soup -> 16 lines of actual nftables | ||||
| * | Bump version to 0.4.3 | dilluti0n | 2026-02-16 | 1 | -3/+3 |
| | | |||||
| * | log: drop chrono, use localtime_r and GetLocalTime directly | dilluti0n | 2026-02-16 | 1 | -110/+1 |
| | | | | | 24 KiB is precious :) | ||||
| * | log: print time with crate chrono | dilluti0n | 2026-02-16 | 1 | -0/+110 |
| | | |||||
| * | Bump version to 0.4.2 | dilluti0n | 2026-02-16 | 1 | -3/+3 |
| | | |||||
| * | Bump version to 0.4.1v0.4.1 | dilluti0n | 2026-02-15 | 1 | -1/+1 |
| | | |||||
| * | Bump version to 0.4.0 | dilluti0n | 2026-02-15 | 1 | -42/+42 |
| | | |||||
| * | windows: implement windows service | dilluti0n | 2026-02-15 | 1 | -0/+10 |
| | | | | | | | | | | Revert lock_handle() send_to_raw cannot get a mutex since lock is not released per iteration. commit e08b57d281d8368dc02f06e3b6cd43edf88b2438 | ||||
| * | linux: implement daemonize | dilluti0n | 2026-02-15 | 1 | -0/+10 |
| | | | | | | Closes: #2 Link: https://github.com/dilluti0n/dpibreak/issues/2 | ||||
| * | Bump version to 0.3.0v0.3.0 | dilluti0n | 2026-02-01 | 1 | -21/+21 |
| | | | | | Closes: https://github.com/dilluti0n/dpibreak/issues/12 | ||||
| * | Add benchmark for pkt/hoptab, add feature bench for internal benches | dilluti0n | 2026-01-23 | 1 | -0/+433 |
| | | |||||
| * | Bump version to v0.2.2v0.2.2 | dilluti0n | 2026-01-18 | 1 | -5/+5 |
| | | |||||
| * | linux: drop iptables crate (regex dep) to reduce binary size | dilluti0n | 2026-01-18 | 1 | -93/+3 |
| | | | | | Introduce minimal iptables wrapper. | ||||
| * | Bump version to v0.2.1v0.2.1 | dilluti0n | 2026-01-16 | 1 | -1/+1 |
| | | |||||
| * | Bump version to 0.2.0v0.2.0 | dilluti0n | 2026-01-16 | 1 | -3/+3 |
| | | |||||
| * | Bump version to 0.1.1v0.1.1 | dilluti0n | 2026-01-12 | 1 | -21/+21 |
| | | |||||
| * | Bump version to 0.1.0v0.1.0 | dilluti0n | 2026-01-05 | 1 | -1/+1 |
| | | |||||
| * | Bump version to 0.0.7v0.0.7 | dilluti0n | 2026-01-04 | 1 | -7/+7 |
| | | |||||
| * | Bump version to 0.0.6v0.0.6 | dilluti0n | 2025-12-28 | 1 | -1/+1 |
| | | |||||
| * | ci: switch nfq dependency to crates.io-compatible nfq-updated | dilluti0n | 2025-12-28 | 1 | -24/+25 |
| | | |||||
| * | ci: add readme metadata on Cargo.toml | dilluti0n | 2025-12-28 | 1 | -17/+17 |
| | | |||||
| * | Bump version to 0.0.5v0.0.5 | dilluti0n | 2025-12-22 | 1 | -19/+19 |
| | | |||||
| * | Bump version to 0.0.4v0.0.4 | dilluti0n | 2025-10-29 | 1 | -1/+1 |
| | | |||||
| * | ci: update crates | dilluti0n | 2025-10-29 | 1 | -68/+99 |
| | | |||||
| * | linux: switch to apply_nft_rules() from nftables-rs for rule setting | dilluti0n | 2025-10-29 | 1 | -137/+3 |
| | | | | | | nftables-rs didn’t fit use case, so it was decoupled, and logging was improved. | ||||
| * | Bump version to 0.0.3v0.0.3 | dilluti0n | 2025-10-06 | 1 | -1/+1 |
| | | |||||
| * | Move linux-only dependencies on Cargo.toml | dilluti0n | 2025-10-06 | 1 | -16/+16 |
| | | |||||
| * | platform: linux: add nftables support with iptables fallback | dilluti0n | 2025-10-03 | 1 | -44/+242 |
| | | | | | | | | | | | Introduce nftables rules under a dedicated "dpibreak" table and chain. Traffic on TCP port 443 is queued using NFQUEUE. If nftables is not supported, fall back to the existing iptables-based rules for both IPv4 and IPv6. Also update cleanup logic to remove nftables table if used, or iptables rules otherwise. | ||||
| * | Bump version to 0.0.2v0.0.2 | dilluti0n | 2025-09-11 | 1 | -1/+1 |
| | | |||||
| * | Update version and metadatas on Cargo.toml | dilluti0n | 2025-09-05 | 1 | -1/+1 |
| | | | | | * Use: Cargo.toml inside on program | ||||
| * | Decouple once_cell by replacing it with standard lib | Dilluti0n | 2025-08-23 | 1 | -7/+0 |
| | | |||||
| * | build: use winres to add manifest for windows binary | dilluti0n | 2025-08-06 | 1 | -1/+39 |
| | | |||||
| * | implement: not-working framework for windows | dilluti0n | 2025-08-06 | 1 | -0/+1 |
| | | |||||
| * | refactor: move platform-dependent code to mod platform | dilluti0n | 2025-07-27 | 1 | -9/+128 |
| | | |||||
| * | revert ctrlc to override default SIGINT handler | dilluti0n | 2025-07-22 | 1 | -0/+29 |
| | | |||||
| * | feat: poll NFQUEUE socket instead sleep on main loop | dilluti0n | 2025-07-22 | 1 | -29/+0 |
| | | | | | | | | | | | The main motivation for using poll + recv (even with a single FD) is that blocking recv() is not interrupted by SIGINT, likely due to SA_RESTART being enabled by default. On the other hand, poll() is always interruptible by signals regardless of SA_RESTART. Instead of manually configuring sigaction in Rust, using poll here is simpler and more reliable. | ||||
| * | implement: send_to_raw; open raw socket and sendto it! | dilluti0n | 2025-07-21 | 1 | -0/+11 |
| | | | | | * important: it works !! | ||||
| * | feat: Add TLS ClientHello splitting(TCP/IP) logic using etherparse | dilluti0n | 2025-07-21 | 1 | -0/+16 |
| | | | | | | | | | | * Introduced `etherparse` and `arrayvec` dependencies to parse and reconstruct IP/TCP packets * Replaced legacy TCP payload extraction with robust parsing via `IpSlice` and `TcpSlice` * Added `split_packet` to split TCP payloads and reconstruct headers * Added stub `send_to_raw` function to transmit custom-crafted packets (implementation pending) * Modified `handle_packet` to detect ClientHello and perform split+delay packet transmission * Improved xt_u32 fallback logic and control flow using early returns and internal closure | ||||
| * | feat: add xft_u32 filtering for clienthello packet | dilluti0n | 2025-07-20 | 1 | -0/+7 |
| | | |||||
| * | refactor: try not to use tokio only for signal handling | dilluti0n | 2025-07-20 | 1 | -203/+30 |
| | | | | | | * implement: get_tcp_payload, parse tcp payload from given ip payload (seems like does not work well...) | ||||
| * | implement: packet catch with nfq-rs | dilluti0n | 2025-07-19 | 1 | -16/+28 |
| | | | | | * mock POSIX signal handling with tokio | ||||
| * | implement: install/cleanup iptables rule | dilluti0n | 2025-07-19 | 1 | -0/+485 |
| | | |||||
