aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAgeFilesLines
...
| * linux: implement socket and mmap wrapper for rxringdilluti0n2026-07-072-32/+39
| | | | | | | | | | | | | | Here mmap/munmap wrapper remain unsafe since mmap returns a pointer causes a memory leak when munmap is not called while dropping, and munmap has strict rule (PAGE_SIZE aligned) for addr defined on munmap(2).
| * linux: libc_s: add syscall! macro to reduce redundant error handlingdilluti0n2026-07-061-29/+15
| |
| * linux: add PACKET_RX_RING to libc_s::setsockopt apstractiondilluti0n2026-07-062-30/+27
| | | | | | | | | | | | | | | | | | The existing implementation was unsafe because UB could occur if a user-space pointer referenced by the struct sock_fprog was incorrectly passed. Rust safe model allows pointer creation and makes dereferencing unsafe. In this case, dereferencing happenes in kernel-space, Rust cannot guarantee this. So it must be handled separately.
| * linux: add safe abstraction for setsockopt(SO_ATTACH_FILTER)dilluti0n2026-07-062-12/+32
| | | | | | | | | | | | Treating optval as just a &[u8] in setsockopt() is not appropriate for usage patterns where a struct is put into optval. Rust treats casting a struct to &[u8] as unsafe.
| * linux: move poll_s() to mod libc_sdilluti0n2026-07-062-13/+11
| |
| * nit: remove unused crate::dilluti0n2026-07-061-2/+2
| |
| * nit: move use libc::sock_filter to inside open_rxring()dilluti0n2026-07-061-4/+2
| |
| * linux: drop nix, add wrapper libc_s insteaddilluti0n2026-07-064-76/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * nit: update emaildilluti0n2026-07-061-1/+1
| |
* | pkt: fix infer_hops againdilluti0n2026-06-291-1/+1
| |
* | opt: fix help messagesdilluti0n2026-06-291-15/+14
|/
* linux: inline poll_once and lift fds init outside the loopdilluti0n2026-06-291-41/+31
| | | | | | Keeping poll_once() separate just caused more headaches. It was also rebuilding the fds array every single time. Since poll() only overwrites revents, doing that on every loop was totally unnecessary.
* linux: drop ctrlc crate and use signalfd insteaddilluti0n2026-06-293-92/+45
| | | | | | 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.
* install.sh: prevent tarball fetch and log during uninstallationdilluti0n2026-05-021-22/+23
| | | | | In v1.1, the make dependency was removed so there was no need to fetch tarball, but it kept patching.
* docs: README: fix typodilluti0n2026-04-211-10/+10
|
* docs: dpibreak.1: improve bugs sectiondilluti0n2026-04-212-10/+21
|
* docs: dpibreak.1: fix typodilluti0n2026-04-212-2/+2
|
* docs: README: describe what install.sh doesdilluti0n2026-04-211-4/+5
|
* docs: README: updatedilluti0n2026-04-211-3/+10
|
* install.sh: remove -v on tar, fix/add logs and add SVERSION variabledilluti0n2026-04-181-8/+11
|
* scripts: add sign.shdilluti0n2026-04-181-0/+35
|
* pkg: aur: dpibreak: bump version to 0.6.1dilluti0n2026-04-161-0/+0
|
* ci: nit: fix indent issue on publish-wingetv0.6.1dilluti0n2026-04-161-1/+1
|
* Bump version to 0.6.1dilluti0n2026-04-164-43/+36
|
* docs: README: update winget installed version to use `dpibreak -h`dilluti0n2026-04-161-2/+2
| | | | Console is now not insta-terminated now due to pause() on opt.rs.
* ci: add publish-wingetdilluti0n2026-04-161-0/+26
|
* docs: CHANGELOG: update by 199b7783fdd4c81b322c33ba6bad5fd60a300e8adilluti0n2026-04-161-0/+3
|
* windows: wait for keypress before exit on --helpdilluti0n2026-04-161-1/+16
| | | | | | UAC elevation spawns a new console that closes when the process exits, cutting off --help output and error messages. Add a pause on Windows-only exit paths via _getch().
* docs: README.md: add winget instructiondilluti0n2026-04-163-16/+36
|
* docs: CHANGELOG: update by 722a3b008dd7c7aa32ec541bf6326e56751e7cb9dilluti0n2026-04-081-0/+3
|
* build: declare MSRV as 1.88dilluti0n2026-04-082-2/+3
| | | | | | | | The hot loop in src/platform/linux.rs uses if-let chains:(`if cond && let Some(x) = expr`), stabilised in Rust 1.88. Older toolchains fail with a cryptic E0658 feature-gate error; declaring rust-version surfaces a clear "package requires rustc 1.88 or newer" message at cargo invocation time instead.
* linux: drain rxring before nfqueue in poll loopdilluti0n2026-04-081-7/+7
| | | | | | | | When both fds are ready in the same wakeup, the SYN/ACK that triggered rx_ready is causally prior to the ClientHello waiting in the nfqueue. Process the rxring first so HopTab is populated before handle_packet runs find_hop, reducing the race window for HopLookupError::NotFound under load.
* docs: README: move Quickstart upperdilluti0n2026-04-051-38/+36
|
* docs: README: updatedilluti0n2026-04-051-44/+23
|
* opt: fix -D deprecation warning conditiondilluti0n2026-04-052-1/+6
| | | | | Previously checked `argv == "--loglevel"` by mistake, copied from the --loglevel deprecation pattern. Now correctly checks `argv == "-D"`.
* pkg: aur: dpibreak: bump version to 0.6.0dilluti0n2026-04-051-0/+0
|
* Bump version to 0.6.0v0.6.0dilluti0n2026-04-055-40/+47
|
* Add shopt -t, -a for --fake-ttl, --fake-autottl, respectivelydilluti0n2026-04-055-15/+17
|
* Add short option -d for --daemon, deprecating -D.dilluti0n2026-04-056-11/+19
|
* Merge branch 'feat/segment-order'dilluti0n2026-04-056-36/+203
|\
| * docs: CHANGELOG: updatedilluti0n2026-04-051-0/+8
| |
| * docs: README: update segmentation section and add error notedilluti0n2026-04-051-3/+11
| | | | | | | | Rename "fragment" to "segmentation".
| * docs: dpibreak.1: add description for --segment-orderdilluti0n2026-04-052-2/+58
| |
| * opt: add shopt for --segment-order and descriptiondilluti0n2026-04-051-2/+3
| |
| * pkt: implement segment-order aware send_splitdilluti0n2026-04-052-28/+43
| | | | | | | | | | | | Replace hardcoded [0,1] split with send_split accepting &[Segment]. Segments exceeding payload length are warned and skipped. Add Segment type to opt.rs with Display/Debug showing [start,end) notation.
| * opt: implement SegmentOrder::new and Displaydilluti0n2026-04-051-4/+49
| | | | | | | | | | | | Parse comma-separated split points into sorted segment ranges as (start, end): pairs. Display shows original input with computed ranges, e.g. "5,1,0,3 ([5,end), [1,3), [0,1), [3,5))".
| * opt: add SegmentOrder type and --segment-order optiondilluti0n2026-04-052-15/+49
|/ | | | | | | SegmentOrder parses a comma-separated list of u32 split points, sorts them, and precomputes segment ranges as (start, end) pairs for use in send_split. The original input string is retained for Display. Parsing logic is unimplemented and will follow in the next commit.
* linux: rxring: nit: add SPDX headerdilluti0n2026-03-151-0/+3
|
* pkg: aur: dpibreak: bump version to 0.5.1dilluti0n2026-03-101-0/+0
|
* Bump version to 0.5.1v0.5.1dilluti0n2026-03-104-119/+34
|