summaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAgeFilesLines
* windows: fix nit build failurev0.4.2dilluti0n2026-02-161-3/+3
|
* Bump version to 0.4.2dilluti0n2026-02-163-8/+14
|
* docs: CHANGELOG: updatedilluti0n2026-02-161-1/+2
|
* linux: add TODO on daemonizedilluti0n2026-02-161-0/+1
|
* opt: decouple set_opt() from loggingdilluti0n2026-02-164-18/+36
| | | | | | | | | | | | | | | | | | | | | | set_opt() was logging each option as it set them, which created a tight coupling between option initialization and log output timing. This was particularly problematic for daemon mode: daemonize must happen after set_opt() (to know whether -D was passed) but before logging (so output goes to the log file, not stdout). Split into set_opt() -> InitializedOpts and InitializedOpts::log(), using a typestate pattern to enforce at compile time that log() cannot be called before set_opt(). This lets each platform's bootstrap() handle daemonization between the two steps: let initialized = opt.set_opt()?; platform::bootstrap()?; // daemonize here if needed initialized.log(); // now safe to log Also: - Move daemonize_1() into platform::bootstrap() on both platforms - Make daemonize_1() / service_main() private to their platform modules - Fix the long-standing TODO about using log_println in daemonize()
* linux: fix log file truncated when daemonize failsdilluti0n2026-02-161-3/+7
| | | | | | | | | 1. open without O_APPEND (offset = 0) and O_TRUNC (original bug) 2. dup file descripter with .try_clone() and feed it to daemonize 3. truncate file with .set_len(0) on child after daemonize.start() succed Fixes: https://github.com/dilluti0n/dpibreak/issues/17
* Merge branch 'fix/pid-file-open-fail-EACCES'dilluti0n2026-02-164-11/+28
|\
| * docs: CHANGELOG: updatedilluti0n2026-02-161-0/+4
| |
| * linux: exit if not rootdilluti0n2026-02-162-2/+10
| |
| * linux: repurpose bootstrap to do things before requiring cleanupdilluti0n2026-02-162-7/+11
| |
| * linux: modify PID_FILE and log pathdilluti0n2026-02-161-2/+3
|/ | | | Fixes: https://github.com/dilluti0n/dpibreak/issues/16
* docs: CHANGELOG: sync with release notedilluti0n2026-02-151-3/+2
|
* Bump version to 0.4.1v0.4.1dilluti0n2026-02-153-2/+11
|
* Merge branch 'fix/nft-flush-startup'dilluti0n2026-02-153-11/+42
|\ | | | | | | | | | | | | Fixes: #13 Link: https://github.com/dilluti0n/dpibreak/issues/13 Fixes: #6 Link: https://github.com/dilluti0n/dpibreak/issues/6
| * linux: add PID file locking for single instance enforcementdilluti0n2026-02-151-6/+24
| | | | | | | | | | Prevent multiple non-daemon dpibreak instances using flock(). Show existing PID on conflict and maintain lock until process termination.
| * linux: extract PID_FILE constant for reusedilluti0n2026-02-152-6/+6
| |
| * Consolidate setup logic into run()dilluti0n2026-02-153-3/+16
|/ | | | | | | | | | | The bootstrap/run separation was unnecessary. Move all initialization (cleanup + nftables setup): into run() and skip bootstrap in daemon mode. We repurpose the bootstrap() function to only run in non-daemon mode for future foreground-only initialization. - Add OPT_DAEMON option to detect daemon mode - Move cleanup() and install_rules() from bootstrap() to run() - Make bootstrap() a no-op (only called in non-daemon mode)
* ci: move download artifacts before making release notedilluti0n2026-02-151-12/+12
| | | | so download link and buildinfo can be generated.
* ci: fix release cannot find download artifactsv0.4.0dilluti0n2026-02-151-12/+12
|
* docs: CHANGELOG: unwrap lines to single-line entriesdilluti0n2026-02-151-21/+9
| | | | | GitHub Release notes treat newlines as <br>, causing mid-sentence line breaks in rendered release notes.
* ci: add checkout to read CHANGELOG.md on releasedilluti0n2026-02-151-1/+3
|
* ci: pass --no-verify to cargo publishdilluti0n2026-02-151-1/+1
| | | | | | build.rs writes dpibreak.1 outside OUT_DIR, which is safe for cargo install but fails publish verification. --no-verify skips this check without affecting end users.
* Bump version to 0.4.0dilluti0n2026-02-153-43/+55
|
* build: update CHANGELOG path on build.ps1dilluti0n2026-02-151-1/+1
| | | | since Windows cannot resolve symlink
* ci: release: parse release note from CHANGELOG.mddilluti0n2026-02-151-8/+5
| | | | * Remove generate release note from github api
* docs: CHANGELOG: add release datesdilluti0n2026-02-151-13/+13
| | | | | | Got dates from: gh release list --json tagName,publishedAt -q '.[] | "\(.tagName) \(.publishedAt | split("T")[0])"'
* docs: CHANGELOG: migrate to markdown formatdilluti0n2026-02-151-40/+64
|
* docs: CHANGELOG: move to CHANGELOG.mddilluti0n2026-02-152-40/+41
|
* Merge branch 'feat/daemonize'dilluti0n2026-02-1512-111/+362
|\
| * windows: bats: add useful prompts on service_*.batdilluti0n2026-02-152-10/+28
| |
| * docs: README: updatedilluti0n2026-02-151-29/+31
| |
| * docs: dpibreak.1: add -D, --daemondilluti0n2026-02-152-0/+35
| |
| * docs: WINDOWS_GUIDE: add korean translationdilluti0n2026-02-151-5/+24
| |
| * docs: WINDOWS_GUIDE: add service install instructiondilluti0n2026-02-151-6/+14
| |
| * windows: bats: add service_*.bat to install/remove windows servicedilluti0n2026-02-152-0/+31
| | | | | | | | | | Closes: #11 Link: https://github.com/dilluti0n/dpibreak/issues/11
| * opt: refactor to detach parse_args and set_optdilluti0n2026-02-153-88/+112
| |
| * windows: implement windows servicedilluti0n2026-02-153-3/+53
| | | | | | | | | | | | | | | | | | Revert lock_handle() send_to_raw cannot get a mutex since lock is not released per iteration. commit e08b57d281d8368dc02f06e3b6cd43edf88b2438
| * linux: implement daemonizedilluti0n2026-02-155-11/+57
| | | | | | | | | | Closes: #2 Link: https://github.com/dilluti0n/dpibreak/issues/2
| * opt: add option -D, --daemondilluti0n2026-02-141-0/+18
|/
* ci: automatically add dpibreak.1.md on commitdilluti0n2026-02-031-0/+1
|
* docs: dpibreak.1: fix typodilluti0n2026-02-032-10/+10
|
* ci: version control git pre-commit hookdilluti0n2026-02-031-0/+14
| | | | | This can be used via git config core.hooksPath .hooks
* build: always rerun; for winresdilluti0n2026-02-031-4/+0
|
* build: preprocess version of dpibreak.1dilluti0n2026-02-033-2/+17
|
* docs: dpibreak.1: remove from version controldilluti0n2026-02-032-196/+1
| | | | It is now generated by build.rs and dpibreak.1.in
* build: preprocess DEFAULT_* on dpibreak.1.in from build.rsdilluti0n2026-02-034-3/+254
|
* docs: dpibreak.1: fix typodilluti0n2026-02-032-18/+20
|
* docs: README: clean verbose feature descriptiondilluti0n2026-02-011-5/+2
|
* docs: CHANGELOG: updatedilluti0n2026-02-011-1/+2
|
* Bump version to 0.3.0v0.3.0dilluti0n2026-02-014-23/+25
| | | | Closes: https://github.com/dilluti0n/dpibreak/issues/12