Skip to content

Commit 0d0f207

Browse files
committed
commander: allow backup list & check when the device is locked
1 parent 82a4edf commit 0d0f207

File tree

2 files changed

+28
-24
lines changed

2 files changed

+28
-24
lines changed

src/commander.c

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -395,11 +395,6 @@ static void commander_process_backup(yajl_val json_node)
395395
char source[MAX(MAX(strlens(attr_str(ATTR_U2F)), strlens(attr_str(ATTR_HWW))),
396396
strlens(attr_str(ATTR_all))) + 1];
397397

398-
if (wallet_is_locked()) {
399-
commander_fill_report(cmd_str(CMD_backup), NULL, DBB_ERR_IO_LOCKED);
400-
return;
401-
}
402-
403398
if (strlens(value)) {
404399
if (STREQ(value, attr_str(ATTR_list))) {
405400
sd_list(CMD_backup);
@@ -410,17 +405,6 @@ static void commander_process_backup(yajl_val json_node)
410405
return;
411406
}
412407

413-
if (strlens(erase)) {
414-
// Erase single file
415-
int status = touch_button_press(TOUCH_LONG_WARN);
416-
if (status == DBB_TOUCHED) {
417-
sd_erase(CMD_backup, erase);
418-
} else {
419-
commander_fill_report(cmd_str(CMD_backup), NULL, status);
420-
}
421-
return;
422-
}
423-
424408
if (strlens(source_y)) {
425409
snprintf(source, sizeof(source), "%s", source_y);
426410
} else {
@@ -432,12 +416,6 @@ static void commander_process_backup(yajl_val json_node)
432416
}
433417
}
434418

435-
if (!strlens(key) && !STREQ(source, attr_str(ATTR_U2F))) {
436-
// Exit if backing up HWW but no key given
437-
commander_fill_report(cmd_str(CMD_seed), NULL, DBB_ERR_SD_KEY);
438-
return;
439-
}
440-
441419
if (check) {
442420
// Verify existing backup
443421
if (STREQ(source, attr_str(ATTR_all))) {
@@ -448,6 +426,30 @@ static void commander_process_backup(yajl_val json_node)
448426
return;
449427
}
450428

429+
430+
if (wallet_is_locked()) {
431+
commander_fill_report(cmd_str(CMD_backup), NULL, DBB_ERR_IO_LOCKED);
432+
return;
433+
}
434+
435+
if (strlens(erase)) {
436+
// Erase single file
437+
int status = touch_button_press(TOUCH_LONG_WARN);
438+
if (status == DBB_TOUCHED) {
439+
sd_erase(CMD_backup, erase);
440+
} else {
441+
commander_fill_report(cmd_str(CMD_backup), NULL, status);
442+
}
443+
return;
444+
}
445+
446+
447+
if (!strlens(key) && !STREQ(source, attr_str(ATTR_U2F))) {
448+
// Exit if backing up HWW but no key given
449+
commander_fill_report(cmd_str(CMD_seed), NULL, DBB_ERR_SD_KEY);
450+
return;
451+
}
452+
451453
if (filename) {
452454
// Create new backup
453455
commander_process_backup_create(key, filename, source);

tests/tests_api.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2734,8 +2734,10 @@ static void tests_echo_tfa(void)
27342734
KEY_STANDARD);
27352735
ASSERT_REPORT_HAS(flag_msg(DBB_ERR_IO_LOCKED));
27362736

2737-
api_format_send_cmd(cmd_str(CMD_backup), attr_str(ATTR_list), KEY_STANDARD);
2738-
ASSERT_REPORT_HAS(flag_msg(DBB_ERR_IO_LOCKED));
2737+
if (!TEST_LIVE_DEVICE) {
2738+
api_format_send_cmd(cmd_str(CMD_backup), attr_str(ATTR_list), KEY_STANDARD);
2739+
ASSERT_REPORT_HAS("test_backup.pdf");
2740+
}
27392741
}
27402742

27412743

0 commit comments

Comments
 (0)