8000 Tags · zerox80/mavi · GitHub
[go: up one dir, main page]

Skip to content

Tags

Tags

1.3.0

Toggle 1.3.0's commit message
Prepare Mavi VPN 1.3.0 release

1.1.0

Toggle 1.1.0's commit message
Prepare Mavi VPN 1.1.0 release

1.0.2

Toggle 1.0.2's commit message
Prepare 1.0.2 release metadata and notes

1.0.1

Toggle 1.0.1's commit message
Fix CLI failure exits and Android port for 1.0.1

1.0.0

Toggle 1.0.0's commit message
Prepare Mavi VPN 1.0.0 release

0.99.5

Toggle 0.99.5's commit message
Remove unnecessary reference when printing saved token prefix

0.99

Toggle 0.99's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
[codex] Fix review hardening issues (#196)

* Fix review hardening issues

* Fail-fast on invalid Android VPN MTU before socket/runtime setup

Move validated_vpn_mtu() ahead of UDP socket creation and Tokio runtime
construction in the JNI init path, so an out-of-range MTU returns
INIT_FATAL_CONFIG without first allocating those resources.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

0.98.1

Toggle 0.98.1's commit message
Split GUI installer: extract shared helpers into installer_common.py

install_gui_linux.py exceeded the 500-line CI limit after adding the
Node.js/npm and frontend-dependency installation logic. Move the shared
infrastructure (output helpers, command execution, distro detection,
Rust/Node/cargo-tauri/system-package installers) into a new
installer_common.py module and import it from the GUI installer.

No behavior change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

0.98

Toggle 0.98's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
refactor(windows): centralize Win32 table lifecycle and name magic va…

…lues (#181)

* refactor(windows): centralize Win32 table lifecycle and name magic values

Conservative, behavior-preserving cleanup of the native Win32 networking layer.

- utils.rs: add named constants (ERROR_OBJECT_ALREADY_EXISTS, ERROR_NOT_FOUND,
  IP_DAD_STATE_PREFERRED/DEPRECATED) and with_if_table / with_forward_table /
  with_unicast_table helpers that encapsulate the unsafe
  Get*Table -> from_raw_parts -> FreeMibTable lifecycle in one audited place.
- route.rs: use the constants; rewrite route cleanup/verify on with_forward_table.
- ip.rs: rewrite wait_for_ipv6_address, win32_add_ip and
  win32_cleanup_all_ips_on_interface onto with_unicast_table and the new
  constants, removing duplicated unsafe table boilerplate while preserving
  iteration order and sleeps; add SAFETY comments.
- cleanup.rs: use with_if_table; log previously-swallowed win32_delete_route
  failures at debug.
- reconnect.rs: extract the permanent-failure substrings into a documented
  PERMANENT_FAILURE_MARKERS const classified via iter().any(contains).

No runtime behavior change. cargo test (40 + 238 passed, 1 ignored), clippy and
build are green for the touched code.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(windows): gate test-only CommandOutcome helpers behind cfg(test)

CommandOutcome::success, failure, and stderr are only used from
#[cfg(test)] code, so the non-test mavi-vpn-service binary build
flagged them as dead code, failing clippy --all-targets -- -D warnings
on CI. Gate them with #[cfg(test)] instead of suppressing the lint.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* refactor(windows): free MIB tables via RAII guard so closures cannot leak on panic

The with_if_table/with_forward_table/with_unicast_table helpers freed the
table inline after calling the closure, so a panic in the closure would
unwind past FreeMibTable and leak the kernel-allocated table. Introduce a
MibTable RAII guard that frees the allocation on drop (including during
unwind), making these helpers the airtight audited home for the unsafe
Get*Table -> FreeMibTable lifecycle they were meant to be.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

0.97

Toggle 0.97's commit message
test(windows-service): compare IPC ACL by canonical SID instead of SD…

…DL alias

The hardening_script_removes_stale_aces test read the resulting DACL back
via GetSecurityDescriptorSddlForm and checked for the current user's raw
SID as a substring. When the test runs as the built-in Administrator
(RID 500), SDDL abbreviates that account to the `LA` alias, so the
raw-SID check failed even though the ACE was correct.

Enumerate the access rules with explicit SecurityIdentifier identities so
SYSTEM, Admins, and the current user compare by canonical SID regardless
of SDDL aliasing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0