Files
OmniRoute/src/mitm/privilegedMitmStep.ts
Sulistyo Fajar Pratama 246b87f739 fix(mitm): gate Agent Bridge DNS and Trust Cert on sudo password (#7938) (#7939)
* fix(mitm): gate Agent Bridge DNS and Trust Cert on sudo password (#7938)

Extend the #7865 sudo gate to setup wizard DNS, Start DNS, and Trust Cert.
Start server still runs without a password but skips privileged cert/DNS
steps instead of spawning sudo -S with an empty string. Add a shared sudo
password modal on the Agent Bridge page for DNS and trust-cert actions.

Fixes #7938

* fix(mitm): use .tsx extension for MitmSudoPasswordModal hook

JSX in a .ts file broke dashboard typecheck and ESLint on CI.

* fix(mitm): skip DNS teardown on stop when sudo password missing (#7938)

stopMitm() no longer invokes removeDNSEntry with an empty password when
the server was started in skip mode. The MITM process is still killed.

* refactor(mitm): extract privileged step helpers to satisfy file-size cap

manager.ts exceeded the 800-line cap after #7938 gates. Move DNS teardown
and the shared sudo skip runner into dedicated modules; behavior unchanged.
2026-07-21 11:50:09 -03:00

18 lines
492 B
TypeScript

import { createLogger } from "@/shared/utils/logger.ts";
import { canRunPrivilegedMitmSteps } from "./sudoGate.ts";
const log = createLogger("mitm-manager");
/** Run a privileged MITM step when sudo is available; log and skip otherwise (#7938). */
export async function runPrivilegedMitmStep(
sudoPassword: string,
skipLog: string,
step: () => Promise<void>
): Promise<void> {
if (!canRunPrivilegedMitmSteps(sudoPassword)) {
log.info(skipLog);
return;
}
await step();
}