summaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAgeFilesLines
...
| * Prevent infinite loop on packet injection/filteringdilluti0n2025-12-303-6/+43
| | | | | | | | | | - linux: fix infinite NFQUEUE loop by marking injected packets - windows: by marking packet to impostor
| * Implement fake ClientHello injection with const TTLdilluti0n2025-12-302-42/+83
| |
| * Add dummy tls clienthello packetdilluti0n2025-12-301-0/+63
|/
* linux: extract process execution into `exec_process` helperdilluti0n2025-12-291-17/+29
| | | | | | | | Introduce exec_process() to handle external command execution, stdin piping, and error reporting. Now cleanup() and apply_nft_rules() call exec_process() to call modprobe, nft respectively. This improves error handling for cleanup xt_u32.
* docs: delete miscopied filedilluti0n2025-12-281-123/+0
|
* docs: clarify DPI/SNI description and link to TLS ClientHello specdilluti0n2025-12-281-5/+6
|
* docs: add system requirements and sudo path guide for cargo installdilluti0n2025-12-281-0/+15
|
* docs: add instruction for install crates.io releasedilluti0n2025-12-281-0/+7
|
* Bump version to 0.0.6v0.0.6dilluti0n2025-12-285-3/+128
|
* ci: wrap build info in details tag used in release workflowdilluti0n2025-12-281-1/+4
|
* ci: switch nfq dependency to crates.io-compatible nfq-updateddilluti0n2025-12-282-25/+26
|
* ci: add readme metadata on Cargo.tomldilluti0n2025-12-282-17/+18
|
* Bump version to 0.0.5v0.0.5dilluti0n2025-12-224-21/+24
|
* linux: ignore cleanup errors at startupdilluti0n2025-12-221-7/+3
| | | | | Do not log errors if cleanup fails during startup. Retain error logging for cleanup failures on shutdown.
* Add more links to READMEdilluti0n2025-10-291-5/+9
|
* Add links on READMEdilluti0n2025-10-291-0/+33
|
* Bump version to 0.0.4v0.0.4dilluti0n2025-10-294-11/+13
|
* ci: update cratesdilluti0n2025-10-291-68/+99
|
* ci: do not print glibc version for musl targetdilluti0n2025-10-291-6/+10
|
* Merge branch 'feat/log-nftables'dilluti0n2025-10-296-162/+73
|\ | | | | | | | | | | | | Decouple with nftables-rs crate and incorporate nftables log to logging. This merge was mainly done because a cleanup needs to be performed once at startup, but the log message for that appeared at all log levels, which didn’t look good.
| * Add --nft-command option to manualdilluti0n2025-10-292-0/+8
| |
| * linux: switch to apply_nft_rules() from nftables-rs for rule settingdilluti0n2025-10-293-156/+16
| | | | | | | | | | nftables-rs didn’t fit use case, so it was decoupled, and logging was improved.
| * linux: implement apply_nft_rules() to log output sanelydilluti0n2025-10-291-0/+30
| |
| * linux: add option `--nft-command`dilluti0n2025-10-292-10/+23
|/
* Bump version to 0.0.3v0.0.3dilluti0n2025-10-064-3/+8
|
* docs: update readmedilluti0n2025-10-061-13/+13
|
* windows: avoid ERR_INVALID_NAME when uninstalling WinDivertdilluti0n2025-10-061-2/+9
| | | | | | | `CloseAction::Uninstall` triggers ERROR_INVALID_NAME (0x8007007B) on Windows, likely due to the crate passing a non–NUL-terminated "WinDivert" string to `OpenServiceA`. For now, skip uninstallation and just close the handle normally. Added a FIXME comment with details.
* Move linux-only dependencies on Cargo.tomldilluti0n2025-10-062-18/+18
|
* platform: windows: close handle and uninstall driver sanelydilluti0n2025-10-061-9/+19
|
* platform: windows: only divert clienthello packet to userspacedilluti0n2025-10-032-2/+4
|
* docs: fix typodilluti0n2025-10-033-4/+5
|
* Merge branch 'feat/nftables'dilluti0n2025-10-036-80/+439
|\
| * Update manual with nftables supportdilluti0n2025-10-032-11/+22
| |
| * platform: linux: filter only TLS ClientHello packets on nftablesdilluti0n2025-10-031-0/+21
| | | | | | | | | | | | | | | | Add additional nftables match expressions to detect TLS records (ContentType 0x16 = Handshake): and specifically ClientHello (HandshakeType 0x01):. Packets matching this pattern are queued to NFQUEUE. Mark xt_u32 as supported when nftables filtering is successfully applied.
| * platform: linux: add nftables support with iptables fallbackdilluti0n2025-10-033-55/+356
| | | | | | | | | | | | | | | | | | | | 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.
| * platform: linux: split iptables helpers on bootstrap/cleanupdilluti0n2025-09-271-14/+25
| |
| * Refactor packet sending into split_packet_1 helperdilluti0n2025-09-151-9/+24
| | | | | | | | | | | | | | * Extracted: repeated split/send/sleep logic from `handle_packet` into new `split_packet_1` function for clarity and reuse. * Simplifies: `handle_packet` by replacing manual steps with a single call.
* | ci: build.ps1: fix distribution path handling in release ziphskimse2025-09-121-2/+6
|/ | | | | | * Only remove $DistPath if it exists instead of removing $DistDir entirely * Change Compress-Archive call to run from $DistDir so the top-level distribution directory is preserved in the zipball
* Bump version to 0.0.2v0.0.2dilluti0n2025-09-114-4/+7
|
* build: guard metadata extraction when Cargo.toml or .git is missingdilluti0n2025-09-111-0/+5
|
* Refactor handle_packet to reuse external buffer for packet handlingdilluti0n2025-09-114-9/+16
| | | | This removes unnecessary allocations per packet handling.
* github: auto format release notesdilluti0n2025-09-111-2/+41
|
* Ensure WinDivert is present on ci and build.ps1 fail early on errorsdilluti0n2025-09-112-22/+29
| | | | | | | | | | | | | | | | | | * github: download and extract WinDivert before running build * build: add check for WinDivert path existence and fail early * build: stop on missing distribution files instead of skipping The release workflow failed because WinDivert binaries were not present, and the build script continued execution even when cargo build failed. Ensure WinDivert is downloaded in CI and explicitly check its path before packaging. Also, make the build script exit immediately on missing files or build errors. Reported-by: dilluti0n <[email protected]> Link: https://github.com/dilluti0n/dpibreak/issues/1 Fixes: #1
* build: fix make install failure on release tarballsdilluti0n2025-09-091-13/+15
| | | | | | | | | | | | | | | `make install` used to fail when run from a release tarball because $(PROG) were depend on $(TARGET) but recipie for $(TARGET) were not there. Decoupling build and installation by removing that dependancy. Additionaly, there was verbose error messages Cargo.toml and git metadata were not available on release tarball. Reorganized execution order so that install/uninstall target no longer depends on cargo or git. Reported-by: dilluti0n <[email protected]> Link: https://github.com/dilluti0n/dpibreak/issues/4 Fixes: #4
* github: fix release action (no x86_64-unknown-linux-musl)v0.0.1dilluti0n2025-09-071-2/+7
|
* docs: README.md: add Quickstart sectiondilluti0n2025-09-071-3/+29
|
* github: create release.yml, automation build & gh releaseHee2025-09-071-0/+83
|
* build: add release script for windowsdilluti0n2025-09-071-0/+208
|
* build: add help messagedilluti0n2025-09-071-4/+17
|
* build: replace hardcoded paths with make automatic variablesdilluti0n2025-09-071-8/+8
|