Skip to content

Commit

Permalink
[usb-moded] Make diagnostic mode selection permanent. JB#38342
Browse files Browse the repository at this point in the history
Different config files must be used when diagnostic mode is
selected. In practice diagnostic mode selection is locked early
on during usb-moded startup and never changes. But as long as it
is possible, it would need to be taken into account in situations
where configuration files need to be re-evaluated.

Make it impossible to change diagnostic mode selection once it
has been made.

Signed-off-by: Simo Piiroinen <simo.piiroinen@jollamobile.com>
  • Loading branch information
spiiroin committed Sep 24, 2020
1 parent 2714331 commit 3888e4d
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions src/usb_moded.c
Expand Up @@ -327,12 +327,17 @@ void usbmoded_set_rescue_mode(bool rescue_mode)
* In diag mode usb-moded uses separate mode configuration which
* should have exactly one mode defined / available.
*/
static bool usbmoded_diag_mode = false;
static int usbmoded_diag_mode = -1;

bool usbmoded_get_diag_mode(void)
{
LOG_REGISTER_CONTEXT;

if( usbmoded_diag_mode == -1 ) {
usbmoded_diag_mode = false;
log_info("diag_mode: locked to %d", usbmoded_diag_mode);
}

return usbmoded_diag_mode;
}

Expand All @@ -341,8 +346,13 @@ void usbmoded_set_diag_mode(bool diag_mode)
LOG_REGISTER_CONTEXT;

if( usbmoded_diag_mode != diag_mode ) {
log_info("diag_mode: %d -> %d", usbmoded_diag_mode, diag_mode);
usbmoded_diag_mode = diag_mode;
if( usbmoded_diag_mode == -1 ) {
usbmoded_diag_mode = diag_mode;
log_info("diag_mode: set to %d", usbmoded_diag_mode);
}
else {
log_err("dig_mode: already locked to %d", usbmoded_diag_mode);
}
}
}

Expand Down

0 comments on commit 3888e4d

Please sign in to comment.