From: Ian Jackson Date: Sun, 30 May 2021 11:29:06 +0000 (+0100) Subject: cmdlistener: Tidy up MC::SetSuperusr slightly X-Git-Tag: otter-0.7.0~222 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=432320ec546870b8bb746283456722fa7e3bf3d6;p=otter.git cmdlistener: Tidy up MC::SetSuperusr slightly Signed-off-by: Ian Jackson --- diff --git a/daemon/cmdlistener.rs b/daemon/cmdlistener.rs index 7395a695..959753c2 100644 --- a/daemon/cmdlistener.rs +++ b/daemon/cmdlistener.rs @@ -138,16 +138,17 @@ fn execute_and_respond(cs: &mut CommandStreamData, cmd: MgmtCommand, MC::Noop => Fine, MC::SetSuperuser(enable) => { - let euid = match &cs.authstate { + let preserve_euid = match &cs.authstate { AuthState::None { euid, .. } => euid, AuthState::Superuser { euid, .. } => euid, }.clone(); + if !enable { - cs.authstate = AuthState::None { euid }; + cs.authstate = AuthState::None { euid: preserve_euid }; } else { let auth = authorise_scope_direct(cs, &AccountScope::Server)?; let auth = auth.therefore_ok(); - cs.authstate = AuthState::Superuser { euid, auth }; + cs.authstate = AuthState::Superuser { euid: preserve_euid, auth }; } Fine },